A MachineDeployment orchestrates deployments over a fleet of MachineSets.

Its main responsibilities are:

  • Adopting matching MachineSets not assigned to a MachineDeployment
  • Adopting matching MachineSets not assigned to a Cluster
  • Managing the Machine deployment process
    • Scaling up new MachineSets when changes are made
    • Scaling down old MachineSets when newer MachineSets replace them
  • Updating the status of MachineDeployment objects

In-place propagation

Changes to the following fields of the MachineDeployment are propagated in-place to the MachineSet and do not trigger a full rollout:

  • .annotations
  • .spec.template.metadata.labels
  • .spec.template.metadata.annotations
  • .spec.minReadySeconds
  • .spec.template.spec.nodeDrainTimeout
  • .spec.template.spec.nodeDeletionTimeout
  • .spec.template.spec.nodeVolumeDetachTimeout
  • .spec.strategy.rollingUpdate.deletePolicy

Note: In cases where changes to any of these fields are paired with rollout causing changes, the new values are propagated only to the new MachineSet.