Интеграции с CI/CD и инфраструктурой
Обзор
Пассворк интегрируется с CI/CD-системами через passwork-cli. Основной паттерн:
CI/CD Runner ──► passwork-cli exec ──► Деплой-скрипт с секретами в ENV
| Система | Способ интеграции |
|---|---|
| GitLab CI | Docker-образ passwork/passwork-cli как image |
| GitHub Actions | Docker-контейнер через docker run |
| Bitbucket Pipelines | Docker-образ в pipe |
| Kubernetes | Init-контейнер или sidecar |
GitLab CI
Базовый пример
stages:
- deploy
deploy_prod:
stage: deploy
image: passwork/passwork-cli:latest
variables:
PASSWORK_HOST: $PASSWORK_HOST
PASSWORK_TOKEN: $PASSWORK_TOKEN
PASSWORK_MASTER_KEY: $PASSWORK_MASTER_KEY
script:
- passwork-cli exec --folder-id "$SECRETS_FOLDER_ID" ./deploy.sh
Настройка переменных
В Settings → CI/CD → Variables добавьте:
| Переменная | Тип | Protected | Masked |
|---|---|---|---|
PASSWORK_HOST | Variable | ✅ | ❌ |
PASSWORK_TOKEN | Variable | ✅ | ✅ |
PASSWORK_MASTER_KEY | Variable | ✅ | ✅ |
SECRETS_FOLDER_ID | Variable | ✅ | ❌ |
Разные окружения
.deploy_template: &deploy_template
image: passwork/passwork-cli:latest
variables:
PASSWORK_HOST: $PASSWORK_HOST
PASSWORK_TOKEN: $PASSWORK_TOKEN
PASSWORK_MASTER_KEY: $PASSWORK_MASTER_KEY
script:
- passwork-cli exec --folder-id "$SECRETS_FOLDER_ID" ./deploy.sh
deploy_staging:
<<: *deploy_template
stage: deploy
variables:
SECRETS_FOLDER_ID: $STAGING_SECRETS_FOLDER_ID
environment:
name: staging
deploy_production:
<<: *deploy_template
stage: deploy
variables:
SECRETS_FOLDER_ID: $PROD_SECRETS_FOLDER_ID
environment:
name: production
when: manual