Using specific Cluster Stack versions

If you want specific releases to be always available, you can add a versions parameter, containing an array of version strings under the spec of your ClusterStack:

clusterstack.yaml yaml
apiVersion: clusterstack.x-k8s.io/v1alpha1 kind: ClusterStack metadata: name: hetzner-apalla-1-30 spec: provider: hetzner name: apalla kubernetesVersion: '1.30' channel: stable autoSubscribe: true versions: // [!code ++] - v1 // [!code ++] - v2 // [!code ++] providerRef: name: hetzner-apalla-1-30 kind: HetznerClusterStackReleaseTemplate apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1 --- apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1 kind: HetznerClusterStackReleaseTemplate metadata: name: hetzner-apalla-1-30 spec: template: spec: nodeImages: - controlplaneamd64hcloud - workeramd64hcloud

Using this manifest, you'll have the v1 and v2 plus the latest release of the Cluster Stack for Kubernetes 1.30. If you don't want the latest version to always be available, you can change the value of spec.autoSubscribe from true to false :

clusterstack.yaml yaml
apiVersion: clusterstack.x-k8s.io/v1alpha1 kind: ClusterStack metadata: name: hetzner-apalla-1-30 spec: provider: hetzner name: apalla kubernetesVersion: '1.30' channel: stable autoSubscribe: true // [!code --] autoSubscribe: false // [!code ++] versions: - v1 - v2 providerRef: name: hetzner-apalla-1-30 kind: HetznerClusterStackReleaseTemplate apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1 --- apiVersion: infrastructure.clusterstack.x-k8s.io/v1alpha1 kind: HetznerClusterStackReleaseTemplate metadata: name: hetzner-apalla-1-30 spec: template: spec: nodeImages: - controlplaneamd64hcloud - workeramd64hcloud

Note that if you are not auto-subscribed to the latest version, you must specify the versions you want, otherwise there will be no Cluster Stack Release available for your clusters.

Next
Introduction to Syself Autopilot