Окружения и значения для каждого окружения
Перенос одной и той же конфигурации из dev в prod
«Окружения и значения для каждого окружения» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Один стек, много сред
В средах разработки, тестирования и эксплуатации работают одни и те же приложения с разными настройками. environments Helmfile позволяют аккуратно описать их все в одном файле.
Блок environments
Каждую среду Вы объявляете внутри расположенного на верхнем уровне блока environments. Каждое именованное окружение может загружать собственный файл значений.
environments:
dev:
values:
- envs/dev.yaml
prod:
values:
- envs/prod.yamlВыбор с помощью -e
Активное окружение выбирается в командной строке с помощью -e. После этого Helmfile загружает только значения выбранного окружения.
helmfile -e prod syncДерево .Environment.Values
Загруженные значения попадают в .Environment.Values. Вы обращаетесь к ним с помощью синтаксиса шаблонов Go в любом месте файла helmfile.yaml.
{{ .Environment.Values.replicaCount }}Разное количество реплик для окружений
Классический пример: в среде разработки запускается одна реплика, а в рабочей среде — много. Вы задаёте значение set через шаблон из окружения, а не прописываете его напрямую.
set:
- name: replicaCount
value: {{ .Environment.Values.replicaCount }}Общая база, переопределение для окружения
Сначала укажите базовый файл значений, затем файл окружения. Файл environment переопределяет только отличающиеся ключи, поэтому общая конфигурация хранится в одном месте.
values:
- envs/base.yaml
- envs/{{ .Environment.Name }}.yamlВспомогательное свойство .Environment.Name
.Environment.Name возвращает имя активного окружения в виде строки. Это удобно для именования, меток или динамического выбора пути к файлу.
namespace: app-{{ .Environment.Name }}Окружение по умолчанию
Определите окружение default, чтобы обычная команда helmfile продолжала работать без -e. Оно используется, когда окружение не указано.
environments:
default:
values:
- envs/dev.yamlВстроенные значения окружения
Небольшие различия можно указать непосредственно внутри окружения, а не в отдельном файле. Используйте values с отображением, содержащим всего один или два ключа.
environments:
prod:
values:
- replicaCount: 5Продвигайте без разветвления
Поскольку логика общая и меняются только значения, Вы promote один и тот же релиз из среды разработки в рабочую среду, переключая -e, а не копируя файлы.
Не храните секреты в открытом виде
Файлы значений окружения часто содержат конфиденциальную конфигурацию. Храните настоящие secrets в зашифрованном виде или в хранилище секретов, но никогда не сохраняйте их в открытом виде в этих файлах в Git.
Быстрая проверка
Вы хотите развернуть рабочую среду из файла helmfile.yaml. Как её выбрать?
Итоги: окружения
Вы научились определять environments, выбирать одно из них с помощью -e и читать .Environment.Values, чтобы переносить один и тот же стек между средами. Далее: применение конфигурации. 🚀
Часто задаваемые вопросы
Урок «Окружения и значения для каждого окружения» бесплатный?
Да — полный текст урока «Окружения и значения для каждого окружения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Окружения и значения для каждого окружения»?
Перенос одной и той же конфигурации из dev в prod Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Окружения и значения для каждого окружения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему Helmfile находится над Helm
- Определение выпусков в helmfile.yaml
- Окружения и значения для каждого окружения
- helmfile diff, apply и sync