{"id":3101,"date":"2023-12-15T07:07:25","date_gmt":"2023-12-15T15:07:25","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"},"modified":"2023-12-15T07:07:25","modified_gmt":"2023-12-15T15:07:25","slug":"terraform-provider-couchbase-capella","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/terraform-provider-couchbase-capella\/","title":{"rendered":"Terraform Provider for Couchbase Capella"},"content":{"rendered":"\n<p><span>Developers and DevOps teams commonly utilize <\/span><a href=\"https:\/\/www.redhat.com\/en\/topics\/automation\/what-is-infrastructure-as-code-iac\"><span>Infrastructure as Code (IaC)<\/span><\/a><span> tools and scripts to manage their software and infrastructure deployments in a repeatable and consistent manner. With IaC tools, users can automate the life cycle of deployments including provisioning, configuration, deployment and destruction of resources. <\/span><a href=\"https:\/\/www.hashicorp.com\/products\/terraform\"><span>Hashicorp Terraform<\/span><\/a><span> is a very popular IaC tool.<\/span><\/p>\n\n\n\n<p><span>We\u2019re pleased to announce the general availability of version 1.0 of the <\/span><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbase-capella\/latest\"><span>Couchbase Capella Terraform Provider<\/span><\/a><span>, which will allow users to programmatically manage Couchbase Capella deployments. This version supersedes the <\/span><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbasecapella\/latest\"><span>v0.2 of the Capella provider<\/span><\/a><span> which is now deprecated and will be unsupported shortly.<\/span><\/p>\n\n\n\n<p><span>In this post, we give you a quick example walkthrough of the Capella Terraform provider.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Background<\/span><\/h2>\n\n\n\n<p><span>Earlier this year, we announced the launch of our new version of <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/programmatic-admin-capella-management-api\/\"><span>Capella Management API<\/span><\/a><span> &#8211; a revamped version of the Capella public API that allows users to programmatically control Couchbase Capella resources through RESTful interface.<\/span><\/p>\n\n\n\n<p><span>The Couchbase Capella Terraform provider v1.0 leverages the Capella Management API. As such, the set of Capella resources that can be managed via the provider is dependent on the underlying API. As the API evolves to support new endpoints. The Terraform provider will be extended correspondingly in order to support the management of the corresponding resources exposed via the endpoints.<\/span><\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-15143\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-1024x263-1.png\" alt=\"\" width=\"900\" height=\"231\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Provider Walkthrough<\/span><\/h2>\n\n\n\n<p><span>In this example, we will demonstrate the use of the Capella Terraform provider to deploy a Capella project, a cluster and provision a bucket.<\/span><\/p>\n\n\n\n<p><span>The <\/span><a href=\"https:\/\/github.com\/couchbasecloud\/terraform-provider-couchbase-capella\/tree\/main\/examples\"><span>GitHub repo<\/span><\/a><span> has an extensive set of examples for managing each of the supported resources including users, projects, clusters, buckets, database credentials, allowed CIDRs, App Services, backup\/restore and more.\u00a0<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Prerequisites<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span>Terraform &gt;= 1.5.2<\/span><\/li>\n\n\n<li><span>Go &gt;= 1.20<\/span><\/li>\n\n\n<li><span>A Capella paid account.<\/span><\/li>\n\n<\/ul>\n\n\n\n<p><b>Note<\/b><span> that the current version of the provider is not supported on Capella free trials. Support for trials will be available when the underlying Capella management API supports orchestration of trial deployments.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Authentication &amp; Authorization<\/span><\/h3>\n\n\n\n<p><span>All operations by the Capella Terraform provider are authenticated and authorized via Capella Management API key. In a production environment, you will use something like <\/span><a href=\"https:\/\/www.hashicorp.com\/partners\/tech\/couchbase#vault\"><span>HashiCorp Vault<\/span><\/a><span> or a secrets manager offered by a Cloud Service Provider such as <\/span><a href=\"https:\/\/aws.amazon.com\/secrets-manager\/\"><span>AWS Secrets Manager<\/span><\/a><span> to manage your API keys. Reference to the secrets manager would be specified as input to the Terraform provider.<\/span><\/p>\n\n\n\n<p><span>For purposes of this demonstration, we will set the credentials in a local environment variables file:\u00a0<\/span><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span>Create a file named <\/span><b><i>variables.tf<\/i><\/b><span> and add the following variables definitions. We will use these variables within our config file.<\/span><\/li>\n\n<\/ol>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]variable &#8220;organization_id&#8221; {<br \/>\n\u00a0\u00a0description = &#8220;Capella Organization ID&#8221;<br \/>\n}<\/p>\n<p>variable &#8220;auth_token&#8221; {<br \/>\n\u00a0\u00a0description = &#8220;Authentication API Key&#8221;<br \/>\n}[\/crayon]<\/p>\n\n\n\n<p>2. <span>Create a file named <\/span><b><i>terraform.template.tfvars<\/i><\/b><span> and add the following lines. Here, we specify the values of key variables associated with the deployment<\/span><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]auth_token = &#8220;&lt;replace-with-v4-api-key-secret&gt;&#8221;<br \/>\norganization_id = &#8220;&lt;replace-with-the-oid-of-your-tenant&gt;&#8221;[\/crayon]<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>auth_token<\/b><span>: You can create the API key via <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/management-api-guide\/management-api-start.html#display-management-api-keys\"><span>Capella UI<\/span><\/a><span> or via the <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/management-api-reference\/index.html#tag\/apikeys\"><span>management API<\/span><\/a><span>. Depending on the scope of the resources that is managed by the provider, you must create an Organization level or Project level API key with the right set of roles.<\/span><\/li>\n\n\n<li><b>organization_id<\/b><span>: You can get this from organization management API or from the browser URL of Capella UI (look for \u201coid\u201d parameter)<\/span><span><br>\n<\/span><span>https:\/\/cloud.couchbase.com\/databases?<strong>oid=<\/strong>0783f698-ac58\u20134018\u201384a3-xxxxxxxxxxxxx<\/span><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Configuration for sample deployment<\/span><\/h3>\n\n\n\n<p><span>As mentioned earlier, the <\/span><a href=\"https:\/\/github.com\/couchbasecloud\/terraform-provider-couchbase-capella\"><span>GitHub repo<\/span><\/a><span> of the Provider has an extensive set of configuration templates. In this post, I am using a simple example to demonstrate the use of the provider to create a profile, deploy a cluster and a bucket within the cluster.\u00a0<\/span><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span>Create a file named <\/span><b><i>capella.tf<\/i><\/b><span> and add the following configuration. The configuration does the following<\/span><\/li>\n\n\n<li><span>Creates project within specified Organization\u00a0<\/span><\/li>\n\n\n<li><span>Creates a cluster within the project\u00a0<\/span><\/li>\n\n\n<li><span>Creates bucket within the cluster<\/span><\/li>\n\n<\/ol>\n\n\n<p>[crayon nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]terraform {<br \/>\n\u00a0\u00a0required_providers {<br \/>\n\u00a0\u00a0\u00a0\u00a0couchbase-capella = {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0source\u00a0 = &#8220;registry.terraform.io\/couchbasecloud\/couchbase-capella&#8221;<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0}<br \/>\n}<\/p>\n<p># Configure the Couchbase Capella Provider using predefined variables<br \/>\nprovider &#8220;couchbase-capella&#8221; {<br \/>\n\u00a0\u00a0\u00a0\u00a0authentication_token = var.auth_token<br \/>\n}<\/p>\n<p># Create example project resource<br \/>\nresource &#8220;couchbase-capella_project&#8221; &#8220;new_project&#8221; {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0organization_id = var.organization_id<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0name\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;Terraform Demo Project&#8221;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0description \u00a0 \u00a0 = &#8220;A Capella Project that will host a Capella cluster&#8221;<br \/>\n}<\/p>\n<p># Stores the project name in an output variable.<br \/>\n# Can be viewed using `terraform output project` command<br \/>\noutput &#8220;project&#8221; {<br \/>\n\u00a0\u00a0value = couchbase-capella_project.new_project.name<br \/>\n}<\/p>\n<p># Create\u00a0 cluster resource<br \/>\nresource &#8220;couchbase-capella_cluster&#8221; &#8220;new_cluster&#8221; {<br \/>\n\u00a0\u00a0organization_id = var.organization_id<br \/>\n\u00a0\u00a0project_id\u00a0 \u00a0 \u00a0 = couchbase-capella_project.new_project.id<br \/>\n\u00a0\u00a0name\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;Terraform Demo Cluster&#8221;<br \/>\n\u00a0\u00a0description \u00a0 \u00a0 = &#8220;Test cluster created with Terraform&#8221;<br \/>\n\u00a0\u00a0cloud_provider = {<br \/>\n\u00a0\u00a0\u00a0\u00a0type \u00a0 = &#8220;aws&#8221;<br \/>\n\u00a0\u00a0\u00a0\u00a0region = &#8220;us-east-1&#8221;<br \/>\n\u00a0\u00a0\u00a0\u00a0cidr \u00a0 = &#8220;192.168.10.0\/23&#8221;<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0couchbase_server = {<br \/>\n\u00a0\u00a0\u00a0\u00a0version = &#8220;7.2&#8221;<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0service_groups = [<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0node = {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0compute = {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cpu = 4<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ram = 16<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0disk = {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0storage = 50<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type\u00a0 \u00a0 = &#8220;io2&#8221;<br \/>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0iops\u00a0 \u00a0 = 5000<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0num_of_nodes = 3<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0services \u00a0 \u00a0 = [&#8220;data&#8221;, &#8220;index&#8221;, &#8220;query&#8221;]<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0]<br \/>\n\u00a0\u00a0availability = {<br \/>\n\u00a0\u00a0\u00a0\u00a0&#8220;type&#8221; : &#8220;multi&#8221;<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0support = {<br \/>\n\u00a0\u00a0\u00a0\u00a0plan \u00a0 \u00a0 = &#8220;developer pro&#8221;<br \/>\n\u00a0\u00a0\u00a0\u00a0timezone = &#8220;PT&#8221;<br \/>\n\u00a0\u00a0}<br \/>\n}<\/p>\n<p># Stores the cluster details in an output variable.<br \/>\n# Can be viewed using `terraform output cluster` command<br \/>\noutput &#8220;cluster&#8221; {<br \/>\n\u00a0\u00a0value = couchbase-capella_cluster.new_cluster<br \/>\n}<\/p>\n<p># Create bucket in cluster<br \/>\nresource &#8220;couchbase-capella_bucket&#8221; &#8220;new_bucket&#8221; {<br \/>\n\u00a0\u00a0name \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;terraform_bucket&#8221;<br \/>\n\u00a0\u00a0organization_id\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = var.organization_id<br \/>\n\u00a0\u00a0project_id \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = couchbase-capella_project.new_project.id<br \/>\n\u00a0\u00a0cluster_id \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = couchbase-capella_cluster.new_cluster.id<br \/>\n\u00a0\u00a0type \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;couchbase&#8221;<br \/>\n\u00a0\u00a0storage_backend\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;couchstore&#8221;<br \/>\n\u00a0\u00a0memory_allocation_in_mb\u00a0 \u00a0 = 100<br \/>\n\u00a0\u00a0bucket_conflict_resolution = &#8220;seqno&#8221;<br \/>\n\u00a0\u00a0durability_level \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;none&#8221;<br \/>\n\u00a0\u00a0replicas \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = 1<br \/>\n\u00a0\u00a0flush\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = false<br \/>\n\u00a0\u00a0time_to_live_in_seconds\u00a0 \u00a0 = 0<br \/>\n\u00a0\u00a0eviction_policy\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = &#8220;fullEviction&#8221;<br \/>\n}<\/p>\n<p># Stores the bucket name in an output variable.<br \/>\n# Can be viewed using `terraform output bucket` command<br \/>\noutput &#8220;bucket&#8221; {<br \/>\n\u00a0\u00a0value = couchbase-capella_bucket.new_bucket.name<br \/>\n}[\/crayon]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Deploy and Manage Resources<\/span><\/h3>\n\n\n\n<p><span>Use standard <\/span><a href=\"https:\/\/developer.hashicorp.com\/terraform\/cli\/commands\"><span>Terraform commands<\/span><\/a><span> to initialize and deploy the resources<\/span><\/p>\n\n\n\n<p><strong>1. Initialize the Terraform provider<\/strong><\/p>\n\n\n\n<p><span>Terraform must be initialized the very first time you use the provider:<\/span><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]terraform init[\/crayon]<\/p>\n\n\n\n<p><strong>2. Review the Terraform plan<\/strong><\/p>\n\n\n\n<p><span>Use the following command to review the resources that will be deployed:<\/span><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]terraform plan -var-file terraform.template.tfvars[\/crayon]<\/p>\n\n\n\n<p><strong>3. Execute the Terraform Plan<\/strong><\/p>\n\n\n\n<p><span>Deploy the Couchbase Capella resources using the following command:<\/span><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]terraform apply -var-file terraform.template.tfvars[\/crayon]<\/p>\n\n\n\n<p><span>You should see output similar to the following. It will take a few minutes to deploy the resources:<\/span><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]capella_project.new_project: Creating&#8230;<br \/>\ncapella_project.new_project: Creation complete after 0s [id=c9151819-2f75-41dd-b944-7e33d12163ea]<br \/>\ncapella_cluster.new_cluster: Creating&#8230;<br \/>\ncapella_cluster.new_cluster: Still creating&#8230; [10s elapsed]<br \/>\ncapella_cluster.new_cluster: Still creating&#8230; [30s elapsed]<br \/>\n&#8230;&#8230;.<br \/>\ncapella_cluster.new_cluster: Still creating&#8230; [2m50s elapsed]<br \/>\ncapella_cluster.new_cluster: Still creating&#8230; [3m0s elapsed]<br \/>\ncapella_cluster.new_cluster: Creation complete after 3m1s [id=29ebb043-xxxx-xxxx-xxxx-xxxxxxxxxxxx]<br \/>\ncapella_bucket.new_bucket: Creating&#8230;<br \/>\ncapella_bucket.new_bucket: Creation complete after 0s [id=dGVycmFmb3JtXXXXXXXXXX=]<br \/>\nApply complete! Resources: 3 added, 0 changed, 0 destroyed.[\/crayon]<\/p>\n\n\n\n<p><strong>4. Get the current state of the resources<\/strong><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]terraform state list[\/crayon]<\/p>\n\n\n\n<p><span>You should see output similar to the following which shows the three resources that are created:<\/span><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]couchbase-capella_bucket.new_bucket<br \/>\ncouchbase-capella_cluster.new_cluster<br \/>\ncouchbase-capella_project.new_project[\/crayon]<\/p>\n\n\n\n<p><strong>5. Get the detailed state of any deployed resource<\/strong><\/p>\n\n\n<p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;default&#8221; decode=&#8221;true&#8221;]terraform state show couchbase-capella_project.new_project[\/crayon]<\/p>\n\n\n\n<p><span>You should see output similar to the following which shows the three resources that are created:<\/span><\/p>\n\n\n\n<p><p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]auth_token = &#8220;&lt;replace-with-v4-api-key-secret&gt;&#8221;<br \/>\norganization_id = &#8220;&lt;replace-with-the-oid-of-your-tenant&gt;&#8221;[\/crayon]<\/p>\n0<\/p>\n\n\n\n<p><strong>6. Destroy the resources<\/strong><\/p>\n\n\n\n<p><span>Execute the following command to destroy the resources:<\/span><\/p>\n\n\n\n<p><p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]auth_token = &#8220;&lt;replace-with-v4-api-key-secret&gt;&#8221;<br \/>\norganization_id = &#8220;&lt;replace-with-the-oid-of-your-tenant&gt;&#8221;[\/crayon]<\/p>\n1<\/p>\n\n\n\n<p><span>You should see output similar to the following. It will take a few minutes to destroy the resources.<\/span><\/p>\n\n\n\n<p><p>[crayon left-margin=&#8221;24&#8243; nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]auth_token = &#8220;&lt;replace-with-v4-api-key-secret&gt;&#8221;<br \/>\norganization_id = &#8220;&lt;replace-with-the-oid-of-your-tenant&gt;&#8221;[\/crayon]<\/p>\n2<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Resources and Next Steps<\/span><\/h2>\n\n\n\n<p><span>Version 1.0 of the Provider supersedes the v0.0.2 of the Capella provider which is deprecated and will be removed shortly. So, if you are using the old provider, you should plan to migrate to the new provider.<\/span><\/p>\n\n\n\n<p><span>Here are direct links to a few helpful resources:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbase-capella\/latest\"><span>Capella Provider on Hashicorp Registry<\/span><\/a><\/li>\n\n\n<li><a href=\"https:\/\/registry.terraform.io\/providers\/couchbasecloud\/couchbase-capella\/latest\/docs\"><span>Usage Examples<\/span><\/a><\/li>\n\n\n<li><a href=\"https:\/\/docs.couchbase.com\/cloud\/terraform\/index.html\"><span>Overview of Terraform Provider<\/span><\/a><\/li>\n\n\n<li><a href=\"https:\/\/docs.couchbase.com\/cloud\/management-api-reference\/index.html\"><span>Capella Management API Reference<\/span><\/a><\/li>\n\n<\/ul>\n\n\n\n<p><span>If you have questions or feedback, please leave a comment below. The <\/span><a href=\"https:\/\/forums.couchbase.com\/\"><span>Couchbase Forums<\/span><\/a><span> or <\/span><a href=\"https:\/\/discord.com\/invite\/K7NPMPGrPk\"><span>Couchbase discord<\/span><\/a><span> channels are another good place to reach out with questions.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Developers and DevOps teams commonly utilize Infrastructure as Code (IaC) tools and scripts to manage their software and infrastructure deployments in a repeatable and consistent manner. With IaC tools, users can automate the life cycle of deployments including provisioning, configuration, deployment and destruction of resources. Hashicorp Terraform is a very popular IaC tool. We\u2019re pleased [&hellip;]<\/p>\n","protected":false},"author":1423,"featured_media":3100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[136,178,301],"tags":[173,193,781,782,783,784],"ppma_author":[252],"class_list":["post-3101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-connectors","category-cloud","tag-continuous-deployment","tag-devops","tag-hashicorp","tag-infrastructure-as-code","tag-terraform","tag-terraform-provider"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Terraform Provider for Couchbase Capella<\/title>\n<meta name=\"description\" content=\"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/terraform-provider-couchbase-capella\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Terraform Provider for Couchbase Capella\" \/>\n<meta property=\"og:description\" content=\"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/terraform-provider-couchbase-capella\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-15T15:07:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/terraform-blog.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Terraform Provider for Couchbase Capella\",\"datePublished\":\"2023-12-15T15:07:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/\"},\"wordCount\":1395,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/terraform-blog.png\",\"keywords\":[\"Continuous Deployment\",\"DevOps\",\"hashicorp\",\"Infrastructure-as-Code\",\"terraform\",\"Terraform provider\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Connectors\",\"Couchbase Capella\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/\",\"name\":\"Terraform Provider for Couchbase Capella\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/terraform-blog.png\",\"datePublished\":\"2023-12-15T15:07:25+00:00\",\"description\":\"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/terraform-blog.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/terraform-blog.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/terraform-provider-couchbase-capella\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Terraform Provider for Couchbase Capella\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/rajagp\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/author\\\/priya-rajagopalcouchbase-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Terraform Provider for Couchbase Capella","description":"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/terraform-provider-couchbase-capella\/","og_locale":"es_MX","og_type":"article","og_title":"Terraform Provider for Couchbase Capella","og_description":"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/terraform-provider-couchbase-capella\/","og_site_name":"The Couchbase Blog","article_published_time":"2023-12-15T15:07:25+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/terraform-blog.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Terraform Provider for Couchbase Capella","datePublished":"2023-12-15T15:07:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"},"wordCount":1395,"commentCount":2,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/terraform-blog.png","keywords":["Continuous Deployment","DevOps","hashicorp","Infrastructure-as-Code","terraform","Terraform provider"],"articleSection":["Best Practices and Tutorials","Connectors","Couchbase Capella"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","url":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/","name":"Terraform Provider for Couchbase Capella","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/terraform-blog.png","datePublished":"2023-12-15T15:07:25+00:00","description":"Version 1.0 of the Couchbase Capella Terraform Provider, which will allow users to programmatically manage Couchbase Capella deployments.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/terraform-blog.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/terraform-blog.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/terraform-provider-couchbase-capella\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Terraform Provider for Couchbase Capella"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Senior Director, Product Management","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/"}]}},"acf":[],"authors":[{"term_id":252,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=3101"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/3101\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/3100"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=3101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=3101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=3101"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=3101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}