Repository navigation
Allow the overrides config map to set the kube-proxy image - #1032
Open
Cameron Childress (cchildress) wants to merge 2 commits into
Open
Cameron Childress (cchildress) wants to merge 2 commits into
Cameron Childress (cchildress) wants to merge 2 commits into
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Digest validation allows malformed pinned images to reach managed kube-proxy DaemonSets, while conflict detection misses conflicting image overrides supplied through command elements.
2 open issues
What changed in this PR
Adds managed kube-proxy image overrides to the operator’s ConfigMap, allowing private repositories or pinned versions to take precedence over cluster-discovered images.
Changes:
- Integrates
images.kubeProxywith override validation, conflict detection, hashing, reporting, and controller arguments. - Adds shared image-reference parsing and resolves unversioned repositories using the provider image tag or API server version.
- Adds tests, CLI output, documentation, and configuration examples.
| File | Description |
|---|---|
| internal/operator/override/validate.go | Validates image override entries. |
| internal/operator/override/resolve.go | Checks the target controller container exists. |
| internal/operator/override/parse.go | Parses image settings with field-based source attribution. |
| internal/operator/override/merge.go | Applies the image flag after argument overrides. |
| internal/operator/override/images.go | Implements image entry conversion, conflicts, and flag injection. |
| internal/operator/override/images_test.go | Tests parsing, validation, merging, conflicts, and hashing. |
| internal/operator/override/doc.go | Adds image settings to the override schema. |
| internal/operator/override/compose.go | Includes image settings in conflict detection. |
| internal/operator/kubeproxy_image_override_test.go | Tests rendered deployment integration and scoped withholding. |
| internal/net/controller/kubeproxy_image.go | Resolves configured, discovered, and fallback images. |
| internal/net/controller/kubeproxy_image_test.go | Tests image selection and discovery failures. |
| internal/net/config/kube_proxy_image.go | Adds shared image-reference parsing and flag naming. |
| internal/net/config/kube_proxy_image_test.go | Tests image-reference parsing and rejection. |
| internal/net/config/config.go | Documents expanded image-setting behavior. |
| docs/net/configuration.md | Explains repository overrides and precedence. |
| docs/content/reference/workload-overrides.md | Documents the image override schema and behavior. |
| docs/content/reference/networking/configuration.md | Describes image selection and operator integration. |
| designs/managed-kube-proxy.md | Records image resolution and restart behavior. |
| designs/component-workload-overrides.md | Describes image settings within the override design. |
| deploy/unbounded-operator/examples/component-overrides.example.yaml | Adds a private kube-proxy repository example. |
| cmd/unbounded-net-controller/main.go | Uses shared image resolution during controller startup. |
| cmd/kubectl-unbounded/app/overrides_test.go | Tests listing and validating image overrides. |
| cmd/kubectl-unbounded/app/overrides_list.go | Displays image changes in override listings. |
Review effort: Balanced
…iscovered one from kube-system.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Cameron Childress (cchildress)
force-pushed
the
cachildr/kube-proxy-image
branch
from
October 30, 2026 18:16
845dabd to
95b6726
Compare
This branch has not been deployed
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.


Allow the overrides config map to set the kube-proxy image over the discovered one from kube-system.
Right now we discover the kube-proxy image by copying the image path from the daemonset running in kube-system. If we can't find one we just default to registry.k8s.io.
This would allow an override in the overrides config map to declare a registry for fetching kube-proxy. It's valid to declare just the image path within the registry and we will assume it has all versions of kube-proxy for us to chose from, or you can set a specific version.