-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
podman, kubernetes and more fight over the CNI config directory #878
Comments
The user of CNI could easily specify where their configuration files are located at by setting the NETCONFPATH environment variable. The binaries themselves can co-exist by each setting CNI_PATH to where they placed their binaries, either the reference binaries from here or their own. |
CRI-O and podman support filtering for a network name. I don't think CRI-O will use podman's network configs, and vice versa. We have a similar issue we're looking to fix in 1.24 about not installing a network config by default in the CRI-O installation so other networking providers can be the only one installed (beginning at runtime) |
I was wrong, CRI-O does support filtering, but doesn't do so OOTB. If you know the network config name ahead of time you can update your cri-o config to filter for that by setting cni_default_network to the network name |
Yes, exactly this. The CNI spec imagines a world where people install a random container runtime and a random CNI plugin onto a host, and the user wants the runtime to autodetect the plugin and use it. But in my experience, that's not the way that CNI gets used most of the time. I think the solution here is that |
Unfortunately, current podman depreates CNI and CNI will be removed in next major version podman, hence it may no longer issue. See https://blog.podman.io/2023/11/cni-deprecation-and-removal-from-podman-5-0/ |
I'm not sure what the solution is but as more and more apps start to use CNI, I'm seeing them fight over the /etc/cni/net.d directory. For example, RH CoreOS pre-installs podman, which includes its own CNI in /etc/cni/net.d.
If you then install kubernetes on the same system, you'd typically want to install a kubernetes focussed CNI (such as Calico or Flannel) but:
CRIO also installs its own CNI by default.
In general the problems this causes are strange and confusing for an end user who didn't even know they had podman installed. They just see broken networking with some pods getting IPs from a different IP range.
I think it'd be good if the CNI spec could address this somehow. In general, I think it's more common to want a different CNI for each app that's installed rather than to share.
I suppose one option would be to add something to the netconf that says "this config should only be used by kubernetes/podman/whatever". Then the bootstrap CNIs installed by those apps could include such a stanza.
The text was updated successfully, but these errors were encountered: