From ee6aef0f693b6d031e993d73ce8f66e5f61de39b Mon Sep 17 00:00:00 2001 From: Maxim Muzafarov Date: Thu, 18 Jul 2024 11:49:27 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=A0=EF=B8=8F=20Add=20x-kubernetes=20uniqu?= =?UTF-8?q?e=20validation=20for=20the=20Conditions=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1beta1/condition_types.go | 2 ++ .../bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml | 3 +++ .../bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_clusters.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_machinepools.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_machines.yaml | 3 +++ config/crd/bases/cluster.x-k8s.io_machinesets.yaml | 3 +++ config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml | 6 ++++++ .../bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml | 3 +++ .../controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml | 3 +++ .../test/builder/crd/test.cluster.x-k8s.io_phase0obj.yaml | 3 +++ .../test/builder/crd/test.cluster.x-k8s.io_phase1obj.yaml | 3 +++ .../test/builder/crd/test.cluster.x-k8s.io_phase2obj.yaml | 3 +++ .../infrastructure.cluster.x-k8s.io_dockerclusters.yaml | 3 +++ .../infrastructure.cluster.x-k8s.io_dockermachinepools.yaml | 3 +++ .../infrastructure.cluster.x-k8s.io_dockermachines.yaml | 3 +++ .../infrastructure.cluster.x-k8s.io_inmemoryclusters.yaml | 3 +++ .../infrastructure.cluster.x-k8s.io_inmemorymachines.yaml | 3 +++ 21 files changed, 65 insertions(+) diff --git a/api/v1beta1/condition_types.go b/api/v1beta1/condition_types.go index a66cf9bc838c..3e38e6e0bc28 100644 --- a/api/v1beta1/condition_types.go +++ b/api/v1beta1/condition_types.go @@ -89,6 +89,8 @@ type Condition struct { // ANCHOR: Conditions // Conditions provide observations of the operational state of a Cluster API resource. +// +listType=map +// +listMapKey=type type Conditions []Condition // ANCHOR_END: Conditions diff --git a/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml b/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml index 07d4fbdee075..ecf5e53ac7eb 100644 --- a/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml +++ b/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml @@ -3746,6 +3746,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map dataSecretName: description: DataSecretName is the name of the secret that stores the bootstrap data script. diff --git a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml index 889a31ed0739..e5ff4ba7c377 100644 --- a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml +++ b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml @@ -520,6 +520,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map observedGeneration: description: ObservedGeneration reflects the generation of the most recently observed ClusterResourceSet. diff --git a/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml b/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml index 32a113536b91..5bc36804fb5c 100644 --- a/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml +++ b/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml @@ -2037,6 +2037,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. diff --git a/config/crd/bases/cluster.x-k8s.io_clusters.yaml b/config/crd/bases/cluster.x-k8s.io_clusters.yaml index cc62b73a7dd9..b43af2a8a4a9 100644 --- a/config/crd/bases/cluster.x-k8s.io_clusters.yaml +++ b/config/crd/bases/cluster.x-k8s.io_clusters.yaml @@ -1709,6 +1709,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map controlPlaneReady: description: |- ControlPlaneReady denotes if the control plane became ready during initial provisioning diff --git a/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml b/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml index 96b88497ba05..f86cd3a90758 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml @@ -1565,6 +1565,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map observedGeneration: description: The generation observed by the deployment controller. format: int64 diff --git a/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml b/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml index e8deecb8ed2c..016db1e4af27 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml @@ -839,6 +839,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map currentHealthy: description: total number of healthy machines counted by this machine health check diff --git a/config/crd/bases/cluster.x-k8s.io_machinepools.yaml b/config/crd/bases/cluster.x-k8s.io_machinepools.yaml index 801658b64dda..472bb6d1d831 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinepools.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinepools.yaml @@ -1331,6 +1331,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map failureMessage: description: |- FailureMessage indicates that there is a problem reconciling the state, diff --git a/config/crd/bases/cluster.x-k8s.io_machines.yaml b/config/crd/bases/cluster.x-k8s.io_machines.yaml index cc5aab3633ad..0e9fcea89cdf 100644 --- a/config/crd/bases/cluster.x-k8s.io_machines.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machines.yaml @@ -1113,6 +1113,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map deletion: description: |- deletion contains information relating to removal of the Machine. diff --git a/config/crd/bases/cluster.x-k8s.io_machinesets.yaml b/config/crd/bases/cluster.x-k8s.io_machinesets.yaml index a1ddfd4ebe8e..a93ce9b28d42 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinesets.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinesets.yaml @@ -1303,6 +1303,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map failureMessage: type: string failureReason: diff --git a/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml b/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml index f05f04474d99..91f17e2b7560 100644 --- a/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml +++ b/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml @@ -141,6 +141,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object type: object served: true @@ -276,6 +279,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object type: object served: true diff --git a/config/crd/bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml b/config/crd/bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml index b66fbce4ac04..b164fc867989 100644 --- a/config/crd/bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml +++ b/config/crd/bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml @@ -213,6 +213,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map handlers: description: Handlers defines the current ExtensionHandlers supported by an Extension. diff --git a/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml b/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml index cb4668d56d03..e4d019e5ed52 100644 --- a/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml +++ b/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml @@ -4452,6 +4452,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map failureMessage: description: |- ErrorMessage indicates that there is a terminal problem reconciling the diff --git a/internal/test/builder/crd/test.cluster.x-k8s.io_phase0obj.yaml b/internal/test/builder/crd/test.cluster.x-k8s.io_phase0obj.yaml index 1be851749ef3..569fa370dd0b 100644 --- a/internal/test/builder/crd/test.cluster.x-k8s.io_phase0obj.yaml +++ b/internal/test/builder/crd/test.cluster.x-k8s.io_phase0obj.yaml @@ -95,6 +95,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object type: object served: true diff --git a/internal/test/builder/crd/test.cluster.x-k8s.io_phase1obj.yaml b/internal/test/builder/crd/test.cluster.x-k8s.io_phase1obj.yaml index a19fbcb5aced..b1c56306a45e 100644 --- a/internal/test/builder/crd/test.cluster.x-k8s.io_phase1obj.yaml +++ b/internal/test/builder/crd/test.cluster.x-k8s.io_phase1obj.yaml @@ -96,6 +96,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map v1beta2: description: Phase1ObjStatusV1Beta2 defines the status.V1Beta2 of a Phase1Obj. diff --git a/internal/test/builder/crd/test.cluster.x-k8s.io_phase2obj.yaml b/internal/test/builder/crd/test.cluster.x-k8s.io_phase2obj.yaml index 250fe4ed1cb5..01b763d21282 100644 --- a/internal/test/builder/crd/test.cluster.x-k8s.io_phase2obj.yaml +++ b/internal/test/builder/crd/test.cluster.x-k8s.io_phase2obj.yaml @@ -164,6 +164,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object type: object type: object diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclusters.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclusters.yaml index 944eaeff6ef6..c3fd9aa0c29a 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclusters.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclusters.yaml @@ -489,6 +489,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map failureDomains: additionalProperties: description: |- diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepools.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepools.yaml index 93d21b8b10af..c21c7df2f01a 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepools.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepools.yaml @@ -533,6 +533,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map infrastructureMachineKind: description: InfrastructureMachineKind is the kind of the infrastructure resources behind MachinePool Machines. diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachines.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachines.yaml index 8c7378d0f573..c00b75f6e3c8 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachines.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachines.yaml @@ -497,6 +497,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map loadBalancerConfigured: description: |- LoadBalancerConfigured denotes that the machine has been diff --git a/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemoryclusters.yaml b/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemoryclusters.yaml index c2f5b343d221..e6aa0a6dd5d2 100644 --- a/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemoryclusters.yaml +++ b/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemoryclusters.yaml @@ -115,6 +115,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map ready: description: Ready denotes that the in-memory cluster (infrastructure) is ready. diff --git a/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemorymachines.yaml b/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemorymachines.yaml index 10ac09a960fe..5d92248b081f 100644 --- a/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemorymachines.yaml +++ b/test/infrastructure/inmemory/config/crd/bases/infrastructure.cluster.x-k8s.io_inmemorymachines.yaml @@ -213,6 +213,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map ready: description: Ready denotes that the machine is ready type: boolean