-
Notifications
You must be signed in to change notification settings - Fork 87
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Proposal for adding Additional Disks to node
- Loading branch information
1 parent
ba718cd
commit 235af63
Showing
1 changed file
with
23 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Adding additional volumes to Nodes | ||
|
||
[Github Issue](https://github.com/kubernetes-sigs/cluster-api-provider-ibmcloud/issues/1920) | ||
|
||
## Summary | ||
We want the ability to add additional Volumes to our Machine nodes. | ||
|
||
## Proposal | ||
We will need to make changes to both the API and the controller logic. | ||
With regards to the API, we will need to add a new `AdditionalVolumes` field to the Machine Spec to contain all the different volumes that are added to the node, the field will be a slice of type `VPCVolume`. As an initial design we can keep the field [append-only](https://kubernetes.io/blog/2022/09/29/enforce-immutability-using-cel/#append-only-list-of-containers). | ||
|
||
The flow for creating Additional Volumes will be similar to creating the Boot Volume. | ||
We will need to add checks in the admission and mutation webhooks to validate any changes to the field like we do for `VPCVolume`. | ||
We can allow the field be unset initially so if a user wants to add Volumes after provisioning a machine, they will be able to. | ||
|
||
The Machine create flow will be as follows: | ||
If a user does not add Additional Volumes while creating the Machine, the standard create flow will be followed. | ||
If they add Additional Volumes when creating the Machine, the Machine reconciler will also create the Additional Volumes and attach them to the machine. | ||
|
||
The Machine update flow will be as follows: | ||
The `AdditionalVolumes` field will be append-only so a user will not be able to remove already created volumes. If a user adds more volumes to the slice, those Volumes will be provisioned and then attached to the machine. | ||
|
||
The Delete flow will not change much, the Additional Volumes' deletion flow will be similar to the Boot Volume's. |