Strimzi-kafka-operator: [Question] Helm install is broken (Strimzi 0.17.0)

Created on 5 May 2020  路  12Comments  路  Source: strimzi/strimzi-kafka-operator

Hello!

Currently we are using strimzi 0.16.2 which works perfectly fine, we have tried to upgrade to 0.17.0 and we are getting following, seems like there is an issue with helm:

+ helm repo add strimzi http://strimzi.io/charts/
"strimzi" has been added to your repositories
+ helm upgrade --reuse-values --install strimzi strimzi/strimzi-kafka-operator --version=$STRIMZI_VERSION --namespace=kafka --set nodeSelector.nodegroup-type=kafka
UPGRADE FAILED
Error: render error in "strimzi-kafka-operator/templates/050-Deployment-strimzi-cluster-operator.yaml": template: strimzi-kafka-operator/templates/_kafka_image_map.tpl:34:40: executing "strimzi.kafka.image.map" at <.Values.kafkaMirrorMaker2.image.repository>: nil pointer evaluating interface {}.image
Error: UPGRADE FAILED: render error in "strimzi-kafka-operator/templates/050-Deployment-strimzi-cluster-operator.yaml": template: strimzi-kafka-operator/templates/_kafka_image_map.tpl:34:40: executing "strimzi.kafka.image.map" at <.Values.kafkaMirrorMaker2.image.repository>: nil pointer evaluating interface {}.image

Any ideas ?

Thanks!

question

All 12 comments

I don't think anyone reported any issues with the Helm Chart in 0.17.0. TBH I have no idea if the Helm Chart upgrade is in anyway special.

I have tried also with latest version of the helm (v2.16.7) but still getting the same error. By the way, is helm 3 version supported ?

Seems like something related to mirrormaker which has been added in the strimzi 0.17.0 version.

I have tried also with latest version of the helm (v2.16.7) but still getting the same error.

@sgkiokas @samuel-hawker Any ideas how the clean install and upgrade differ with Helm?

By the way, is helm 3 version supported ?

There is an issue #2895 for Helm 3 support.

@scholzj, during the upgrade, Helm (version 2* in that case) will go and do what is called a "two-way strategic comparison". In that case, the existing chart will be checked against the new incoming values specified. If Helm spots any difference, it will try to apply them in the current release/chart installed.

@klalafaryan, could you please check your Tiller logs in the kube-system namespace to see if any extra useful information can be found there? Few days ago I tried install with the same Helm version you have and I didn't have any issue.

@scholzj @sgkiokas thanks for your reply.

I have checked Tiller logs, and I can see only following:

[tiller] 2020/05/06 16:12:59 getting history for release strimzi
[storage] 2020/05/06 16:12:59 getting release history for "strimzi"
[tiller] 2020/05/06 16:13:00 preparing update for strimzi
[storage] 2020/05/06 16:13:00 getting deployed releases from "strimzi" history
[tiller] 2020/05/06 16:13:00 reusing the old release's values
[storage] 2020/05/06 16:13:00 getting last revision of "strimzi"
[storage] 2020/05/06 16:13:00 getting release history for "strimzi"
[tiller] 2020/05/06 16:13:00 rendering strimzi-kafka-operator chart using values
[tiller] 2020/05/06 16:13:00 failed to prepare update: render error in "strimzi-kafka-operator/templates/050-Deployment-strimzi-cluster-operator.yaml": template: strimzi-kafka-operator/templates/_kafka_image_map.tpl:34:40: executing "strimzi.kafka.image.map" at <.Values.kafkaMirrorMaker2.image.repository>: nil pointer evaluating interface {}.image

By the way, currently I have 0.16.2 version running in my cluster. And I would like just upgrade the version to 0.17.0.
TBH, I didn't try what happens if I run helm install on the clean cluster.

I haven't seen any Helm hooks implemented in Strimzi (unless I am mistaken) so if a breaking structural change has been made (e.g such as the introduction of the MM2), handling it might be a bit rough. If you don't have very important setups in your current release, will that be possible to delete the current install and start fresh?

@sgkiokas Thanks for your reply.
Luckily, we don't have a production environment yet, so we can recreate the cluster.

But I am just wondering how we should upgrade into new versions as soon as we deploy our kafka on production ?!

@klalafaryan, yes, you are right. I might look into that matter during the Helm 3 migration work I am trying to progress currently and see if I can find out something interesting.

@sgkiokas Seems like helm repo update solves the problem.

@klalafaryan, yes, that would make sense. I'm used to using charts that do an auto-sync based on the platform you are using. I found this issue mentioning the same strategy. Also, they mentioned that this is a good feature candidate for Helm 3, but, I couldn't find any relevant issue opened for that yet.

@scholzj, I think this issue can be closed. Even though it's common practice to run helm repo update before helm install, do you think it would be beneficial to update the relevant README with a tip/note? I can slip that in the https://github.com/strimzi/strimzi-kafka-operator/pull/2979 PR.

Any improvements to the readme or to the docs are always welcomed. Thanks for helping with this issue.

@sgkiokas
We have just tried to upgrade strimzi to 0.18.0 version and we are getting following problem:

Tiller (the Helm server-side component) has been updated to gcr.io/kubernetes-helm/tiller:v2.16.1 .
+ helm repo add strimzi http://strimzi.io/charts/
"strimzi" has been added to your repositories
+ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "strimzi" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
+ helm upgrade --reuse-values --install strimzi strimzi/strimzi-kafka-operator --version=$STRIMZI_VERSION --namespace=kafka --set nodeSelector.nodegroup-type=kafka
Error: UPGRADE FAILED: render error in "strimzi-kafka-operator/templates/050-Deployment-strimzi-cluster-operator.yaml": template: strimzi-kafka-operator/templates/_kafka_image_map.tpl:15:39: executing "strimzi.kafka.image.map" at <.Values.cruiseControl.image.repository>: nil pointer evaluating interface {}.image
UPGRADE FAILED
Error: render error in "strimzi-kafka-operator/templates/050-Deployment-strimzi-cluster-operator.yaml": template: strimzi-kafka-operator/templates/_kafka_image_map.tpl:15:39: executing "strimzi.kafka.image.map" at <.Values.cruiseControl.image.repository>: nil pointer evaluating interface {}.image

As you can see from the logs now we do helm repo update.

Was this page helpful?
0 / 5 - 0 ratings