Nesta página, descrevemos como usar o Infrastructure Manager para atualizar uma implantação. Os casos em que você pode atualizar uma implantação incluem:
Para retornar sua 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.
Para implementar mudanças na infraestrutura.
Depois de criar uma implantação, talvez você queira modificar a infraestrutura. Por exemplo, adicionar novos recursos ou mudar algumas configurações. É possível atualizar a implantação usando uma configuração do Terraform que descreve a nova infraestrutura.
Nesta página, presumimos que você já conhece o Terraform. Para mais detalhes, consulte Terraform e Infra Manager.
Antes de começar
- Verifique se o Infra Manager está ativado.
- Verifique se você tem as permissões do IAM necessárias para criar implantações:
roles/config.admin - Verifique se você tem uma conta de serviço com as permissões necessárias. Para mais detalhes, consulte Configurar a conta de serviço.
- Identifique a implantação do Infra Manager que será atualizada.
Identificar 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 obedece às restrições, incluindo que ela não contenha dados sensíveis.
Confirme a cota da sua organização para produtos associados à infraestrutura pretendida. Podem ocorrer 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.
Siga as etapas necessárias para a migração de dados ou a continuidade do serviço dos recursos que você está modificando.
Se você quiser visualizar a atualização antes de configurar os recursos, consulte Visualizar uma atualização em 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:
Google Cloud recursos definidos na configuração que você está usando para a revisão.
Se a configuração que você está usando para a revisão definir recursos diferentes daqueles usados para a implantação, você precisará de permissões para os recursos definidos em ambas as configurações.
As permissões específicas para os recursos definidos na configuração são adicionais às permissões que a conta de serviço precisa para usar o serviço do Infra Manager.
Para saber 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.
Connect your private Git repository and host to Cloud Build
If you are deploying a Terraform configuration from a private Git repository, you need to connect your Git host and repository to Cloud Build.
GitHub
GitHub Enterprise
GitLab
GitLab Enterprise
Developer Connect
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 visualizar 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
Nesta seção, descrevemos 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:
- No console do Google Cloud , acesse a página Infra Manager.
- Na página Implantações, procure na coluna ID e clique na implantação que você quer atualizar.
- Na página com o título do ID da implantação, clique em Editar.
- 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 conectou o host e o repositório ao Cloud Build.
Clique em Continuar.
- Na página Detalhes do Terraform, é possível modificar os Valores de entrada da configuração do Terraform. Clique em Continuar.
- Na página Detalhes avançados, é possível modificar os campos Rótulos e anotações, Pools de workers e Bucket do Cloud Storage de artefatos.
- 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
Nesta seção, descrevemos como implantar uma configuração do Terraform armazenada em um bucket do Cloud Storage. Um bucket de armazenamento permite controlar o acesso à configuração.
- 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.
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 para o bucket já estará ativada.
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 \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" \ --provider-source=SERVICE_MAINTAINED
- 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 que você especificar. Consulte Nome da implantação para detalhes sobre as restrições no 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 que você usa 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 controle de 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 está ativada ou aplicada quando você cria uma implantação. Os valores possíveis são os seguintes:
ENABLED: ativa a validação da cota de computação para recursos nos arquivos de configuração do Terraform. Oferece visibilidade sobre recursos com cotas insuficientes.ENFORCED: aplica 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: 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 para o Infra Manager usar para atualizar a implantação. Consulte a versão compatível do Terraform para ver a lista de versões compatíveis. Se você remover essa flag opcional, o Infra Manager vai usar a versão do Terraform da implantação atual ou, por padrão, a versão mais recente do nível sem custo financeiro (
1.5.7). Para fazer upgrade para uma versão paga (como1.16.5), é necessário especificar a versão explicitamente. - 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.
- Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform
para Google Cloud a implantação usa. Defina como
SERVICE_MAINTAINEDpara usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor do Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para o Google Cloud.
CLI da gcloud
Nesta seção, descrevemos como trabalhar com uma configuração do Terraform armazenada em um repositório Git.
- Verifique se o Git está instalado.
- Se a configuração do Terraform estiver armazenada em um
repositório Git privado , verifique se o host e o repositório Git estão conectados ao Cloud Build. 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 \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" \ --provider-source=SERVICE_MAINTAINED
- 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 que você especificar. Consulte Nome da implantação para detalhes sobre as restrições no 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 que você usa para chamar o Infra Manager.
- GIT_REPO: o repositório Git.
- DIRECTORY: o diretório que tem 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 padrão configurada do repositório 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 está ativada ou aplicada quando você cria uma implantação. Os valores possíveis são os seguintes:
ENABLED: ativa a validação da cota de computação para recursos nos arquivos de configuração do Terraform. Oferece visibilidade sobre recursos com cotas insuficientes.ENFORCED: aplica 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 estiver 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: 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 para o Infra Manager usar para atualizar a implantação. Consulte a versão compatível do Terraform para ver a lista de versões compatíveis. Se você remover essa flag opcional, o Infra Manager vai usar a versão do Terraform da implantação atual ou, por padrão, a versão mais recente do nível sem custo financeiro (
1.5.7). Para fazer upgrade para uma versão paga (como1.16.5), é necessário especificar a versão explicitamente. - 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.
- Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform
para Google Cloud a implantação usa. Defina como
SERVICE_MAINTAINEDpara usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor do Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para o Google Cloud.
CLI da gcloud
Nesta seção, descrevemos como trabalhar com uma configuração do Terraform armazenada na máquina local.
- Se você usa o Cloud Shell, precisa fazer upload da configuração para ele. Para mais detalhes, consulte Gerenciar arquivos com o Cloud Shell.
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 \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" \ --provider-source=SERVICE_MAINTAINED
- 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 que você especificar. Consulte Nome da implantação para detalhes sobre as restrições no 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 que você usa 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 está ativada ou aplicada quando você cria uma implantação. Os valores possíveis são os seguintes:
ENABLED: ativa a validação da cota de computação para recursos nos arquivos de configuração do Terraform. Oferece visibilidade sobre recursos com cotas insuficientes.ENFORCED: aplica 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: 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 para o Infra Manager usar para atualizar a implantação. Consulte a versão compatível do Terraform para ver a lista de versões compatíveis. Se você remover essa flag opcional, o Infra Manager vai usar a versão do Terraform da implantação atual ou, por padrão, a versão mais recente do nível sem custo financeiro (
1.5.7). Para fazer upgrade para uma versão paga (como1.16.5), é necessário especificar a versão explicitamente. - 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.
- Opcional: PROVIDER_SOURCE: determina qual provedor do Terraform
para Google Cloud a implantação usa. Defina como
SERVICE_MAINTAINEDpara usar o provedor do Terraform mantido pelo Infra Manager. Omita esse campo para usar o provedor do Terraform mantido pela HashiCorp. Para mais informações, consulte Usar o provedor do Terraform para o Google Cloud.