Move Enterprise-only webhook rendering into the extension - #5206
Open
caseydavenport wants to merge 2 commits into
Open
Move Enterprise-only webhook rendering into the extension#5206caseydavenport wants to merge 2 commits into
caseydavenport wants to merge 2 commits into
Conversation
The audit-logs hostPath volume moves too, since only Enterprise writes there.
Brian-McM
requested changes
Aug 18, 2026
| // modifyWebhooks layers audit logging, the mutating webhooks, the extra RBAC, and | ||
| // management-cluster support onto the rendered objects. | ||
| func modifyWebhooks(cfg *webhooks.Configuration, managementCluster *operatorv1.ManagementCluster, multiTenant bool, create, del []client.Object) ([]client.Object, []client.Object) { | ||
| if dep, ok := extensions.FindObject[*appsv1.Deployment](create, webhooks.WebhooksName); ok { |
Contributor
There was a problem hiding this comment.
We probably want to panic or be very very load if we couldn't find an object through the extensions.
Member
Author
There was a problem hiding this comment.
Added extensions.MustFindObject, which panics with BUG: no object named %q to modify when the base render did not produce it, mirroring render.MustContainer in pkg/render/containers.go. Converted the four lookups here that are always guaranteed to hit.
Your point applies to the whole mechanism though - there are about 20 other if ok sites across pkg/enterprise/ that silently no-op the same way. I'll do those in a separate PR, minus guardian.go:46, kubecontrollers.go:62, and apiserver/extension.go:733, which return early on a miss deliberately.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Follow-up to #5164, moving the rest of the Enterprise-only webhook rendering behind the extensions boundary. The base render now produces the same objects for both variants, and the Enterprise extension layers on:
When the operator runs as Calico, the mutating webhook configuration is queued for deletion so an install downgraded from Enterprise cleans up after itself.
One behavior change worth calling out: Calico installs no longer mount the audit log host directory into the webhooks container. Only the Enterprise audit handler ever wrote there, so it was a mounted-but-unused hostPath, but dropping it does roll the webhooks deployment on upgrade.
Release Note