-
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
Allow binaries written in Python via a "platform python" style approach #32
Comments
I could pretty easily add an rpm-ostree compose option to do this. |
|
I'd really really really like to not ship python. It's a huge chunk of the dependency tree we don't need to worry about. Less to ship is less to break. I'd also like to not ship an entire language to support one package. I really want to keep FCOS as minimal as possibe. |
small nit: with the To re-iterate some previous conversations we had I think (I'm working off of memory here) there were multiple reasons we wanted to keep python out of the base:
This proposal helps with the 1st and 3rd of those since user's wouldn't be able to run their own scripts. The others would still be issues. |
Added the meeting label so we can discuss during the community meeting today. |
Discussed in the community meeting today (see the log starting at 16:59:17). We added two more smallish reasons why it would be nice to remove python from the base. The list of reasons now comes out to:
Each reason was then analyzed and we determined
I'll dig into the investigation for |
I feel the discussion should be In the meeting this week the question came up about selinux and python. CL has a |
I don't disagree. Unfortunately we're working a bit backwards here because this discussion was born out of the firewall discussion in #26. So it was more Is firewalld an option? and then we started this conversation to see if it was an option. |
OK. I tried to take a stab at looking at our current python content in Fedora CoreOS I gathered the list of packages by running
I then looked at the bodhi updates for each one including python itself. I
note that we do not currently have firewalld installed but I'll look
Most packages have very few security updates but there are some that have |
Just to add my two cents as a present Container Linux and future FCOS user: We use (self-deployed) Python on Container Linux, mainly because Ansible is our automation driver for Kubernetes clusters. With kubeadm, we need to run a few tasks on the host itself like deploying updated config files and restarting services (I don't see a way around that at the moment). I would love to see Python to be included in FCOS . |
@embik +1, i'm use saltstack minion on the hosts |
hey @embik @vtolstov - I think the sentiment from the group is to try to get rid of python as much as possible. For what you are doing I think is You might be able to convince us otherwise, but I think those are the feelings right now. sorry 😢 |
We also discussed ansible briefly, and most agreed that Ignition should be used for any type of light config mgmt. (Ideally, you don't have that much configuration to do, esp. not in cluster mode, and only a bit in the single server mode).
Making FCOS work well with Kubernetes is one of its major goals, so I expect that we'll definitely address this use case. How we will do this though, I'm not sure if we've discussed it much yet. |
Yes, this is one area that RancherOS made more clear with separate system and user spaces. Everything is in containers, any number of versions of python can exist. I'm honestly surprised to see RPM installed on a container distro, is that going to stay? |
rpm is there for read only operations only, inspecting installed rpms, querying dependencies etc.. For example it's the one way I got the dependency information to know what "python" related rpms we have installed in FCOS today (see Write operations aren't allowed. You can't |
Hey @dustymabe @jlebon, thanks for your answers. As far as I understand Ignition it's great for initial configuration, but I don't see it allowing us running update procedures. It's a bummer to hear about the current opinion and I'm not sure how to convince you other than describing our use case. This is how we update Kubernetes nodes:
The first step might be not necessary in the future as kubelet live reconfiguration becomes a thing, but I don't see any way to restart my kubelet "system containers" in a structured update procedure without Ansible or a similar tool. This is my personal opinion but I guess what I'm saying is that if it won't be included with FCOS by default I'll have to continue our pypy deployment to |
@embik Thanks for the feedback! A goal of Fedora CoreOS is to carry forward the Container Linux philosophy that hosts should generally be immutable. If you needed to change the configuration, you'd update your Ignition config and reprovision the host. We recognize that that approach isn't always viable, and in some cases configuration management is a better fit. Ideally CM would be possible on FCOS, but without carrying large amounts of code (or compatibility constraints) in the OS to support it. I've filed #53 to track this use case; please feel free to add your thoughts over there. |
Ok discussed in this weeks community meeting. Lots of discussion, but we agreed on two points:
i'll write up some text for the design doc and put up a PR |
PR to the design doc: #56 |
PR merged. closing this as decided |
I was thinking about this late one night (like a normal human) and one idea I had is (in addition to moving it to This wouldn't be some insurmountable barrier, but...I think most people would give up trying to use it at that point. |
@cgwalters Oh wow. I like it. |
Random: noticed this today in the output of |
Like https://fedoraproject.org/wiki/Changes/Platform_Python_Stack
But we can do it in even stronger way: if we wanted to make it a whole lot harder for external people to use it, we could randomize the location of the binary, e.g. /usr/libexec/platform-python-$(uuidgen).
(Walking over every python binary and rewrite the shebangs)
The text was updated successfully, but these errors were encountered: