Upgrading k0rdent#
Important
In some circumstances, upgrades involve additional manual steps. Be sure to check the additional instructions for upgrading to k0rdent 0.2.0, 0.3.0, 1.0.0, or 1.1.1.
Upgrading k0rdent involves making upgrades to the Management object. To do that, you must have the Global Admin role. (For detailed information about k0rdent RBAC roles and permissions, refer to the RBAC documentation.) Follow these steps to upgrade k0rdent:
- 
Create a new ReleaseobjectStart by creating a Releaseobject in the management cluster that points to the desired version. You can see available versions at https://github.com/k0rdent/kcm/releases. The actualReleaseobject includes information on the templates and resources that are available, as well as the version of the Kubernetes Cluster API. For example, the v1.5.0Releaseobject looks like this:apiVersion: k0rdent.mirantis.com/v1beta1 kind: Release metadata: name: kcm-1-5-0 annotations: helm.sh/resource-policy: keep spec: version: 1.5.0 kcm: template: kcm-1-5-0 capi: template: cluster-api-1-0-7 providers: - name: cluster-api-provider-k0sproject-k0smotron template: cluster-api-provider-k0sproject-k0smotron-1-0-11 - name: cluster-api-provider-azure template: cluster-api-provider-azure-1-0-9 - name: cluster-api-provider-vsphere template: cluster-api-provider-vsphere-1-0-6 - name: cluster-api-provider-aws template: cluster-api-provider-aws-1-0-7 - name: cluster-api-provider-openstack template: cluster-api-provider-openstack-1-0-10 - name: cluster-api-provider-docker template: cluster-api-provider-docker-1-0-5 - name: cluster-api-provider-gcp template: cluster-api-provider-gcp-1-0-6 - name: cluster-api-provider-ipam template: cluster-api-provider-ipam-1-0-3 - name: cluster-api-provider-infoblox template: cluster-api-provider-infoblox-1-0-2 - name: projectsveltos template: projectsveltos-1-1-1Thankfully, you don't have to build these YAML files yourself. Once you've chosen a release, you can go ahead and create the release object by referencing the YAML file online, as in: VERSION=v1.5.0 kubectl create -f https://github.com/k0rdent/kcm/releases/download/${VERSION}/release.yamlrelease.k0rdent.mirantis.com/kcm-1-5-0 created
- 
List Available ReleasesOnce you've created the new Releaseyou need to update theManagementobject to use it. Start by viewing all availableReleases:kubectl get releasesNAME AGE kcm-0-2-0 6d9h kcm-1-5-0 12m
- 
Patch the Managementobject with the newReleaseUpdate the spec.releasefield in theManagementobject to point to the new release. Replace<release-name>with the name of your desired release:RELEASE_NAME=kcm-1-5-0 kubectl patch managements.k0rdent.mirantis.com kcm --patch "{\"spec\":{\"release\":\"${RELEASE_NAME}\"}}" --type=merge
- 
Verify the Upgrade Although the change will be made immediately, it will take some time for k0rdent to update the components it should be using. Monitor the readiness of the Managementobject to ensure the upgrade was successful. For example:kubectl get managements.k0rdent.mirantis.com kcmNAME READY RELEASE AGE kcm True kcm-1-5-0 4m34s