API Versions
This page provides a detailed list of any changes between different API versions of CAPRKE2. It is intended to assist end users when upgrading from one version of the API to the next one.
v1beta1 to v1beta2
Bootstrap
There are no breaking changes to the RKE2Config.spec fields.
The RKE2ConfigTemplate object remains largely unchanged in v1beta2.
An RKE2Config is considered ready when RKE2Config.status.initialization.dataSecretCreated is set to true.
The following v1beta1 RKE2ConfigStatus fields have been removed from v1beta2:
readyfailureReasonfailureMessage
These fields have been moved under RKE2Config.status.deprecated.v1beta1 for backward compatibility.
In v1beta1, status conditions are using clusterv1beta1.Conditions, which are CAPI-specific condition types, whereas in v1beta2 they are using metav1.Conditions, inline with upstream CAPI. The benefit of using metav1.Conditions is that it provides a standard way of reporting status that is common across many Kubernetes resource types (reference).
Control Plane
In v1beta1 the following fields were marked as deprecated and have been removed from v1beta2:
infrastructureRefhas been removed fromRKE2ControlPlane.spec. UseRKE2ControlPlane.spec.machineTemplate.spec.infrastructureRefinstead.nodeDrainTimeouthas been removed fromRKE2ControlPlane.spec. UseRKE2ControlPlane.spec.machineTemplate.spec.deletion.nodeDrainTimeoutSecondsinstead.
The following v1beta1 fields have moved:
-
infrastructureRefhas moved fromRKE2ControlPlaneMachineTemplatetoRKE2ControlPlaneMachineTemplateSpec.infrastructureRefinv1beta2.- The type has changed from
corev1.ObjectReferencetoContractVersionedObjectReference, which usesapiGroupinstead ofapiVersionand does not includenamespace,uid,resourceVersion, orfieldPathfields.
- The type has changed from
-
nodeDrainTimeout,nodeVolumeDetachTimeoutandnodeDeletionTimeouthave moved underRKE2ControlPlaneMachineTemplateSpec.deletioninv1beta2and have been renamed to:deletion.nodeDrainTimeoutSecondsdeletion.nodeVolumeDetachTimeoutSecondsdeletion.nodeDeletionTimeoutSeconds
Note that these fields have changed their type from
*metav1.Durationto*int32and now expect a timeout expressed in seconds.
The RKE2ControlPlaneMachineTemplate object in v1beta2 now includes a spec field which is required.
The following v1beta1 RKE2ControlPlaneStatus fields have been moved under RKE2ControlPlane.status.deprecated.v1beta1 in v1beta2:
conditionsfailureReasonfailureMessageupdatedReplicasreadyReplicasunavailableReplicas
In v1beta1, status conditions are using clusterv1beta1.Conditions, which are CAPI-specific condition types, whereas in v1beta2 they are using metav1.Conditions, inline with upstream CAPI. The benefit of using metav1.Conditions is that it provides a standard way of reporting status that is common across many Kubernetes resource types (reference).
The following RKE2ControlPlaneStatus fields have been removed from v1beta2:
readyinitializeddataSecretNamefailureReasonfailureMessageupdatedReplicasunavailableReplicas
An RKE2 cluster is considered initialized when RKE2ControlPlaneStatus.initialization.controlPlaneInitialized is set to true.