-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
proposal for handling complicated node actions and scenarios like upgrades #252
Comments
If I can give my two cents on this, it is important to break down and prioritize the use cases we want to address. As far as I'm concerned
As agreed in the call, I'm going to open another issue in order to break down "use kind for upgrade tests" into actionable items, while this write up is an excellent first write up (thanks @neolit123!) about what will be helpful for the "use kind for kubeadm development" where maximum flexibility is required |
i would say instead of "kubeadm development" this is more about enabling a couple of useful tools in kind that anybody can use and we can also use them for tests as kubeadm developers. |
I have also this use case. |
Besides the already mentioned use cases about testing updates or running e2e tests, I would also like to expose a couple of use cases we are interested in for using this project:
In general, we are interested in using |
er do you mean that you are users of kind in the context of yourselves running a distribution of kubernetes, or that you want to distribute via kind?
1.) is still the trickiest from our POV, I think we'll be looking more into that for #255. I don't really like this one because what kind does is create clusters, there's not an easy + clean way to relinquish control of the provisioning steps without exposing exactly what steps and ordering occur, and those are subject to and definitely will need to change. EG to fix #200 Can you outline more of what you do custom in 1) ? We need to supply info to kubeadm in order to properly configure both working in our container env, and informing it somewhat of the cluster topology / endpoints / credentials. |
so stop short of running init, installing the CNI etc.? create the container, do fixup, start systemd / docker, leave kubelet crashlooping? but still generate kubeadm config? Also want to point out: most of the things mentioned in the OP are just Getting images into the cluster definitely needs some built in tooling. Copying files I'm not so sure 🤔 |
something in those lines, yes.
or leave it stopped, kubeadm will restart the service.
that is true.
it's just the
but
i think it's currently possible without extra tooling. |
The workflow we are currently developing for our next release is
We are interested in creating a base image based on openSUSE and then copy the unit file and the As you can see, we want |
I'm copying here a comment I made to the slack channel, with some minor edits
|
On a second reading, my use case is similar, but maybe not identical. However, having the freedom to start initialize the nodes from the actual provisioning could be also beneficial. |
i'm going to close this ticket. |
decided to drop some comments post the meeting today.
i think we can land on a compromise for upgrades and similar complicated scenarios exposing the following commands on the CLI.
this was already proposed some time ago?
(optionally a command to execute a whole bash script).
the backend for these commands is already, mostly in place and also this is already doable using raw docker commands but it's a bit verbose. this is pretty much adding support for
scp
andssh
in kind.my argument here is that this allows all sorts of different, advanced scenarios:
please note that some of these are testing scenarios.
so on the kubeadm side, what we can do is write a tool in Go (so that we don't write in bash) that doesn't even have to vendor the kind backend, but can simply execute different scenarios using the
kind
binary.something else i wish we add (this one is a stretch for the future) is using kind as a machine provisioner - i.e. don't create a cluster by default, but spawn all the nodes, install kubelet, kubeadm and the kubeadm config on them but allow the user to start the cluster on demand.
thoughts?
/kind design
/priority important-longterm
/assign @munnerz @BenTheElder @fabriziopandini
The text was updated successfully, but these errors were encountered: