sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/developer/architecture/controllers/machine-deployment.md (about)

     1  # MachineDeployment
     2  
     3  A MachineDeployment orchestrates deployments over a fleet of [MachineSets](./machine-set.md).
     4  
     5  Its main responsibilities are:
     6  * Adopting matching MachineSets not assigned to a MachineDeployment
     7  * Adopting matching MachineSets not assigned to a Cluster
     8  * Managing the Machine deployment process
     9    * Scaling up new MachineSets when changes are made
    10    * Scaling down old MachineSets when newer MachineSets replace them
    11  * Updating the status of MachineDeployment objects
    12  
    13  ![](../../../images/cluster-admission-machinedeployment-controller.png)
    14  
    15  ## In-place propagation
    16  Changes to the following fields of the MachineDeployment are propagated in-place to the MachineSet and do not trigger a full rollout:
    17  - `.annotations`
    18  - `.spec.template.metadata.labels`
    19  - `.spec.template.metadata.annotations`
    20  - `.spec.minReadySeconds`
    21  - `.spec.template.spec.nodeDrainTimeout`
    22  - `.spec.template.spec.nodeDeletionTimeout`
    23  - `.spec.template.spec.nodeVolumeDetachTimeout`
    24  - `.spec.strategy.rollingUpdate.deletePolicy`
    25  
    26  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.