Skip to content
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

Allow for user to create a node with attached disks #1910

Open
kannon92 opened this issue Aug 15, 2024 · 8 comments
Open

Allow for user to create a node with attached disks #1910

kannon92 opened this issue Aug 15, 2024 · 8 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-triage Indicates an issue lacks a `triage/foo` label and requires one. triage/needs-information Indicates an issue needs more information in order to work on it.

Comments

@kannon92
Copy link

User Story

As an operator, I would like to create a node with a root partition and attached disks.

The API should be optional and allow for an array of disks in case a user wants to add more than 1 disk to the node.

Detailed Description

AWS, GCP and Azure CAPI providers allow one to create a node with additional disks. It would be great for this provider to also allow this functionality.

Anything else you would like to add:

[Miscellaneous information that will assist in solving the issue.]

/kind feature

@metal3-io-bot metal3-io-bot added kind/feature Categorizes issue or PR as related to a new feature. needs-triage Indicates an issue lacks a `triage/foo` label and requires one. labels Aug 15, 2024
@metal3-io-bot
Copy link
Contributor

This issue is currently awaiting triage.
If Metal3.io contributors determine this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.
The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@dtantsur
Copy link
Member

AWS, GCP and Azure CAPI providers allow one to create a node with additional disks.

It's infinitely easier for a cloud VM-based provider to add/remove disks than it is for baremetal. Which mechanism do you have in mind when you say "attach"? Why cannot it be solved by a first boot script (cloud-init, etc)?

@dtantsur
Copy link
Member

/triage needs-information

@metal3-io-bot metal3-io-bot added the triage/needs-information Indicates an issue needs more information in order to work on it. label Aug 21, 2024
@kannon92
Copy link
Author

kannon92 commented Aug 21, 2024

The main use cases we have are when a user booted a node and then they realize that they want to add a disk rather than recreate the node.

A few usecases I have in mind would be supporting https://kubernetes.io/blog/2024/01/23/kubernetes-separate-image-filesystem/.

Generally we find users realize that they are running out of space on their cluster. So they would resort to adding a new disk to a node to help alleviate the situation.

Another one that we would be interested to support is https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20200423-etcd-data-disk.md.

Adding etcd to a separate disk.

This may be a better one to do on a creation of the node but we are also exploring adding swap to a node where swap memory is paged out to a designated disk so we can avoid I/O contention on the main filesystem.

@jayofdoom
Copy link

@kannon92 is an old co-worker of mine and asked me to take a look. My concerns line up mostly with Dmitry, we need to figure out "attach" means to you in context of a physical machine -- what should be the other side of that "attach" API. Seems to me in order for "attach" to make sense, you kinda need a source (what do I attach?) and a destination (where do I attach it?).

If we're talking physical disks; those cannot generally be dynamically added/removed from a machine via an API.
If we're talking network-attached disks, you'd likely need some coordination with metal3/ironic around when the node reboots (Ironic handles this via our existing StorageInterface; which AFAICT doesn't have native support for any kubernetes-flavored way of storage management -- if such a thing exists).

@dtantsur
Copy link
Member

If we're talking physical disks; those cannot generally be dynamically added/removed from a machine via an API.

Yeah, except for very exotic composable hardware (and even it will probably require a reboot). I'm still not sure what can be done from the hardware perspective.

@metal3-io-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues will close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@metal3-io-bot metal3-io-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 26, 2024
@kannon92
Copy link
Author

/remove-lifecycle stale

@metal3-io-bot metal3-io-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-triage Indicates an issue lacks a `triage/foo` label and requires one. triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
None yet
Development

No branches or pull requests

4 participants