Skip to content

mws_mpostgres_cluster_user (Resource)

Пользователь в Managed PostgreSQL — это внутренняя учетная запись PostgreSQL для аутентификации в кластере.

Пример использования

terraform
resource "mws_vpc_network" "network" {
  network = var.network_name
}

resource "mws_vpc_subnet" "subnet" {
  subnet  = var.subnet_name
  network = mws_vpc_network.network.network
  cidr    = var.subnet_cidr
}

resource "mws_vpc_address" "cluster_primary_address" {
  address = "${var.cluster_name}-primary-address"
  network = mws_vpc_network.network.network
  subnet  = mws_vpc_subnet.subnet.metadata.id
}

resource "mws_mpostgres_cluster" "cluster" {
  cluster = var.cluster_name
  version = "17"
  active  = true

  metadata = {
    display_name = "Standalone Postgres Cluster"
    description  = "A standalone PostgreSQL cluster"
  }

  endpoints = [
    {
      name    = "primary-endpoint"
      network = mws_vpc_network.network.metadata.id
      primary_addresses = [
        {
          ref = mws_vpc_address.cluster_primary_address.metadata.id
        }
      ]
    }
  ]

  instance_template = {
    vm_type = "vmTypes/gen-2-8"
    disk = {
      size = "20GB"
      type = "NETWORK_STANDARD_SSD"
    }
  }

  instances = [
    {
      count = 1
      zone  = "ru-central1-a"
    }
  ]
}

resource "mws_mpostgres_cluster_user" "user" {
  cluster          = mws_mpostgres_cluster.cluster.cluster
  user             = var.user_name
  password         = var.user_password
  password_version = 1
  role             = "DB_OWNER_USER"
}

variable "cluster_name" {
  type        = string
  default     = "my-pg-cluster"
  description = "Postgres cluster name"
}

variable "user_name" {
  type        = string
  default     = "my-pg-cluster-user"
  description = "Database user name"
}

variable "user_password" {
  type        = string
  description = "Database user password"
  sensitive   = true
}

variable "network_name" {
  type        = string
  default     = "my-pg-cluster-network"
  description = "Network name"
}

variable "subnet_name" {
  type        = string
  default     = "my-pg-cluster-subnet"
  description = "Subnet name"
}

variable "subnet_cidr" {
  type        = string
  default     = "192.168.10.0/24"
  description = "Subnet CIDR"
}

Schema

Required

NOTE: Write-only arguments are supported in Terraform 1.11 and later.

  • cluster (String) Название или идентификатор кластера.
  • password (String, Sensitive, Write-only)
  • user (String) Пользователь базы данных.

Optional

  • kind (String)
  • metadata (Attributes) (see below for nested schema)
  • password_version (Number) Increase this field's value if you want to force updating the associated write-only field.
  • project (String) Путь к проекту
  • role (String) Пользовательские роли (они же роли приложений):
  • "DB_OWNER_USER": Пользователь с правами владельца базы данных. Это не суперпользователь, не имеет права создавать бд или роли, наследует разрешения db_owner.
  • "DB_WRITER_USER": Пользовательская роль, наследует разрешения групповой роли db_writer, db_reader.
  • "DB_READER_USER": Пользовательская роль, наследует разрешения групповой роли db_reader.
  • timeouts (Attributes) (see below for nested schema)

Read-Only

Nested Schema for metadata

Optional:

  • description (String) Описание ресурса.
  • display_name (String) Отображаемое имя. Необязательное поле, можно свободно задавать и изменять для удобства организации ресурсов.

Read-Only:

  • create_time (String) Дата создания объекта.
  • delete_time (String) Время запроса на удаление ресурса (не фактическое время удаления).
  • id (String) ссылка на типизированный референс
  • purge_time (String)
  • usages (Attributes List) Связи с другими ресурсами. В зависимости от типа связи, операции над ресурсом могут быть ограничены. (see below for nested schema)

Nested Schema for metadata.usages

Read-Only:

  • name (String) Имя связи, требуется для модификации коллекции
  • resource (String) ссылка на ресурс
  • usage_type (String) Тип связи. Помимо стандартных own и use могут быть добавлены специализированные типы для конкретных сервисов

Nested Schema for timeouts

Optional:

  • create (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
  • delete (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
  • update (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).

Nested Schema for status

Read-Only:

Nested Schema for status.ready

Read-Only:

  • message (String) Описание статуса
  • state (String) Состояние ресурса