如何掌舵-设置对象数组(地图数组)?

时间:2019-09-23 15:46:25

标签: jenkins kubernetes-helm kubernetes-ingress

我正在尝试将Jenkins with Helm安装到Kubernetes集群中,但要使用tls(证书管理器,让其加密)。

困难在于,键master.ingress.tls需要一个数组,一个对象数组。

helm install --name jenkins --namespace jenkins --set
master.serviceType=ClusterIP,master.ingress.enabled=true,
master.ingress.hostName=jenkins.mydomain.com,
master.ingress.annotations."certmanager\.k8s\.io\/cluster-issuer"=letsencrypt-prod,
master.ingress.tls={hosts[0]=jenkins.mydomain.com,
secretName=jenkins-cert} stable/jenkins

相关部分是:

master.ingress.tls={hosts[0]=jenkins.mydomain.com,secretName=jenkins-cert}

与此同时,如果我尝试更改它,也会出现不同的错误:

  

未找到匹配项:   master.serviceType = ClusterIP,master.ingress.enabled = true,master.ingress.hostName = jenkins.mydomain.com,master.ingress.annotations.certmanager.k8s.io / cluster-issuer = letsencrypt-prod,master.ingress。 tls = {master.ingress.tls [0] .secretName = jenkins-cert}

     

     

版本jenkins失败:无法处理版本“ v1beta1”中的入口   作为Ingress:v1beta1.Ingress.Spec:v1beta1.IngressSpec.TLS:   [] v1beta1.IngressTLS:readObjectStart:期望{或n,但找到“   在... |],“ tls”的#10字节中发现错误:[“ secretName | ...,更大   语境   ... | eName“:” jenkins“,” servicePort“:8080}}}}}],” tls“:[” secretName:jenkins-cert“]}}}

尝试this会返回上面的第一个错误。

尝试了不同的解决方案:

- {hosts[0]=jenkins.mydomain.com,secretName=jenkins-cert}
- {"hosts[0]=jenkins.mydomain.com","secretName=jenkins-cert"}
- {hosts[0]:jenkins.mydomain.com,secretName:jenkins-cert}
- "{hosts[0]=jenkins.mydomain.com,secretName=jenkins-cert}"
- master.ingress.tls[0].secretName=jenkins-cert
- {master.ingress.tls[0].hosts[0]=jenkins.mydomain.com,master.ingress.tls[0].secretName=jenkins-cert}

如何掌舵-正确设置此设置?

1 个答案:

答案 0 :(得分:1)

此问题已解决,添加了一个自定义my-values.yaml

my-values.yaml:

master:
  jenkinsUrlProtocol: "https"
  ingress:
    enabled: true
    apiVersion: "extensions/v1beta1"
    labels: {}
    annotations: 
      kubernetes.io/ingress.class: nginx
      kubernetes.io/tls-acme: "true"
      kubernetes.io/ssl-redirect: "true"
    hostName: jenkins.mydomain.com
    tls:
      - hosts:
        - jenkins.mydomain.com
        secretName: cert-name

安装命令:

  

helm install --name jenkins -f my-values.yaml stable / jenkins