Atualizar uma implantação

Esta página descreve como usar o Gerenciador de infraestrutura para atualizar uma implantação. Os casos em que você pode atualizar uma implantação incluem:

  • Para retornar a infraestrutura a um estado escolhido.

    Quando você cria uma implantação, os recursos podem mudar depois de algum tempo. Por exemplo, alguns dos recursos podem ter sido modificados por alguém que trabalha no console. É possível atualizar a implantação usando a configuração original do Terraform para retornar ao estado escolhido.

  • Implementar mudanças na infraestrutura.

    Depois de criar uma implantação, talvez você queira modificar a infraestrutura. Por exemplo, adicionar novos recursos ou mudar parte da configuração. É possível atualizar a implantação usando uma configuração do Terraform que descreve a nova infraestrutura.

Nesta página, consideramos que você já conhece o Terraform. Para mais detalhes, consulte Terraform e Infra Manager.

Antes de começar

  1. Verifique se o Infra Manager está ativado.
  2. Verifique se você tem as permissões do IAM necessárias para criar implantações: 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 implantação do Infra Manager a ser atualizada.
  5. Identifique a configuração do Terraform a ser implantada para a atualização. Qualquer configuração pode ser usada para uma revisão. Essa configuração geralmente é uma versão idêntica ou atualizada da configuração já implantada.

    Verifique se essa configuração do Terraform está em conformidade com as restrições, incluindo se a configuração não contém dados sensíveis.

  6. Confirme a cota da sua organização para produtos associados à infraestrutura planejada. Você pode encontrar erros de implantação se a infraestrutura pretendida exceder a cota da sua organização para os produtos usados pela implantação. Consulte cotas e limites para mais informações.

  7. Siga as etapas necessárias para a migração de dados ou a continuidade do serviço dos recursos que você está modificando.

  8. Se você quiser conferir a atualização antes de configurar os recursos, consulte Conferir uma atualização de uma implantação.

Conceder permissões específicas para a configuração

Para implantar recursos do Google Cloud especificados na configuração do Terraform, a conta de serviço usada para chamar o Infra Manager precisa de permissões específicas para:

  • Recursos doGoogle Cloud definidos na configuração que você está usando para a revisão.

  • Se a configuração que você está usando para a revisão define recursos diferentes da configuração usada para a implantação, você precisa de permissões para os recursos definidos nas duas configurações.

As permissões específicas dos recursos definidos na configuração são adicionais às permissões que a conta de serviço precisa para usar o serviço Infra Manager.

Para detalhes sobre como conceder permissões para os recursos do Google Cloud e garantir que você tenha acesso aos projetos necessários, consulte Configurar a conta de serviço.

Conectar o repositório e o host Git particular ao Cloud Build

Se você estiver implantando uma configuração do Terraform em um repositório Git privado, será necessário conectar o host e o repositório do Git ao Cloud Build.

Atualizar uma implantação

Para atualizar uma implantação, implante uma configuração usando o mesmo nome de implantação, o que cria uma revisão. Para mais detalhes, consulte Visão geral de implantações e revisões.

Se você não tiver uma implantação, consulte Implantar infraestrutura usando o Infra Manager.

Para conferir uma prévia de uma atualização sem provisionar recursos, consulte Visualizar uma implantação.

Selecione a guia com o fluxo de trabalho escolhido para mais informações sobre como atualizar uma implantação.

Console

Esta seção descreve como atualizar uma configuração do Terraform usando o Infra Manager no console do Google Cloud.

Implante a configuração e crie uma revisão:

  1. No console do Google Cloud, acesse a página Infra Manager.

    Acessar o Infra Manager

  2. Na página Deployments, procure na coluna ID e clique na implantação que você quer atualizar.
  3. Na página com o ID da implantação, clique em Editar.
  4. Na página Detalhes da implantação, é possível modificar os campos Versão do Terraform, Conta de serviço, e Origem da configuração do Terraform. Se você fornecer um repositório Git particular, verifique se o host e o repositório estão conectados ao Cloud Build.

    Clique em Continuar.

  5. Na página Detalhes do Terraform, é possível modificar os valores de entrada da configuração do Terraform. Clique em Continuar.
  6. Na página Detalhes avançados, é possível modificar os campos Rótulos e anotações, Pools de workers e Bucket do bucket do Cloud Storage Storage.
  7. Clique em Atualizar quando estiver satisfeito com as mudanças feitas na implantação para iniciar o processo de atualização.

Para mais informações sobre os parâmetros de implantação e os formatos deles, consulte a documentação Implantar recursos.

CLI da gcloud

Esta seção descreve a implantação de uma configuração do Terraform armazenada em um bucket do Cloud Storage. Um bucket de armazenamento permite controlar o acesso à configuração.

  1. Verifique se a configuração do Terraform está em um bucket do Cloud Storage. Consulte Fazer upload de uma configuração para um bucket de armazenamento para mais detalhes.
  2. Se o bucket de armazenamento estiver em um projeto diferente daquele em que você está executando o Infra Manager, verifique se a conta de serviço do Infra Manager tem permissão de leitura para o bucket. Consulte Configurar a conta de serviço para mais detalhes.

    Se o bucket de armazenamento estiver no mesmo projeto que o Infra Manager, a permissão de leitura já estará ativada.

  3. Implante a configuração e crie uma revisão:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
Substitua:
  • PROJECT_ID: o ID do projeto em que o Infra Manager é executado.
  • LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação especificado. Consulte Nome da implantação para saber mais sobre as restrições do identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço usada para chamar o Infra Manager.
  • 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.

  • Opcional: QUOTA_VALIDATION: o valor que determina se a validação de cota para recursos nos arquivos de configuração do Terraform é ativada ou aplicada quando você cria uma implantação. Os valores possíveis incluem:
    • ENABLED: ative a validação da cota de computação para recursos em arquivos de configuração do Terraform. Oferece visibilidade dos recursos com cotas insuficientes.
    • ENFORCED: aplique a validação de cota para que a implantação falhe se não houver cota suficiente disponível para a infraestrutura definida no arquivo de configuração do Terraform.

    Se QUOTA_VALIDATION não for definido, a validação de cota nos arquivos de configuração do Terraform será desativada. Esse é o valor padrão. A validação de cota se aplica a recursos limitados do Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: todos os valores 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 vai usar para criar a implantação. Consulte versão do Terraform com suporte para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente do Terraform será usada.
  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par de chave-valor de texto em formato livre que pode ser anexado às implantações do Infra Manager. Para mais informações sobre o uso e as restrições de anotações e rótulos, consulte Anotações e rótulos.

CLI da gcloud

Esta seção descreve como trabalhar com uma configuração do Terraform armazenada em um repositório do Git.

  1. Verifique se você instalou o Git.
  2. Se a configuração do Terraform estiver armazenada em um repositório Git particular, verifique se o host e o repositório do Git estão conectados ao Cloud Build.
  3. Implante a configuração e crie uma revisão:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
Substitua:
  • PROJECT_ID: o ID do projeto em que o Infra Manager é executado.
  • LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação especificado. Consulte Nome da implantação para saber mais sobre as restrições do identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço usada para chamar o Infra Manager.
  • GIT_REPO: o repositório Git.
  • DIRECTORY: o diretório com a configuração do Terraform.
  • Opcional: REF: a referência do Git da configuração. A referência é opcional. Se você não especificar a referência, a ramificação configurada padrão do repositório do Git será usada.
  • Opcional: QUOTA_VALIDATION: o valor que determina se a validação de cota para recursos nos arquivos de configuração do Terraform é ativada ou aplicada quando você cria uma implantação. Os valores possíveis incluem:
    • ENABLED: ative a validação da cota de computação para recursos em arquivos de configuração do Terraform. Oferece visibilidade dos recursos com cotas insuficientes.
    • ENFORCED: aplique a validação de cota para que a implantação falhe se não houver cota suficiente disponível para a infraestrutura definida no arquivo de configuração do Terraform.

    Se QUOTA_VALIDATION não for definido, a validação de cota nos arquivos de configuração do Terraform será desativada. Esse é o valor padrão. A validação de cota se aplica a recursos limitados do Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: todos os valores 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 vai usar para criar a implantação. Consulte versão do Terraform com suporte para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente do Terraform será usada.
  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par de chave-valor de texto em formato livre que pode ser anexado às implantações do Infra Manager. Para mais informações sobre o uso e as restrições de anotações e rótulos, consulte Anotações e rótulos.

CLI da gcloud

Esta seção descreve como trabalhar com uma configuração do Terraform armazenada na máquina local.

  1. Se você usa o Cloud Shell, é necessário fazer upload da configuração para ele. Para mais detalhes, consulte Gerenciar arquivos com o Cloud Shell.
  2. Implante a configuração e crie uma revisão:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
Substitua:
  • PROJECT_ID: o ID do projeto em que o Infra Manager é executado.
  • LOCATION: o local em que o Infra Manager é executado. Consulte Locais do Infra Manager para ver a lista de locais válidos.
  • DEPLOYMENT_ID: o identificador de implantação especificado. Consulte Nome da implantação para saber mais sobre as restrições do identificador de implantação.
  • SERVICE_ACCOUNT_PROJECT_ID é o ID do projeto da conta de serviço. É comum que esse seja o mesmo projeto em que o Infra Manager é executado.
  • SERVICE_ACCOUNT: o nome da conta de serviço usada para chamar o Infra Manager.
  • LOCAL_DIRECTORY: o diretório local que armazena a configuração do Terraform. Se você estiver usando o Cloud Shell, esse é o diretório em que a configuração é armazenada.
  • Opcional: QUOTA_VALIDATION: o valor que determina se a validação de cota para recursos nos arquivos de configuração do Terraform é ativada ou aplicada quando você cria uma implantação. Os valores possíveis incluem:
    • ENABLED: ative a validação da cota de computação para recursos em arquivos de configuração do Terraform. Oferece visibilidade dos recursos com cotas insuficientes.
    • ENFORCED: aplique a validação de cota para que a implantação falhe se não houver cota suficiente disponível para a infraestrutura definida no arquivo de configuração do Terraform.

    Se QUOTA_VALIDATION não for definido, a validação de cota nos arquivos de configuração do Terraform será desativada. Esse é o valor padrão. A validação de cota se aplica a recursos limitados do Google Cloud . Para mais informações, consulte Cotas e limites.

  • INPUT_1_NAME e INPUT_2_NAME: todos os valores 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 vai usar para criar a implantação. Consulte versão do Terraform com suporte para conferir a lista de versões compatíveis. Se você remover essa flag opcional, a versão mais recente do Terraform será usada.
  • Opcional: ANNOTATION_KEY e ANNOTATION_VALUE representam um par de chave-valor de texto em formato livre que pode ser anexado às implantações do Infra Manager. Para mais informações sobre o uso e as restrições de anotações e rótulos, consulte Anotações e rótulos.

A seguir