Skip to content

Commit

Permalink
feat(openapi): support for Kubernetes v1.31 (elli)
Browse files Browse the repository at this point in the history
https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/

Notable changes:
- Removal of networking.k8s.io/v1alpha1
  Graduated to v1beta1
  - V1Alpha1NetworkAPIGroupDSL
- Added V1beta1NetworkAPIGroupDSL.ipAddresses
- Introduced coordination.k8s.io/v1alpha1 (Lease candidate)
- Introduced resource.k8s.io/v1alpha3
- VolumeAttributesClass to beta (https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/)

Signed-off-by: Marc Nuri <marc@marcnuri.com>
  • Loading branch information
manusa committed Jan 17, 2025
1 parent 4658c41 commit 813e6d2
Show file tree
Hide file tree
Showing 87 changed files with 90,220 additions and 187 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
*/
package io.fabric8.kubernetes.client;

import io.fabric8.kubernetes.api.model.networking.v1beta1.IPAddress;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IPAddressList;
import io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressClass;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressClassList;
Expand All @@ -27,4 +29,14 @@ public interface V1beta1NetworkAPIGroupDSL extends Client {
MixedOperation<Ingress, IngressList, Resource<Ingress>> ingresses();

NonNamespaceOperation<IngressClass, IngressClassList, Resource<IngressClass>> ingressClasses();

/**
* API entrypoint for networking.k8s.io/v1beta1 IPAddress
* <br>
* IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs
* that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.
*
* @return {@link NonNamespaceOperation} for IPAddress
*/
NonNamespaceOperation<IPAddress, IPAddressList, Resource<IPAddress>> ipAddresses();
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressList;
import io.fabric8.kubernetes.client.Client;
import io.fabric8.kubernetes.client.V1Alpha1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.V1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.V1beta1NetworkAPIGroupDSL;

Expand All @@ -29,8 +28,6 @@ public interface NetworkAPIGroupDSL extends Client {

V1beta1NetworkAPIGroupDSL v1beta1();

V1Alpha1NetworkAPIGroupDSL v1alpha1();

MixedOperation<NetworkPolicy, NetworkPolicyList, Resource<NetworkPolicy>> networkPolicies();

MixedOperation<Ingress, IngressList, Resource<Ingress>> ingress();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@
import io.fabric8.kubernetes.client.RequestConfig;
import io.fabric8.kubernetes.client.V1AdmissionRegistrationAPIGroupDSL;
import io.fabric8.kubernetes.client.V1Alpha1AdmissionRegistrationAPIGroupDSL;
import io.fabric8.kubernetes.client.V1Alpha1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.V1Alpha2DynamicResourceAllocationAPIGroupDSL;
import io.fabric8.kubernetes.client.V1ApiextensionAPIGroupDSL;
import io.fabric8.kubernetes.client.V1AuthenticationAPIGroupDSL;
Expand Down Expand Up @@ -261,7 +260,6 @@ protected void registerDefaultAdapters() {
adapters.registerClient(V1Beta1AuthenticationAPIGroupDSL.class, new V1Beta1AuthenticationAPIGroupClient());
adapters.registerClient(V1NetworkAPIGroupDSL.class, new V1NetworkAPIGroupClient());
adapters.registerClient(V1beta1NetworkAPIGroupDSL.class, new V1beta1NetworkAPIGroupClient());
adapters.registerClient(V1Alpha1NetworkAPIGroupDSL.class, new V1Alpha1NetworkAPIGroupClient());
adapters.registerClient(DiscoveryAPIGroupDSL.class, new DiscoveryAPIGroupClient());
adapters.registerClient(V1beta1DiscoveryAPIGroupDSL.class, new V1beta1DiscoveryAPIGroupClient());
adapters.registerClient(V1DiscoveryAPIGroupDSL.class, new V1DiscoveryAPIGroupClient());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicyList;
import io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressList;
import io.fabric8.kubernetes.client.V1Alpha1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.V1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.V1beta1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.dsl.MixedOperation;
Expand All @@ -39,11 +38,6 @@ public V1beta1NetworkAPIGroupDSL v1beta1() {
return adapt(V1beta1NetworkAPIGroupClient.class);
}

@Override
public V1Alpha1NetworkAPIGroupDSL v1alpha1() {
return adapt(V1Alpha1NetworkAPIGroupClient.class);
}

@Override
public MixedOperation<NetworkPolicy, NetworkPolicyList, Resource<NetworkPolicy>> networkPolicies() {
return resources(NetworkPolicy.class, NetworkPolicyList.class);
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,26 @@
*/
package io.fabric8.kubernetes.client.impl;

import io.fabric8.kubernetes.api.model.networking.v1beta1.IPAddress;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IPAddressList;
import io.fabric8.kubernetes.api.model.networking.v1beta1.Ingress;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressClass;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressClassList;
import io.fabric8.kubernetes.api.model.networking.v1beta1.IngressList;
import io.fabric8.kubernetes.client.V1beta1NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.dsl.MixedOperation;
import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation;
import io.fabric8.kubernetes.client.dsl.Resource;
import io.fabric8.kubernetes.client.extension.ClientAdapter;

public class V1beta1NetworkAPIGroupClient extends ClientAdapter<V1beta1NetworkAPIGroupClient>
implements V1beta1NetworkAPIGroupDSL {

@Override
public NonNamespaceOperation<IPAddress, IPAddressList, Resource<IPAddress>> ipAddresses() {
return resources(IPAddress.class, IPAddressList.class);
}

@Override
public MixedOperation<Ingress, IngressList, Resource<Ingress>> ingresses() {
return resources(Ingress.class, IngressList.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@

package io.fabric8.kubernetes.api.model.authorization.v1;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.fabric8.kubernetes.api.builder.Editable;
import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerPort;
import io.fabric8.kubernetes.api.model.EnvVar;
import io.fabric8.kubernetes.api.model.FieldSelectorRequirement;
import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.KubernetesResource;
import io.fabric8.kubernetes.api.model.LabelSelector;
import io.fabric8.kubernetes.api.model.LocalObjectReference;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.ObjectReference;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.ResourceRequirements;
import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.VolumeMount;
import io.sundr.builder.annotations.Buildable;
import io.sundr.builder.annotations.BuildableReference;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

@JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"rawSelector",
"requirements"
})
@ToString
@EqualsAndHashCode
@Accessors(prefix = {
"_",
""
})
@Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", refs = {
@BuildableReference(ObjectMeta.class),
@BuildableReference(LabelSelector.class),
@BuildableReference(Container.class),
@BuildableReference(PodTemplateSpec.class),
@BuildableReference(ResourceRequirements.class),
@BuildableReference(IntOrString.class),
@BuildableReference(ObjectReference.class),
@BuildableReference(LocalObjectReference.class),
@BuildableReference(PersistentVolumeClaim.class),
@BuildableReference(EnvVar.class),
@BuildableReference(ContainerPort.class),
@BuildableReference(Volume.class),
@BuildableReference(VolumeMount.class)
})
@Generated("io.fabric8.kubernetes.schema.generator.model.ModelGenerator")
public class FieldSelectorAttributes implements Editable<FieldSelectorAttributesBuilder>, KubernetesResource
{

@JsonProperty("rawSelector")
private String rawSelector;
@JsonProperty("requirements")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<FieldSelectorRequirement> requirements = new ArrayList<>();
@JsonIgnore
private Map<String, Object> additionalProperties = new LinkedHashMap<String, Object>();

/**
* No args constructor for use in serialization
*
*/
public FieldSelectorAttributes() {
}

public FieldSelectorAttributes(String rawSelector, List<FieldSelectorRequirement> requirements) {
super();
this.rawSelector = rawSelector;
this.requirements = requirements;
}

@JsonProperty("rawSelector")
public String getRawSelector() {
return rawSelector;
}

@JsonProperty("rawSelector")
public void setRawSelector(String rawSelector) {
this.rawSelector = rawSelector;
}

@JsonProperty("requirements")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public List<FieldSelectorRequirement> getRequirements() {
return requirements;
}

@JsonProperty("requirements")
public void setRequirements(List<FieldSelectorRequirement> requirements) {
this.requirements = requirements;
}

@JsonIgnore
public FieldSelectorAttributesBuilder edit() {
return new FieldSelectorAttributesBuilder(this);
}

@JsonIgnore
public FieldSelectorAttributesBuilder toBuilder() {
return edit();
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}

public void setAdditionalProperties(Map<String, Object> additionalProperties) {
this.additionalProperties = additionalProperties;
}

}
Loading

0 comments on commit 813e6d2

Please sign in to comment.