Helm:如何用名称中的句点覆盖值

时间:2018-03-27 21:34:39

标签: kubernetes-helm

我正在尝试编写Jenkins的脚本,以便我可以使用helm以编程方式创建和拆除Jenkins群集。我遇到了一个恼人的障碍,我无法在名称中设置带点的键。我的helm values.yaml文件如下所示:

'click #nextProduct'(event) {
  //push new input to form
}

安装--- rbac: install: true Master: HostName: jenkins.mycompany.com ServiceType: ClusterIP ImageTag: lts InstallPlugins: - kubernetes - workflow-aggregator - workflow-job - credentials-binding - git - blueocean - github - github-oauth ScriptApproval: - "method groovy.json.JsonSlurperClassic parseText java.lang.String" - "new groovy.json.JsonSlurperClassic" - "staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods leftShift java.util.Map java.util.Map" - "staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods split java.lang.String" - "method java.util.Collection toArray" - "staticMethod org.kohsuke.groovy.sandbox.impl.Checker checkedCall java.lang.Object boolean boolean java.lang.String java.lang.Object[]" - "staticMethod org.kohsuke.groovy.sandbox.impl.Checker checkedGetProperty java.lang.Object boolean boolean java.lang.Object" Ingress: Annotations: kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: "true" TLS: - secretName: jenkins-mycompany-com hosts: - jenkins.mycompany.com Memory: "2Gi" # This breaks the init container # RunAsUser: 1000 # FSGroup: 1000 Agent: Enabled: false ImageTag: latest cert-managerexternal-dns后(现在通过bash脚本)我安装它是这样的:

nginx-ingress

我根本没有读过letsencrypt文档,因此在整个测试过程中我使用了我的生产配额。我希望能够为helm install --values helm/jenkins.yml stable/jenkins Ingress添加注释,以便我可以继续测试(并将其设置为将来的默认值,在我准备好生产时重写)。 / p>

问题是......我无法弄清楚如何通过certmanager.k8s.io/cluster-issuer: letsencrypt-staging标志传递此信息,因为密钥名称中有句点。我试过了:

--set

helm install --values helm/jenkins.yml stable/jenkins --set Master.Ingress.Annotations.certmanager.k8s.io/cluster-issuer=letsencrypt-staging

我当然可以通过添加一个我用作标志的值来解决这个问题,但它不太明确。有没有办法直接设置它?

2 个答案:

答案 0 :(得分:9)

您需要用引号括起键,然后转义点

helm install --values helm/jenkins.yml stable/jenkins --set Master.Ingress.Annotations."certmanager\.k8s\.io/cluster-issuer"=letsencrypt-staging

答案 1 :(得分:3)

使用 \ 对键中的点进行转义。需要引号以防止 shell 解释 \ 字符。

helm install --values helm/jenkins.yml stable/jenkins --set 'Master.Ingress.Annotations.certmanager\.k8s\.io/cluster-issuer=letsencrypt-staging'

Helm 要求转义这些字符:. [ , =

来源:https://paul-boone.medium.com/helm-chart-install-advanced-usage-of-the-set-argument-3e214b69c87a