Skip to content
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

CNI isn't required to be installed in kube-system on OpenShift #50984

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jwendell
Copy link
Member

No description provided.

@jwendell jwendell added do-not-merge/hold Block automatic merging of a PR. release-notes-none Indicates a PR that does not require release notes. labels May 10, 2024
@jwendell jwendell requested a review from a team as a code owner May 10, 2024 13:24
@istio-testing istio-testing added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label May 10, 2024
@jwendell
Copy link
Member Author

In theory we can deploy CNI in any namespace now.

I'm not sure if this is safe regarding upgrades though. If yes, I guess we need a release note for this?

If it will bring problems during upgrades, we can discard this PR and stick with kube-system forever.

@luksa @howardjohn thoughts?

@costinm
Copy link
Contributor

costinm commented May 10, 2024 via email

Copy link
Member

@howardjohn howardjohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will break upgrades in a terrible way (constantly reconciling over each other). I don't think we should do this without more work somehow to make it safe

@costinm
Copy link
Contributor

costinm commented May 10, 2024 via email

@bleggett
Copy link
Contributor

bleggett commented May 14, 2024

It is not safe to install the same daemonset 2x in k8s as a general rule - that's why it's a daemonset (arguably).

Fortunately helm will not install because the cluster resources are already
present.

Yes, that's what I'd expect.

In theory we can deploy CNI in any namespace now.

We can, but we cannot deploy multiple CNI instances to different namespaces at the same time - that's both not allowed by Helm, and not really rational K8S practice - and not something we will ever support, I think.

See also #49009

@costinm
Copy link
Contributor

costinm commented May 14, 2024 via email

@bleggett
Copy link
Contributor

bleggett commented May 14, 2024

Istioctl or helm template doesn't have those problems...

Agreed, that's our special problem :D

It's more complex - for example in GKE we auto install in kube-system, and
with helm template. Others may do the same. Depending on order you may or may not be broken.

Auto-installing to a namespace in a cluster with an existing Istio install without checking if you should is probably a vendor caveat-emptor situation.

Also it's not a problem if each CNI targets different pods. There is a
project ( forgot the name) allowing pods to select one or more cni sets (
to enable multiple net interfaces in different protocols).

I've seen proposals like that, but in general I think the UX of selecting CNI at the pod level sucks, is not a user concern, and is a bad idea (it's convenient for some kinds of operators but it doesn't solve any real user-facing problems and creates quite a few user-facing footguns)

We need to gradually improve our install story from 'hope only one cni is
messing with network'

I don't think we need to improve it from 'only one istio-cni MAY mess with the network at a time', unless I'm missing something.

@costinm
Copy link
Contributor

costinm commented May 15, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge/hold Block automatic merging of a PR. release-notes-none Indicates a PR that does not require release notes. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants