unable to build kubernetes objects from release manifest

5/7/2020

I am trying deploy harbor as the following:

helm install hub harbor/harbor \
  --namespace prod \
  --set expose.ingress.hosts.core=hub.service.example.io \
  --set expose.ingress.annotations.'kubernetes\.io/ingress\.class'=contour \
  --set expose.ingress.annotations.'cert-manager\.io/cluster-issuer'=letsencrypt-prod \
  --set expose.ingress.annotations.'ingress\.kubernetes\.io/force-ssl-redirect'="true" \
  --set expose.ingress.annotations.'kubernetes\.io/tls-acme'="true" \
  --set externalURL=https://hub.service.example.io \
  --set expose.tls.secretName=secret \
  --set notary.enabled=false \
  --set secretkey=secret \
  --set harborAdminPassword=serect  

And I've got:

Error: unable to build kubernetes objects from release manifest: unable to decode "": resource.metadataOnlyObject.ObjectMeta: v1.ObjectMeta.Annotations: ReadString: expects " or n, but found t, error found in #10 byte of ...|edirect":true,"ingre|..., bigger context ...|prod","ingress.kubernetes.io/force-ssl-redirect":true,"ingress.kubernetes.io/proxy-body-size":"0","i|...  

What am I doing wrong?

-- zero_coding
kubernetes
kubernetes-ingress

1 Answer

5/7/2020

The error shows that the value of "ingress.kubernetes.io/force-ssl-redirect":true is not string, it's expting string like "ingress.kubernetes.io/force-ssl-redirect":"true"

You can set the boolean annotation value as string by forcing, using --set-string like following

helm install hub harbor/harbor \
 --namespace prod \
 --set expose.ingress.hosts.core=hub.service.example.io \
 --set expose.ingress.annotations.'kubernetes\.io/ingress\.class'=contour \
 --set expose.ingress.annotations.'cert-manager\.io/cluster-issuer'=letsencrypt-prod \
 --set-string expose.ingress.annotations.'ingress\.kubernetes\.io/force-ssl-redirect'="true" \
 --set-string expose.ingress.annotations.'kubernetes\.io/tls-acme'="true" \
 --set externalURL=https://hub.service.example.io \
 --set expose.tls.secretName=secret \
 --set notary.enabled=false \
 --set secretkey=secret \
 --set harborAdminPassword=serect 
-- hoque
Source: StackOverflow