Tokens "só state"
Uma pipeline que ainda não roda no Firstlume (seu CI, GitLab CI, etc.) pode usar o state dele com um token de state do stack. Assim ela ganha lock e versões antes de os runs migrarem.
Crie um token
curl -X POST -H "Authorization: Bearer $ADMIN" "$API/api/v1/orgs/$ORG/stacks/$STACK/state/tokens" \
-d '{"name": "ci", "write": true}' # "expires_at" é opcional
O token aparece só nessa resposta. Um token vale só para o stack dele.
GET .../state/tokens # lista os tokens, com o último uso
DELETE .../state/tokens/{id} # revoga um token
Permissões
- Leitura e escrita (
"write": true): lê, trava e grava. Cada versão gravada leva o nome do token. Uma trava do token não se solta sozinha: só com oUNLOCKdo próprio Terraform. - Só leitura: só lê. O plan roda com
-lock=false, então um token de leitura nunca segura uma unit.
Na pipeline
Com o root.hcl de Backend de state:
export FIRSTLUME_STATE_URL=https://firstlume.example.com/state/v1/stacks/$STACK
export TF_HTTP_USERNAME=firstlume TF_HTTP_PASSWORD=$FIRSTLUME_STATE_TOKEN
terragrunt run --all -- plan -lock=false # token de leitura
terragrunt run --all -- apply # token de escrita
Para mover uma pipeline que guarda o state num bundle, veja Migrar uma pipeline.