我正在尝试将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}
如何掌舵-正确设置此设置?
答案 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