Skip to content

Commit

Permalink
📖 Update BootstrapConfig contract to include pausing (kubernetes-sigs…
Browse files Browse the repository at this point in the history
…#11287)

* Update BootstrapConfig contract to include pausing

* Fixes wording for InfraMachine pausing
  • Loading branch information
theobarberbany authored Oct 15, 2024
1 parent 1965b91 commit 7b752c6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ repo or add an item to the agenda in the [Cluster API community meeting](https:/
| [Taint Nodes at creation] | No | |
| [Support for running multiple instances] | No | Mandatory for clusterctl CLI support |
| [Clusterctl support] | No | Mandatory for clusterctl CLI support |
| [BootstrapConfig: pausing] | No | |

Note:
- `All resources` refers to all the provider's resources "core" Cluster API interacts with;
Expand Down Expand Up @@ -283,6 +284,12 @@ the implication of this choice which are described both in the document above an

</aside>

### BootstrapConfig: pausing

Providers SHOULD implement the pause behaviour for every object with a reconciliation loop. This is done by checking if `spec.paused` is set on the Cluster object and by checking for the `cluster.x-k8s.io/paused` annotation on the BootstrapConfig object.

If implementing the pause behavior, providers SHOULD surface the paused status of an object using the Paused condition: `Status.Conditions[Paused]`.

### BootstrapConfig: terminal failures

Each BootstrapConfig SHOULD report when BootstrapConfig's enter in a state that cannot be recovered (terminal failure) by
Expand Down Expand Up @@ -481,3 +488,4 @@ The following diagram shows the typical logic for a bootstrap provider:
[implementation best practices]: ../best-practices.md
[Server Side Apply]: https://kubernetes.io/docs/reference/using-api/server-side-apply/
[the DockerMachineTemplate webhook]: https://github.com/kubernetes-sigs/cluster-api/blob/main/test/infrastructure/docker/internal/webhooks/dockermachinetemplate_webhook.go
[BootstrapConfig: pausing]: #bootstrapconfig-pausing
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ See [Improving status in CAPI resources].

### InfraMachine: pausing

Providers SHOULD implement the pause behaviour for every object with a reconciliation loop. This is done by checking if `spec.paused` is set on the Machine object and by checking for the `cluster.x-k8s.io/paused` annotation on the InfraMachine object.
Providers SHOULD implement the pause behaviour for every object with a reconciliation loop. This is done by checking if `spec.paused` is set on the Cluster object and by checking for the `cluster.x-k8s.io/paused` annotation on the InfraMachine object.

If implementing the pause behavior, providers SHOULD surface the paused status of an object using the Paused condition: `Status.Conditions[Paused]`.

Expand Down

0 comments on commit 7b752c6

Please sign in to comment.