Ответ
Да, постоянно создаю и поддерживаю Helm-чарты для развертывания приложений в Kubernetes. Это стандартный подход для управления конфигурацией.
Что я делал:
- Создавал чарты с нуля для внутренних микросервисов, используя
helm createкак основу, и затем кастомизировал шаблоны. - Шаблонизировал конфигурацию: Использовал условные операторы и функции Helm (
{{- if .Values.ingress.enabled -}},{{ tpl .Values.config . }}) для создания единого чарта, работающего вdev,stageиprodокружениях. - Работал с зависимостями: Подключал сторонние чарты (например,
redisилиpostgresql) черезChart.yamlи управлял их версиями. - Внедрял 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