-
Notifications
You must be signed in to change notification settings - Fork 59
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
support a framework for "reliable extensions" to the base OS #401
Comments
lol, thats what I am using nix for (heretical I know) Good idea though. |
Something else that would make a potential solution much more attractive: not requiring a reboot. Either enhancing support for livefs or somehow applying changes using ignition before the system comes up could possibly make this easier to achieve. |
If we do something like this for FCOS, for OpenShift4/RHCOS it would likely need to manifest in a similar way to |
Cool, this looks really nice we should work towards something like it.
I agree that we should include in this discussion what we want the UX for this to be, since it may guide implementation. For example, I think we should strive to have it configurable via FCC/Ignition so that it remains canonical. E.g. we could have an FCC sugar like: extensions:
- usbguard Then, how this is actually implemented can be changed in the future. E.g. we could start off with just doing it in the real root and rebooting, then work towards doing it from the initrd on first boot. |
Right, and a similar thing in MachineConfig. |
Yeah, makes sense. Maybe with an rpm-md repo too baked in there so we can just point rpm-ostree at it? That way, e.g. changing deps is mostly a transparent thing, and we're not hardcoding them in golang. (Hmm, a |
Yeah, though for OpenShift we always apply OS updates anyways before any workloads land, so a reboot is required. Even for FCOS, I think there will be a large enough set of people who want to change kernel arguments that we should be thinking of this more as an optimization for the "no kernel args" case. |
Is this still being discussed? |
I think we have consensus on the "side yum repo" approach. We just need to discuss implementation details now. |
@jlebon I think "side yum repo" was a contingency if we couldn't get a better answer for the rest of Fedora's public yum repos being locked with our updates. Let me see if I can find the notes from that discussion. |
For OpenShift 4 though it seems like a no-brainer to me to extend
But, having stuff in |
That will help with extending OKD's FCOS-based machine-os-content as well, right? |
The short answer is yes, although that still leaves open the crio problem. And...if we go down this route a bit farther...one could imagine that we make RHCOS actually be just RHEL and we ship |
Just wanted to put in a word for systemd portable containers again. (not sure if SELinux issues have been fixed yet) |
PTAL at the proposal above. |
This enhancement proposes a MachineConfig fragment like: ``` extensions: - usbguard ``` This is the OpenShift version of the [Fedora CoreOS extension system tracker](coreos/fedora-coreos-tracker#401). That will add additional software onto the host, but this software will still be versioned with the host (included as part of the OpenShift release payload) and upgraded with the cluster.
This enhancement proposes a MachineConfig fragment like: ``` extensions: - usbguard ``` This is the OpenShift version of the [Fedora CoreOS extension system tracker](coreos/fedora-coreos-tracker#401). That will add additional software onto the host, but this software will still be versioned with the host (included as part of the OpenShift release payload) and upgraded with the cluster.
Esp. for live PXE/ISO there's no way but to apply the changes live. |
This enhancement proposes a MachineConfig fragment like: ``` extensions: - usbguard ``` This is the OpenShift version of the [Fedora CoreOS extension system tracker](coreos/fedora-coreos-tracker#401). That will add additional software onto the host, but this software will still be versioned with the host (included as part of the OpenShift release payload) and upgraded with the cluster.
We had a meeting recently with releng and infra to discuss possible solutions here for all editions of Fedora that use RPM-OSTree and suffer from similar package layering problems as described in #400. I just sent an email to the IoT mailing list and copied some members of the silverblue team as well (silverblue doesn't have a mailing list).
|
I've created a proof of concept There is one more problem that also needs to be solved, which is conflicts in the NFS packages that make it so you can't layer things that depend on NFS. Tracked in #572. |
For the |
The meeting with the releng/infra team went well. Proposal for next steps is over in https://pagure.io/releng/issue/9717 |
OK, so from the original description we ended up doing the 2nd half (the part that's mentioned in the parenthesis) of the following option:
We fixed #400 generically by adding an "archive yum repo" to the set of yum repositories on our system and enhancing rpm-ostree to be able to find a set of packages that solves the request without replacing base layer packages. coreos/fedora-coreos-config#673 We can now close this ticket out as more or less a duplicate of #400 since we solved that problem generically, but it's worth noting the user experience here isn't quite up to par with the design goals for FCOS. We want to be able to do this layering seamlessly without the user having to come up with their own systemd units. This seamless integration bit will be tracked by #681. |
There is a valley of death between the hilltop of content we have included in the OS and the mountain of containerized applications that users run on top of the OS (services, data processing, etc). In this valley of death there are a ton of small little OS level utilities or daemons that are either hard to containerize or not desirable to containerize because of maintenance burden. We get requests all the time. Some of them it makes a lot of sense to include in the base OS. Some of them it's clear they don't belong. Some of them it's really hard to say. What we've identified is a clear need to be able to deliver some content to the host that isn't part of the base OS but also isn't necessarily its own container.
@cgwalters has a similar issue opened here #354
Some possible solutions, including some that were thrown around during the meeting today:
The solution we come up with could be generic and apply to all packages OR curated and apply to a subset of packages.
The text was updated successfully, but these errors were encountered: