diff --git a/.gitignore b/.gitignore index 49eabbd2c949..169df4d9127c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ test/e2e/data/infrastructure-docker/**/cluster-template*.yaml test/e2e/data/infrastructure-docker/**/clusterclass-*.yaml test/e2e/data/infrastructure-inmemory/**/cluster-template*.yaml !test/e2e/data/infrastructure-docker/**/clusterclass-quick-start.yaml +!test/e2e/data/infrastructure-docker/**/clusterclass-quick-start-only.yaml # Output of Makefile targets using sed on MacOS systems *.yaml-e diff --git a/api/addons/v1beta1/clusterresourceset_types.go b/api/addons/v1beta1/clusterresourceset_types.go index c034062cb821..86c551a12a33 100644 --- a/api/addons/v1beta1/clusterresourceset_types.go +++ b/api/addons/v1beta1/clusterresourceset_types.go @@ -168,6 +168,7 @@ func (m *ClusterResourceSet) SetV1Beta2Conditions(conditions []metav1.Condition) // +kubebuilder:resource:path=clusterresourcesets,scope=Namespaced,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ClusterResourceSet" // ClusterResourceSet is the Schema for the clusterresourcesets API. diff --git a/api/addons/v1beta1/clusterresourcesetbinding_types.go b/api/addons/v1beta1/clusterresourcesetbinding_types.go index 75dbec776734..02c58859c129 100644 --- a/api/addons/v1beta1/clusterresourcesetbinding_types.go +++ b/api/addons/v1beta1/clusterresourcesetbinding_types.go @@ -172,6 +172,7 @@ func referSameObject(a, b metav1.OwnerReference) bool { // +kubebuilder:resource:path=clusterresourcesetbindings,scope=Namespaced,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ClusterResourceSetBinding" // ClusterResourceSetBinding lists all matching ClusterResourceSets with the cluster it belongs to. diff --git a/api/bootstrap/kubeadm/v1beta1/kubeadmconfig_types.go b/api/bootstrap/kubeadm/v1beta1/kubeadmconfig_types.go index 98a582479b42..7364fec6b20d 100644 --- a/api/bootstrap/kubeadm/v1beta1/kubeadmconfig_types.go +++ b/api/bootstrap/kubeadm/v1beta1/kubeadmconfig_types.go @@ -508,6 +508,7 @@ type KubeadmConfigV1Beta2Status struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=kubeadmconfigs,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels['cluster\\.x-k8s\\.io/cluster-name']",description="Cluster" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of KubeadmConfig" diff --git a/api/bootstrap/kubeadm/v1beta1/kubeadmconfigtemplate_types.go b/api/bootstrap/kubeadm/v1beta1/kubeadmconfigtemplate_types.go index d881f59ac67f..65c8b49801eb 100644 --- a/api/bootstrap/kubeadm/v1beta1/kubeadmconfigtemplate_types.go +++ b/api/bootstrap/kubeadm/v1beta1/kubeadmconfigtemplate_types.go @@ -44,6 +44,7 @@ type KubeadmConfigTemplateResource struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=kubeadmconfigtemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of KubeadmConfigTemplate" // KubeadmConfigTemplate is the Schema for the kubeadmconfigtemplates API. diff --git a/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go b/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go index b8dd22f194b3..c3d5def58679 100644 --- a/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go +++ b/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go @@ -424,6 +424,7 @@ type LastRemediationStatus struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=kubeadmcontrolplanes,shortName=kcp,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels['cluster\\.x-k8s\\.io/cluster-name']",description="Cluster" diff --git a/api/controlplane/kubeadm/v1beta1/kubeadmcontrolplanetemplate_types.go b/api/controlplane/kubeadm/v1beta1/kubeadmcontrolplanetemplate_types.go index 81ddd06e4ea1..50b162ee7602 100644 --- a/api/controlplane/kubeadm/v1beta1/kubeadmcontrolplanetemplate_types.go +++ b/api/controlplane/kubeadm/v1beta1/kubeadmcontrolplanetemplate_types.go @@ -33,6 +33,7 @@ type KubeadmControlPlaneTemplateSpec struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=kubeadmcontrolplanetemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of KubeadmControlPlaneTemplate" // KubeadmControlPlaneTemplate is the Schema for the kubeadmcontrolplanetemplates API. diff --git a/api/core/v1beta1/cluster_types.go b/api/core/v1beta1/cluster_types.go index 43c9c109e257..cfac46fa9777 100644 --- a/api/core/v1beta1/cluster_types.go +++ b/api/core/v1beta1/cluster_types.go @@ -1118,6 +1118,7 @@ func (v APIEndpoint) String() string { // +kubebuilder:object:root=true // +kubebuilder:resource:path=clusters,shortName=cl,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="ClusterClass",type="string",JSONPath=".spec.topology.class",description="ClusterClass of this Cluster, empty if the Cluster is not using a ClusterClass" // +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="Cluster status such as Pending/Provisioning/Provisioned/Deleting/Failed" diff --git a/api/core/v1beta1/clusterclass_types.go b/api/core/v1beta1/clusterclass_types.go index 058507504fe0..766f99fbcc1d 100644 --- a/api/core/v1beta1/clusterclass_types.go +++ b/api/core/v1beta1/clusterclass_types.go @@ -67,6 +67,7 @@ const ( // +kubebuilder:object:root=true // +kubebuilder:resource:path=clusterclasses,shortName=cc,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ClusterClass" diff --git a/api/core/v1beta1/machine_types.go b/api/core/v1beta1/machine_types.go index 5a37f75427e4..0f200e65e588 100644 --- a/api/core/v1beta1/machine_types.go +++ b/api/core/v1beta1/machine_types.go @@ -660,6 +660,7 @@ type Bootstrap struct { // +kubebuilder:resource:path=machines,shortName=ma,scope=Namespaced,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".spec.clusterName",description="Cluster" // +kubebuilder:printcolumn:name="NodeName",type="string",JSONPath=".status.nodeRef.name",description="Node name associated with this machine" // +kubebuilder:printcolumn:name="ProviderID",type="string",JSONPath=".spec.providerID",description="Provider ID" diff --git a/api/core/v1beta1/machinedeployment_types.go b/api/core/v1beta1/machinedeployment_types.go index 4abb03a9aace..2456849b11de 100644 --- a/api/core/v1beta1/machinedeployment_types.go +++ b/api/core/v1beta1/machinedeployment_types.go @@ -556,6 +556,7 @@ func (md *MachineDeploymentStatus) GetTypedPhase() MachineDeploymentPhase { // +kubebuilder:object:root=true // +kubebuilder:resource:path=machinedeployments,shortName=md,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".spec.clusterName",description="Cluster" diff --git a/api/core/v1beta1/machinedrainrules_types.go b/api/core/v1beta1/machinedrainrules_types.go index ff653dca0568..0f4cdbcc2f94 100644 --- a/api/core/v1beta1/machinedrainrules_types.go +++ b/api/core/v1beta1/machinedrainrules_types.go @@ -197,6 +197,7 @@ type MachineDrainRulePodSelector struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=machinedrainrules,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Behavior",type="string",JSONPath=".spec.drain.behavior",description="Drain behavior" // +kubebuilder:printcolumn:name="Order",type="string",JSONPath=".spec.drain.order",description="Drain order" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of the MachineDrainRule" diff --git a/api/core/v1beta1/machinehealthcheck_types.go b/api/core/v1beta1/machinehealthcheck_types.go index c8e4d27046a1..4b97cf946695 100644 --- a/api/core/v1beta1/machinehealthcheck_types.go +++ b/api/core/v1beta1/machinehealthcheck_types.go @@ -193,6 +193,7 @@ type MachineHealthCheckV1Beta2Status struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=machinehealthchecks,shortName=mhc;mhcs,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".spec.clusterName",description="Cluster" // +kubebuilder:printcolumn:name="ExpectedMachines",type="integer",JSONPath=".status.expectedMachines",description="Number of machines currently monitored" diff --git a/api/core/v1beta1/machinepool_types.go b/api/core/v1beta1/machinepool_types.go index 5ecd8fa227c9..13d20b58db7e 100644 --- a/api/core/v1beta1/machinepool_types.go +++ b/api/core/v1beta1/machinepool_types.go @@ -288,6 +288,7 @@ func (m *MachinePoolStatus) GetTypedPhase() MachinePoolPhase { // +kubebuilder:subresource:status // +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".spec.clusterName",description="Cluster" // +kubebuilder:printcolumn:name="Desired",type=integer,JSONPath=".spec.replicas",description="Total number of machines desired by this MachinePool",priority=10 // +kubebuilder:printcolumn:name="Replicas",type="string",JSONPath=".status.replicas",description="MachinePool replicas count" diff --git a/api/core/v1beta1/machineset_types.go b/api/core/v1beta1/machineset_types.go index e302d020d3ec..1de87a525b35 100644 --- a/api/core/v1beta1/machineset_types.go +++ b/api/core/v1beta1/machineset_types.go @@ -402,6 +402,7 @@ func (m *MachineSet) Validate() field.ErrorList { // +kubebuilder:object:root=true // +kubebuilder:resource:path=machinesets,shortName=ms,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".spec.clusterName",description="Cluster" diff --git a/api/ipam/v1beta1/ipaddress_types.go b/api/ipam/v1beta1/ipaddress_types.go index 7cf6a49c864b..ad595d96e14a 100644 --- a/api/ipam/v1beta1/ipaddress_types.go +++ b/api/ipam/v1beta1/ipaddress_types.go @@ -51,6 +51,7 @@ type IPAddressSpec struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=ipaddresses,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Address",type="string",JSONPath=".spec.address",description="Address" // +kubebuilder:printcolumn:name="Pool Name",type="string",JSONPath=".spec.poolRef.name",description="Name of the pool the address is from" // +kubebuilder:printcolumn:name="Pool Kind",type="string",JSONPath=".spec.poolRef.kind",description="Kind of the pool the address is from" diff --git a/api/ipam/v1beta1/ipaddressclaim_types.go b/api/ipam/v1beta1/ipaddressclaim_types.go index 8a6a44a2e68a..fe15d2662950 100644 --- a/api/ipam/v1beta1/ipaddressclaim_types.go +++ b/api/ipam/v1beta1/ipaddressclaim_types.go @@ -66,6 +66,7 @@ type IPAddressClaimV1Beta2Status struct { // +kubebuilder:resource:path=ipaddressclaims,scope=Namespaced,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Pool Name",type="string",JSONPath=".spec.poolRef.name",description="Name of the pool to allocate an address from" // +kubebuilder:printcolumn:name="Pool Kind",type="string",JSONPath=".spec.poolRef.kind",description="Kind of the pool to allocate an address from" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of IPAdressClaim" diff --git a/api/runtime/v1alpha1/extensionconfig_types.go b/api/runtime/v1alpha1/extensionconfig_types.go index 58ca1f67f9e1..d23876793ae3 100644 --- a/api/runtime/v1alpha1/extensionconfig_types.go +++ b/api/runtime/v1alpha1/extensionconfig_types.go @@ -196,6 +196,7 @@ const ( // +kubebuilder:resource:path=extensionconfigs,shortName=ext,scope=Cluster,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ExtensionConfig" // ExtensionConfig is the Schema for the ExtensionConfig API. 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 989c64c1f52a..f667ddfe8a21 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 @@ -2241,7 +2241,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigtemplates.yaml b/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigtemplates.yaml index 3cc0e55d6e1d..2a9c2e8ba960 100644 --- a/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigtemplates.yaml +++ b/bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigtemplates.yaml @@ -2163,7 +2163,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: diff --git a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesetbindings.yaml b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesetbindings.yaml index c84745177589..6f179551b411 100644 --- a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesetbindings.yaml +++ b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesetbindings.yaml @@ -118,7 +118,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: status: {} 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 f76f1bbddb49..61ad6fbc1703 100644 --- a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml +++ b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml @@ -265,7 +265,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml b/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml index d71055b3c339..6365bc9343d0 100644 --- a/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml +++ b/config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml @@ -2415,7 +2415,7 @@ spec: type: array type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/config/crd/bases/cluster.x-k8s.io_clusters.yaml b/config/crd/bases/cluster.x-k8s.io_clusters.yaml index 1fb337e3be3d..a57c6cb51822 100644 --- a/config/crd/bases/cluster.x-k8s.io_clusters.yaml +++ b/config/crd/bases/cluster.x-k8s.io_clusters.yaml @@ -1442,7 +1442,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml b/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml index b40849d87050..1aad24d80d45 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml @@ -767,7 +767,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: scale: diff --git a/config/crd/bases/cluster.x-k8s.io_machinedrainrules.yaml b/config/crd/bases/cluster.x-k8s.io_machinedrainrules.yaml index 623db0f4ce8a..e1866dea7cfc 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinedrainrules.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinedrainrules.yaml @@ -392,7 +392,7 @@ spec: - metadata - spec type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: diff --git a/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml b/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml index d549b2f3ec2a..79ddb06a0db6 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml @@ -406,7 +406,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/config/crd/bases/cluster.x-k8s.io_machinepools.yaml b/config/crd/bases/cluster.x-k8s.io_machinepools.yaml index bdbe6cf4c884..d9c6fb3180bc 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinepools.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinepools.yaml @@ -619,7 +619,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: scale: diff --git a/config/crd/bases/cluster.x-k8s.io_machines.yaml b/config/crd/bases/cluster.x-k8s.io_machines.yaml index 5e0ea3fd07b1..6de39b726e63 100644 --- a/config/crd/bases/cluster.x-k8s.io_machines.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machines.yaml @@ -645,7 +645,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/config/crd/bases/cluster.x-k8s.io_machinesets.yaml b/config/crd/bases/cluster.x-k8s.io_machinesets.yaml index a35333eb48ff..70b79bcd67ab 100644 --- a/config/crd/bases/cluster.x-k8s.io_machinesets.yaml +++ b/config/crd/bases/cluster.x-k8s.io_machinesets.yaml @@ -659,7 +659,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: scale: 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 33b033e83cda..0905c64cc5f7 100644 --- a/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml +++ b/config/crd/bases/ipam.cluster.x-k8s.io_ipaddressclaims.yaml @@ -363,7 +363,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/config/crd/bases/ipam.cluster.x-k8s.io_ipaddresses.yaml b/config/crd/bases/ipam.cluster.x-k8s.io_ipaddresses.yaml index 56bd6ff2058c..bbc0c52f37eb 100644 --- a/config/crd/bases/ipam.cluster.x-k8s.io_ipaddresses.yaml +++ b/config/crd/bases/ipam.cluster.x-k8s.io_ipaddresses.yaml @@ -218,7 +218,7 @@ spec: - prefix type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: 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 57cdc7e909d3..53a8554becbf 100644 --- a/config/crd/bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml +++ b/config/crd/bases/runtime.cluster.x-k8s.io_extensionconfigs.yaml @@ -356,7 +356,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} 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 8e8f351a34fa..fddefedb4deb 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 @@ -2690,7 +2690,7 @@ spec: type: string type: object type: object - served: true + served: false storage: false subresources: scale: diff --git a/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanetemplates.yaml b/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanetemplates.yaml index a639d5dedf60..83e7f7177d32 100644 --- a/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanetemplates.yaml +++ b/controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanetemplates.yaml @@ -2368,7 +2368,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: diff --git a/test/e2e/clusterctl_upgrade.go b/test/e2e/clusterctl_upgrade.go index 3da147f891eb..578f2c437eec 100644 --- a/test/e2e/clusterctl_upgrade.go +++ b/test/e2e/clusterctl_upgrade.go @@ -30,7 +30,6 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - coordinationv1 "k8s.io/api/coordination/v1" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -156,7 +155,8 @@ type ClusterctlUpgradeSpecInputUpgrade struct { AddonProviders []string // PostUpgrade is called after the upgrade is completed. - PostUpgrade func(proxy framework.ClusterProxy, namespace string, clusterName string) + PostUpgrade func(proxy framework.ClusterProxy, namespace string, clusterName string) + PreMachineDeploymentScaleUp func(proxy framework.ClusterProxy, namespace string, clusterName string) } // ClusterctlUpgradeSpec implements a test that verifies clusterctl upgrade of a management cluster. @@ -429,7 +429,7 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg workerMachineCount := ptr.To[int64](1) log.Logf("Creating the workload cluster with name %q using the %q template (Kubernetes %s, %d control-plane machines, %d worker machines)", - workloadClusterName, "(default)", kubernetesVersion, *controlPlaneMachineCount, *workerMachineCount) + workloadClusterName, input.WorkloadFlavor, kubernetesVersion, *controlPlaneMachineCount, *workerMachineCount) log.Logf("Getting the cluster template yaml") workloadClusterTemplate := clusterctl.ConfigClusterWithBinary(ctx, clusterctlBinaryPath, clusterctl.ConfigClusterInput{ @@ -625,7 +625,7 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg // This will also work with CAPI versions that have v1beta2 as storage version as long as v1beta1 is still served. // Note: We can't simply use unstructured here because we would have to refactor a lot of code below. // Note: We can migrate to only use v1beta2 once we only support upgrades from CAPI versions that already have v1beta2. - workloadCluster := discoveryAndWaitForClusterV1Beta1(ctx, discoveryAndWaitForClusterV1Beta1Input{ + workloadCluster := discoveryAndWaitForClusterV1Beta2(ctx, discoveryAndWaitForClusterV1Beta2Input{ Getter: managementClusterProxy.GetClient(), Namespace: workloadClusterNamespace, Name: workloadClusterName, @@ -653,7 +653,7 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg }, "3m", "10s").ShouldNot(HaveOccurred(), "MachineList should be available after the upgrade") Byf("[%d] Waiting for three minutes before checking if an unexpected rollout happened", i) - time.Sleep(time.Minute * 3) + //time.Sleep(time.Minute * 3) // FIXME // After the upgrade: check that there were no unexpected rollouts. postUpgradeMachineList := &unstructured.UnstructuredList{} @@ -673,17 +673,21 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg }, "3m", "10s").ShouldNot(HaveOccurred(), "MachineList should be available after the upgrade") Expect(validateMachineRollout(preUpgradeMachineList, postUpgradeMachineList)).To(BeTrue(), "Machines should remain the same after the upgrade") + if upgrade.PreMachineDeploymentScaleUp != nil { + upgrade.PreMachineDeploymentScaleUp(managementClusterProxy, workloadCluster.Namespace, workloadCluster.Name) + } + // Scale up to 2 and back down to 1 so we can repeat this multiple times. Byf("[%d] Scale MachineDeployment to ensure the providers work", i) - if workloadCluster.Spec.Topology != nil { + if workloadCluster.Spec.Topology.IsDefined() { // Cluster is using ClusterClass, scale up via topology. - framework.ScaleAndWaitMachineDeploymentTopologyV1Beta1(ctx, framework.ScaleAndWaitMachineDeploymentTopologyV1Beta1Input{ + framework.ScaleAndWaitMachineDeploymentTopology(ctx, framework.ScaleAndWaitMachineDeploymentTopologyInput{ ClusterProxy: managementClusterProxy, Cluster: workloadCluster, Replicas: 2, WaitForMachineDeployments: input.E2EConfig.GetIntervals(specName, "wait-worker-nodes"), }) - framework.ScaleAndWaitMachineDeploymentTopologyV1Beta1(ctx, framework.ScaleAndWaitMachineDeploymentTopologyV1Beta1Input{ + framework.ScaleAndWaitMachineDeploymentTopology(ctx, framework.ScaleAndWaitMachineDeploymentTopologyInput{ ClusterProxy: managementClusterProxy, Cluster: workloadCluster, Replicas: 1, @@ -691,20 +695,20 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg }) } else { // Cluster is not using ClusterClass, scale up via MachineDeployment. - testMachineDeployments := framework.GetMachineDeploymentsByClusterV1Beta1(ctx, framework.GetMachineDeploymentsByClusterInput{ + testMachineDeployments := framework.GetMachineDeploymentsByCluster(ctx, framework.GetMachineDeploymentsByClusterInput{ Lister: managementClusterProxy.GetClient(), ClusterName: workloadClusterName, Namespace: workloadClusterNamespace, }) if len(testMachineDeployments) > 0 { - framework.ScaleAndWaitMachineDeploymentV1Beta1(ctx, framework.ScaleAndWaitMachineDeploymentV1Beta1Input{ + framework.ScaleAndWaitMachineDeployment(ctx, framework.ScaleAndWaitMachineDeploymentInput{ ClusterProxy: managementClusterProxy, Cluster: workloadCluster, MachineDeployment: testMachineDeployments[0], Replicas: 2, WaitForMachineDeployments: input.E2EConfig.GetIntervals(specName, "wait-worker-nodes"), }) - framework.ScaleAndWaitMachineDeploymentV1Beta1(ctx, framework.ScaleAndWaitMachineDeploymentV1Beta1Input{ + framework.ScaleAndWaitMachineDeployment(ctx, framework.ScaleAndWaitMachineDeploymentInput{ ClusterProxy: managementClusterProxy, Cluster: workloadCluster, MachineDeployment: testMachineDeployments[0], @@ -907,23 +911,23 @@ func discoveryAndWaitForCluster(ctx context.Context, input discoveryAndWaitForCl return cluster } -// discoveryAndWaitForClusterV1Beta1Input is the input type for discoveryAndWaitForClusterV1Beta1. -type discoveryAndWaitForClusterV1Beta1Input struct { +// discoveryAndWaitForClusterV1Beta2Input is the input type for discoveryAndWaitForClusterV1Beta2. +type discoveryAndWaitForClusterV1Beta2Input struct { Getter framework.Getter Namespace string Name string } -// discoveryAndWaitForClusterV1Beta1 discovers a cluster object in a namespace and waits for the cluster infrastructure to be provisioned. -func discoveryAndWaitForClusterV1Beta1(ctx context.Context, input discoveryAndWaitForClusterV1Beta1Input, intervals ...interface{}) *clusterv1beta1.Cluster { - Expect(ctx).NotTo(BeNil(), "ctx is required for discoveryAndWaitForClusterV1Beta1") - Expect(input.Getter).ToNot(BeNil(), "Invalid argument. input.Getter can't be nil when calling discoveryAndWaitForClusterV1Beta1") - Expect(input.Namespace).ToNot(BeNil(), "Invalid argument. input.Namespace can't be empty when calling discoveryAndWaitForClusterV1Beta1") - Expect(input.Name).ToNot(BeNil(), "Invalid argument. input.Name can't be empty when calling discoveryAndWaitForClusterV1Beta1") +// discoveryAndWaitForClusterV1Beta2 discovers a cluster object in a namespace and waits for the cluster infrastructure to be provisioned. +func discoveryAndWaitForClusterV1Beta2(ctx context.Context, input discoveryAndWaitForClusterV1Beta2Input, intervals ...interface{}) *clusterv1.Cluster { + Expect(ctx).NotTo(BeNil(), "ctx is required for discoveryAndWaitForClusterV1Beta2") + Expect(input.Getter).ToNot(BeNil(), "Invalid argument. input.Getter can't be nil when calling discoveryAndWaitForClusterV1Beta2") + Expect(input.Namespace).ToNot(BeNil(), "Invalid argument. input.Namespace can't be empty when calling discoveryAndWaitForClusterV1Beta2") + Expect(input.Name).ToNot(BeNil(), "Invalid argument. input.Name can't be empty when calling discoveryAndWaitForClusterV1Beta2") // NOTE: We intentionally return the provisioned Cluster because it also contains // the reconciled ControlPlane ref and InfrastructureCluster ref when using a ClusterClass. - cluster := &clusterv1beta1.Cluster{} + cluster := &clusterv1.Cluster{} By("Waiting for cluster to enter the provisioned phase") Eventually(func() (string, error) { key := client.ObjectKey{ @@ -1122,14 +1126,14 @@ func deleteAllClustersAndWait(ctx context.Context, input deleteAllClustersAndWai // Alternatives to this would be: // * some other way to restart the kube-controller-manager (e.g. control plane node rollout) // * removing ownerRefs from (at least) MachineDeployments - Eventually(func(g Gomega) { - kubeControllerManagerLease := &coordinationv1.Lease{} - g.Expect(input.Client.Get(ctx, client.ObjectKey{Namespace: metav1.NamespaceSystem, Name: "kube-controller-manager"}, kubeControllerManagerLease)).To(Succeed()) - // As soon as the kube-controller-manager detects it doesn't own the lease anymore it will restart. - // Once the current lease times out the kube-controller-manager will become leader again. - kubeControllerManagerLease.Spec.HolderIdentity = ptr.To("e2e-test-client") - g.Expect(input.Client.Update(ctx, kubeControllerManagerLease)).To(Succeed()) - }, 3*time.Minute, 3*time.Second).Should(Succeed(), "failed to steal lease from kube-controller-manager to trigger restart") + //Eventually(func(g Gomega) { + // kubeControllerManagerLease := &coordinationv1.Lease{} + // g.Expect(input.Client.Get(ctx, client.ObjectKey{Namespace: metav1.NamespaceSystem, Name: "kube-controller-manager"}, kubeControllerManagerLease)).To(Succeed()) + // // As soon as the kube-controller-manager detects it doesn't own the lease anymore it will restart. + // // Once the current lease times out the kube-controller-manager will become leader again. + // kubeControllerManagerLease.Spec.HolderIdentity = ptr.To("e2e-test-client") + // g.Expect(input.Client.Update(ctx, kubeControllerManagerLease)).To(Succeed()) + //}, 3*time.Minute, 3*time.Second).Should(Succeed(), "failed to steal lease from kube-controller-manager to trigger restart") for _, c := range clusterList.Items { Byf("Deleting cluster %s", c.GetName()) diff --git a/test/e2e/clusterctl_upgrade_test.go b/test/e2e/clusterctl_upgrade_test.go index 8204767439cd..49d47eca6e6e 100644 --- a/test/e2e/clusterctl_upgrade_test.go +++ b/test/e2e/clusterctl_upgrade_test.go @@ -21,6 +21,8 @@ package e2e import ( "fmt" + "os" + "path" "strings" . "github.com/onsi/ginkgo/v2" @@ -29,6 +31,7 @@ import ( clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" clusterctlcluster "sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster" + "sigs.k8s.io/cluster-api/test/e2e/internal/log" "sigs.k8s.io/cluster-api/test/framework" "sigs.k8s.io/cluster-api/test/framework/kubernetesversions" ) @@ -40,6 +43,64 @@ var ( providerDockerPrefix = "docker:v%s" ) +var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.10=>v1.12=>current) [PR-Blocking] [ClusterClass]", Label("PR-Blocking", "ClusterClass"), func() { + version := "1.10" + stableRelease10, err := GetStableReleaseOfMinor(ctx, version) + Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version) + + version = "1.12" + stableRelease12, err := GetStableReleaseOfMinor(ctx, version) + Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version) + ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput { + return ClusterctlUpgradeSpecInput{ + E2EConfig: e2eConfig, + ClusterctlConfigPath: clusterctlConfigPath, + BootstrapClusterProxy: bootstrapClusterProxy, + ArtifactFolder: artifactFolder, + SkipCleanup: skipCleanup, + // Configuration for the initial provider deployment. + InitWithBinary: fmt.Sprintf(clusterctlDownloadURL, stableRelease10), + // We have to pin the providers because with `InitWithProvidersContract` the test would + // use the latest version for the contract (which is the next minor for v1beta1). + InitWithCoreProvider: fmt.Sprintf(providerCAPIPrefix, stableRelease10), + InitWithBootstrapProviders: []string{fmt.Sprintf(providerKubeadmPrefix, stableRelease10)}, + InitWithControlPlaneProviders: []string{fmt.Sprintf(providerKubeadmPrefix, stableRelease10)}, + InitWithInfrastructureProviders: []string{fmt.Sprintf(providerDockerPrefix, stableRelease10)}, + InitWithRuntimeExtensionProviders: []string{}, + Upgrades: []ClusterctlUpgradeSpecInputUpgrade{ + { + WithBinary: fmt.Sprintf(clusterctlDownloadURL, stableRelease12), + CoreProvider: fmt.Sprintf(providerCAPIPrefix, stableRelease12), + BootstrapProviders: []string{fmt.Sprintf(providerKubeadmPrefix, stableRelease12)}, + ControlPlaneProviders: []string{fmt.Sprintf(providerKubeadmPrefix, stableRelease12)}, + InfrastructureProviders: []string{fmt.Sprintf(providerDockerPrefix, stableRelease12)}, + PreMachineDeploymentScaleUp: func(proxy framework.ClusterProxy, namespace string, clusterName string) { + // Added as PreMachineDeploymentScaleUp as it triggers a rollout and we have to avoid that the test fails because of the rollout detection + cc, err := os.ReadFile(path.Join(artifactFolder, "repository", "infrastructure-docker", "v" + stableRelease12, "clusterclass-quick-start-only.yaml")) + Expect(err).ToNot(HaveOccurred()) + log.Logf("Applying the new ClusterClass") + Expect(proxy.CreateOrUpdate(ctx, cc)).To(Succeed()) + }, + }, + { // Upgrade to latest contract version. + Contract: clusterv1.GroupVersion.Version, + PostUpgrade: func(proxy framework.ClusterProxy, namespace, clusterName string) { + framework.ValidateCRDMigration(ctx, proxy, namespace, clusterName, + crdShouldBeMigrated, clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName)) + }, + }, + }, + // Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version. + // When picking this version, please check also the list of versions known by the source Cluster API version (rif. test/infrastructure/kind/mapper.go). + InitWithKubernetesVersion: "v1.33.0", + WorkloadKubernetesVersion: "v1.33.0", + MgmtFlavor: "topology", + WorkloadFlavor: "topology", + UseKindForManagementCluster: true, + } + }) +}) + // Note: This test should be changed during "prepare main branch", it should test n-3 => current. var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.10=>current) [ClusterClass]", Label("ClusterClass"), func() { // Get n-3 latest stable release diff --git a/test/e2e/config/docker.yaml b/test/e2e/config/docker.yaml index f2f710ca6924..9059144969ad 100644 --- a/test/e2e/config/docker.yaml +++ b/test/e2e/config/docker.yaml @@ -174,6 +174,7 @@ providers: - sourcePath: "../data/infrastructure-docker/v1.12/cluster-template.yaml" - sourcePath: "../data/infrastructure-docker/v1.12/cluster-template-topology.yaml" - sourcePath: "../data/infrastructure-docker/v1.12/clusterclass-quick-start.yaml" + - sourcePath: "../data/infrastructure-docker/v1.12/clusterclass-quick-start-only.yaml" - name: v1.13.99 # next; use manifest from source files value: ../../../test/infrastructure/docker/config/default files: diff --git a/test/e2e/data/infrastructure-docker/v1.12/clusterclass-quick-start-only.yaml b/test/e2e/data/infrastructure-docker/v1.12/clusterclass-quick-start-only.yaml new file mode 100644 index 000000000000..fb25a5902e1b --- /dev/null +++ b/test/e2e/data/infrastructure-docker/v1.12/clusterclass-quick-start-only.yaml @@ -0,0 +1,518 @@ +apiVersion: cluster.x-k8s.io/v1beta2 +kind: ClusterClass +metadata: + name: quick-start + namespace: clusterctl-upgrade +spec: + controlPlane: + metadata: + labels: + ClusterClass.controlPlane.label: "ClusterClass.controlPlane.labelValue" + annotations: + ClusterClass.controlPlane.annotation: "ClusterClass.controlPlane.annotationValue" + templateRef: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + name: quick-start-control-plane + machineInfrastructure: + templateRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachineTemplate + name: quick-start-control-plane + healthCheck: + checks: + unhealthyNodeConditions: + - type: e2e.remediation.condition + status: "False" + timeoutSeconds: 20 + unhealthyMachineConditions: + - type: e2e.clusterclass.condition + status: "False" + timeoutSeconds: 300 + infrastructure: + templateRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerClusterTemplate + name: quick-start-cluster + workers: + machineDeployments: + - class: default-worker + metadata: + labels: + ClusterClass.machineDeployment.label: "ClusterClass.machineDeployment.labelValue" + annotations: + ClusterClass.machineDeployment.annotation: "ClusterClass.machineDeployment.annotationValue" + bootstrap: + templateRef: + apiVersion: bootstrap.cluster.x-k8s.io/v1beta2 + kind: KubeadmConfigTemplate + name: quick-start-md-default-worker-bootstraptemplate + infrastructure: + templateRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachineTemplate + name: quick-start-default-worker-machinetemplate + # We are intentionally not setting the 'unhealthyNodeConditions and unhealthyMachineConditions' here to test that those fields are optional. + machinePools: + - class: default-worker + metadata: + labels: + ClusterClass.machinePool.label: "ClusterClass.machinePool.labelValue" + annotations: + ClusterClass.machinePool.annotation: "ClusterClass.machinePool.annotationValue" + bootstrap: + templateRef: + apiVersion: bootstrap.cluster.x-k8s.io/v1beta2 + kind: KubeadmConfigTemplate + name: quick-start-mp-default-worker-bootstraptemplate + infrastructure: + templateRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachinePoolTemplate + name: quick-start-default-worker-machinepooltemplate + variables: + - name: lbImageRepository + required: true + schema: + openAPIV3Schema: + type: string + default: kindest + - name: etcdImageTag + required: true + # This metadata has just been added to verify that we can set metadata. + deprecatedV1Beta1Metadata: + labels: + testLabelKey: testLabelValue + annotations: + testAnnotationKey: testAnnotationValue + schema: + openAPIV3Schema: + type: string + default: "" + example: "3.5.3-0" + description: "etcdImageTag sets the tag for the etcd image." + # This metadata has just been added to verify that we can set metadata. + x-metadata: + labels: + testLabelKey: testXLabelValue + annotations: + testAnnotationKey: testXAnnotationValue + - name: coreDNSImageTag + required: true + schema: + openAPIV3Schema: + type: string + default: "" + example: "v1.8.5" + description: "coreDNSImageTag sets the tag for the coreDNS image." + - name: kubeadmControlPlaneMaxSurge + required: false + schema: + openAPIV3Schema: + type: string + default: "" + example: "0" + description: "kubeadmControlPlaneMaxSurge is the maximum number of control planes that can be scheduled above or under the desired number of control plane machines." + x-kubernetes-validations: + - rule: "self == \"\" || self != \"\"" + messageExpression: "'just a test expression, got %s'.format([self])" + - name: preLoadImages + required: false + schema: + openAPIV3Schema: + default: [] + type: array + items: + type: string + # This metadata has just been added to verify that we can set metadata. + x-metadata: + labels: + testLabelKey: testXLabelValue + annotations: + testAnnotationKey: testXAnnotationValue + description: "preLoadImages sets the images for the docker machines to preload." + - name: controlPlaneTaint + required: false + schema: + openAPIV3Schema: + type: boolean + default: true + - name: externalCloudProvider + required: false + schema: + openAPIV3Schema: + type: boolean + default: false + - name: ipv6Primary + required: false + schema: + openAPIV3Schema: + type: boolean + default: false + - name: kubeControlPlaneLogLevel + required: false + schema: + openAPIV3Schema: + type: string + description: "Log level for kube-apiserver, kube-scheduler and kube-controller-manager" + example: "2" + - name: kubeletLogLevel + required: false + schema: + openAPIV3Schema: + type: string + description: "Log level for kubelets on control plane and worker nodes" + example: "2" + patches: + - name: lbImageRepository + definitions: + - selector: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerClusterTemplate + matchResources: + infrastructureCluster: true + jsonPatches: + - op: add + path: "/spec/template/spec/loadBalancer" + valueFrom: + template: | + imageRepository: {{ .lbImageRepository }} + - name: etcdImageTag + enabledIf: '{{ ne .etcdImageTag "" }}' + description: "Sets tag to use for the etcd image in the KubeadmControlPlane." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/etcd" + valueFrom: + template: | + local: + imageTag: {{ .etcdImageTag }} + - name: coreDNSImageTag + enabledIf: '{{ ne .coreDNSImageTag "" }}' + description: "Sets tag to use for the etcd image in the KubeadmControlPlane." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/dns" + valueFrom: + template: | + imageTag: {{ .coreDNSImageTag }} + - name: customImage + description: "Sets the container image that is used for running dockerMachines for the controlPlane and default-worker machineDeployments." + definitions: + - selector: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachineTemplate + matchResources: + machineDeploymentClass: + names: + - default-worker + jsonPatches: + - op: add + path: "/spec/template/spec/customImage" + valueFrom: + template: | + kindest/node:{{ .builtin.machineDeployment.version | replace "+" "_" }} + - selector: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachineTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/customImage" + valueFrom: + template: | + kindest/node:{{ .builtin.controlPlane.version | replace "+" "_" }} + - selector: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachinePoolTemplate + matchResources: + machinePoolClass: + names: + - default-worker + jsonPatches: + - op: add + path: "/spec/template/spec/template/customImage" + valueFrom: + template: | + kindest/node:{{ .builtin.machinePool.version | replace "+" "_" }} + - name: preloadImages + description: | + Sets the container images to preload to the node that is used for running dockerMachines. + This is especially required for self-hosted e2e tests to ensure the required controller images to be available + and reduce load to public registries. + definitions: + - selector: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachineTemplate + matchResources: + controlPlane: true + machineDeploymentClass: + names: + - default-worker + jsonPatches: + - op: add + path: "/spec/template/spec/preLoadImages" + valueFrom: + variable: preLoadImages + - name: preloadImagesMP + description: | + Sets the container images to preload to the node that is used for running dockerMachines. + This is especially required for self-hosted e2e tests to ensure the required controller images to be available + and reduce load to public registries. + definitions: + - selector: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 + kind: DockerMachinePoolTemplate + matchResources: + machinePoolClass: + names: + - default-worker + jsonPatches: + - op: add + path: "/spec/template/spec/template/preLoadImages" + valueFrom: + variable: preLoadImages + - name: kubeadmControlPlaneMaxSurge + description: "Sets the maxSurge value used for rolloutStrategy in the KubeadmControlPlane." + enabledIf: '{{ ne .kubeadmControlPlaneMaxSurge "" }}' + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: /spec/template/spec/rollout/strategy + valueFrom: + template: | + rollingUpdate: + maxSurge: {{ .kubeadmControlPlaneMaxSurge }}" + - name: controlPlaneTaint + enabledIf: "{{ not .controlPlaneTaint }}" + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/taints" + value: [] + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/joinConfiguration/nodeRegistration/taints" + value: [] + - name: controlPlaneExternalCloudProvider + enabledIf: "{{ .externalCloudProvider }}" + description: "Configures kubelet to run with an external cloud provider for control plane nodes." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/joinConfiguration/nodeRegistration/kubeletExtraArgs/-" + value: + name: "cloud-provider" + value: "external" + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/kubeletExtraArgs/-" + value: + name: "cloud-provider" + value: "external" + - name: machineDeploymentExternalCloudProvider + enabledIf: "{{ .externalCloudProvider }}" + description: "Configures kubelet to run with an external cloud provider for machineDeployment nodes." + definitions: + - selector: + apiVersion: bootstrap.cluster.x-k8s.io/v1beta2 + kind: KubeadmConfigTemplate + matchResources: + machineDeploymentClass: + names: + - '*-worker' + jsonPatches: + - op: add + path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/-" + value: + name: "cloud-provider" + value: "external" + - selector: + apiVersion: bootstrap.cluster.x-k8s.io/v1beta2 + kind: KubeadmConfigTemplate + matchResources: + machinePoolClass: + names: + - '*-worker' + jsonPatches: + - op: add + path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/-" + value: + name: "cloud-provider" + value: "external" + - name: localEndpointIPv6 + enabledIf: "{{ .ipv6Primary }}" + description: "Configures KCP to use IPv6 for its localAPIEndpoint." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/localAPIEndpoint" + value: + advertiseAddress: '::' + - name: podSecurityStandard + description: "Adds an admission configuration for PodSecurity to the kube-apiserver." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraArgs" + value: + - name: admission-control-config-file + value: "/etc/kubernetes/kube-apiserver-admission-pss.yaml" + - name: v + value: "0" + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraVolumes" + value: + - name: admission-pss + hostPath: /etc/kubernetes/kube-apiserver-admission-pss.yaml + mountPath: /etc/kubernetes/kube-apiserver-admission-pss.yaml + readOnly: true + pathType: "File" + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/files" + valueFrom: + template: | + - content: | + apiVersion: apiserver.config.k8s.io/v1 + kind: AdmissionConfiguration + plugins: + - name: PodSecurity + configuration: + apiVersion: pod-security.admission.config.k8s.io/v1{{ if semverCompare "< v1.25-0" .builtin.controlPlane.version }}beta1{{ end }} + kind: PodSecurityConfiguration + defaults: + enforce: "baseline" + enforce-version: "latest" + audit: "baseline" + audit-version: "latest" + warn: "baseline" + warn-version: "latest" + exemptions: + usernames: [] + runtimeClasses: [] + namespaces: [kube-system] + path: /etc/kubernetes/kube-apiserver-admission-pss.yaml + - name: controlPlaneLogLevel + enabledIf: "{{ if .kubeControlPlaneLogLevel }}true{{end}}" + description: "Configures control plane components and kubelet to run at the log level specified in the variable `kubeControlPlaneLogLevel`." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/extraArgs/-" + valueFrom: + template: | + name: v + value: "{{ .kubeControlPlaneLogLevel }}" + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/controllerManager" + value: {} + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/controllerManager/extraArgs" + valueFrom: + template: | + - name: v + value: "{{ .kubeControlPlaneLogLevel }}" + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/scheduler" + value: {} + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/scheduler/extraArgs" + valueFrom: + template: | + - name: v + value: "{{ .kubeControlPlaneLogLevel }}" + - name: controlPlaneKubeletLogLevel + enabledIf: "{{ if .kubeletLogLevel }}true{{end}}" + description: "Configures control plane kubelets to log at the level set in the variable `kubeletLogLevel`." + definitions: + - selector: + apiVersion: controlplane.cluster.x-k8s.io/v1beta2 + kind: KubeadmControlPlaneTemplate + matchResources: + controlPlane: true + jsonPatches: + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/joinConfiguration/nodeRegistration/kubeletExtraArgs/-" + valueFrom: + template: | + name: v + value: "{{ .kubeletLogLevel }}" + - op: add + path: "/spec/template/spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/kubeletExtraArgs/-" + valueFrom: + template: | + name: v + value: "{{ .kubeletLogLevel }}" + - name: workerKubeletLogLevel + enabledIf: "{{ if .kubeletLogLevel }}true{{end}}" + description: "Configures worker kubelets to log at the level set in the variable `kubeletLogLevel`." + definitions: + - selector: + apiVersion: bootstrap.cluster.x-k8s.io/v1beta2 + kind: KubeadmConfigTemplate + matchResources: + machineDeploymentClass: + names: + - '*-worker' + jsonPatches: + - op: add + path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/-" + valueFrom: + template: | + name: v + value: "{{ .kubeletLogLevel }}" + - selector: + apiVersion: bootstrap.cluster.x-k8s.io/v1beta2 + kind: KubeadmConfigTemplate + matchResources: + machinePoolClass: + names: + - '*-worker' + jsonPatches: + - op: add + path: "/spec/template/spec/joinConfiguration/nodeRegistration/kubeletExtraArgs/-" + valueFrom: + template: | + name: v + value: "{{ .kubeletLogLevel }}" diff --git a/test/e2e/quick_start_test.go b/test/e2e/quick_start_test.go index ecb50db7600d..fd9a94ce20b1 100644 --- a/test/e2e/quick_start_test.go +++ b/test/e2e/quick_start_test.go @@ -83,7 +83,7 @@ var _ = Describe("When following the Cluster API quick-start", func() { }) }) -var _ = Describe("When following the Cluster API quick-start with ClusterClass [PR-Blocking] [ClusterClass]", Label("PR-Blocking", "ClusterClass"), func() { +var _ = Describe("When following the Cluster API quick-start with ClusterClass", Label("ClusterClass"), func() { QuickStartSpec(ctx, func() QuickStartSpecInput { return QuickStartSpecInput{ E2EConfig: e2eConfig, diff --git a/test/framework/clusterctl/client.go b/test/framework/clusterctl/client.go index bcf07a60ee93..2da0083b3eea 100644 --- a/test/framework/clusterctl/client.go +++ b/test/framework/clusterctl/client.go @@ -377,7 +377,7 @@ func ConfigCluster(ctx context.Context, input ConfigClusterInput) []byte { func ConfigClusterWithBinary(ctx context.Context, clusterctlBinaryPath string, input ConfigClusterInput) []byte { version, err := getClusterCtlVersion(clusterctlBinaryPath) Expect(err).ToNot(HaveOccurred()) - clusterctlSupportsGenerateCluster := version.GTE(semver.MustParse("1.0.0")) + clusterctlSupportsGenerateCluster := version.GTE(semver.MustParse("1.0.0")) // FIXME: cleanup var command string if clusterctlSupportsGenerateCluster { diff --git a/test/framework/clusterctl/repository.go b/test/framework/clusterctl/repository.go index ebcad9e2100d..744126f09e0e 100644 --- a/test/framework/clusterctl/repository.go +++ b/test/framework/clusterctl/repository.go @@ -196,7 +196,7 @@ func AdjustConfigPathForBinary(clusterctlBinaryPath, clusterctlConfigPath string version, err := getClusterCtlVersion(clusterctlBinaryPath) Expect(err).ToNot(HaveOccurred()) - if version.LT(semver.MustParse("1.3.0")) { + if version.LT(semver.MustParse("1.3.0")) { // FIXME: remove return strings.ReplaceAll(clusterctlConfigPath, clusterctlConfigFileName, clusterctlConfigV1_2FileName) } return clusterctlConfigPath diff --git a/test/infrastructure/docker/api/v1beta1/devcluster_types.go b/test/infrastructure/docker/api/v1beta1/devcluster_types.go index 26b97bdf4d15..bf40cddddcef 100644 --- a/test/infrastructure/docker/api/v1beta1/devcluster_types.go +++ b/test/infrastructure/docker/api/v1beta1/devcluster_types.go @@ -141,6 +141,7 @@ type DevClusterV1Beta2Status struct { // +kubebuilder:resource:path=devclusters,scope=Namespaced,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:object:root=true // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels['cluster\\.x-k8s\\.io/cluster-name']",description="Cluster" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of the DevCluster" diff --git a/test/infrastructure/docker/api/v1beta1/devclustertemplate_types.go b/test/infrastructure/docker/api/v1beta1/devclustertemplate_types.go index 2cad6949dbea..2cac3dc0de40 100644 --- a/test/infrastructure/docker/api/v1beta1/devclustertemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/devclustertemplate_types.go @@ -30,6 +30,7 @@ type DevClusterTemplateSpec struct { // +kubebuilder:resource:path=devclustertemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of the DevClusterTemplate" // DevClusterTemplate is the Schema for the DevClusterTemplate API. diff --git a/test/infrastructure/docker/api/v1beta1/devmachine_types.go b/test/infrastructure/docker/api/v1beta1/devmachine_types.go index 8d983842bfac..53c940efed16 100644 --- a/test/infrastructure/docker/api/v1beta1/devmachine_types.go +++ b/test/infrastructure/docker/api/v1beta1/devmachine_types.go @@ -398,6 +398,7 @@ type DevMachineV1Beta2Status struct { // +kubebuilder:resource:path=devmachines,scope=Namespaced,categories=cluster-api // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels['cluster\\.x-k8s\\.io/cluster-name']",description="Cluster" // +kubebuilder:printcolumn:name="Machine",type="string",JSONPath=".metadata.ownerReferences[?(@.kind==\"Machine\")].name",description="Machine object which owns with this DevMachine" diff --git a/test/infrastructure/docker/api/v1beta1/devmachinetemplate_types.go b/test/infrastructure/docker/api/v1beta1/devmachinetemplate_types.go index 3d9360042447..3096c116c458 100644 --- a/test/infrastructure/docker/api/v1beta1/devmachinetemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/devmachinetemplate_types.go @@ -30,6 +30,7 @@ type DevMachineTemplateSpec struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=devmachinetemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of the DevMachineTemplate" // DevMachineTemplate is the schema for the in-memory machine template API. diff --git a/test/infrastructure/docker/api/v1beta1/dockercluster_types.go b/test/infrastructure/docker/api/v1beta1/dockercluster_types.go index c8c0fe56f910..6b44f6b1ec03 100644 --- a/test/infrastructure/docker/api/v1beta1/dockercluster_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockercluster_types.go @@ -128,6 +128,7 @@ type APIEndpoint struct { // +kubebuilder:resource:path=dockerclusters,scope=Namespaced,categories=cluster-api // +kubebuilder:subresource:status // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:object:root=true // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels['cluster\\.x-k8s\\.io/cluster-name']",description="Cluster" // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of DockerCluster" diff --git a/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go b/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go index 1741955d77f3..29a3537ff20a 100644 --- a/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go @@ -30,6 +30,7 @@ type DockerClusterTemplateSpec struct { // +kubebuilder:resource:path=dockerclustertemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of DockerClusterTemplate" // DockerClusterTemplate is the Schema for the dockerclustertemplates API. diff --git a/test/infrastructure/docker/api/v1beta1/dockermachine_types.go b/test/infrastructure/docker/api/v1beta1/dockermachine_types.go index 75e112022ec7..1976512a430c 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachine_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachine_types.go @@ -118,6 +118,7 @@ type DockerMachineV1Beta2Status struct { // +kubebuilder:resource:path=dockermachines,scope=Namespaced,categories=cluster-api // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels['cluster\\.x-k8s\\.io/cluster-name']",description="Cluster" // +kubebuilder:printcolumn:name="Machine",type="string",JSONPath=".metadata.ownerReferences[?(@.kind==\"Machine\")].name",description="Machine object which owns with this DockerMachine" diff --git a/test/infrastructure/docker/api/v1beta1/dockermachinepool_types.go b/test/infrastructure/docker/api/v1beta1/dockermachinepool_types.go index 8891b640010d..9cab3a1d07a3 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachinepool_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachinepool_types.go @@ -119,6 +119,7 @@ type DockerMachinePoolInstanceStatus struct { // +kubebuilder:resource:path=dockermachinepools,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of DockerMachinePool" diff --git a/test/infrastructure/docker/api/v1beta1/dockermachinepooltemplate_types.go b/test/infrastructure/docker/api/v1beta1/dockermachinepooltemplate_types.go index e3f5e8b26034..71d67cc44094 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachinepooltemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachinepooltemplate_types.go @@ -30,6 +30,7 @@ type DockerMachinePoolTemplateSpec struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=dockermachinepooltemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of DockerMachinePoolTemplate" // DockerMachinePoolTemplate is the Schema for the dockermachinepooltemplates API. diff --git a/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go b/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go index af0a4d03223d..6aed5970addc 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go @@ -30,6 +30,7 @@ type DockerMachineTemplateSpec struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=dockermachinetemplates,scope=Namespaced,categories=cluster-api // +kubebuilder:deprecatedversion +// +kubebuilder:unservedversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of DockerMachineTemplate" // DockerMachineTemplate is the Schema for the dockermachinetemplates API. diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclusters.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclusters.yaml index aa68e5e3ca58..00619adc4b18 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclusters.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclusters.yaml @@ -291,7 +291,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclustertemplates.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclustertemplates.yaml index 153f6006809b..2e31e8ee1ec2 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclustertemplates.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devclustertemplates.yaml @@ -178,7 +178,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachines.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachines.yaml index bb4a7e2aa890..dd614cbb63a6 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachines.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachines.yaml @@ -393,7 +393,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachinetemplates.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachinetemplates.yaml index f45a337abbae..e58671ab3b77 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachinetemplates.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_devmachinetemplates.yaml @@ -248,7 +248,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: 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 1ee118baa7c2..588e9d8c0e49 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 @@ -276,7 +276,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclustertemplates.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclustertemplates.yaml index 4c152e9773c8..fa184e9cb844 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclustertemplates.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockerclustertemplates.yaml @@ -161,7 +161,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: 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 114d9c74c048..f2760b0a076c 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 @@ -229,7 +229,7 @@ spec: type: integer type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepooltemplates.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepooltemplates.yaml index 7a4a4c5ed73e..b93bf9cc3882 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepooltemplates.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinepooltemplates.yaml @@ -139,7 +139,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: 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 dcd8e67bb3a3..bc5dfb5d2935 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 @@ -278,7 +278,7 @@ spec: type: object type: object type: object - served: true + served: false storage: false subresources: status: {} diff --git a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinetemplates.yaml b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinetemplates.yaml index 7111f8ba9a74..ac93353fb9dd 100644 --- a/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinetemplates.yaml +++ b/test/infrastructure/docker/config/crd/bases/infrastructure.cluster.x-k8s.io_dockermachinetemplates.yaml @@ -140,7 +140,7 @@ spec: - template type: object type: object - served: true + served: false storage: false subresources: {} - additionalPrinterColumns: