Skip to content
Join us at Tiger Data Aggregate 2026 for workshops, talks, and networking.

Integrate Terraform with Tiger Cloud

Provision and manage your infrastructure as code with predictable deployments

Terraform is an infrastructure-as-code tool that enables you to safely and predictably provision and manage infrastructure.

This page explains how to configure Terraform to manage your Tiger Cloud service or self-hosted TimescaleDB.

Prerequisites for this integration guide

To follow these steps, you'll need:

Configure Terraform based on your deployment type:

You use the Tiger Data Terraform provider to manage Tiger Cloud services:

  1. Generate client credentials

    Generate client credentials for the Tiger Data Terraform provider.

  2. Configure Tiger Data Terraform provider
    1. Create a main.tf configuration file with at least the following content. Change x.y.z to the latest version of the provider.

      terraform {
      required_providers {
      timescale = {
      source = "timescale/timescale"
      version = "x.y.z"
      }
      }
      }
      # Authenticate using client credentials generated in Tiger Cloud Console.
      # When required, these credentials will change to a short-lived JWT to do the calls.
      provider "timescale" {
      project_id = var.ts_project_id
      access_key = var.ts_access_key
      secret_key = var.ts_secret_key
      }
      variable "ts_project_id" {
      type = string
      }
      variable "ts_access_key" {
      type = string
      }
      variable "ts_secret_key" {
      type = string
      }
    2. Create a terraform.tfvars file in the same directory as your main.tf to pass in the variable values:

      export TF_VAR_ts_project_id="<your-timescale-project-id>"
      export TF_VAR_ts_access_key="<your-timescale-access-key>"
      export TF_VAR_ts_secret_key="<your-timescale-secret-key>"
  3. Add your resources

    Add your Tiger Cloud services or VPC connections to the main.tf configuration file. For example:

    resource "timescale_service" "test" {
    name = "test-service"
    milli_cpu = 500
    memory_gb = 2
    region_code = "us-east-1"
    enable_ha_replica = false
    timeouts = {
    create = "30m"
    }
    }
    resource "timescale_vpc" "vpc" {
    cidr = "10.10.0.0/16"
    name = "test-vpc"
    region_code = "us-east-1"
    }

You can now manage your resources with Terraform. See more about available resources and data sources.