#kubernetes #yaml #kubernetes-helm #kubernetes-pod #datadog
#kubernetes #yaml #kubernetes-helm #kubernetes-pod #datadog
Вопрос:
Я развертываю модуль kubernetes с использованием helm v3, мои клиент и сервер kubectl выше 1.7, поэтому он должен поддерживать ссылочные поля. Однако при развертывании значение просто пустое.
использование
environment:
- name: DD_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
Где DD_AGENT_HOST — это моя переменная env, которой должен быть присвоен IP-адрес хоста.
Есть идеи, почему это может происходить?
Комментарии:
1. Исправлено, по-видимому, helm не копирует его правильно
2. Можете ли вы опубликовать это как ответ, чтобы быть более заметным для сообщества?
Ответ №1:
Пришлось добавить это в спецификацию контейнера напрямую, не передавая из env и используя include
from helm, поскольку это не работает
Ответ №2:
Проблема связана с шаблоном развертывания приложения helm (ЕСЛИ вы его используете). Например, если у вас есть развертывание.yaml с
env:
{{- range .Values.env }}
- name: {{ .name }}
value: {{ .value | quote }}
{{- end }}
И одно из env
значений заключается valueFrom
в том, что вы должны добавить явно (если нет более удобного способа сделать это):
- name: DD_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
В противном случае копия range
вышеуказанного не будет использоваться valueFrom
и в результате DD_AGENT_HOST
будет пустой