Skip to content

feat: add helm global values#315

Open
krishnaGajabi wants to merge 2 commits intoopenebs:developfrom
krishnaGajabi:develop
Open

feat: add helm global values#315
krishnaGajabi wants to merge 2 commits intoopenebs:developfrom
krishnaGajabi:develop

Conversation

@krishnaGajabi
Copy link
Copy Markdown

@krishnaGajabi krishnaGajabi commented Mar 24, 2026

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:

global:
  # -- Global override for image registry
  imageRegistry: ""
  # -- Global override for image pull policy
  imagePullPolicy: ""
  # -- Global override for image pull secrets 
  # -- - secret
  imagePullSecrets: []
  analytics:
    # -- Global override for GA analytics
    enabled:
# -- Image registry for CSI Sidecars
csiSideCarImageRegistry: ""
analytics:
  # -- Enable OpenEBS analytics which help track engine traction and usage.
  enabled: true

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.k8sImageRegistry which can be a breaking change for some users

Verification

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.

@krishnaGajabi krishnaGajabi requested a review from a team as a code owner March 24, 2026 10:40
Comment thread deploy/helm/rawfile-localpv/templates/controller/statefulset.yaml Outdated
Comment thread deploy/helm/rawfile-localpv/values.yaml Outdated
Comment thread deploy/helm/rawfile-localpv/values.yaml
Comment thread deploy/helm/rawfile-localpv/templates/rbac.yaml Outdated
Comment thread deploy/helm/rawfile-localpv/templates/rbac.yaml Outdated
Comment thread deploy/helm/rawfile-localpv/templates/controller/statefulset.yaml Outdated
Comment thread deploy/helm/rawfile-localpv/values.yaml
Comment thread deploy/helm/rawfile-localpv/values.yaml Outdated
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}}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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}}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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}}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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}}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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}}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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}}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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 }}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need to quote?

Suggested change
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
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah wait, I think this is still breaking, imageRegistry is overriding the k8sImageRegistry ?
We have to prioritize k8sImageRegistry otherwise this is a breaking change?

@krishnaGajabi

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ?

Copy link
Copy Markdown
Contributor

@pasha-gurkov pasha-gurkov Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ?

@mergify mergify bot added the queued label Apr 2, 2026
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Apr 2, 2026

Merge Queue Status

  • Entered queue2026-04-02 11:00 UTC · Rule: default
  • Checks started · in-place
  • 🚫 Left the queue2026-04-02 11:22 UTC · at 78b7d3202c8474e7c5da823929036e7df56f075e

This pull request spent 22 minutes 6 seconds in the queue, including 20 minutes 59 seconds running CI.

Required conditions to merge
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • check-success = ci
  • any of [🛡 GitHub branch protection]:
    • check-success = DCO
    • check-neutral = DCO
    • check-skipped = DCO
  • any of [🛡 GitHub branch protection]:
    • check-success = ci
    • check-neutral = ci
    • check-skipped = ci
  • any of [🛡 GitHub branch protection]:
    • check-neutral = Mergify Merge Protections
    • check-skipped = Mergify Merge Protections
    • check-success = Mergify Merge Protections

Reason

Pull request #315 has been dequeued

merge conditions no longer match:

  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]

Hint

You 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.
If you do update this pull request, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio queue comment.

@tiagolobocastro
Copy link
Copy Markdown
Member

Some mergify bug, why was this embarked?

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) plus csiSideCarImageRegistry and local analytics.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.

Comment thread deploy/helm/rawfile-localpv/templates/_helpers.tpl Outdated
Comment thread deploy/helm/rawfile-localpv/README.md
Comment thread deploy/helm/rawfile-localpv/values.yaml Outdated
Comment thread deploy/helm/rawfile-localpv/README.md Outdated
Comment thread docs/install-guide.md Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread deploy/helm/rawfile-localpv/templates/rbac.yaml
Comment thread deploy/helm/rawfile-localpv/templates/_helpers.tpl Outdated
Comment thread deploy/helm/rawfile-localpv/templates/_helpers.tpl
Comment thread deploy/helm/rawfile-localpv/templates/_helpers.tpl Outdated
Comment thread deploy/helm/rawfile-localpv/README.md
Comment thread docs/install-guide.md Outdated
@krishnaGajabi krishnaGajabi force-pushed the develop branch 4 times, most recently from 2c27278 to ca46bbd Compare April 16, 2026 04:43
Signed-off-by: krishnaGajabi <gajbikrishna23@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants