-
Notifications
You must be signed in to change notification settings - Fork 295
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
Pod based webhooks should only be enabled if one wants to use pod integration #4120
Comments
Im surprised, I thought they get enabled based on the enablement of the pod integration. similarly we are enabling the job webhooks only when the particular job integration is enabled. Can you double check the webhooks are enabled whilst the pod integration is disabled? |
By default all pod-based integrations disabled: kueue/config/components/manager/controller_manager_config.yaml Lines 55 to 58 in 418091a
When integration is disabled, we use NoopWebhook: kueue/pkg/controller/jobframework/setup.go Lines 101 to 103 in 418091a
I also rechecked it manually. |
hmmm, wondering if the no-op webhook might still require API server to send the object to the webhook server for mutations? if so then instead of registering no-op it is probably better not to register it at all |
I synced with @mbobrovskyi we register the no-op webhooks, because we rely on the webhook registration generated by kubebuilder: https://github.com/kubernetes-sigs/kueue/blob/main/config/components/webhook/manifests.yaml. I agree registering the no-op webhooks is not ideal but to avoid it we would need to either:
I don't have a clear opinion which one is best. |
I don’t either. We are working on an operator where we would remove these from the manifest based on frameworks before installation. That is probably difficult to do with kustomize. I think docs may be important because the default namespace selector seems to be valid for Kind but other clusters would need to consider expanding the excludes. I’m not even sure if our helm chart customizes that.. |
Looks like #4141 is also a side-effect of applying webhook configurations for all the frameworks together. I'm leaning a bit towards (1) - having webhook configurations for each framework in separate Kustomize directories. Users would have to manually uncomment patches for the integrations they have enabled explicitly. This would be an additional step, but a one-off task required when modifying The helm charts seem to handle it well already through templating and ignoring the admission checks if integrations are not enabled: kueue/charts/kueue/templates/webhook/webhook.yaml Lines 21 to 24 in d02a764
|
ref: #4074
There are many cases where people do not want to enable pod based integrations as it can potentially cause an entire cluster to be quota limited by Kueue.
Even if one disables this, these webhooks can still be hit as they are added to all kueue deployments. In the above example, those webhooks caused a critical service in openshift to not create certificates.
We would like to explore ways to only enable the webhooks if pod-based integration is enabled.
Since Pod based workloads are not enabled by default, could we disable the webhooks by default?
The text was updated successfully, but these errors were encountered: