Skip to content

Frequently Asked Questions#

Q: What is the best way to upgrade the Kubernetes version of a k0rdent child cluster?

A: The simplest way to change the Kubernetes version of a specific child cluster is by updating the ClusterDeployment object. Where to updated it depends on the ClusterTemplate on which the ClusterDeployment is based. For example, for built-in AWS, Azure, GCP, OpenStack, and Vsphere cluster templates (both standalone and hosted) you set the spec.config.k0s.version value to the desired Kubernetes version. For EKS, and AKS, you set kubernetes.version, and for GKE you set the version value. Note that this applies to built-in templates only; Custom templates may have another parameter exposed to represent the Kubernetes version.

You can also create a new ClusterTemplate that will set the version for new clusters created based on that template.

Q: Is it possible to control the version of the provider in the KCM Management object? For example, what if k0rdent is using the Kubernetes Cluster API for OpenStack (CAPO) v0.12.4 but I want to use v0.12.2?

A: You can change the Kubernetes Cluster API version by creating a new ProviderTemplate that references a Helm chart with the appropriate provider components (with either the desired version hardcoded or configurable via values.yaml), then updating the Management object to reference that template. For example, you could update the Management object to specify a new template for the OpenStack provider:

spec:
  providers:
  - name: cluster-api-provider-openstack
    template: new-capo-provider-template-name