Skip to main content
Сервисы ClickHouse Managed Postgres можно создавать и управлять ими с помощью ресурса clickhouse_postgres_service в Terraform-провайдере ClickHouse. На этой странице описаны настройка провайдера и примеры конфигурации для этого ресурса и связанных с ним источников данных.
Этот ресурс находится на стадии альфа, и его поведение может измениться в будущих версиях провайдера. Он входит в стандартную сборку провайдера. На этой странице описывается версия провайдера v3.21.0 и более поздние версии, в которых изменён способ управления учётными данными; более ранние версии ведут себя иначе и по состоянию на 31 июля 2026 года больше не работают корректно. Подробности см. в релизах провайдера.
Обновите провайдер до v3.21.0 до 31 июля 2026 годаПо состоянию на 31 июля 2026 года API Managed Postgres больше не возвращает в ответах пароль суперпользователя и строку подключения; учётные данные возвращаются только при создании сервиса или сбросе его пароля. Версии провайдера v3.21.0 и новее работают одинаково как до, так и после этого изменения. Более старые версии провайдера полагаются на то, что API повторно возвращает учётные данные: с 31 июля 2026 года они больше не заполняют connection_string, а сервис, созданный без явно заданного password, создаётся успешно, но сгенерированный пароль при этом нигде не сохраняется.Обновитесь до 31 июля 2026 года. Ваше состояние будет автоматически перенесено при первом plan или apply с v3.21.0. Если какие-либо из ваших сервисов используют сгенерированный сервером пароль (без password в конфигурации), сначала восстановите его с помощью terraform state pull и объявите его, поскольку v3.21.0 требует password или password_wo для стандартного сервиса.

Настройка провайдера

Добавьте провайдер ClickHouse в конфигурацию Terraform:
См. Управление ключами API, чтобы узнать, как создать ключ API для работы с провайдером.

Обзор ресурса

Ресурс clickhouse_postgres_service поддерживает следующие аргументы: Следующие атрибуты доступны только для чтения и заполняются ClickHouse Cloud после создания: id, state, created_at, is_primary, hostname, port и username. Атрибут connection_string отсутствует (удалён в v3.21.0): формируйте URI подключения из hostname, port, username и объявленного вами пароля, например postgres://${username}:${password}@${hostname}:${port}/postgres?sslmode=require.
Значение password хранится в состоянии Terraform в открытом виде. Поэтому файл состояния Terraform нужно надёжно защитить, например использовать удалённый backend с шифрованием при хранении или password_wo, чтобы пароль вообще не попадал в состояние Terraform.

Создайте сервис

Стандартный сервис должен объявлять password или password_wo. Значение должно содержать не менее 12 символов, включая как минимум одну строчную букву, одну заглавную букву и одну цифру. password_wo (вместе с password_wo_version) подчиняется тем же правилам для пароля, но никогда не сохраняется в состоянии Terraform; для ротации измените password_wo_version. Поскольку API не возвращает учетные данные, Terraform должен оставаться единственным средством записи пароля: ротация пароля вне Terraform (в консоли или через API) не обнаруживается, и следующая ротация через Terraform повторно применит объявленное значение.

Высокая доступность

Аргумент ha_type определяет количество резервных реплик: ha_type можно изменять после создания; его изменение вызывает переход HA. Подробности см. в разделе Высокая доступность.

Реплики для чтения

Задайте read_replica_of равным id основного сервиса, чтобы создать стриминговую реплику для чтения. Реплика наследует cloud_provider, region, postgres_version и superuser основного сервиса — не указывайте эти параметры (и password):
Подробнее см. в разделе реплики для чтения.

Восстановление на определённый момент времени

Задайте restore_to_point_in_time, чтобы создать сервис, восстановив резервную копию другого сервиса на указанный момент времени. Параметры cloud_provider, region и postgres_version наследуются от исходного сервиса, поэтому их указывать не нужно; size и ha_type также следует опустить:
Весь этот блок используется только на этапе создания: изменение source_id или restore_target, а также удаление блока приводят к удалению и повторному созданию сервиса. Подробности см. в разделе Резервное копирование и восстановление.

Источники данных

Три дополнительных источника данных позволяют найти существующие сервисы:

Импорт существующих сервисов

Существующие сервисы Managed Postgres можно импортировать в состояние Terraform по идентификатору сервиса:
При импорте пароль не восстанавливается (API его не возвращает). После импорта при первом apply для сервиса используется password или password_wo, указанный в вашей конфигурации.

Неподдерживаемые операции

Следующее намеренно не включено в схему ресурса:
  • Операционные команды (restart, promote, switchover).
  • Списки разрешённых IP-адресов, частные конечные точки, конфигурация резервного копирования, окна обслуживания, управляемые клиентом ключи шифрования и BYOC.
  • Настраиваемые тайм-ауты жизненного цикла — блока timeouts {} нет.
Последнее изменение 24 июля 2026 г.