Continuous integration GCP Cloud Build with Terraform (2023)




Published in



10 min


January 23, 2022


The goal is to generate a freedom from the source code quickly, reliably and automated using the GCP CI native feature.

Continuous integration GCP Cloud Build with Terraform (3)


I will use a repository stored in my Github account, it contains the code -source for the application to be implemented, cloud construction settings and terraform files. You can find the repositoryhere.

Before we start with Terraform, there are settings to be made manually with GCP

Enable APIs

You need to enable some specific GCP APIs for this tutorial, to do this in your console dashboard go to API & Services, click onEnable APIs and Servicesbutton. Here you can search for specific APIs and enable them.

  • Billing API
  • Compute engine API
  • Cloud Build API

Service account permissions

The GCP Service account grants Terraform permissions to manipulate resources. Create a service account to be used by Terraform. For the sake of this tutorial, it needs a set of permissions.

Let's create a GCP function to be with an arbitrary name like EarthFormCD and add all the necessary permissions. Inventually, we attribute this function to the generated service account. Here is a list of permissions to be added

  • storage.objects.list
  • storage.objects.get
  • storage.Objects.Create
  • Storage.Objects.Delete
  • storage.buckets.create
  • functions/cloudbuild.builds.editor

Bucket Terraform

A GCP Cloud Storage feature where you can store your landstatefile.statefile contains information about the resources generated by Terraform.

Warning, manual changes in GCP resources that are treated with Terraform creates discrepancy between the Terraform State Archive and the real infrastructure.

Connect Repository

If you have your code on Github, and youDon't want to use a webhok triggerYou need to manually connect the construction of the GCP cloud to your repository. If your code is stored on Google Cloud Source or Cloud Storage, no configuration will be required here.

In the case of Bitbucket Cloud or Gitlab, there is the option ofmirroringYour repository for Google Cloud Source if you are not interested inWebhook triggers.Documentation ishere.

My repository is stored at Github and I want to use a Push to Master Branch event.

To connect your repository, go to your GCP platform and follow the steps:

  • Go to Gloud Build and then trigger. click inManage repositories,On the new page, click oncreate repository.You must see this:
Continuous integration GCP Cloud Build with Terraform (4)

Choosing the first option, the cloud build will be installed on GitHub in your account, you can limit the repositories you can pull from and change the configuration at any time.

After the connection, underRepositoryyou see


we will use this information as we work with Terraform.

Ignore if you already have the configured Terraform.

Terraform relies on plugins called providers to interact with a platform like GCP. All of these are developed by Terraform itself and are publicly available atTerraform registration.

Providers are a logical abstraction of an upstream API. They are responsible for understanding API interactions and exposing resources.

When configuring the Terraform backend, we defined two blocks, one for Terraform itself and one for the provider, in our caseGoogle.

Back-end configuration

Create a TerraForm file with an arbitrary name like

Terraform {
back -end "gcs" {
Bucket = ""
Prefix = "State"
required_providers {
google = {
fonte = "Hashicorp/Google"
Version = "3.82.0"
"Google" provider {
Region = ""
zone = ""

EmTerraform BlockWe are informing Terraform to store itstateFile in the bucket we already created on Google Cloud Storage (GCS) inside a folder calledstate.We are also telling Terraform, if your version is lower than 0.12.7 then do not proceed and last but not least you will need hashicorp/Google Provider in version 3.32.0. Terraform CLI will automatically download provider when it is invoked. It is good practice to set the provider version.

The second block configured the provider, as is obvious.

grant permission

We grant Terraform access to work with our GCP platform by exporting an environment variable, keeping the way for our JSON key from the GCP service account.

exportar google_application_credentials = {{gcp_sa_json_key_path}}

Terraform automatically carries files with.tfExtensions when registering. There are four commands to be executed when applying your infrastructure to the cloud platform. In the end of this tutorial, start these commands and you will be ready.

  • terraform init, bootes the Terraform Directory, lowers the provider and stores the Terraform State file in the GCP bucket.
  • Terraform Validate, validates the syntax
  • Terraform Plan com/No variables, a simulation on the client side, does not show the lack of permissions for our defined service account.
  • terraform apply with/without variables, applies the real infrastructure

Terraform automatically holds a lock on the state file while applying to ensure that no one else makes changes.

Earth Variables

Defining a variable helps to avoidcopy and pasteAnti standard, provides a single source of real. To define a land variable, create an arbitrary terraform file asvariables.tfand beyond the following

variable "project_id" {
type = string
Description = "GCP Project ID"

We pass a single value or a group stored in a file through the command line. To have them passed through a file, create one with type.tfvarsasvalvarsand put your values ​​with key=value format like

project_id = “

When launchingTerraforma Planorterraform applicationCommands you can pass these values.

// through the fileterraform apply -var-file="./values.tfvar"// or singularterraform apply -var="project_id=myprojectid"

GCP has a native solution for CI calledCloud construction.Through Cloud Build, we create a pipeline of steps to pull source code, run tests, and eventually build and push images to a registry, leading to continuous integration.

The moment we write this tutorial, opening the Cloud Build page on GCP, we see four options in the navigation menu:

  • Panel, high-level information of your buildings
  • History,A detailed list of builds already run or currently running
  • Trigger, settings for invoking a construct
  • settings, configure service accounts and worker pool

When it comes to writing infrastructure as code, there is an obvious rule of thumb: anything you can manually configure on the platform can be coded. In CloudBuild,triggeresettingsThey are configurable, so they have their corresponding configurations in the TerraForm supplier, so let's create them.


As the name suggests, we invoke CI builds using triggers. The opening triggers in GCP Cloud Build, there are four sections.

  • Event, the event that triggers the CI settings
  • Source, source code settings
  • Settings, specific cloud compilation settings
  • Advanced

Let's have our first simple land Snippet for a cloud building trigger containing all the settings mentioned above. Cry a Main.TF file in your repository and paste the following, we discuss the spaces reserved in snippet later.for this featurehere.

Recurso "Google_cloudbuild_trigger" "React-Trigger" {// origin section
github {
owner = ""name = ""// Event Section
to push {
Branch = ""
//brand = "production"
ignored_files = [".gitignore"]
// Configuration section
// Build configuration file
filename = ""
// build inline configuration yaml
#build {
# stage {
# Name = "It"
# EntryPoint = "NPM"
# args = ["install"]
# stage{...}
# ...
// advanced section
Substitutions = {
= ""= ""}}

Source & Events

When it comes to cloud construction drivers on Terraform, you need to have one of the following blocks

  • github, uses the already integrated repository
  • trigger_template, uses a Google Cloud storage repository
  • pubsub_config, uses an already built-in repository or from Google Cloud Storage
  • webhook_config, configure the SSH key to trigger the CI with an HTTP post

we use thegithubBlock, in the event section we can selectto pushorpull request on a specific branchor with onemarkup. This event will trigger compilation.

ignored_files and included_files

Gives you the possibility ofblacklistorwhitelistfiles when it comes to triggering a compilation.Both properties receive a list of string file names.Adding files toignored_filesList prevents compilation from being triggered in these file changes, so put them on the black list.Adding files toincluded_filesTriggers only get stronger if there is a compromise on those files, hence the permissions listed.


Here we pass the real stages of a construction. These steps can be defined in aDockerfilewith or without a construction configuration file calledCloudBuild,also you can use a native cloud solution called bbuilding packswithout any Dockerfile or cloudbuild files.

We can also have stages of inline construction configuration within the cloud construction driving editor.

In the above example I am using a combination ofcloudbuild.yamlit's mineDockerfile.There is theBuilding blockcommented, to be discussed later.

Let's check out the contents of these two files, but first, a few words on the app to deploy. It's a REACT app with a NodeJS Express server on the backend. Our build steps include:

  • Check the Git repository code
  • Runnpm installto install the libraries defined inpackage.json
  • RunNPM testFor in-app unit tests
  • Runnpm run buildto create theTo react buildfolder containing the production-ready code
  • Create the docker image fromDockerfile
  • Push Docker image to GCP Container Registry
  • Store the compilation log file in GCP Cloud Storage


If you check out the documentation for this build config filehere, you can see that the schema looks something like this.

-Name: String (image name publicly available to work)
Input Point: String
Args: [String, String, ...]

Env: [string, string, ...]
dir: string
id: string
waitFor: [string, string, ...]
secretEnv: string
volumes: objeto(Volume)
Limit Time: String (duration format)
- nome: string

It is a combination of construction steps, each step specifying an action you want to perform with the options. For each step, the cloud construction creates a docker container, it comes with images available to the public to work.If you want to use one of these publicly available imagesIt,you add them after thenamekeyword.

We use theentry pointto specify the tool we want to work with.OItimage comes withnpmefiopreinstalled.

Eventually we useargumentsto invoke the desired command.

Here is our file, it is simple and self -explanatory.

steps:- Name: NodeInput Point: NPMArgs: ["Install"]- Name: NodeInput Point: NPMarguments: ["test"]- Name: NodeInput Point: NPMArgs: ["Run", "Build"]- Name: ""args:["Build", "-t", "$project_id/quickstart-image:$Commit_sha", "."- name: ""args: ["push", "$PROJECT_ID/quickstart-image:$COMMIT_SHA"]logsBucket: "gs://"

There are three points to consider

  • $ Project_id e $ Commit_shaare automatically replaced by correct values during construction. They are calledstandard replacement, you can find a list of available variableshere. You can also define your custom substitution variables, it's already in our simple Terraform file, we'll talk about that later.
  • LogsbucketAllows you to record compilation events, files are automatically stored in the deposit after each execution.
  • Container Registry, the docker images will be stored in the GCP Container Registry, in ourmain.tffile we create it like this:
resource "google_container_registry" "registry" {project = var.project_idLocation = "USA"}

OProject_idIt is our own defined earth variable.

Inline compilation yaml

Instead of having a cloudbuild.yaml file, Terraform Cloud Build Trigger allows you to define your configuration compilation steps like Yaml Inline.As an example:

build {
stage {
name = "it"
args = ["install"]


Having a cloudbuild file, our dockerfile is quite simple.

OF orCopy build buildCopy Server ServerCmd ["node", "server/server.js"]


In the advanced section we can addsubstitution variables, Check aapprovalSelection box and add a service account.

Substitution variables:We can define our custom substitution variable and use it in the cloudbuild.yaml file the same way we use the standard substitution variables like project ID.

Substitutions = {
= ""
= ""

Service account:Cloud construction service accountit is used.You can find a comprehensive example in the Terraform documentationhere.

In the Cloud Build Setting section, you can create a pool of workers. A worker pool allows you to define custom settings and custom networking. You can set machine type, disk size and vpc. Default networks contain the settings predefined by Compute Engine.

The moment I write this Terraform Tutorialgoogle_cloudbuild_worker_poolit's not a public resource so it's not usable, but there is another way to configure machine type and disk size. You can do this throughoptionskey ofBuild configuration.

To addoptionsthrough the cloudbuild.yaml file or within the Terraform construction block.

build {
options {
disk_size_gb =
machine_type = ""

At the time of writing this tutorial, there is a free construction plan a day strategy to use the standard machine type.

Continuous integration GCP Cloud Build with Terraform (5)

AfterTerraforma ApplicationYou will have your cloud building driver listening to changes in your repository.HistorySection on building the cloud, you see that a new build is triggered. You can follow the steps and check the logs, eventually in the GCP Container Log, you will see your new image pushed.

Continuous integration GCP Cloud Build with Terraform (6)


Can Terraform be used to enforce maximum resource utilization and spending limits on your Google Cloud resources? ›

Terraform can be used as a version-control system for your Google Cloud infrastructure layout. Terraform can be used to enforce maximum resource utilization and spending limits on your Google Cloud resources. Terraform can be used as an infrastructure management system for Kubernetes pods.

Why my Google Cloud customer choose to use Terraform? ›

Why might a Google Cloud customer choose to use Terraform? Terraform can be used as an infrastructure management system for Google Cloud resources.

Does cloud build use Terraform? ›

This installation allows you to connect your GitHub repository with your Google Cloud project so that Cloud Build can automatically apply your Terraform manifests each time you create a new branch or push code to GitHub.

How do I pass GCP credentials to Terraform? ›

Using Terraform Cloud
  1. Create an environment variable called GOOGLE_CREDENTIALS in your Terraform Cloud workspace.
  2. Remove the newline characters from your JSON key file and then paste the credentials into the environment variable value field. ...
  3. Mark the variable as Sensitive and click Save variable.

What are the limitations of terraform? ›

Free tier organizations are limited to five active members. Terraform Cloud customers on the "Free" and "Team" plans are limited to one concurrent Terraform run, and "Team and Governance" can purchase one additional concurrent run, so this could also become a limiting factor, depending on your use-case.

What is the concurrency limit for terraform? ›

Memory + Concurrency

By default, Terraform Enterprise allocates 512 MB of memory to each Terraform run, with a default concurrency of 10 parallel runs. Therefore, by default Terraform Enterprise requires 5.2 GB of memory reserved for runs.

Why choose Terraform over CloudFormation? ›

In CloudFormation, it is possible to manage so-called “custom resources” by using an AWS Lambda function of your own creation as a back end. For Terraform, extensions are much easier to write and form part of the code. So there is an advantage for Terraform in this case. Terraform can handle many cloud vendors.

Which is better Google Cloud Deploy or Terraform? ›

Google Cloud Deployment Manager allows you to specify all the resources needed for your application in a declarative format using yaml. On the other hand, Terraform is detailed as "Describe your complete infrastructure as code and build resources across providers".

What is the difference between GCP Ansible and Terraform? ›

Terraform is a tool used for creating and managing IT infrastructure. Ansible automates provisioning, deployment, and other IT processes. Terraform is defined as an infrastructure as code (IaC) tool that is used to create and manage IT infrastructure effectively.

Is Terraform or CloudFormation faster? ›

Scope. CloudFormation covers most parts of AWS and needs some time to support new service capabilities. Terraform covers most AWS resources as well and is often faster than CloudFormation when it comes to supporting new AWS features. On top of that, Terraform supports other cloud providers as well as 3rd party services ...

What is the difference between Terraform and Terraform cloud? ›

All the features of Terraform Cloud and Terraform Enterprise are the same except additional features in Terraform Enterprise are audit logging, SAML single sign-on, private instance with no limits etc. SAML Single sign on- Terraform Enterprise supports SAML 2.0, And it works with a variety of identity providers.

Can Terraform manage cross cloud dependencies? ›

Terraform lets you use the same workflow to manage multiple providers and handle cross-cloud dependencies.

How long does it take to pass Terraform certification? ›

Beginners should expect between 12 and 24 hours of study time. This includes getting some practical experience using the Terraform CLI, writing Terraform scripts, and studying the core concepts from the review guide. Intermediate users should expect between 8 and 12 hours of study time.

How does Terraform connect to GCP? ›

Let's get started
  1. Set up your G Cloud Configuration. ...
  2. Create a service account for your project. ...
  3. Provide your freshly created service account with the necessary roles and permissions. ...
  4. Create a bucket that will hold your Terraform Stat. ...
  5. Write the Terraform Main. ...
  6. Initialise the Terraform code. ...
  7. Create a workspace. ...
  8. Plan and apply.

How to configure the GCP backend for Terraform? ›

Change the backend configuration
  1. Add the following text to a new Terraform configuration file called . terraform { backend "gcs" { bucket = " BUCKET_NAME " prefix = "terraform/state" } } ...
  2. Run terraform init to configure your Terraform backend.

What is the golden rule of Terraform? ›

The Golden Rule of Terraform

If terraform plan fails completely with weird errors, or every plan shows a gigantic diff, your Terraform code has no relation at all to reality and is likely useless.

Is Terraform easy or hard? ›

Terraform is not difficult, but it does require a degree of understanding of the underlying infrastructure. Nevertheless, terraform is an excellent tool for creating and managing infrastructure if you are comfortable using a command-line interface.

What are the drawbacks of using Terraform for infrastructure as code? ›

Providers limitation

In reality, Terraform providers might not support the latest features of API. Or even some old features available via API might not be supported by the Terraform provider. For example, Microsoft Azure DevOps API supports kubernetes resources creation, but it is not supported by terraform provider.

How many ways we can pass variable in Terraform? ›

There are two methods supported for doing this using the Terraform CLI when running Terraform commands. -var flag enables a single input variable value to be passed in at the command-line. -var-file flag enables multiple input variable values to be passed in by referencing a file that contains the values.

What is the maximum concurrency in cloud run? ›

By default each Cloud Run instance can receive up to 80 requests at the same time; you can increase this to a maximum of 1000. Although you should use the default value, if needed you can lower the maximum concurrency.

How many variables are available in Terraform? ›

Terraform Input Variables

Terraform supports a number of types, including string, number, bool, list, map, set, object, tuple, and any.

Why Terraform is better than Ansible? ›

Terraform is mainly known for provisioning infrastructure across various clouds. It supports more than 200 providers and a great tool to manage cloud services below the server. In comparison, Ansible is optimized to perform both provisioning and configuration management.

Should I learn CloudFormation or Terraform? ›

If you are looking to provision services on multiple cloud platforms, Terraform is your go-to option. While Terraform supports all cloud vendors like AWS, GCP, Azure, and many others, CloudFormation is confined only to AWS. So, in case your environment involves multiple cloud deployments, Cloudformation is not for you.

Is Terraform still relevant? ›

Terraform is still a useful tool in the tech space because it offers some specific advantages over its competitors as an infrastructure tool.

What is the GCP equivalent of Terraform? ›

In GCP, Deployment Manager creates a manifest file that stores details about the resources deployed. This file cannot be edited by the user and is stored within GCP. Terraform has a similar feature called states that provides a glimpse into what resources are currently deployed.

Which cloud platform is growing fastest? ›

Fastest-Growing Major Cloud Providers as of Jan. 4, 2023
CompanyGrowth RateQtr. Ended
1. Oracle43%Nov. 30
2. SAP38%Sept. 30
3. Google Cloud37.5%Sept. 30
4. Amazon AWS27%Sept. 30
6 more rows
Jan 4, 2023

Which cloud deployment is most expensive? ›

The Drawbacks of a Private Cloud

The major disadvantage of the private cloud deployment model is its cost, as it requires considerable expense on hardware, software and staff training.

Do I need Ansible with Terraform? ›

Terraform is designed to provision different infrastructure components. Ansible is a configuration-management and application-deployment tool. It means that you'll use Terraform first to create, for example, a virtual machine and then use Ansible to install necessary applications on that machine.

Should I learn Terraform or Ansible? ›

Both tools help in deploying code and infrastructure in repeatable environments that possess complex requirements. However, if you take a practical approach, it is advisable to use Terraform for the purpose of orchestration and Ansible for configuration management.

Can you replace Ansible with Terraform? ›

Although Terraform and Ansible can perform configuration management tasks, the latter does a far better job. They also both work with cloud APIs and are both open-source. Developers can also use Terraform and Ansible simultaneously, so the two tools complement each other rather than replace each other.

Will Terraform automatically destroy resources? ›

The terraform destroy command terminates resources managed by your Terraform project. This command is the inverse of terraform apply in that it terminates all the resources specified in your Terraform state. It does not destroy resources running elsewhere that are not managed by the current Terraform project.

Should I learn Terraform or Kubernetes first? ›

The platform you learn first depends on the DevOps function you'll be performing. If you want to deploy operational infrastructure, learn Terraform first. Developers who work with containers should learn Kubernetes first.

Is Terraform better than Kubernetes? ›

Kubernetes is an excellent choice for deploying and managing containerized applications, while Terraform is a powerful tool for defining and provisioning infrastructure resources. Choosing one or both will depend on your specific needs and use case.

What are three Terraform cloud features? ›

Terraform Cloud Plans and Features
  • Free Organizations. ...
  • Paid Features. ...
  • Changing Your Payment Plan. ...
  • Remote Terraform Execution. ...
  • Remote State Management, Data Sharing, and Run Triggers. ...
  • Version Control Integration. ...
  • Command Line Integration. ...
  • Private Registry.

Is Terraform like Docker? ›

Terraform and Docker are both open source programs categorized as Infrastructure Build and Container Tools, respectively. Some popular companies that use these two tools are; Instacart, Slack, Harvest, and Twitch.

Why Terraform is better than other tools? ›

Terraform provides a flexible abstraction of resources and providers. This model allows for representing everything from physical hardware, virtual machines, and containers, to email and DNS providers. Because of this flexibility, Terraform can be used to solve many different problems.

Can I use 2 providers in Terraform? ›

Configuring Multiple AWS providers

We can't write two or more providers with the same name i.e. two AWS providers. If there's any such need the terraform has provided a way to do that which is to use alias argument. Note: A provider block without an alias argument is the default configuration for that provider. Great!

Can we have 2 providers in Terraform? ›

Each resource in the configuration must be associated with one provider configuration. Provider configurations, unlike most other concepts in Terraform, are global to an entire Terraform configuration and can be shared across module boundaries. Provider configurations can be defined only in a root Terraform module.

What happens if 2 people are working on the same infrastructure with Terraform? ›

Once multiple people are collaborating on Terraform configuration, new steps must be added to each part of the core workflow to ensure everyone is working together smoothly. You'll see that many of these steps parallel the workflow changes we make when we work on application code as teams rather than as individuals.

How much does a Terraform certified engineer earn? ›

Average annual salary in TerraForm Global is INR 10.4 lakhs .

Is Terraform exam tough? ›

This exam is easy to pass if you have the knowledge on Terraform basic understanding, the purpose why we are using it, workflow, function modules, and workspace concepts.

How much do Terraform skills make? ›

As of Apr 30, 2023, the average annual pay for a Terraform in the United States is $148,649 a year. Just in case you need a simple salary calculator, that works out to be approximately $71.47 an hour.

Why a Google Cloud customer choose to use Terraform? ›

Why might a Google Cloud customer choose to use Terraform? Terraform can be used as an infrastructure management system for Google Cloud resources.

Why do we use Terraform with GCP? ›

With Terraform installed, you are ready to create some infrastructure. You will build infrastructure on Google Cloud Platform (GCP) for this tutorial, but Terraform can manage a wide variety of resources using providers. You can find more examples in the use cases section.

Is it possible to configure aws with terraform? ›

By creating a custom AWS CloudFormation resource for Terraform, you can control your on-premises and public cloud resources programmatically. You can access that resource directly through the CloudFormation console, or through the AWS Service Catalog, which gives you an extra layer of governance and control.

How do you automate terraform deployments in GCP? ›

In the ci-app directory, create a dev directory with a file. Add a terraform block to dev/ , setting the backend to the bucket you created. Create a web_app module from the module directory — be sure to set the env variable, and set an output for the host IP. In the ci-app directory, copy the cloudbuid.

What is the difference between GCP config connector and terraform? ›

Terraform leverages HCL and the google cloud terraform provider to manage resources while Config Connector leverages Kubernetes Custom Resource Definitions. When comparing these tools it helps to think of Config Connector as an alternative API for managing GCP resources based on Kubernetes CRDs.

What action does the Terraform apply command perform in Google Cloud? ›

What is the terraform apply command used for? -The terraform apply command is used to apply the changes required to reach the desired state of the configuration. -Terraform apply will also write data to the terraform.

Is it possible to increase the resources limits for GCP accounts? ›

Quotas protect the Google Cloud Community from unforeseen spikes in usage. However, as your usage of Google Cloud Platform increases, you can request an increase in your quota.

Does Google Cloud support Terraform? ›

Stay organized with collections Save and categorize content based on your preferences. The Terraform provider for Google Cloud is jointly developed by HashiCorp and Google.

Which one of the following statements is true regarding Terraform? ›

Answer. The statement that is true regarding terraform is: Any infrastructure modifications specified in your setup are carried out via Terraform.

Do you have to run terraform plan before apply? ›

In automation terraform apply can be run after the plan stage, passing in the plan output file. If there is no plan stage prior to the apply stage (not recommended), then the terraform apply -auto-approve option can be used.

Which is better Google Cloud Deploy or terraform? ›

Google Cloud Deployment Manager allows you to specify all the resources needed for your application in a declarative format using yaml. On the other hand, Terraform is detailed as "Describe your complete infrastructure as code and build resources across providers".

What happens when a terraform apply is executed? ›

When you run terraform apply without passing a saved plan file, Terraform automatically creates a new execution plan as if you had run terraform plan , prompts you to approve that plan, and takes the indicated actions.

What is the concurrency limit for GCP Cloud functions? ›

A concurrency value greater than 1 results in your function code being executed concurrently on a single instance. The maximum concurrency value is 1000 (though we recommend starting with a lower value and working your way up).

How many VPC can be created per region in GCP? ›

Auto mode VPC networks are created with one subnet per region at creation time and automatically receive new subnets in new regions. The subnets have IPv4 ranges only, and all subnet ranges fit inside the 10.128. 0.0/9 CIDR block.

What is the maximum number of projects in GCP? ›

Once your quota is reached, you can request an increase. If you have less than 30 projects remaining in your quota, you can see the number of projects you have remaining in your quota on the New Project page. For more information, see Managing project quotas.

Can Terraform be used with multiple cloud providers? ›

Terraform lets you use the same workflow to manage multiple providers and handle cross-cloud dependencies. This simplifies management and orchestration for large-scale, multi-cloud infrastructures.

What are the advantages and disadvantages of Terraform? ›

Terraform: Advantages and disadvantages at a glance
Advantages of TerraformDisadvantages of Terraform
Uniform Syntax for Infrastructure as CodeNo automatic rollback function for incorrect changes to resources
Support of various cloud solutionsCollaboration and security features available only in expensive enterprise plans
4 more rows
Jun 21, 2019


Top Articles
Latest Posts
Article information

Author: Terence Hammes MD

Last Updated: 30/10/2023

Views: 6281

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Terence Hammes MD

Birthday: 1992-04-11

Address: Suite 408 9446 Mercy Mews, West Roxie, CT 04904

Phone: +50312511349175

Job: Product Consulting Liaison

Hobby: Jogging, Motor sports, Nordic skating, Jigsaw puzzles, Bird watching, Nordic skating, Sculpting

Introduction: My name is Terence Hammes MD, I am a inexpensive, energetic, jolly, faithful, cheerful, proud, rich person who loves writing and wants to share my knowledge and understanding with you.