Conversation
| image: "{{ include "rawfile-localpv.controller-image" . }}" | ||
| imagePullPolicy: "{{ include "rawfile-localpv.controller-pull-policy" . }}" | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.image "global" .Values.global "chartVersion" .Chart.AppVersion) }} | ||
| imagePullPolicy: {{default .Values.image.pullPolicy .Values.global.imagePullPolicy}} |
There was a problem hiding this comment.
| imagePullPolicy: {{default .Values.image.pullPolicy .Values.global.imagePullPolicy}} | |
| imagePullPolicy: {{ default .Values.image.pullPolicy .Values.global.imagePullPolicy }} |
| image: {{ printf "%s/%s:%s" (.Values.controller.externalResizer.image.registry | default .Values.global.k8sImageRegistry) .Values.controller.externalResizer.image.repository .Values.controller.externalResizer.image.tag }} | ||
| imagePullPolicy: IfNotPresent | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.controller.externalResizer.image "k8sImageRegistry" .Values.global.k8sImageRegistry "global" .Values.global) }} | ||
| imagePullPolicy: {{default .Values.controller.externalResizer.image.pullPolicy .Values.global.imagePullPolicy}} |
There was a problem hiding this comment.
| imagePullPolicy: {{default .Values.controller.externalResizer.image.pullPolicy .Values.global.imagePullPolicy}} | |
| imagePullPolicy: {{ default .Values.controller.externalResizer.image.pullPolicy .Values.global.imagePullPolicy }} |
| image: {{ printf "%s/%s:%s" (.Values.node.driverRegistrar.image.registry | default .Values.global.k8sImageRegistry) .Values.node.driverRegistrar.image.repository .Values.node.driverRegistrar.image.tag }} | ||
| imagePullPolicy: IfNotPresent | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.driverRegistrar.image "k8sImageRegistry" .Values.global.k8sImageRegistry "global" .Values.global) }} | ||
| imagePullPolicy: {{default .Values.node.driverRegistrar.image.pullPolicy .Values.global.imagePullPolicy}} |
There was a problem hiding this comment.
| imagePullPolicy: {{default .Values.node.driverRegistrar.image.pullPolicy .Values.global.imagePullPolicy}} | |
| imagePullPolicy: {{ default .Values.node.driverRegistrar.image.pullPolicy .Values.global.imagePullPolicy }} |
| image: {{ printf "%s/%s:%s" (.Values.node.externalProvisioner.image.registry | default .Values.global.k8sImageRegistry) .Values.node.externalProvisioner.image.repository .Values.node.externalProvisioner.image.tag }} | ||
| imagePullPolicy: IfNotPresent | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.externalProvisioner.image "k8sImageRegistry" .Values.global.k8sImageRegistry "global" .Values.global) }} | ||
| imagePullPolicy: {{default .Values.node.externalProvisioner.image.pullPolicy .Values.global.imagePullPolicy}} |
There was a problem hiding this comment.
| imagePullPolicy: {{default .Values.node.externalProvisioner.image.pullPolicy .Values.global.imagePullPolicy}} | |
| imagePullPolicy: {{ default .Values.node.externalProvisioner.image.pullPolicy .Values.global.imagePullPolicy }} |
| image: {{ printf "%s/%s:%s" (.Values.node.externalSnapshotter.image.registry | default .Values.global.k8sImageRegistry) .Values.node.externalSnapshotter.image.repository .Values.node.externalSnapshotter.image.tag }} | ||
| imagePullPolicy: IfNotPresent | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.externalSnapshotter.image "k8sImageRegistry" .Values.global.k8sImageRegistry "global" .Values.global) }} | ||
| imagePullPolicy: {{default .Values.node.externalSnapshotter.image.pullPolicy .Values.global.imagePullPolicy}} |
There was a problem hiding this comment.
| imagePullPolicy: {{default .Values.node.externalSnapshotter.image.pullPolicy .Values.global.imagePullPolicy}} | |
| imagePullPolicy: {{ default .Values.node.externalSnapshotter.image.pullPolicy .Values.global.imagePullPolicy }} |
| image: {{ printf "%s/%s:%s" (.Values.node.snapshotController.image.registry | default .Values.global.k8sImageRegistry) .Values.node.snapshotController.image.repository .Values.node.snapshotController.image.tag }} | ||
| imagePullPolicy: IfNotPresent | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.snapshotController.image "k8sImageRegistry" .Values.global.k8sImageRegistry "global" .Values.global) }} | ||
| imagePullPolicy: {{default .Values.node.snapshotController.image.pullPolicy .Values.global.imagePullPolicy}} |
There was a problem hiding this comment.
| imagePullPolicy: {{default .Values.node.snapshotController.image.pullPolicy .Values.global.imagePullPolicy}} | |
| imagePullPolicy: {{ default .Values.node.snapshotController.image.pullPolicy .Values.global.imagePullPolicy }} |
| - name: csi-driver | ||
| image: "{{ include "rawfile-localpv.node-image" . }}" | ||
| imagePullPolicy: "{{ include "rawfile-localpv.node-pull-policy" . }}" | ||
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.image "global" .Values.global "chartVersion" .Chart.AppVersion) | quote }} |
There was a problem hiding this comment.
We don't need to quote?
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.image "global" .Values.global "chartVersion" .Chart.AppVersion) | quote }} | |
| image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.image "global" .Values.global "chartVersion" .Chart.AppVersion) }} |
|
|
||
| global: | ||
| # -- Default image registry for Images from DockerHub | ||
| imageRegistry: docker.io |
There was a problem hiding this comment.
ah wait, I think this is still breaking, imageRegistry is overriding the k8sImageRegistry ?
We have to prioritize k8sImageRegistry otherwise this is a breaking change?
There was a problem hiding this comment.
The order of preference is
{{- $registryName := ((.global).imageRegistry) | default .k8sImageRegistry | default .imageRoot.registry | trimSuffix "/" -}}
Global > k8simageregistry > local
(note: k8sImageRegistry is passed only for sidecars, for plugin it will be global> local)
we can prioritize k8sImageRegistry for sidecars but then k8sImageRegsitry will be the override.
k8simageregistry(override) > global (default) > local(default). It will be a behaviour change not consistent with other charts.
if a user has explicility set global.imageRegistry and global.k8sImageRegistry before upgrade , after upgrade to newer version all the imageregistries will be set to global.imageRegistry hence it will be a breaking change.
if both values are same, it will not be a breaking change.
❯ helm install rf rf/rawfile-localpv -n rf --create-namespace --set global.imageRegistry=krishna.io --set global.k8sImageRegistry=raj.io
NAME: rf
LAST DEPLOYED: Thu Apr 2 07:18:08 2026
NAMESPACE: rf
STATUS: deployed
REVISION: 1
TEST SUITE: None
❯ kubectl get pods -n rf -o jsonpath='{..image}' | tr -s '[[:space:]]' '\n'
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-resizer:v1.13.2
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-resizer:v1.13.2
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-node-driver-registrar:v2.13.0
raj.io/sig-storage/csi-provisioner:v5.2.0
raj.io/sig-storage/csi-snapshotter:v8.2.1
raj.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-provisioner:v5.2.0
raj.io/sig-storage/csi-snapshotter:v8.2.1
raj.io/sig-storage/csi-node-driver-registrar:v2.13.0
raj.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-provisioner:v5.2.0
raj.io/sig-storage/csi-snapshotter:v8.2.1
raj.io/sig-storage/csi-node-driver-registrar:v2.13.0
raj.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-node-driver-registrar:v2.13.0
raj.io/sig-storage/csi-provisioner:v5.2.0
raj.io/sig-storage/csi-snapshotter:v8.2.1
raj.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-node-driver-registrar:v2.13.0
raj.io/sig-storage/csi-provisioner:v5.2.0
raj.io/sig-storage/csi-snapshotter:v8.2.1
raj.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-provisioner:v5.2.0
raj.io/sig-storage/csi-snapshotter:v8.2.1
raj.io/sig-storage/csi-node-driver-registrar:v2.13.0
raj.io/sig-storage/snapshot-controller:v8.2.1#
❯ helm upgrade rf deploy/helm/rawfile-localpv/ -n rf
Release "rf" has been upgraded. Happy Helming!
NAME: rf
LAST DEPLOYED: Thu Apr 2 07:18:43 2026
NAMESPACE: rf
STATUS: deployed
REVISION: 2
TEST SUITE: None
❯ kubectl get pods -n rf -o jsonpath='{..image}' | tr -s '[[:space:]]' '\n'
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-resizer:v1.13.2 >> controller will require a restart
krishna.io/openebs/rawfile-localpv:v0.13.1
raj.io/sig-storage/csi-resizer:v1.13.2
krishna.io/openebs/rawfile-localpv:v0.13.1
krishna.io/sig-storage/csi-node-driver-registrar:v2.13.0
krishna.io/sig-storage/csi-provisioner:v5.2.0
krishna.io/sig-storage/csi-snapshotter:v8.2.1
krishna.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
krishna.io/sig-storage/csi-provisioner:v5.2.0
krishna.io/sig-storage/csi-snapshotter:v8.2.1
krishna.io/sig-storage/csi-node-driver-registrar:v2.13.0
krishna.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
krishna.io/sig-storage/csi-node-driver-registrar:v2.13.0
krishna.io/sig-storage/csi-provisioner:v5.2.0
krishna.io/sig-storage/csi-snapshotter:v8.2.1
krishna.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
krishna.io/sig-storage/csi-provisioner:v5.2.0
krishna.io/sig-storage/csi-snapshotter:v8.2.1
krishna.io/sig-storage/csi-node-driver-registrar:v2.13.0
krishna.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
krishna.io/sig-storage/csi-provisioner:v5.2.0
krishna.io/sig-storage/csi-snapshotter:v8.2.1
krishna.io/sig-storage/csi-node-driver-registrar:v2.13.0
krishna.io/sig-storage/snapshot-controller:v8.2.1
krishna.io/openebs/rawfile-localpv:v0.13.1
krishna.io/sig-storage/csi-node-driver-registrar:v2.13.0
krishna.io/sig-storage/csi-provisioner:v5.2.0
krishna.io/sig-storage/csi-snapshotter:v8.2.1
krishna.io/sig-storage/snapshot-controller:v8.2.1#
but if a user has not specified any values explicility for the image registries, not a breaking change.
❯ helm install rf rf/rawfile-localpv -n rf
NAME: rf
LAST DEPLOYED: Thu Apr 2 07:22:31 2026
NAMESPACE: rf
STATUS: deployed
REVISION: 1
TEST SUITE: None
❯ kubectl get pods -n rf
NAME READY STATUS RESTARTS AGE
rf-rawfile-localpv-controller-0 2/2 Running 0 17s
rf-rawfile-localpv-node-d4hp9 5/5 Running 0 18s
rf-rawfile-localpv-node-lqszg 5/5 Running 0 18s
rf-rawfile-localpv-node-w2n5c 5/5 Running 0 18s
❯ kubectl get pods -n rf -o jsonpath='{..image}' | tr -s '[[:space:]]' '\n'
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-resizer:v1.13.2
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-resizer:v1.13.2
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1#
❯ helm upgrade rf deploy/helm/rawfile-localpv/ -n rf
Release "rf" has been upgraded. Happy Helming!
NAME: rf
LAST DEPLOYED: Thu Apr 2 07:23:15 2026
NAMESPACE: rf
STATUS: deployed
REVISION: 2
TEST SUITE: None
❯ kubectl get pods -n rf -o jsonpath='{..image}' | tr -s '[[:space:]]' '\n'
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-resizer:v1.13.2
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-resizer:v1.13.2
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1
docker.io/openebs/rawfile-localpv:v0.13.1
registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
registry.k8s.io/sig-storage/csi-snapshotter:v8.2.1
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
registry.k8s.io/sig-storage/snapshot-controller:v8.2.1#
❯ kubectl get pods -n rf
NAME READY STATUS RESTARTS AGE
rf-rawfile-localpv-controller-0 2/2 Running 0 57s
rf-rawfile-localpv-node-d4hp9 5/5 Running 0 58s
rf-rawfile-localpv-node-lqszg 5/5 Running 0 58s
rf-rawfile-localpv-node-w2n5c 5/5 Running 0 58s
❯
❯ kubectl delete pod rf-rawfile-localpv-controller-0 -n rf
pod "rf-rawfile-localpv-controller-0" deleted
❯ kubectl get pods -n rf
NAME READY STATUS RESTARTS AGE
rf-rawfile-localpv-controller-0 2/2 Running 0 3s
rf-rawfile-localpv-node-d4hp9 5/5 Running 0 2m43s
rf-rawfile-localpv-node-lqszg 5/5 Running 0 2m43s
rf-rawfile-localpv-node-w2n5c 5/5 Running 0 2m43s
There was a problem hiding this comment.
we can prioritize k8sImageRegistry for sidecars but then k8sImageRegsitry will be the override.
k8simageregistry(override) > global (default) > local(default). It will be a behaviour change not consistent with other charts.
I think that's fine, because k8sImageRegistry will only exist if the user set it manually, in which case we do want to keep it?
Alternatively we just make a breaking version update.
Any thoughts here @pasha-gurkov @mhkarimi1383 ?
There was a problem hiding this comment.
Hey @krishnaGajabi !
Are there any existing charts like this, with two separate registries to pull images from and global overrides?
I like the idea of having globals to override imageRegistry. The value for that comes from all charts playing along (eg a lot of Bitnami charts support this), so a single global.imageRegistry is read by multiple charts, hence is only specified once.
So the value for global.k8sImageRegistry would also come from that. Is that a common key to use in other charts? If yes, how it's implemented there?
This part
(note: k8sImageRegistry is passed only for sidecars, for plugin it will be global> local)
is a bit concerning, different images having different implicit overriding logic is not very intuitive. Is there any downside to having separate global.imageRegistry > imageRegistry and global.k8sImageRegistry > imageRegistry chains?
There was a problem hiding this comment.
Hi @pasha-gurkov,
I checked for existing charts with a similar setup (supporting two separate registries along with global overrides), but I didn’t come across any.
global.imageRegistry is intended to override all local image registry values, which also makes it convenient to enforce a single registry across all subcharts. With this change, it now consistently overrides the registry for all images.
I’ve also introduced csiSideCarImageRegistry so users can explicitly configure a separate registry for CSI sidecar images when needed.
Additionally, global.k8sImageRegistry has been removed to align with conventions used in other charts. This is a breaking change for users relying on it. But this will be consistent with other charts in openebs project.
There was a problem hiding this comment.
I feel this is fine by me, the less surprises there are and the more the alignment with other openebs charts is, the better. @tiagolobocastro @mhkarimi1383 ?
Merge Queue Status
This pull request spent 22 minutes 6 seconds in the queue, including 20 minutes 59 seconds running CI. Required conditions to merge
ReasonPull request #315 has been dequeued merge conditions no longer match:
HintYou should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it. |
|
Some mergify bug, why was this embarked? |
There was a problem hiding this comment.
Pull request overview
This PR introduces Helm global values for common configuration (image registry/pull settings and analytics) to reduce repeated overrides across chart components, and updates the rawfile-localpv chart templates/docs to consume them while removing the legacy global.k8sImageRegistry.
Changes:
- Added new global values (
global.imageRegistry,global.imagePullPolicy,global.imagePullSecrets,global.analytics.enabled) pluscsiSideCarImageRegistryand localanalytics.enabled. - Refactored templates to use new shared helpers for image construction and imagePullSecrets handling, and to compute analytics enablement from global vs local values.
- Updated docs (install guide, chart README values table) and changelog to reflect the new settings and breaking removal of
global.k8sImageRegistry.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/install-guide.md | Documents breaking change/removal of global.k8sImageRegistry for unreleased upgrades. |
| deploy/helm/rawfile-localpv/values.yaml | Adds new global keys, introduces csiSideCarImageRegistry, moves defaults to local values, and adds local analytics.enabled. |
| deploy/helm/rawfile-localpv/templates/rbac.yaml | Switches ServiceAccount imagePullSecrets rendering to shared helper; adjusts analytics-gated RBAC creation logic. |
| deploy/helm/rawfile-localpv/templates/node-plugin/daemonset.yaml | Uses common image/pull-policy logic and global/local analytics enablement. |
| deploy/helm/rawfile-localpv/templates/controller/statefulset.yaml | Uses common image/pull-policy logic and global/local analytics enablement. |
| deploy/helm/rawfile-localpv/templates/_helpers.tpl | Removes old image helpers and adds common.image + common.pullSecrets. |
| deploy/helm/rawfile-localpv/README.md | Updates the values table for new keys/defaults and removed legacy registry key. |
| CHANGELOG.md | Notes added keys and the breaking removal of global.k8sImageRegistry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2c27278 to
ca46bbd
Compare
Signed-off-by: krishnaGajabi <gajbikrishna23@gmail.com>
for more information, see https://pre-commit.ci
Why is this PR required? What issue does it fix?
Currently, the Helm charts do not provide global variables for configuring common parameters such as the image registry, image pull secrets, image pull policy, and analytics settings.
When deploying the OpenEBS Helm charts, users often need to override these values across multiple subcharts and components. This makes it difficult to locate and configure all the required fields consistently. Providing global variables simplifies configuration and improves the user experience.
What does this PR do?
This PR introduces the following global configuration variables:
Also it moves the default imageRegistry, analytics, pullpolicy values from global to local variable. to be consistent with other openebs suchcharts.
These variables allow users to configure common settings in a single place, which will then be applied across the chart components.
Also removed unwated values in value.yaml file .
imagepullsecrets will be backward compatible(can handle - secret as well as - name: secret)
Does this PR require any upgrade changes?
No. Removed
global.k8sImageRegistrywhich can be a breaking change for some usersVerification
The changes were verified using the following scenarios:
Rendered the templates using helm template to confirm correct value substitution.
Deployed the chart on a Kubernetes cluster with 3 worker nodes (kubeadm-based setup).
Verified that the global values are rendered and applied correctly across the components.