-
Notifications
You must be signed in to change notification settings - Fork 100
feat: Add OS and Kubelet disk type options. #385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
OS Disk type can be either Managed or Temporary. Kubelet Disk type can be either OS or Ephemeral. The default behaviour for the option, and when not set, is to use Managed and OS for the OS and Kubelet respectively. When set to Temporary and Ephemeral the local temporary storage will be used if available on the node. Signed-off-by: Carus Kyle <[email protected]>
@Carus11, Thank you for providing the PR and your tests. However, until the feature request is accepted this PR will not be merged. |
This PR is stale because it has been open 30 days with no activity. |
Hey @Carus11. Would you be willing to update these variables to align with the community_config_vars.md on the staging branch? The config variables should start with As this is one of our first community contributed features, please let me know if there are ways we can make the process smoother. |
Signed-off-by: Carus Kyle <[email protected]>
Signed-off-by: Carus Kyle <[email protected]>
a8c21be
to
e6d7f67
Compare
Hey @Carus11, sorry for closing and re-opening your PR. I deleted the staging branch, which closed all PR's targeting it. I've updated your PR to point to the main branch. |
This PR is stale because it has been open 30 days with no activity. |
Fixes #363
This PR provides functionality to set the OS Disk Type and Kubelet Disk Type options as documented in:
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster_node_pool#kubelet_disk_type
This gives the user the ability to choose the use the local temporary storage available to some nodes for the Operating system, and or the Kubelet.
The benefit of doing this is the local temporary disk is typically a high performance type of storage medium. If the kubelet is set to use this fast storage, then local emptyDir volume can be used for workloads such as SASWORK. Previously many have used alternatives such as hostPath access methods to this storage which is not often permitted by security policies.
OS Disk type can be either Managed or Ephemeral.
Kubelet Disk type can be either OS or Temporary.
The default behaviour for the option, and when not set, is to use Managed and OS for the OS and Kubelet respectively. When set to Temporary and Ephemeral the local temporary storage will be used if available on the node.
Test 1
Original State. The example tfvars file contains an OS disk of 200GB. This means the kubelet will share this managed disk with the OS, placing both the kubernetes emptyDir volumes, and container image storage on the same disk as the OS.
Test 2
Functionality added but nothing added to tfvars file
Test 3
Compute node pool changed to VM which has temporary storage,
Standard_E16ds_v5
, os disk reduced to 80gb, and both OS and Kubelet disk type switched to their non-standard optionsNotice the OS has carved off the 80GB from the (as advertised) 600GB disk. And the kubelet has the remaining space.
Test 4
Compute OS type set to ephemeral, and kubelet set to OS disk
It looks like both kubelet and the OS use the same OS disk size, squeezing it all into the 80GB which is carved off from the local temporary disk.
Nothing in /mnt
Test 5
Set the OS Disk to Managed, and the Kubelet disk to Temporary
We can see that kubelet is on sdb1, and it has almost all of the local temporary disk for use.