Firstlume Docs firstlume.io PTEN EN Fale com a gente

Importar um state existente

Um bundle tar.gz (ou um terraform.tfstate avulso) vira o state das units de um stack.

Como os arquivos viram units

  • Cada <caminho>/terraform.tfstate do bundle vira a unit <caminho>. Um state dentro do .terragrunt-cache de uma unit vai para a unit.
  • prefix remove o começo dos caminhos, para que a chave fique igual ao path_relative_to_include().
  • Backups (*.tfstate.backup), pastas .terraform e metadados do macOS (._*) são ignorados.
  • Qualquer outro arquivo, link, caminho com .. ou state inválido recusa o bundle inteiro, com a lista do que está errado.
  • A importação grava tudo ou nada.

Simule, depois importe

# Simula: mostra, por unit, serial, recursos e o que aconteceria. Não grava nada.
curl -X POST -H "Authorization: Bearer $ADMIN" "$API/api/v1/orgs/$ORG/stacks/$STACK/state/import?dry_run=true" \
  -F [email protected] -F prefix=environments/prod
# Importa.
curl -X POST -H "Authorization: Bearer $ADMIN" "$API/api/v1/orgs/$ORG/stacks/$STACK/state/import" \
  -F [email protected] -F prefix=environments/prod

Units que já têm state

Uma unit sem state ganha a versão 1. Uma unit que já tem state aparece como um destes, e só muda se for marcada com -F replace=<unit> (uma vez por unit):

Resultado Significado
same igual ao state atual
newer mais novo que o state atual
older mais antigo que o state atual
conflict outro lineage

Uma unit substituída ganha uma versão nova, e o histórico fica. Se o state importado tiver o mesmo lineage e um serial que não passa do atual, o serial sobe, para que um plano salvo antes não seja aplicado em cima dele.

Uma unit travada não pode receber importação.

A importação pela UI vem com a aba State, que está planejada.