Align trident-operator Helm chart values with Helm best practices for image, tag, and registry customization
The current implementation of the trident-operator Helm chart does not follow a standard or intuitive approach for specifying and customizing container images—particularly when it comes to overriding image registries for the various Trident components. In environments that rely on private registry mirrors, users are unable to easily override the registry during chart installation. Instead, they must manually identify and override each individual image tag used by the chart, which places an unnecessary burden on the chart consumer.
For example, say one wants to change the image registry to use an internal mirror "foobar.mycompany.com". To achieve this one must do the following:
imageRegistry: "foobar.mycompany.com/sig-storage"
tridentImage: "foobar.mycompany.com/netapp/trident:25.02.0"
operatorImage: "foobar.mycompany.com/netapp/trident-operator:25.02.0"
tridentAutosupportImage: "foobar.mycompany.com/netapp/trident-autosupport:25.02.0"
Notice the un-intuitive value that was required for imageRegistry. If there was a way to avoid having to hard-code image tags to accomplish this, that would be ideal.
This is a request for enhancement (RFE) to standardize image and registry customization in the Helm chart, following best practices established by popular open-source charts such as those from Bitnami. Adopting these patterns would provide users with greater flexibility and a more streamlined experience when customizing the chart.
Examples of best practices:
Global registry overrides: https://github.com/bitnami/charts/blob/main/bitnami/grafana/values.yaml#L14-L15 https://github.com/bitnami/charts/blob/main/bitnami/postgresql/values.yaml#L7-L17
Component-level image customization: https://github.com/bitnami/charts/blob/main/bitnami/grafana/values.yaml#L77-L92 https://github.com/bitnami/charts/blob/main/bitnami/cert-manager/values.yaml#L86-L95 https://github.com/bitnami/charts/blob/main/bitnami/grafana/values.yaml#L976-L989
Other charts with similar techniques: https://github.com/metallb/metallb/blob/main/charts/metallb/values.yaml#L203-L206 https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml#L5-L14 https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml#L614-L622
Hey @hrivera-ntap .
Thanks for raising this issue — I totally see where you’re coming from about making image and registry customization easier and more straightforward.
In our setup, we’re currently handling it by using the existing imageRegistry and imagePullSecrets options without changing the chart itself. For example, we deploy the chart with:
helm install trident . -f values.yaml --set imageRegistry=foobar.mycompany.com/x --set imagePullSecrets=tridentsecret -n trident
This allows us to successfully pull all required images from our internal registry, including:
foobar.mycompany.com/x/csi-attacher:v4.8.0
foobar.mycompany.com/x/csi-node-driver-registrar:v2.13.0
foobar.mycompany.com/x/csi-provisioner:v5.2.0
foobar.mycompany.com/x/csi-resizer:v1.13.1
foobar.mycompany.com/x/csi-snapshotter:v8.2.0
foobar.mycompany.com/x/trident-autosupport:25.02
foobar.mycompany.com/x/trident-operator:25.02.1
foobar.mycompany.com/x/trident:25.02.1
This works well for us to pull all the images from our internal registry, including the CSI components and Trident images.
While this works for now, I agree that improving the chart to support more standard and flexible image overrides would be really helpful for everyone.
Trident version used: 25.02