无法从发布清单构建 kubernetes 对象

zer*_*ing 4 kubernetes kubernetes-ingress

我正在尝试按以下方式部署港口:

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  
Run Code Online (Sandbox Code Playgroud)

我有:

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|...  
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

hoq*_*que 6

错误表明 的值 "ingress.kubernetes.io/force-ssl-redirect":true不是字符串,它正在扩展字符串,例如"ingress.kubernetes.io/force-ssl-redirect":"true"

您可以通过强制将布尔注释值设置为字符串,使用--set-string如下所示

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 
Run Code Online (Sandbox Code Playgroud)