-
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
coreos/toolbox v2 #38
Comments
Discussed in the meeting today and bgilbert had a few notes of things we'd like to change:
Maybe we can make a write up of what toolbox does today and a proposal for what we'd like to change/improve. |
There is still the open bug coreos/bugs#1610. Maybe the redesign can include mount propagation as a requirement from the start. |
on a related note can we enable issues in https://github.com/coreos/toolbox like we did for ignition ? |
Okay, I've enabled them. |
The CL toolbox has the user config parameter |
Yeah I like that too. Choosing a different distro or a different container with more things layered into it would be the two use cases I can think of. |
We have been working on a pet toolbox container for Silverblue [1, 2] based on rootless [1] https://pagure.io/releng/issue/7698 |
From the discussions today we have identified that there are differences in the Silverblue/FCOS/RHCOS usecases for toolbox. The key difference is that the Silverblue toolbox will be designed for development, and is currently exploring rootless options (more details: https://fedoraproject.org/wiki/Workstation/Desktop_Containers). For FCOS/RHCOS it is more of a simple wrapper (does not need rootless) mainly designed for troubleshooting (via SSH). There is also the consideration of multiple toolboxes, or at least the ability to switch out the base container for toolbox, so people can have more customization options on package selection, etc. At the moment /bin/sh should be enough, but we may explore go/rust as alternatives if more functionality is required. |
an interesting way to have both is to have the tool assume if user is root then do you are "troubleshooting" and if you are non-root then you are "developing". Could be an interesting way to fill both use cases with one tool. |
I put up my toolbox script at https://github.com/debarshiray/fedora-toolbox I had initially considered forking |
I saw this show up over the weekend: https://discussion.fedoraproject.org/t/what-workflows-do-developers-using-silverblue-use/248/14 Might be something to investigate to see if anything could be used for the toolbox script/container idea. |
I also created a (WIP) script for RHCOS at: coreos/toolbox#44 , since the use case will be different for RHCOS vs, Silverblue, this script is more for debugging the host and was kept similar to the original. |
@yuqi-zhang - any updates on this? I see the upstream PR got merged. What do we need to do to get that into Fedora CoreOS? |
For what it's worth, fedora-toolbox has a hidden |
Some of this already works with fedora-toolbox today. See |
@dustymabe could you clarify on what you mean by getting it FCOS? The script in the coreos/toolbox repo is built into RHCOS systems via https://github.com/projectatomic/rpmdistro-gitoverlay , and afaik that is the only use of it so far (and the only way we planned to build it). If you want to start the same build process for FCOS that is an option. @debarshiray Based on #38 (comment) I made the assumption that we were going to split the toolbox(s) for *COS/Silverblue, and thus I created the very small and mostly 1-to-1 functionality port from the existing coreos/toolbox. But since the functionality is included in https://github.com/debarshiray/fedora-toolbox as well, mayhaps moving forward we can look to move to using this one as well for *COS systems? What do you think @dustymabe Sorry for the delay, for some reason I did not get pinged. |
Yeah I was thinking of getting that as an rpm into fedora and then pulling it into FCOS.
There is some discussion based on that over in containers/toolbox#8 . My opinion is that it would be nice if they were shared, but if it doesn't make sense to do that then it doesn't make sense and that's ok. Can we carry on that discussion over in containers/toolbox#8 ? |
Yes, we did identify the differences during our chat in
I don't know if |
Yes, let's move over to debarshiray/fedora-toolbox#8 |
I was able to get The first issue is that the /dev/dri bind mount does not exist in FCOS:
Removing the bind mount in The second issue is that the
The latest The latest
I'm mainly concerned about the /etc/timezone and /etc/localtime issue because I'm not sure if there is another solution that will work for both Silverblue and FCOS. The other issues seem like they be handled or fixed. [0] https://github.com/debarshiray/toolbox/issues/198#issuecomment-502867168 |
Do we want to continue down the path of using toolbox or using https://github.com/coreos/toolbox since the use case is much different? |
I am also working on https://github.com/cgwalters/coretoolbox FWIW |
This is awesome @debarshiray! |
The list is now down to:
Does this look better now? |
@debarshiray should be much better. Every bit helps! |
looks like we need to reconvene and make a decision on this. |
some data points: Today on f30 coreos this would add:
Today on a rawhide build of FCOS this would add:
|
@debarshiray is there a new toolbox rpm out with the decreased set of deps? or maybe a copr somewhere we can use? |
My 2c: the |
Discussed in the Fedora CoreOS meeting today. :
|
These dependencies are all coming in via the
With flatpak/flatpak#3052 in place, most of those shouldn't be necessary. Specifically the fonts, The current list is:
Sadly, there hasn't been a new upstream Flatpak release containing flatpak/flatpak#3052 We can certainly consider carrying the patches downstream in Fedora to tide you over in the short-term. |
I'd still prefer we didn't ship any toolbox until we've resolved the implementation of which one; particularly the discussion in https://github.com/debarshiray/toolbox/pull/100 |
maybe we can poke and see if they'll be ready for one soon?
I think it would be nice to get a scratch build of a package with that change just so we can see what the deps will be.
That discussion looks deep. Would you and @debarshiray want to lay out the points at the meeting tomorrow? |
I have backported the patches to Fedora 32 or Rawhide and submitted a build. Here are some scratch builds:
If it works fine, we can do official builds for F31 and such too. |
I moved the "cgwalters/coretoolbox vs debarshiray/toolbox" issue to https://github.com/debarshiray/toolbox/issues/265 |
Thanks. I'll take a look
We discussed this in the Fedora CoreOS meeting today. I have added a comment to the issue you opened. |
OK this looks much better!
Thanks @debarshiray! An official build for f31 would be great |
I'd still prefer we didn't ship it until we've resolved the discussions on project direction. |
Fedora 31: https://bodhi.fedoraproject.org/updates/FEDORA-2019-7c75e9dbcf |
I was surprised to find toolbox in FCOS since I thought this is supposed to be a minimal OS and was expecting things to be removed rather than added. Could we consider moving to providing a standard means to install 3rd party packages outside of overlays, such that those packages can be called in via ignition. Toolbox would only be one of such packages. I set about developing such an install mechanism which includes a script and a unit that could be included as standard (or enabled via ignition) https://github.com/keithy/ign-tool/wiki/plug:install-packages |
Maybe you're mistaking what toolbox is? toolbox is a convenient interactive tool for running containers. It has nothing to do with installing packages in the host. For Fedora CoreOS the most useful piece is being able to run a container that has some extra debugging tools installed in case your system is in a bad state and you need to debug it but proper tooling isn't there already. Ideally your systems privision automatically (via ignition) and you never need to run toolbox interactively to debug your system. Does that help? |
We'd like to carry https://github.com/coreos/toolbox forward for FCOS and maybe give it a revamp as part of the process. Let's discuss design decisions for a v2 of coreos/toolbox in this ticket.
The text was updated successfully, but these errors were encountered: