Skip to content

CAPX v1.5.x Upgrade Procedure

Starting from CAPX v1.3.0, it is required for all CAPX-managed Kubernetes clusters to use the Nutanix Cloud Controller Manager (CCM).

Before upgrading CAPX instances to v1.3.0 or later, it is required to follow the steps detailed below for each of the CAPX-managed Kubernetes clusters that don't use Nutanix CCM.

Steps

This procedure uses Cluster Resource Set (CRS) to install Nutanix CCM but it can also be installed using the Nutanix CCM Helm chart.

Warning

Make sure CRS is enabled on the management cluster before following the procedure.

Perform following steps for each of the CAPX-managed Kubernetes clusters that are not configured to use Nutanix CCM:

  1. Add the cloud-provider: external configuration in the KubeadmConfigTemplate resources:
    apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
    kind: KubeadmConfigTemplate
    spec:
      template:
        spec:
          joinConfiguration:
            nodeRegistration:
              kubeletExtraArgs:
                cloud-provider: external
    
  2. Add the cloud-provider: external configuration in the KubeadmControlPlane resource:
    ---
    apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
    kind: KubeadmConfigTemplate
    spec:
      template:
        spec:
          joinConfiguration:
            nodeRegistration:
              kubeletExtraArgs:
                cloud-provider: external
    ---
    apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    kind: KubeadmControlPlane
    spec:
      kubeadmConfigSpec:
        clusterConfiguration:
          apiServer:
            extraArgs:
              cloud-provider: external
          controllerManager:
            extraArgs:
              cloud-provider: external
        initConfiguration:
          nodeRegistration:
            kubeletExtraArgs:
              cloud-provider: external
        joinConfiguration:
          nodeRegistration:
            kubeletExtraArgs:
              cloud-provider: external
    
  3. Add the Nutanix CCM CRS resources:

    Make sure to update each of the variables before applying the YAML files.

  4. Add the ccm: nutanix label to the Cluster resource:

    apiVersion: cluster.x-k8s.io/v1beta1
    kind: Cluster
    metadata:
      labels:
        ccm: nutanix
    

  5. Verify if the Nutanix CCM pod is up and running:
    kubectl get pod -A -l k8s-app=nutanix-cloud-controller-manager
    
  6. Trigger a new rollout of the Kubernetes nodes by performing a Kubernetes upgrade or by using clusterctl alpha rollout restart. See the clusterctl alpha rollout for more information.
  7. Upgrade CAPX to v1.5.0 by following the clusterctl upgrade documentation