Проверьте, есть ли значения.в свойстве yaml есть какие-либо записи, когда вы не знаете имен?

#kubernetes-helm

Вопрос:

У меня есть шаблон диаграммы руля, который выглядит следующим образом:

   volumes:
    - name: secrets
      projected:
        sources:
        {{- range $secretKey := .Values.secrets }}            
          - secret: 
              name: {{ $secretKey | kebabcase }}-secret
        {{- end }}
 

Это работает отлично, за исключением случаев, когда .Values.secrets в нем нет записей. Затем он выдает эту ошибку:

ошибка проверки данных: Ошибка проверки(Deployment.spec.template.spec.volumes[0].прогнозируется): отсутствует обязательное поле «источники» в io.k8s.api.core.v1.ProjectedVolumeSource

По сути, это жалобы, которые sources не имеют никаких ценностей.

Но я не могу найти способ проверить, чтобы делать этот раздел только тогда, когда .Значения.в секретах есть записи. Мои ценности.файл yaml заполняется автоматически и иногда не содержит никаких значений для секретов.

Но поскольку он заполняется автоматически, я не знаю имен содержащихся в нем значений. Таким образом, я не могу просто выполнить тест для одной из записей (как это делает большинство примеров).

Как я могу проверить, имеет ли .Values.secrets какие-либо значения?

Ответ №1:

Вам нужно только добавить условное суждение выше, и никакой объект не создается, когда нет значения.

Согласно документу helm, когда объект пуст, if оператор решает вернуться false .

Конвейер оценивается как ложный, если значение равно:

  • логическое значение false
  • числовой ноль
  • пустая строка
  • ноль (пустой или нулевой)
  • пустая коллекция (карта, срез, кортеж, дикт, массив)
 volumes:
{{- if .Values.secrets }}
- name: secrets
  projected:
    sources:
    {{- range $secretKey := .Values.secrets }}
    - secret:
        name: {{ $secretKey | kebabcase }}-secret
    {{- end }}
{{- end }}
 

случай 1:

ценности.yaml

 secrets:
 

выход:

 volumes:
 

случай 2:

ценности.yaml

 secrets:
  - "aaa"
  - "bbb"
 

выход:

 volumes:
  - name: secrets
    projected:
      sources:
      - secret:
          name: aaa-secret
      - secret:
          name: bbb-secret