Skip to content

Update child cluster infrastructure#

Prior to MKE 4.2.1 it was necessary recreate a child cluster to change its infrastructure. Starting with MKE 4.2.1, though, MKE 4 supports infrastructure updates for existing AWS and vSphere child clusters. This includes such changes as resizing instances/VMs, updating disk sizes, changing the machine image/template, and rotating vSphere connection settings.

How infrastructure updates are made#

To make a change to the infrastructure of a child cluster, you update the infrastructure configuration for the cluster and then reapply it. Under the hood, MKE renders the updated infrastructure into the cluster CAPI MachineTemplate. As MachineTemplates are immutable, any infrastructure changea result in a new template and a subsequent rolling replacement of the affected machines by CAPI, be it the control plane, workers, or both, depending on what has been changed.

How infrastructure updates are applied#

Each provider derives its MachineTemplate name from a content hash of a specific subset of infrastructure fields. Editing a field in that subset renames the template, which causes CAPI to roll the affected machines, draining and replacing them one at a time. Editing a field outside that subset leaves the template name unchanged, so no rolling replacement occurs.

The control-plane template and the worker template hash different, but overlapping, subsets of fields. As a result, a given edit may roll the control plane only, the workers only, or both, depending on which subset the edited field belongs to.

infrastructure change rollout matrices#

AWS

Field                                                                     Rollout scope
infrastructure.controlPlane
  • instanceType
  • rootVolumeSize
  • amiID
  • imageLookup
  • iamInstanceProfile
  • nonRootVolumes
  • uncompressedUserData
Control plane
infrastructure.worker
  • instanceType
  • rootVolumeSize
  • amiID
  • imageLookup
  • iamInstanceProfile
  • nonRootVolumes
  • uncompressedUserData
Workers
infrastructure.publicIP Both (control plane and workers)
infrastructure.region
infrastructure.sshKeyName
infrastructure.bastion
clusterIdentity (top-level, outside infrastructure)
No rolling replacement as these are not part of the template hash (cluster-wide settings; some may be immutable or have no effect on an existing cluster).

vSphere

Field Rollout scope
infrastructure.controlPlane
  1. cpus
  2. memory
  3. rootVolumeSize
  4. vmTemplate
  5. network
Control plane
infrastructure.worker
  1. cpus
  2. memory
  3. rootVolumeSize
  4. vmTemplate
  5. network
Workers
infrastructure.vsphere
  1. server
  2. thumbprint
  3. datacenter
  4. datastore
  5. resourcePool
  6. folder
Both (control plane and workers)
infrastructure.nameservers Both (control plane and workers)
infrastructure.ipamEnabled Both (control plane and workers)
infrastructure.ipPool Both (control plane and workers)
infrastructure.controlPlaneEndpointIP Immutable after creation. MKE rejects changes to this field on an existing child cluster.