Skip to content

Commit

Permalink
Incorporate reviewer feedback
Browse files Browse the repository at this point in the history
Fix typo (change "update" to "updated"). Soften wording regarding immutability of machine templates. Fix link that was causing problems with CI. Change wording regarding Azure VMs. Simplify the link from KCP page to new page on changing templates. Add reference to using `metadata.generateName`.

Signed-off-by: Scott Lowe <[email protected]>
  • Loading branch information
scottslowe committed May 28, 2020
1 parent 6a271df commit af55bb4
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
14 changes: 8 additions & 6 deletions docs/book/src/tasks/change-machine-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

Several different components of Cluster API leverage _infrastructure machine templates_,
including `KubeadmControlPlane`, `MachineDeployment`, and `MachineSet`. These
`MachineTemplate` resources are **immutable** and are not intended to be modified
directly.
`MachineTemplate` resources should be immutable, unless the infrastructure provider
documentation indicates otherwise for certain fields (see below for more details).

The correct process for modifying an infrastructure machine template is as follows:

Expand All @@ -13,20 +13,22 @@ The correct process for modifying an infrastructure machine template is as follo
point.
2. Update the desired fields.
Fields that might need to be modified could include the SSH key, the AWS instance
type, or the Azure machine type). Refer to the provider-specific documentation
type, or the Azure VM size). Refer to the provider-specific documentation
for more details on the specific fields that each provider requires or accepts.
3. Give the newly-modified template a new name by modifying the `metadata.name` field.
3. Give the newly-modified template a new name by modifying the `metadata.name` field
(or by using `metadata.generateName`).
4. Create the new infrastructure machine template on the API server using `kubectl`.

Once the new infrastructure machine template has been persisted, users may modify
the object that was referencing the infrastructure machine template. For example,
to modify the infrastructure machine template for the `KubeadmControlPlane` object,
users would modify the `spec.infrastructureTemplate.name` field. For a `MachineDeployment`
or `MachineSet`, users would need to modify the `spec.template.spec.infrastructureRef.name`
field. In all cases, the `name` field should be update to point to the newly-modified
field. In all cases, the `name` field should be updated to point to the newly-modified
infrastructure machine template. This will trigger a rolling update. (This same process
is described in the documentation for [upgrading the underlying machine image for
KubeadmControlPlane](./kubeadm-control-plane.html#how-to-upgrade-the-underlying-machine-image).)
KubeadmControlPlane](./kubeadm-control-plane.html) in the "How to upgrade the underlying
machine image" section.)

Some infrastructure providers _may_, at their discretion, choose to support in-place
modifications of certain infrastructure machine template fields. This may be useful
Expand Down
7 changes: 3 additions & 4 deletions docs/book/src/tasks/kubeadm-control-plane.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,9 @@ but is the final step in fully upgrading a Cluster API managed cluster.

It is recommended to manage workload machines with one or more `MachineDeployment`s. `MachineDeployment`s will
transparently manage `MachineSet`s and `Machine`s to allow for a seamless scaling experience. A modification to the
`MachineDeployment`s spec will begin a rolling update of the workload machines. As described in
[this section on changing a `MachineTemplate`](./change-machine-template.md), infrastructure machine
templates are immutable and should not be modified directly; follow the instructions there for
changing the template for a `MachineDeployment`.
`MachineDeployment`s spec will begin a rolling update of the workload machines. Follow
[these instructions](./change-machine-template.md) for changing the
template for an existing `MachineDeployment`.

For a more in-depth look at how `MachineDeployments` manage scaling events, take a look at the [`MachineDeployment`
controller documentation](../developer/architecture/controllers/machine-deployment.md) and the [`MachineSet` controller
Expand Down

0 comments on commit af55bb4

Please sign in to comment.