|
| 1 | +# CAPV Additional Data Disks When Creating New Machines |
| 2 | + |
| 3 | +```text |
| 4 | +--- |
| 5 | +title: CAPV Additional Data Disks When Creating New Machines |
| 6 | +authors: |
| 7 | + - "@vr4manta" |
| 8 | +reviewers: |
| 9 | + - TBD |
| 10 | +creation-date: 2024-10-03 |
| 11 | +last-updated: 2024-10-03 |
| 12 | +status: implementable |
| 13 | +--- |
| 14 | +``` |
| 15 | + |
| 16 | +## Table of Contents |
| 17 | + |
| 18 | +* [CAPV ControlPlane Failure Domain](#capv-controlplane-failure-domain) |
| 19 | + * [Table of Contents](#table-of-contents) |
| 20 | + * [Glossary](#glossary) |
| 21 | + * [Summary](#summary) |
| 22 | + * [Motivation](#motivation) |
| 23 | + * [Goals](#goals) |
| 24 | + * [Non-Goals/Future Work](#non-goalsfuture-work) |
| 25 | + * [Proposal](#proposal) |
| 26 | + * [User Stories](#user-stories) |
| 27 | + * [Story 1](#story-1) |
| 28 | + * [Story 2](#story-2) |
| 29 | + * [Requirements](#requirements) |
| 30 | + * [Functional Requirements](#functional-requirements) |
| 31 | + * [Overall Design](#overall-design) |
| 32 | + * [For User Story 1](#for-user-story-1) |
| 33 | + * [For User Story 2](#for-user-story-2) |
| 34 | + * [API Design](#api-design) |
| 35 | + * [Implementation Details](#implementation-details) |
| 36 | + * [Notes/Constraints](#notesconstraints) |
| 37 | + * [Upgrade Strategy](#upgrade-strategy) |
| 38 | + |
| 39 | +## Glossary |
| 40 | + |
| 41 | + |
| 42 | +## Summary |
| 43 | + |
| 44 | +As the use of kubernetes clusters grows, admins are needing more and more improvements to the VMs themselves to make sure they run as smoothly as possible. The number of cores and memory continue to increase for each machine and this is causing the amount of workloads to increase on each virtual machine. This growth is now causing the base VM image to not provide enough storage for OS needs. In some cases, users just increase the size of the primary disk using the existing configuration options for machines; however, this does not allows for all desired configuration choices. Admins are now wanting the ability to add additional disks to these VMs for things such as etcd storage, image storage, container runtime and even swap. |
| 45 | + |
| 46 | +Before this feature, CAPV only allows for the configuration of additional disks that are found within the vSphere VM Template that is used for cloning. As clusters stretch failure domains and as clusters contain multiple different machine sets, attempting to just create custom vSphere VM templates will cause the admin to have to manage a large number of vSphere OVA templates. Instead, it would be ideal if admins can just configure a machine or machineset to add additional disks to a VM during the cloning process that are not part of the template. |
| 47 | + |
| 48 | +This feature enhancement aims to allow admins the ability to configure additional disks that are not present in the VM templates by enhancing the vsphere machine API and adding the capability to the cloning process. |
| 49 | + |
| 50 | +## Motivation |
| 51 | + |
| 52 | +Cluster administrators are asking for the ability to add additional data disks to be used by the OS without having to create custom OVA images to be used by the VM cloning process. |
| 53 | + |
| 54 | +### Goals |
| 55 | + |
| 56 | +* Add new configuration for machines that are used to define new data disks to add to a VM. |
| 57 | +* Align new property naming to be similar or even match other providers if possible. |
| 58 | +* Do not boil the ocean with the initial implementation of this feature. |
| 59 | + |
| 60 | +### Non-Goals/Future Work |
| 61 | + |
| 62 | +* Add abiltiy to advance configure additions disks (such as define controller type (IDE, scsi, etc) or unit number in the controller) |
| 63 | +* Any disk management features such as encryption |
| 64 | + |
| 65 | +## Proposal |
| 66 | + |
| 67 | +### User Stories |
| 68 | + |
| 69 | +#### Story 1 |
| 70 | + |
| 71 | +As an admin, I’d like my control plane machines to have an extra disk added so I can dedicate that disk for etcd databse through my own means of mount management |
| 72 | + |
| 73 | +#### Story 2 |
| 74 | + |
| 75 | +As an admin, I’d like my compute machine set to have an extra disk added to each machine so that I can use it as a dedicated disk for container image storage. |
| 76 | + |
| 77 | +### Requirements |
| 78 | + |
| 79 | +#### Functional Requirements |
| 80 | + |
| 81 | +### Overall Design |
| 82 | + |
| 83 | +#### For User Story 1 |
| 84 | + |
| 85 | +#### For User Story 2 |
| 86 | + |
| 87 | +### API Design |
| 88 | + |
| 89 | +### Implementation Details |
| 90 | + |
| 91 | +### Notes/Constraints |
| 92 | + |
| 93 | +## Upgrade Strategy |
0 commit comments