Visualizar uma atualização de uma implantação

Nesta página, descrevemos como usar o Infrastructure Manager para visualizar a implantação de recursos definidos em uma configuração do Terraform.

Uma prévia descreve as ações para ativar uma configuração específica do Terraform. Antes de criar ou atualizar uma implantação, é possível visualizar a implantação para verificar os recursos que serão provisionados.

Uma prévia executa o comando Terraform plan. Nesta página, presumimos que você já conhece o Terraform. Para mais detalhes, consulte Terraform e Infrastructure Manager.

Para criar uma prévia, a configuração do Terraform precisa ser compatível com uma das versões do Terraform compatíveis.

Antes de começar

  1. Ative o Infra Manager.
  2. Verifique se você tem as permissões do IAM necessárias para criar prévias: roles/config.admin.
  3. Verifique se você tem uma conta de serviço com as permissões necessárias. Para detalhes, consulte Configurar a conta de serviço.
  4. Identifique a configuração do Terraform que você quer visualizar. Verifique se essa configuração do Terraform está em conformidade com as restrições, incluindo a ausência de dados sensíveis.

Visualizar uma atualização de uma implantação

A configuração do Terraform usada para atualizar uma implantação pode estar em um bucket de armazenamento ou em um repositório Git.

Você também usa essa configuração do Terraform para visualizar a atualização.

Visualizar usando uma configuração do Terraform armazenada em um bucket do Cloud Storage

Quando você atualiza uma implantação, alguns dos recursos atuais podem não mudar. Ao visualizar uma atualização, você vê quais recursos serão< provisionados ou excluídos e quais não serão modificados.

  1. Identifique a implantação que você quer atualizar.

  2. Verifique se a configuração do Terraform foi enviada para um bucket do Cloud Storage. Consulte Fazer upload de uma configuração para um bucket de armazenamento para mais detalhes.

    Um bucket de armazenamento permite controlar o acesso à configuração. Você também pode implantar uma configuração do Terraform armazenada em um repositório Git ou na sua máquina local.

  3. Para visualizar a atualização:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
        --provider-source=SERVICE_MAINTAINED
    

    Substitua:

    • PROJECT_ID é o ID do projeto em que o Infrastructure Manager é executado.
    • LOCATION é o local em que o Infra Manager é executado. Consulte Locais do Infrastructure Manager para ver a lista de locais válidos.
    • PREVIEW_ID é o identificador de prévia especificado. Consulte Nome da prévia para detalhes sobre as restrições do identificador de prévia.
    • SERVICE_ACCOUNT é o nome da conta de serviço que você usa para chamar o Infra Manager.
    • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Geralmente, é o mesmo projeto em que o Infra Manager é executado.
    • DEPLOYMENT_ID é o identificador da implantação que você quer atualizar.
    • BUCKET_NAME é o nome do bucket de armazenamento em que a configuração está armazenada.
    • OBJECT_NAME é o nome do objeto do arquivo de configuração. Esse objeto pode ser um diretório ou um arquivo ZIP, mas não um arquivo do Terraform. Se você estiver usando o controle de versões de objetos, também poderá especificar o número de geração do objeto. Para mais detalhes, consulte Usar objetos com versão.

      Se o bucket de armazenamento for o caminho raiz da configuração do Terraform, OBJECT_NAME será opcional.

    • INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: qualquer valor de entrada na configuração do Terraform, incluindo aqueles que não são definidos por padrão. Por exemplo, é possível especificar o projeto em que você implanta os recursos como project_id=my-project.

      Se todos os valores de entrada forem definidos por padrão na configuração, essa flag será opcional.

    • Opcional: TERRAFORM_VERSION: a versão do Terraform que o Infra Manager usa para criar a implantação. Consulte a versão compatível do Terraform para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente compatível do Terraform será usada.

    • Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform para Google Cloud a implantação usa. Defina como SERVICE_MAINTAINED para usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para Google Cloud.

    Os campos da implantação, como a configuração do Terraform, as variáveis e a conta de serviço, são mesclados automaticamente na prévia, a menos que você especifique novos valores no comando de prévia.

Agora que você criou uma prévia, é possível exportar e conferir os resultados para analisar o plano de implantação.

Visualizar usando uma configuração do Terraform armazenada em um repositório Git

Quando você atualiza uma implantação, alguns dos recursos atuais podem não mudar. Ao visualizar uma atualização, você vê quais recursos serão< provisionados ou excluídos e quais não serão modificados.

  1. Se a configuração do Terraform estiver armazenada em um repositório Git particular e você ainda não tiver feito isso, conecte-se ao host do GitHub e ao repositório do GitHub usando o Cloud Build para dar acesso do Infra Manager ao seu repositório.
  2. Para atualizar uma implantação:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --git-source-repo="GIT_REPO" \
        --git-source-directory="DIRECTORY" \
        --git-source-ref="REF" \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
        --provider-source=SERVICE_MAINTAINED
    

    Substitua:

    • PROJECT_ID é o ID do projeto em que o Infrastructure Manager é executado.
    • LOCATION é o local em que o Infra Manager é executado. Consulte Locais do Infrastructure Manager para ver a lista de locais válidos.
    • PREVIEW_ID é o identificador de prévia especificado. Consulte Nome da prévia para detalhes sobre as restrições do identificador de prévia.
    • SERVICE_ACCOUNT é o nome da conta de serviço que você usa para chamar o Infra Manager.
    • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. Geralmente, é o mesmo projeto em que o Infra Manager é executado.
    • DEPLOYMENT_ID é o identificador da implantação que você quer atualizar.
    • GIT_REPO: o repositório Git.
    • DIRECTORY: o diretório que tem a configuração do Terraform.
    • REF: a referência do Git da configuração. A referência é opcional. Se você não especificar a referência, será usada a ramificação padrão configurada do repositório Git.
    • INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: qualquer valor de entrada na configuração do Terraform, incluindo aqueles que não são definidos por padrão. Por exemplo, é possível especificar o projeto em que você implanta os recursos como project_id=my-project.

      Se todos os valores de entrada forem definidos por padrão na configuração, essa flag será opcional.

    • Opcional: TERRAFORM_VERSION: a versão do Terraform que o Infra Manager usa para criar a implantação. Consulte a versão compatível do Terraform para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente compatível do Terraform será usada.

    • Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform para Google Cloud a implantação usa. Defina como SERVICE_MAINTAINED para usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para Google Cloud.

Os campos da implantação, como a configuração do Terraform, as variáveis e a conta de serviço, são mesclados automaticamente na prévia, a menos que você especifique novos valores no comando de prévia.

Agora que você criou uma prévia, é possível exportar e conferir os resultados para analisar o plano de implantação.

A seguir