Saltar al contenido principal
Los servicios de ClickHouse Managed Postgres se pueden crear y administrar mediante el recurso clickhouse_postgres_service del proveedor de Terraform de ClickHouse. Esta página describe la configuración del proveedor y ofrece ejemplos de configuración para este recurso y sus fuentes de datos asociadas.
Este recurso está en alpha y su comportamiento puede cambiar en futuras versiones del proveedor. Se distribuye en el build habitual del proveedor y está disponible a partir de la versión v3.17.1 del proveedor; consulta las releases del proveedor para más detalles.

Configuración del proveedor

Añada el proveedor de ClickHouse a su configuración de Terraform:
terraform {
  required_providers {
    clickhouse = {
      source  = "ClickHouse/clickhouse"
      version = ">= 3.17.1"
    }
  }
}

provider "clickhouse" {
  organization_id = var.organization_id
  token_key       = var.token_key
  token_secret    = var.token_secret
}
Consulta Gestión de claves de API para ver instrucciones sobre cómo crear una clave de API para usarla con el proveedor.

Resumen del recurso

El recurso clickhouse_postgres_service tiene los siguientes argumentos:
ArgumentoObligatorioDescripción
nameNombre del servicio legible para humanos. Es inmutable: si se cambia, el servicio se destruye y se vuelve a crear.
cloud_providerPara una creación estándarProveedor de Cloud que aloja la instancia. Actualmente solo se admite aws. Omítalo para una réplica de lectura o una restauración a un momento dado (se hereda del origen).
regionPara una creación estándarRegión de Cloud (por ejemplo, us-east-1). Omítala para una réplica de lectura o una restauración a un momento dado (se hereda del origen).
sizePara una creación estándarTamaño de la instancia (SKU de VM), por ejemplo m6gd.large. Se puede redimensionar sin recrearla. Omítalo para una restauración a un momento dado (la instancia restaurada se inicia con el tamaño de la copia de seguridad).
postgres_versionNoVersión principal de Postgres (por ejemplo, 18). Cambiar la versión principal destruye y vuelve a crear el servicio.
ha_typeNoModo de alta disponibilidad: none, async o sync. Consulte Alta disponibilidad.
passwordNoContraseña del superusuario. Omítala para que el servidor genere una. Se almacena en el estado como dato sensible.
pg_configNoParámetros del servidor Postgres como un mapa de clave-valor.
pgbouncer_configNoParámetros del agrupador de conexiones PgBouncer como un mapa de clave-valor.
tagsNoEtiquetas del recurso como un mapa de clave-valor.
read_replica_ofNoID de un servicio primario que se va a replicar. Consulte Réplicas de lectura. Es mutuamente excluyente con restore_to_point_in_time.
restore_to_point_in_timeNoCrea el servicio restaurando otro servicio a un momento dado. Consulte Restauración a un momento dado. Es mutuamente excluyente con read_replica_of.
Los siguientes atributos son de solo lectura y ClickHouse Cloud los completa después de la creación: id, state, created_at, is_primary, hostname, port, username y connection_string (confidencial).
El valor de password se almacena en texto sin formato en el estado de Terraform. Proteja su archivo de estado en consecuencia; por ejemplo, use un backend remoto con cifrado en reposo. Si omite password, el servidor genera una y el proveedor la vuelve a leer en el estado en cada actualización.

Crear un servicio

resource "clickhouse_postgres_service" "example" {
  name           = "my-postgres"
  cloud_provider = "aws"
  region         = "us-east-1"
  size           = "m6gd.large"

  # High-availability mode — number of standby replicas:
  #   "none"  – primary only, no standby (default)
  #   "async" – 1 standby, asynchronous replication
  #   "sync"  – 2 standbys, synchronous replication
  ha_type = "async"

  tags = {
    environment = "production"
    team        = "data"
  }
}
Para gestionar tú mismo la contraseña, establece password: debe tener al menos 12 caracteres, con al menos una letra minúscula, una mayúscula y un dígito. Si se omite, el servidor genera una.

Alta disponibilidad

El argumento ha_type controla el número de réplicas standby:
ha_typeStandbysReplicación
noneNinguna (solo primaria)
async1 standbyAsíncrona — el commit de las escrituras se realiza sin esperar a la standby
sync2 standbysSincrónica — la primaria espera la confirmación de al menos una standby
ha_type puede modificarse tras su creación; cambiarlo desencadena una transición de HA. Consulta Alta disponibilidad para obtener más información.

Réplicas de lectura

Establece read_replica_of con el id de un servicio primario para crear una réplica de lectura en streaming. Una réplica hereda el cloud_provider, la región, la postgres_version y el superusuario del primario; omítelos (y la contraseña):
resource "clickhouse_postgres_service" "replica" {
  name            = "my-postgres-replica"
  size            = "m6gd.large"
  read_replica_of = clickhouse_postgres_service.example.id
}
Consulta réplicas de lectura para más información.

Restauración a un momento dado

Configura restore_to_point_in_time para crear un servicio restaurando la copia de seguridad de otro servicio a un momento determinado. cloud_provider, region y postgres_version se heredan del servicio de origen (omítelos); size y ha_type también deben omitirse:
resource "clickhouse_postgres_service" "restored" {
  name = "my-postgres-restored"

  restore_to_point_in_time = {
    source_id      = clickhouse_postgres_service.example.id
    restore_target = "2026-06-01T12:00:00Z"
  }
}
Todo el bloque solo se usa durante la creación: cambiar source_id o restore_target, o eliminar el bloque, destruye y vuelve a crear el servicio. Consulta Copia de seguridad y restauración para más detalles.

Fuentes de datos

Tres fuentes de datos complementarias le permiten consultar los servicios existentes:
# A single service by ID.
data "clickhouse_postgres_service" "example" {
  id = clickhouse_postgres_service.example.id
}

# All Managed Postgres services in the organization.
data "clickhouse_postgres_services" "all" {}

# The CA certificates for a service, for TLS connections.
data "clickhouse_postgres_service_ca_certificates" "certs" {
  service_id = clickhouse_postgres_service.example.id
}

Importación de servicios existentes

Los servicios existentes de Managed Postgres se pueden importar al estado de Terraform mediante el ID del servicio. La contraseña se recupera al importar; el servidor la devuelve en GET:
terraform import clickhouse_postgres_service.example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Operaciones no admitidas

Los siguientes elementos se omiten intencionadamente del esquema del recurso:
  • Comandos operativos (restart, promote, switchover).
  • Listas de direcciones IP permitidas, endpoints privados, configuración de copias de seguridad, ventanas de mantenimiento, claves de cifrado gestionadas por el cliente y BYOC.
  • Tiempos de espera configurables del ciclo de vida: no hay ningún bloque timeouts {}.
Última modificación el 11 de junio de 2026