Create / update
Выбираешь provider, окружение, тип, образ, регион, SSH-ключ, диски и роли. Backend запускает pipeline, а manual jobs подтверждаются прямо здесь через Play.
GitLab Terraform Pipeline
Before launch
Выбираешь provider, окружение, тип, образ, регион, SSH-ключ, диски и роли. Backend запускает pipeline, а manual jobs подтверждаются прямо здесь через Play.
Передаётся ID существующего instance/server. Tags лучше заполнить текущими значениями из cloud, чтобы Terraform plan не пытался их удалить или заменить.
Удаляемый ресурс выбирается по state: ENVIRONMENT-CLOUD_PROVIDER-INSTANCE_NAME. Для stage/prod и опасных действий backend проверяет роль пользователя.
Логин через GitLab OAuth. Trigger token и cloud credentials остаются на backend/GitLab CI variables. Play/Retry/Cancel тоже проходят проверку прав на backend.
CLOUD_PROVIDER, ENVIRONMENT, TF_ACTION, INSTANCE_NAME, INSTANCE_TYPE, INSTANCE_IMAGE, INSTANCE_LOCATION.
Диски собираются в EXTRA_VOLUMES_JSON. Tags/labels собираются в RESOURCE_TAGS_JSON.
При включённом Ansible передаются RUN_ANSIBLE=true, ANSIBLE_CHECK, роли через ROLE_* и role vars, например users_append/pubkeys_append.