-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Helm chart TODO list #5161
Comments
Update labels to follow: https://helm.sh/docs/topics/chart_best_practices/labels/#standard-labels |
Done. Any attempt to modify the chart can be checked in e2e before merging any change. |
"webhook should be enabled by default:" I install it typically per tenant as nginx-ingress is not entirely safe in a multitenant environment unless you give each tenant their own. (too many options for one user to configure the webserver in a way detrimental to another user) I'm ok enabling the webhook by default as I can just turn it off. But, the concept of having the webhook is useful but cluster wide. Can the webhook be made its own chart, and conditionally enabled in the main chart? That way those of us using it in a multitenant environment can install the webhook globally all by itself, and then install multiple main charts with the webhook turned off? |
Yes, you can do exactly that:
|
Actually, if you have a multitenant environment, I can assume you already are using different ingress.class annotations? The webhook code already checks that and does not inspect ingresses from different classes. |
No. Each tenant uses the same ingress class. As far as the user is concerned, their services are just going out to the same network so use the same annotation on all their namespaces. The concept that each tenant gets their own nginx-ingress is an implementation detail of the cluster that they don't usually even notice. Each nginx-ingress instance is set to only listen to one namespace so there is no cross communications. This greatly simplifies the documentation/tech support as well, as they only need to be told which ingress class to use generically, rather then one specific to each namespace. |
@kfox1111 interesting. That use case is already supported in the webhook.
This means the change in the default will not break your existing approach to provide an ingress controller per namespace. |
That approach will not work. The webhook is part of the ingress controller. When the webhook receives an AdmissionReview, we build a new model with the content of the informers, replacing the old ingress definition with the new one, checking there are no errors when we generate the nginx.conf file or the internal model. |
So the webhook is not used for object validation, but for building/caching the config inside the controller? Maybe I'm misunderstanding what you said. admission control registration is usually restricted to cluster admins rather then namespace admins so is typically not used for watching things at a per namespace level as usually those launching it do not have permissions to the entire cluster. |
Yes, is used for that. In the context of ingress-nginx, the most important validation is to check the definition do not break the generation of nginx.conf or produce an invalid configuration that would avoid the reload and posterior failure of probes, triggering a CrashLoopBackOff. |
Ah. Ok. So, I guess what we need to do at our site is deploy one with webhook enabled but only listening to a namespace no one uses. That would let it do the validation for the entire cluster. Then disable the webhook for each of the tenants. Thanks for the info/help. |
@ChiefAlexander any chance you can take a look in the tasks
I plan to release the next version in a week. |
The |
Confirmed that installing with both the latest version of Helmv2 and Helmv3 works as expected using the default values with clean installs. |
Closing. The only remaining item is the blog post for the migration path from the stable repository. |
It would be nice to have a much simpler way to enable host mode like we do in the arkade app |
Heyyo, I come with good news maybe I just want to inform, |
app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/part-of: ingress-nginxThe text was updated successfully, but these errors were encountered: