Replies: 1 comment 2 replies
-
Hey @gaborho , Thanks for raising the issue. From what I understand, The problem is that though the image values are changed through post rendering hooks via kustomize, It does not update the configMap which is used with injection on applications, making applications still injected with the older image hosts and not the overriden ones. Instead of doing a helm upgrade with the settings later... Why can't those settings ( i.e with image overrides) be passed during the initial helm render (which is then updated with helm render webhooks). I don't even think helm post rendering hooks would be necessary if the render command is itself updated to have those image override settings, as they are used everywhere i.e for control-plane and applications. |
Beta Was this translation helpful? Give feedback.
-
Dear linkerd Community, I use Helm chart to deploy linkerd at our company. Because of a regulated environment, EKS worker nodes are not able to pull Docker container images from external container registries, they must pull from ECR.
In the Ansible role I have some tasks that:
For linkerd-config Configmap there is a deepCopy for the Values.
This unfortunately leads to the problem that initially I have original ghcr.io host in image definitions for proxy-init and proxy, and not the correct ECR ones, since kustomize modify to that before "helm install" in the post-renderer.
Therefore when I do kubectl rollout restart for deployments in the cluster (other than linkerd deployments), they fail to pull the image, even though linkerd is running properly (meshed).
I workarounded that by calling additionally after the initial "helm install" a "helm upgrade" where I set individually every image name of linkerd:
helm upgrade linkerd2 linkerd-stable/linkerd2 -n {{ linkerd_namespace }} --reuse-values \ --set global.proxy.image.name={{ ecr }}/linkerd/proxy \ --set global.proxyInit.image.name={{ ecr }}/linkerd/proxy-init \ --set controllerImage={{ ecr }}/linkerd/controller \ --set webImage={{ ecr }}/linkerd/web \ --set grafana.image.name={{ ecr }}/linkerd/grafana \ --wait \ --timeout 10m0s
After this deployment the linkerd-config ConfigMap get's updated with the right image names, but this is not so efficient, it makes deployment a bit longer than it should be.
So the problem in short is that values file "deepCopied" to linkerd-config ConfigMap, but that ConfigMap's image values for proxy and proxy-init are not the one which was really applied - because Helm post-renderer hooks are not respected.
Can somebody give me some hints how to overcome better this issue?
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions