Переменные окружения
Skitflow позволяет создавать и управлять общими переменными окружения и переменными уровня сервиса для ваших проектов и окружений.
Обзор
Переменные окружения в Skitflow позволяют:
- Определить конфигурацию один раз и использовать повторно
- Разделять значения между несколькими сервисами
- Ссылаться на значения из того же сервиса
- Централизованно управлять конфиденциальной информацией
Определение переменных
Вы можете объявить переменные окружения на следующих уровнях:
- Уровень проекта (общие) — доступны для всех сервисов в проекте
- Уровень окружения — специфичны для отдельного окружения
- Уровень сервиса — специфичны для отдельного сервиса
Переменные уровня проекта
Практический пример
Рассмотрим типичный сценарий, когда у вас есть:
- База данных PostgreSQL
- Два сервиса, которым нужно подключиться к этой базе данных
1. Определение общей переменной
В разделе общих переменных проекта определите:
DATABASE_URL=postgresql://postgres:postgres@database:5432/postgres2. Использование переменной в сервисах
На вкладке переменных окружения каждого сервиса сошлитесь на общую переменную:
DATABASE_URL=${{project.DATABASE_URL}}Skitflow автоматически заменит ${{project.DATABASE_URL}} значением, определённым в общих переменных проекта.
Вы можете использовать общие переменные окружения во всех сервисах, доступных в Skitflow.
Переменные уровня окружения
Практический пример
Рассмотрим сценарий, когда у вас есть:
- Staging-окружение с другими учётными данными базы данных
- Несколько сервисов, которым нужны конфигурации, специфичные для окружения
1. Определение переменной окружения
В разделе переменных окружения определите:
DATABASE_PASSWORD=staging_secret_password
API_KEY=staging_api_key_123452. Использование переменной в сервисах
На вкладке переменных окружения каждого сервиса сошлитесь на переменную окружения:
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}}.
Лучшие практики
- Используйте общие переменные для учётных данных и конфигураций, повторяющихся в разных сервисах
- Используйте описательные имена переменных
- Документируйте назначение каждой переменной для удобства обслуживания