jenkins - 如何 Helm 设置对象数组( map 数组)?

标签 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}

如果我尝试更改它,则会出现不同的错误:

no matches found: 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}

or

release jenkins failed: Ingress in version "v1beta1" cannot be handled as a Ingress: v1beta1.Ingress.Spec: v1beta1.IngressSpec.TLS: []v1beta1.IngressTLS: readObjectStart: expect { or n, but found ", error found in #10 byte of ...|],"tls":["secretName|..., bigger context ...|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}

如何正确设置 Helm?

最佳答案

通过添加自定义 my-values.yaml 解决了这个问题

我的值.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

关于jenkins - 如何 Helm 设置对象数组( map 数组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58065957/

相关文章:

kubernetes-helm - 我们可以在 Helm yaml 文件中使用 OR 运算符吗

java - 如何使用 Jenkins 的 groovy 自动安装 Maven 和 Java JDK8?

Jenkinsfile 管道,返回警告但不会失败

git - 如何在不克隆 Jenkins 的情况下监听子模块的变化

ios - "Unable to create XXX-Info.plist"使用 Jenkins 构建

kubernetes - 如何检查 Helm 安装失败的原因

kubernetes - 在 KubernetesExecutor 上运行 Airflow 时出现 Airflow 错误 "dag_id could not be found"

ssl - curl: (7) 无法连接到 xx.xx.xx.xx:80;连接被拒绝

kubernetes - 排查 Google kubernetes 负载均衡器不健康节点的问题

azure - Azure Kubernetes (AKS) 'Time-out' 会发生什么情况会断开集群中 Pod 进出的连接?