Stay organized with collectionsSave and categorize content based on your preferences.
Infrastructure Manager (Infra Manager) automates the deployment and
management of Google Cloud infrastructure resources using Terraform.
Infra Manager allows you to deploy programmatically to Google Cloud,
allowing you to use this service rather than maintaining a different
toolchain to work with Terraform on Google Cloud.
A Terraform configuration defines the infrastructure. The configuration is
deployed onto Google Cloud by Infra Manager, enabling you to
manage resources using Infrastructure as Code (IaC).
Infra Manager does not manage the deployment of applications onto
your resources. To manage application deployment, you can use Google Cloud
products likeCloud BuildandCloud Deploy. You can also use third-party tools or your
own toolchain.
To work with Infra Manager, you should be familiar with Terraform.
To learn more about Terraform, start
with HashiCorp'sWhat is Terraform?.
Infra Manager allows you to use IaC to manage the lifecycle of
Google Cloud resources:
Terraform is defined declaratively in aTerraform configuration. This means
that the configuration describes the end state of your infrastructure.
You can version the Terraform configuration either in a Git repository, or
in aCloud Storage bucket.
UseObject Versioningto version
configurations in a storage bucket.
Use Infra Manager to update your infrastructure deployment
withrevisions. For each revision, Infra Manager
stores the following:
Logs
The configuration used to do the revision
The list of Google Cloud resources created by the revision
The state file created as part of each deployment and revision
The following is a description of what happens in a simple scenario when you
use Infra Manager to deploy infrastructure.
The infrastructure resources to deploy onto Google Cloud are defined in a
Terraform configuration.
You can create this file yourself, or use a configuration
that is already written for Google Cloud. SeeTerraform and Infrastructure Managerfor details.
You can store the Terraform configuration in a Cloud Storage bucket, a
Git repository, or on your local machine.
When you use Infra Manager to deploy resources from a Terraform
configuration, you create a deployment. To create a deployment,
Infra Manager:
Validates the request. For example, it ensures that in your command you
specified the location of the Terraform configuration.
Creates a Cloud Build job using a container image. This image is
owned and maintained by Google Cloud. SeeRuntime environmentfor details about the
Cloud Build environment. The Cloud Build job automates the
following tasks:
Downloads the Terraform module from the storage bucket or Git
repository.
Initializes Terraform (terraform init)
Validates the Terraform configuration (terraform validate)
Actuates the configuration (terraform apply, orterraform destroyif you are deleting a deployment)
Streams Cloud Build logs into a
storage bucket created by Infra Manager.
If the deployment fails, Infra Manager automatically
retries theterraform initorterraform applyoperations in
certain scenarios, such as if it failed with intermittent network
outages. These retries are performed a limited number of times.
Creates a Cloud Storage bucket and stores metadata about the
deployment. For more information about the deployment and metadata, seeDeployment and revision overview.
When the deployment is complete, the Google Cloud resources are
provisioned as the configuration described them.
You can query Infra Manager deployment for:
The status of the deployment.
The list of resources that are deployed as part of the deployment.
Details about individual resources that are part of a deployment.
Runtime environment
The runtime environment of Infra Manager is anephemeral Cloud Build environment.
Infra Manager executes Terraform commands in this
Cloud Build environment, and then the environment is discarded.
The specific operating system, available software, and other configuration
details of the Cloud Build environment are internal implementation
details of Infra Manager, and can change at any time.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eInfrastructure Manager automates the deployment and management of Google Cloud resources using Terraform, eliminating the need for a separate Terraform toolchain.\u003c/p\u003e\n"],["\u003cp\u003eInfra Manager uses Infrastructure as Code (IaC) principles, where Terraform configurations define the desired infrastructure state, and these configurations can be versioned in Git or Cloud Storage.\u003c/p\u003e\n"],["\u003cp\u003eDeployments in Infra Manager create a Cloud Build job, maintained by Google, which handles Terraform operations like initialization, validation, and application, as well as logging and retries in case of failure.\u003c/p\u003e\n"],["\u003cp\u003eInfra Manager does not manage application deployments, but instead focuses on provisioning the underlying Google Cloud resources, allowing users to employ other Google Cloud or third-party tools for application management.\u003c/p\u003e\n"],["\u003cp\u003eInfra Manager uses an ephemeral Cloud Build environment to execute Terraform commands, ensuring a consistent runtime environment, with the specific details of the environment being subject to change.\u003c/p\u003e\n"]]],[],null,["# Infrastructure Manager overview\n\nInfrastructure Manager (Infra Manager) automates the deployment and\nmanagement of Google Cloud infrastructure resources using Terraform.\n\nInfra Manager allows you to deploy programmatically to Google Cloud,\nallowing you to use this service rather than maintaining a different\ntoolchain to work with Terraform on Google Cloud.\n\nA Terraform configuration defines the infrastructure. The configuration is\ndeployed onto Google Cloud by Infra Manager, enabling you to\nmanage resources using Infrastructure as Code (IaC).\n\nInfra Manager does not manage the deployment of applications onto\nyour resources. To manage application deployment, you can use Google Cloud\nproducts like [Cloud Build](/build/docs) and\n[Cloud Deploy](/deploy/docs). You can also use third-party tools or your\nown toolchain.\n\nTo work with Infra Manager, you should be familiar with Terraform.\nTo learn more about Terraform, start\nwith HashiCorp's\n[What is Terraform?](https://developer.hashicorp.com/terraform/intro).\n\nTo learn more about Terraform with Google Cloud, see\n[Terraform on Google Cloud](/docs/terraform).\n\nInfra Manager and Infrastructure as Code\n----------------------------------------\n\nInfra Manager allows you to use IaC to manage the lifecycle of\nGoogle Cloud resources:\n\n- Terraform is defined declaratively in a [Terraform configuration](/infrastructure-manager/docs/terraform). This means that the configuration describes the end state of your infrastructure.\n- You can version the Terraform configuration either in a Git repository, or in a [Cloud Storage bucket](/infrastructure-manager/docs/upload-terraform-configuration). Use [Object Versioning](/storage/docs/object-versioning) to version configurations in a storage bucket.\n- Use Infra Manager to update your infrastructure deployment with [revisions](/infrastructure-manager/docs/deployments-revisions#revisions). For each revision, Infra Manager stores the following:\n - Logs\n - The configuration used to do the revision\n - The list of Google Cloud resources created by the revision\n - The state file created as part of each deployment and revision\n\nSee [Infrastructure as Code on Google Cloud](/docs/terraform/iac-overview)\nfor more information about IaC.\n\nHow Infra Manager works\n-----------------------\n\nThe following is a description of what happens in a simple scenario when you\nuse Infra Manager to deploy infrastructure.\n\n1. The infrastructure resources to deploy onto Google Cloud are defined in a Terraform configuration.\n - You can create this file yourself, or use a configuration that is already written for Google Cloud. See [Terraform and Infrastructure Manager](/infrastructure-manager/docs/terraform) for details.\n - You can store the Terraform configuration in a Cloud Storage bucket, a Git repository, or on your local machine.\n2. When you use Infra Manager to deploy resources from a Terraform configuration, you create a deployment. To create a deployment, Infra Manager:\n 1. Validates the request. For example, it ensures that in your command you specified the location of the Terraform configuration.\n 2. Creates a Cloud Build job using a container image. This image is owned and maintained by Google Cloud. See [Runtime environment](#runtime_environment) for details about the Cloud Build environment. The Cloud Build job automates the following tasks:\n 1. Downloads the Terraform module from the storage bucket or Git repository.\n 2. Initializes Terraform (`terraform init`)\n 3. Validates the Terraform configuration (`terraform validate`)\n 4. Actuates the configuration (`terraform apply`, or `terraform destroy` if you are deleting a deployment)\n 5. Streams Cloud Build logs into a storage bucket created by Infra Manager.\n 6. If the deployment fails, Infra Manager automatically retries the `terraform init` or `terraform apply` operations in certain scenarios, such as if it failed with intermittent network outages. These retries are performed a limited number of times.\n 3. Creates a Cloud Storage bucket and stores metadata about the deployment. For more information about the deployment and metadata, see [Deployment and revision overview](/infrastructure-manager/docs/deployments-revisions).\n3. When the deployment is complete, the Google Cloud resources are\n provisioned as the configuration described them.\n\n You can query Infra Manager deployment for:\n - The status of the deployment.\n - The list of resources that are deployed as part of the deployment.\n - Details about individual resources that are part of a deployment.\n\nRuntime environment\n-------------------\n\nThe runtime environment of Infra Manager is an\n[ephemeral Cloud Build environment](/build/docs/overview#ephemeral-build-environment).\nInfra Manager executes Terraform commands in this\nCloud Build environment, and then the environment is discarded.\n\nThe specific operating system, available software, and other configuration\ndetails of the Cloud Build environment are internal implementation\ndetails of Infra Manager, and can change at any time.\n\nYou can specify which\n[supported version of Terraform](/infrastructure-manager/docs/terraform#terraform_versions)\nto use for each deployment.\n\nDon't include personal or sensitive information\n-----------------------------------------------\n\nDon't include personal or sensitive information in Terraform configuration\nvalues.\n\nFor additional information about Terraform configurations and sensitive data,\nsee\n[Terraform configuration values and sensitive data](/infrastructure-manager/docs/terraform#config-values-data).\n\nWhat's next\n-----------\n\n- Learn more about [Terraform with Google Cloud](/docs/terraform).\n- [Create a deployment](/infrastructure-manager/docs/deploy-resources).\n- [Update a deployment](/infrastructure-manager/docs/update-deployment).\n- [Automate deployments](/infrastructure-manager/docs/automate-git).\n- [Delete a deployment](/infrastructure-manager/docs/delete-deployments)."]]