Как Хелм-установить массив объектов (массив карт)? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь установить Jenkins с Helm в кластер Kubernetes, но с tls (cert-manager, позволяет шифровать).

Сложность заключается в том, что ключ 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, но найден", обнаружена ошибка в # 10 байт ... |], "tls": ["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 Ответ

1 голос
/ 23 сентября 2019

Это было решено добавлением пользовательского 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 -имя jenkins -f my-values.yaml стабильный / jenkins

...