Писал ли манифесты Helm?

«Писал ли манифесты Helm?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, постоянно создаю и поддерживаю Helm-чарты для развертывания приложений в Kubernetes. Это стандартный подход для управления конфигурацией.

Что я делал:

  1. Создавал чарты с нуля для внутренних микросервисов, используя helm create как основу, и затем кастомизировал шаблоны.
  2. Шаблонизировал конфигурацию: Использовал условные операторы и функции Helm ({{- if .Values.ingress.enabled -}}, {{ tpl .Values.config . }}) для создания единого чарта, работающего в dev, stage и prod окружениях.
  3. Работал с зависимостями: Подключал сторонние чарты (например, redis или postgresql) через Chart.yaml и управлял их версиями.
  4. Внедрял best practices: Использовал helm-docs для генерации документации, helm-secrets (sops) для шифрования чувствительных данных в values.yaml и настраивал тесты (helm test).

Пример структуры values.yaml для разных окружений:

# values-prod.yaml
replicaCount: 5
image:
  tag: "stable-v1.2.3"
resources:
  limits:
    memory: 512Mi

# values-dev.yaml
replicaCount: 1
image:
  tag: "latest"
resources:
  limits:
    memory: 256Mi

Развертывание выполнялось командой вида:

helm upgrade --install my-app ./chart -f values-prod.yaml -n production