Charts: [stable/redis] Incompatible types for equality comparison

Created on 20 Oct 2019  Â·  18Comments  Â·  Source: helm/charts

After upgrading to Helm 2.15, the chart (v9.3.2) is throwing an error regarding the EQ operator at
https://github.com/helm/charts/blob/master/stable/redis/templates/redis-master-statefulset.yaml#L81

Error:

Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing "redis/templates/redis-slave-statefulset.yaml" at <eq .Values.securityContext.runAsUser 0.0>: error calling eq: incompatible types for comparison

To try it out, simply run:

helm install stable/redis

Most helpful comment

Same error:
error calling eq: incompatible types for comparison

All 18 comments

Thanks for reporting the issue, it seems something change in Helm v2.15, and there are some issues already open: https://github.com/helm/helm/issues/6708

We will take a look and investigate it properly, coming back with an answer.

Same error:
error calling eq: incompatible types for comparison

Hi, a new version of Helm was released yesterday (2.15.1). Among other fixes, it includes:

Can you confirm if the issue is solved using the new Helm version?

Still unresolved unfortunately.

I ran the update

â–¶ helm version
Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}

Followed by attempting to install

 helm install stable/redis --values values.yaml --name redis --namespace default                  
Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing 
"redis/templates/redis-slave-statefulset.yaml" at <eq .Values.securityContext.runAsUser 0.0>: error calling eq: incompatible types for comparison

Hangon! I just realised that I hadn't set the securityContext in both the slave and master configuration.

  ## Redis Master Pod Security Context
  ##
  securityContext:
    enabled: true
    fsGroup: 1001
    runAsUser: 1001
  # Redis slave pod Security Context
  securityContext:
    enabled: true
    fsGroup: 1001
    runAsUser: 1001

New error

  Normal   Pulled     15s                kubelet, ip-13-37-3-31.eu-central-1.compute.internal  Container image "docker.io/oliver006/redis_exporter:v0.20.2" already present on machine
  Normal   Created    14s (x2 over 16s)  kubelet, ip-13-37-3-31.eu-central-1.compute.internal  Created container
  Warning  Failed     14s (x2 over 16s)  kubelet, ip-13-37-3-31.eu-central-1.compute.internal  Error: failed to start container "metrics": Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown

Same issue for anchore-engine on e helm v2.15.1

  Error: render error in "anchore-engine/templates/engine_configmap.yaml": template: anchore-engine/templates/engine_configmap.yaml:156:15: executing "anchore-engine/templates/engine_configmap.yaml" at <gt .Values.anchoreAnalyzer.layerCacheMaxGigabytes 0.0>: error calling gt: incompatible types for comparison

I just tried using Helm 2.15.1 and the issue seems to be solved:

$ helm version
Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}

take into account that Helm is upgraded in both sides, client and server, for that, I downloaded the new Helm version from the official GH repository and install the binary. After that, I upgraded Tiller with helm init --upgrade.

Using this new version I installed Redis by running

$ helm repo update
$ helm install stable/redis

and everything works as expected:

$ kubectl get pods
NAME                                        READY   STATUS              RESTARTS   AGE
funky-sloth-redis-master-0                  1/1     Running            0          10m27s
funky-sloth-redis-slave-0                   1/1     Running            0          10m27s
funky-sloth-redis-slave-1                   1/1     Running            0          10m

I think this issue can be considered solved. If you have other unrelated issues or issues with other charts, please, open a new issue to avoid mixing topics.

Helm init and updated. Problem not solved.

Client: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}

helm install stable/redis --values values.yaml
Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing "redis/templates/redis-slave-statefulset.yaml" at : error calling eq: incompatible types for comparison

for me still not solved:

helm version                                                                                                                               
Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
helmfile --file kubernetes/helmfiles/ --selector app=anchore-engine diff 
.
.
.
  Error: render error in "anchore-engine/templates/engine_configmap.yaml": template: anchore-engine/templates/engine_configmap.yaml:156:15: executing "anchore-engine/templates/engine_configmap.yaml" at <gt .Values.anchoreAnalyzer.layerCacheMaxGigabytes 0.0>: error calling gt: incompatible types for comparison
  Error: plugin "diff" exited with error

anchore-engine version: 1.3.4

@canalptekin:

Helm init and updated. Problem not solved.

Client: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}

helm install stable/redis --values values.yaml
Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing "redis/templates/redis-slave-statefulset.yaml" at : error calling eq: incompatible types for comparison

According to your output, you are still using helm v2.15.0, please update it to v2.15.1 in client and server.

@silvez-dh:

for me still not solved:

helm version                                                                                                                               
Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
helmfile --file kubernetes/helmfiles/ --selector app=anchore-engine diff 
.
.
.
  Error: render error in "anchore-engine/templates/engine_configmap.yaml": template: anchore-engine/templates/engine_configmap.yaml:156:15: executing "anchore-engine/templates/engine_configmap.yaml" at <gt .Values.anchoreAnalyzer.layerCacheMaxGigabytes 0.0>: error calling gt: incompatible types for comparison
  Error: plugin "diff" exited with error

anchore-engine version: 1.3.4

Please, can you create another issue for stable/anchore-engine? This thread is focused on stable/redis

I am on helm 2.15.1 and seeing this issue

$ helm version
Client: &version.Version{SemVer:"v2.15.1", GitCommit:"cf1de4f8ba70eded310918a8af3a96bfe8e7683b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}
$ helm install stable/redis --name redis --set image.tag=5.0.5-debian-9-r104
Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing "redis/templates/redis-slave-statefulset.yaml" at <eq .Values.securityContext.runAsUser 0.0>: error calling eq: incompatible types for comparison

Ah, upgraded my helm server to 2.15.1 to match and that seemed to fix it

Resolved for me too. Closing issue.

I confirm the "incompatible types for comparison" issue with Tiller v2.15.0.
Upgrading Tiller to v2.15.1 solves the problem for me.

I am facing same issue with helm 2.16.0

Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing "redis/templates/redis-slave-statefulset.yaml" at <eq .Values.securityContext.runAsUser 0.0>: error calling eq: incompatible types for comparison

I am facing same issue with helm 2.16.0

Error: render error in "redis/templates/redis-slave-statefulset.yaml": template: redis/templates/redis-slave-statefulset.yaml:87:18: executing "redis/templates/redis-slave-statefulset.yaml" at <eq .Values.securityContext.runAsUser 0.0>: error calling eq: incompatible types for comparison

Can you run $ helm version and paste here the output?

v3.0.0 seems to have the issue as well https://github.com/helm/helm/issues/7023

Was this page helpful?
0 / 5 - 0 ratings