如何解决GitLab CI/CD AutoDevOps 自定义 Helm 安装转义 ingress.annotation 字符串
我需要根据管道 yaml 文件中的变量动态调整入口注释。 “normal”属性工作正常,但注释有特殊字符,我似乎无法找到正确使用它的方法。 精细工作如下:
HELM_UPGRADE_EXTRA_ARGS: "
--set application.secretName=$APPLICATION_SECRET_NAME \
--set livenessProbe.path=$HEALTHCHECK_PATH \
--set readinessProbe.path=$HEALTHCHECK_PATH \
--set livenessProbe.scheme=$HTTPS_SCHEME \
--set readinessProbe.scheme=$HTTPS_SCHEME \
--set ingress.tls.enabled=$tlsEnabled \
--set ingress.tls.secretName=$certName \
--set service.externalPort=$SERVER_PORT \
--set service.internalPort=$SERVER_PORT"
现在我想在最终的yaml中添加像这样嵌套的属性ssl paththrough:
Metadata:
name: my-service-ingress
namespace: my-service
annotations:
Nginx.ingress.kubernetes.io/ssl-passthrough: "true"
如您所见,该属性有一个带有特殊字符的长名称。和 / 我已经尝试过像在直接 bash 环境中一样转义它们,但这在这里似乎不起作用,我将这些参数存储在 yaml 变量中,管道将使用该变量来创建显示的 yaml 文件。 我的尝试:
--set-string ingress.annotations."Nginx\.ingress\.kubernetes\.io/ssl-passthrough"=$sslPaththrough \
非常感谢任何想法或提示!
解决方法
正确的方法(现在为我工作)似乎是双重转义属性名称中的点并且不显示层次结构:
--set-string ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/ssl-passthrough=$sslPaththrough \
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。