feat: add global.images registry, pullSecrets, and pullPolicy support to k8s-agents-operator#421
Open
dpacheconr wants to merge 4 commits intonewrelic:mainfrom
Open
feat: add global.images registry, pullSecrets, and pullPolicy support to k8s-agents-operator#421dpacheconr wants to merge 4 commits intonewrelic:mainfrom
dpacheconr wants to merge 4 commits intonewrelic:mainfrom
Conversation
c293d69 to
8d8fb4c
Compare
Make the k8s-agents-operator controller image respect the global.images.registry setting, enabling consistent private registry configuration across nri-bundle. Changes: - Updated values.yaml default repository with clarifying comments - Modified _helpers.tpl to use global registry when default repository is configured - Maintains backward compatibility with explicit repository overrides - Supports SHA256 digest references Implementation details: - If global.images.registry is set AND repository matches default, uses global registry - If repository is explicitly set to a custom value, that takes precedence - If global registry is not set, defaults to Docker Hub path Tested scenarios: ✓ Global registry is used when set and repository is default ✓ Defaults to Docker Hub when global registry not configured ✓ Explicit repository configuration overrides global ✓ SHA256 digest references continue to work
Update imagePullSecrets handling to cascade from global.images.pullSecrets: - Updated deployment.yaml to include global.images.pullSecrets rendering - Both global and chart-level pullSecrets are concatenated together Configuration hierarchy: 1. global.images.pullSecrets (applied first) 2. image.pullSecrets (applied second - chart level) Both sources are concatenated to support flexible secret management.
Add support for cascading pullPolicy from global.images.pullPolicy setting:
- Added k8s-agents-operator.manager.imagePullPolicy helper in _helpers.tpl
- Updated deployment.yaml to use the helper instead of inline default
Configuration hierarchy:
1. global.images.pullPolicy (highest priority)
2. controllerManager.manager.image.pullPolicy
3. Default: IfNotPresent
Users can now configure pull policy globally:
global:
images:
pullPolicy: Always
8d8fb4c to
3962e8e
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #421 +/- ##
==========================================
- Coverage 69.64% 69.54% -0.11%
==========================================
Files 46 46
Lines 2840 2840
==========================================
- Hits 1978 1975 -3
- Misses 695 697 +2
- Partials 167 168 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
|
Added to backlog |
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.
Summary
Add support for cascading registry, pullSecrets, and pullPolicy from global settings to k8s-agents-operator.
Phase 1: Global.Images.Registry Support ✅
k8s-agents-operator.manager.imagein _helpers.tpl to check global.images.registry fallbackPhase 2: Global.Images.PullSecrets Support ✅
Phase 3: Global.Images.PullPolicy Support ✅ (NEW)
k8s-agents-operator.manager.imagePullPolicyin _helpers.tplConfiguration Hierarchy
For Image Registry:
global.images.registry(if set AND repository matches default)For ImagePullSecrets:
global.images.pullSecrets(highest priority)controllerManager.manager.image.pullSecretsBoth sources are concatenated to support flexible secret management.
For ImagePullPolicy:
global.images.pullPolicy(highest priority)controllerManager.manager.image.pullPolicyIfNotPresentImplementation Details
newrelic/k8s-agents-operator)Backward Compatibility
✅ Fully backward compatible:
controllerManager.manager.image.repositoryis explicitly set, it takes precedenceglobal.images.registrynow work correctlyTest Plan
Phase 1 (Registry):
my.private.registry.com/newrelic/k8s-agents-operator:0.32.2newrelic/k8s-agents-operator:0.32.2Phase 2 (PullSecrets):
Phase 3 (PullPolicy):
Impact
Once merged, users can now configure k8s-agents-operator with global image settings:
```yaml
global:
images:
registry: "my.private.registry.com"
pullSecrets:
- name: my-registry-credentials
pullPolicy: Always
```
This is part of a broader effort to ensure all New Relic Helm charts in the nri-bundle support consistent private registry configuration through
global.imagessettings.