Replies: 4 comments 4 replies
-
I would say though if we go down the path of having an even bigger default base image, I would really like to reopen the path of shipping a much smaller tiny base image to start from too and also it's going to increase the desire for custom base image building as a more first class operation. |
Beta Was this translation helpful? Give feedback.
-
Thank you for starting this, I wanted to talk a bit about this topic :) I saw containers/bootc#296 and it looks like an interesting approach ,it has many upsides (as described). I would love to learn more about the vision for the future though. The description specifically talks about cloud environments and "bootc install --alongside" in a cloud environment. It seems to me for the cloud environments we have And I also wanted to ask about the wider user topic. Let me state my assumptions first:
If (1) is true then I'm sorry if this was discussed already and I missed it, feel free to ignore my questions if this is the case and I will do more own research :) P.S. (2) looks pretty hard to solve, would love to learn the vision here too but it's most likely something we can ignore on bib by restricting the allowed range of UIDs for bootc (but interested for my own curiosity). [edit: fixed some typos, thanks to achilleas-k for spotting them] |
Beta Was this translation helpful? Give feedback.
-
We don't have one single answer for users and ssh keys in our default base image today.
This all started with https://github.com/CentOS/centos-bootc/blob/main/docs/cloud-agents.md
However, we still have the opportunity to rethink things here.
Short term possibilities
Default to cloud-init
We could choose to add cloud-init into our generic base image (moving it from the layered one); we'd need to change the Anaconda kickstarts to disable it. This is effectively what we did long ago with Atomic Host. It wouldn't work for every cloud or scenario, but it would level up the "baseline" such that we'd get ssh keys in e.g. AWS from the infrastructure by default. cloud-init is kind of a monstrosity (https://coreos.github.io/ignition/rationale/ touches on some problems) but...it's a known monstrosity 😄
Add afterburn
There's also https://github.com/coreos/afterburn/ which is a very targeted system designed to basically just do the bare minimum, and not itself do all the tons of extra things that cloud-init does like firstboot scripts, network reconfiguration, etc.
We'd have to do some nontrivial legwork though because afterburn is designed to pair with ignition, and Ignition really wants to discover the platform via an
ignition.platform.id
field, and we'd need to do a bit of work to change e.g. bootc-image-builder to do that.(Inherently also this wouldn't work with the alongside replacement path in the cloud unless we also taught that how to do detection)
Another path is hacking afterburn to add some "detect the platform" code, I think if we just did that for the major public clouds we'd be fine.
Longer term
I think it would very much make sense to try to support "system extensions" for cloud agents - it would really work well for a lot of cases. However the systemd-sysext style thing only really works well with statically linked things, which things like cloud-init and the vmware agent etc. are definitely not.
Beta Was this translation helpful? Give feedback.
All reactions