0Pricing
DevOps Bootcamp · Урок

Окружения и значения для каждого окружения

Перенос одной и той же конфигурации из 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 — локальная установка не требуется.

Все уроки этого курса

  1. Почему Helmfile находится над Helm
  2. Определение выпусков в helmfile.yaml
  3. Окружения и значения для каждого окружения
  4. helmfile diff, apply и sync
← Назад к DevOps Bootcamp