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

     1  # MachineSet
     2  
     3  A MachineSet is an abstraction over [Machines](./machine.md).
     4  
     5  Its main responsibilities are:
     6  * Adopting unowned Machines that aren't assigned to a MachineSet
     7  * Adopting unmanaged Machines that aren't assigned a Cluster
     8  * Booting a group of N machines
     9    * Monitoring the status of those booted machines
    10  
    11  ![](../../../images/cluster-admission-machineset-controller.png)
    12  
    13  ## In-place propagation
    14  Changes to the following fields of MachineSet are propagated in-place to the Machine without needing a full rollout:
    15  - `.spec.template.metadata.labels`
    16  - `.spec.template.metadata.annotations`
    17  - `.spec.template.spec.nodeDrainTimeout`
    18  - `.spec.template.spec.nodeDeletionTimeout`
    19  - `.spec.template.spec.nodeVolumeDetachTimeout`
    20  
    21  Changes to the following fields of MachineSet are propagated in-place to the InfrastructureMachine and BootstrapConfig:
    22  - `.spec.template.metadata.labels`
    23  - `.spec.template.metadata.annotations`
    24  
    25  Note: Changes to these fields will not be propagated to Machines that are marked for deletion (example: because of scale down).