Skitflow

Переменные окружения

Skitflow позволяет создавать и управлять общими переменными окружения и переменными уровня сервиса для ваших проектов и окружений.

Обзор

Переменные окружения в Skitflow позволяют:

  • Определить конфигурацию один раз и использовать повторно
  • Разделять значения между несколькими сервисами
  • Ссылаться на значения из того же сервиса
  • Централизованно управлять конфиденциальной информацией
Environment variables panel

Определение переменных

Вы можете объявить переменные окружения на следующих уровнях:

  • Уровень проекта (общие) — доступны для всех сервисов в проекте
  • Уровень окружения — специфичны для отдельного окружения
  • Уровень сервиса — специфичны для отдельного сервиса

Переменные уровня проекта

Практический пример

Рассмотрим типичный сценарий, когда у вас есть:

  • База данных PostgreSQL
  • Два сервиса, которым нужно подключиться к этой базе данных

1. Определение общей переменной

В разделе общих переменных проекта определите:

DATABASE_URL=postgresql://postgres:postgres@database:5432/postgres

2. Использование переменной в сервисах

На вкладке переменных окружения каждого сервиса сошлитесь на общую переменную:

DATABASE_URL=${{project.DATABASE_URL}}

Skitflow автоматически заменит ${{project.DATABASE_URL}} значением, определённым в общих переменных проекта.

Вы можете использовать общие переменные окружения во всех сервисах, доступных в Skitflow.

Переменные уровня окружения

Практический пример

Рассмотрим сценарий, когда у вас есть:

  • Staging-окружение с другими учётными данными базы данных
  • Несколько сервисов, которым нужны конфигурации, специфичные для окружения

1. Определение переменной окружения

В разделе переменных окружения определите:

DATABASE_PASSWORD=staging_secret_password
API_KEY=staging_api_key_12345

2. Использование переменной в сервисах

На вкладке переменных окружения каждого сервиса сошлитесь на переменную окружения:

DATABASE_URL=postgresql://postgres:${{environment.DATABASE_PASSWORD}}@staging-db:5432/postgres
EXTERNAL_API_KEY=${{environment.API_KEY}}

Skitflow автоматически заменит ${{environment.VARIABLE_NAME}} значением, определённым в переменных окружения.

Вы можете использовать переменные окружения во всех сервисах, доступных в данном конкретном окружении.

Переменные уровня сервиса

Переменные уровня сервиса специфичны для отдельного сервиса и могут использоваться для переопределения общих переменных или определения конфигураций, специфичных для сервиса.

Практический пример

Допустим, у вас есть сервис, которому нужен другой пользователь базы данных. Вы можете определить переменную уровня сервиса:

DATABASE_USER=service_user
DATABASE_PASSWORD=service_password
DATABASE_URL=postgresql://${{DATABASE_USER}}:${{DATABASE_PASSWORD}}@service-database:5432/postgres

Окружения Preview Deployments также включают переменную уровня сервиса SKITFLOW_DEPLOY_URL, которая указывает на URL развёртывания сервиса. Её можно использовать как ${{SKITFLOW_DEPLOY_URL}} для переменных типа APP_URL=https://${{SKITFLOW_DEPLOY_URL}}.

Лучшие практики

  • Используйте общие переменные для учётных данных и конфигураций, повторяющихся в разных сервисах
  • Используйте описательные имена переменных
  • Документируйте назначение каждой переменной для удобства обслуживания

On this page