Перейти к основному содержимому

Параметры конфигурации среды

примечание

Эта страница переведена при помощи нейросети GigaChat.

Некоторые параметры конфигурации, определенные в файле конфигурации Patroni, можно переопределить с помощью системных переменных окружения. В этом документе перечислены все переменные окружения, обрабатываемые Patroni. Значения, установленные через эти переменные, всегда имеют приоритет над значениями, заданными в файле конфигурации Patroni.

Глобальные/Универсальные

  • PATRONI_CONFIGURATION: позволяет задать всю конфигурацию для Patroni через переменную окружения PATRONI_CONFIGURATION. В этом случае любые другие переменные окружения игнорируются!
  • PATRONI_NAME: имя узла, на котором запущен текущий экземпляр Patroni. Должно быть уникальным для кластера.
  • PATRONI_NAMESPACE: путь в хранилище конфигураций, где Patroni будет хранить информацию о кластере. Значение по умолчанию: "/service"
  • PATRONI_SCOPE: имя кластера

Логирование

  • PATRONI_LOG_TYPE: задает формат логов. Может быть plain или json. Для использования формата json необходимо установить jsonlogger . Значение по умолчанию: plain.
  • PATRONI_LOG_LEVEL: задает общий уровень логирования. Значение по умолчанию: INFO (смотрите документацию Python logging)
  • PATRONI_LOG_TRACEBACK_LEVEL: задает уровень, на котором будут видны трассировки (tracebacks). Значение по умолчанию: ERROR. Установите DEBUG, если хотите видеть трассировки только при включенном PATRONI_LOG_LEVEL=DEBUG.
  • PATRONI_LOG_FORMAT: задает строку форматирования логов. Если тип лога — plain, формат должен быть строкой. смотрите атрибуты LogRecord для доступных атрибутов. Если тип лога — json, формат может быть списком или строкой. Каждый элемент списка должен соответствовать атрибутам LogRecord. Обратите внимание: требуется только имя поля, а %( и ) следует опустить. Если хотите вывести поле лога с другим именем ключа, используйте словарь, где ключ — имя поля лога, а значение — имя, которое должно быть выведено в логе. Значение по умолчанию: %(asctime)s %(levelname)s: %(message)s
  • PATRONI_LOG_DATEFORMAT: задает строку форматирования даты/времени (смотрите документацию formatTime())
  • PATRONI_LOG_STATIC_FIELDS: добавляет дополнительные поля в лог. Эта опция доступна только при типе лога json. Пример: PATRONI_LOG_STATIC_FIELDS="{app: patroni}"
  • PATRONI_LOG_MAX_QUEUE_SIZE: Patroni использует двухэтапное логирование. Записи лога записываются во внутреннюю очередь в памяти, и отдельный поток извлекает их из очереди и записывает в stderr или файл. Максимальный размер внутренней очереди по умолчанию ограничен 1000 записями, чего достаточно для хранения логов за последние 1ч 20м.
  • PATRONI_LOG_DIR: каталог для записи логов приложения. Каталог должен существовать и быть доступен для записи пользователю, запускающему Patroni. Если установлена эта переменная, приложение по умолчанию сохраняет 4 лога по 25 МБ. Эти значения можно настроить с помощью PATRONI_LOG_FILE_NUM и PATRONI_LOG_FILE_SIZE (смотрите ниже).
  • PATRONI_LOG_MODE: права доступа к файлам логов (например, 0644). Если не указано, права устанавливаются на основе текущего значения umask.
  • PATRONI_LOG_FILE_NUM: количество сохраняемых логов приложения.
  • PATRONI_LOG_FILE_SIZE: размер файла patroni.log (в байтах), при достижении которого происходит ротация лога.
  • PATRONI_LOG_LOGGERS: переопределение уровня логирования для модулей Python. Пример: PATRONI_LOG_LOGGERS="{patroni.postmaster: WARNING, urllib3: DEBUG}"
  • PATRONI_LOG_DEDUPLICATE_HEARTBEAT_LOGS: если установлено в true, последовательные идентичные логи heartbeat не будут выводиться. Значение по умолчанию: false.
warning

Время выполнения цикла HA может быть очень ценной информацией при диагностике failover из-за исчерпания ресурсов и подобных проблем. При установленном PATRONI_LOG_DEDUPLICATE_HEARTBEAT_LOGS=true лог выполнения цикла HA не будет генерироваться (если только не меняется лидер), и поэтому эта потенциально полезная информация не будет доступна в логах.

Citus

Включает интеграцию Patroni с Citus. Если настроено, Patroni будет регистрировать рабочие узлы Citus на координаторе. Дополнительную информацию о поддержке Citus смотрите здесь.

  • PATRONI_CITUS_GROUP: идентификатор группы Citus, целое число. Используйте 0 для координатора и 1, 2 и так далее для рабочих узлов
  • PATRONI_CITUS_DATABASE: база данных, где должно быть создано расширение citus. Должно быть одинаковым на координаторе и всех рабочих узлах. В настоящее время поддерживается только одна база данных.

Consul

  • PATRONI_CONSUL_HOST: host:port для локального агента Consul.
  • PATRONI_CONSUL_URL: URL для локального агента Consul в формате: http(s)://host:port
  • PATRONI_CONSUL_PORT: (опционально) порт Consul
  • PATRONI_CONSUL_SCHEME: (опционально) http или https, по умолчанию http
  • PATRONI_CONSUL_TOKEN: (опционально) токен ACL
  • PATRONI_CONSUL_VERIFY: (опционально) проверять ли SSL-сертификат для HTTPS-запросов
  • PATRONI_CONSUL_CACERT: (опционально) корневой сертификат. Если указан, включается проверка.
  • PATRONI_CONSUL_CERT: (опционально) файл с клиентским сертификатом
  • PATRONI_CONSUL_KEY: (опционально) файл с клиентским ключом. Может быть пустым, если ключ является частью сертификата.
  • PATRONI_CONSUL_DC: (опционально) дата-центр для взаимодействия. По умолчанию используется дата-центр хоста.
  • PATRONI_CONSUL_CONSISTENCY: (опционально) выбор режима согласованности Consul. Возможные значения: default, consistent или stale (подробнее в справочнике API Consul)
  • PATRONI_CONSUL_CHECKS: (опционально) список проверок здоровья Consul, используемых для сессии. По умолчанию используется пустой список.
  • PATRONI_CONSUL_REGISTER_SERVICE: (опционально) регистрировать ли сервис с именем, определенным параметром scope, и тегом master, primary, replica или standby-leader в зависимости от роли узла. По умолчанию: false
  • PATRONI_CONSUL_SERVICE_TAGS: (опционально) дополнительные статические теги для добавления в сервис Consul помимо роли (primary/replica/standby-leader). По умолчанию используется пустой список.
  • PATRONI_CONSUL_SERVICE_CHECK_INTERVAL: (опционально) как часто выполнять проверку здоровья по зарегистрированному URL
  • PATRONI_CONSUL_SERVICE_CHECK_TLS_SERVER_NAME: (опционально) переопределение хоста SNI при подключении через TLS, смотрите также справочник API проверки агента Consul.

etcd

  • PATRONI_ETCD_PROXY: URL прокси для etcd. Если подключение к etcd осуществляется через прокси, используйте этот параметр вместо PATRONI_ETCD_URL
  • PATRONI_ETCD_URL: URL для etcd в формате: http(s)://(username:password@)host:port.
  • PATRONI_ETCD_HOSTS: список endpoint etcd в формате 'host1:port1','host2:port2' и так далее.
  • PATRONI_ETCD_USE_PROXIES: если этот параметр установлен в true, Patroni будет рассматривать hosts как список прокси и не будет выполнять обнаружение топологии кластера etcd, а будет использовать фиксированный список hosts.
  • PATRONI_ETCD_PROTOCOL: http или https; если не указано, используется http. Если указан url или proxy — протокол берется из них.
  • PATRONI_ETCD_HOST: host:port для endpoint'а etcd.
  • PATRONI_ETCD_SRV: домен для поиска SRV-записей для автообнаружения кластера. Patroni будет пытаться запросить следующие имена сервисов SRV для указанного домена (в указанном порядке до первого успеха): _etcd-client-ssl, _etcd-client, _etcd-ssl, _etcd, _etcd-server-ssl, _etcd-server. Если получены SRV-записи для _etcd-server-ssl или _etcd-server, для запроса доступных участников ETCD используется протокол пира ETCD. В противном случае используются хосты из SRV-записей.
  • PATRONI_ETCD_SRV_SUFFIX: настраивает суффикс к имени SRV, который запрашивается при обнаружении. Используйте этот флаг для различения нескольких кластеров etcd в одном домене. Работает только в сочетании с PATRONI_ETCD_SRV. Например, если установлены PATRONI_ETCD_SRV_SUFFIX=foo и PATRONI_ETCD_SRV=example.org, выполняется следующий DNS SRV-запрос: _etcd-client-ssl-foo._tcp.example.com (и так далее для каждого возможного имени сервиса ETCD SRV).
  • PATRONI_ETCD_USERNAME: имя пользователя для аутентификации etcd.
  • PATRONI_ETCD_PASSWORD: пароль для аутентификации etcd.
  • PATRONI_ETCD_CACERT: корневой сертификат. Если указан, включается проверка.
  • PATRONI_ETCD_CERT: файл с клиентским сертификатом.
  • PATRONI_ETCD_KEY: файл с клиентским ключом. Может быть пустым, если ключ является частью сертификата.

etcdv3

Имена переменных окружения для etcdv3 аналогичны etcd, нужно только использовать ETCD3 вместо ETCD в имени переменной. Пример: PATRONI_ETCD3_HOST, PATRONI_ETCD3_CACERT и так далее.

warning

Ключи, созданные с протоколом версии 2, не видны при использовании протокола версии 3, и наоборот, поэтому невозможно переключиться с etcd на etcdv3 просто обновив конфигурацию Patroni. Кроме того, Patroni использует gRPC-gateway (прокси) etcd для взаимодействия с API V3, что означает, что аутентификация по общему имени TLS невозможна.

ZooKeeper

  • PATRONI_ZOOKEEPER_HOSTS: разделенный запятыми список участников кластера ZooKeeper: "'host1:port1','host2:port2','etc...'". Важно заключать каждую сущность в кавычки!
  • PATRONI_ZOOKEEPER_USE_SSL: (опционально) используется ли SSL. По умолчанию: false. Если установлено в false, все SSL-специфичные параметры игнорируются.
  • PATRONI_ZOOKEEPER_CACERT: (опционально) корневой сертификат. Если указан, включается проверка.
  • PATRONI_ZOOKEEPER_CERT: (опционально) файл с клиентским сертификатом.
  • PATRONI_ZOOKEEPER_KEY: (опционально) файл с клиентским ключом.
  • PATRONI_ZOOKEEPER_KEY_PASSWORD: (опционально) пароль клиентского ключа.
  • PATRONI_ZOOKEEPER_VERIFY: (опционально) проверять ли сертификат. По умолчанию: true.
  • PATRONI_ZOOKEEPER_SET_ACLS: (опционально) если установлено, настраивает Kazoo на применение ACL по умолчанию к каждому создаваемому ZNode. ACL будут использовать схему 'x509' и должны быть указаны как словарь, где ключ — принципал, а значение — одна или несколько прав доступа в виде списка. Права могут быть одним из: CREATE, READ, WRITE, DELETE или ADMIN. Например: set_acls: {CN=principal1: [CREATE, READ], CN=principal2: [ALL]}.
  • PATRONI_ZOOKEEPER_AUTH_DATA: (опционально) учетные данные аутентификации для подключения. Должен быть словарь, где ключ — scheme, а значение — credential. По умолчанию: пустой словарь.
примечание

Требуется установка kazoo>=2.6.0 для поддержки SSL.

Exhibitor

  • PATRONI_EXHIBITOR_HOSTS: начальный список узлов Exhibitor (ZooKeeper) в формате: 'host1,host2,etc...'. Этот список обновляется автоматически при изменении топологии кластера Exhibitor (ZooKeeper).
  • PATRONI_EXHIBITOR_PORT: порт Exhibitor.

Kubernetes

  • PATRONI_KUBERNETES_BYPASS_API_SERVICE: (опционально) При взаимодействии с Kubernetes API Patroni обычно полагается на сервис kubernetes, адрес которого доступен в подах через переменную окружения KUBERNETES_SERVICE_HOST. Если PATRONI_KUBERNETES_BYPASS_API_SERVICE установлен в true, Patroni разрешит список узлов API за сервисом и подключится к ним напрямую.
  • PATRONI_KUBERNETES_NAMESPACE: (опционально) namespace Kubernetes, где запущен под Patroni. Значение по умолчанию: default.
  • PATRONI_KUBERNETES_LABELS: метки в формате {label1: value1, label2: value2}. Эти метки будут использоваться для поиска существующих объектов (Pods и либо Endpoints, либо ConfigMaps), связанных с текущим кластером. Также Patroni установит их на каждый создаваемый объект (Endpoint или ConfigMap).
  • PATRONI_KUBERNETES_SCOPE_LABEL: (опционально) имя метки, содержащей имя кластера. Значение по умолчанию: cluster-name.
  • PATRONI_KUBERNETES_BOOTSTRAP_LABELS: (опционально) метки в формате {label1: value1, label2: value2}. Эти метки будут назначены поду Patroni, когда его состояние равно initializing new cluster, running custom bootstrap script, starting after custom bootstrap или creating replica.
  • PATRONI_KUBERNETES_ROLE_LABEL: (опционально) имя метки, содержащей роль (primary, replica или другое пользовательское значение). Patroni установит эту метку на под, в котором он запущен. Значение по умолчанию: role.
  • PATRONI_KUBERNETES_LEADER_LABEL_VALUE: (опционально) значение метки пода, когда роль Postgres — primary. Значение по умолчанию: primary.
  • PATRONI_KUBERNETES_FOLLOWER_LABEL_VALUE: (опционально) значение метки пода, когда роль Postgres — replica. Значение по умолчанию: replica.
  • PATRONI_KUBERNETES_STANDBY_LEADER_LABEL_VALUE: (опционально) значение метки пода, когда роль Postgres — standby_leader. Значение по умолчанию: primary.
  • PATRONI_KUBERNETES_TMP_ROLE_LABEL: (опционально) имя временной метки, содержащей роль (primary или replica). Значение этой метки всегда будет использовать значение по умолчанию для соответствующей роли. Устанавливается только при необходимости.
  • PATRONI_KUBERNETES_USE_ENDPOINTS: (опционально) если установлено в true, Patroni будет использовать Endpoints вместо ConfigMaps для выборов лидера и хранения состояния кластера.
  • PATRONI_KUBERNETES_POD_IP: (опционально) IP-адрес пода, в котором запущен Patroni. Это значение требуется при включенном PATRONI_KUBERNETES_USE_ENDPOINTS и используется для заполнения подмножеств лидера Endpoint при повышении роли PostgreSQL в поде.
  • PATRONI_KUBERNETES_PORTS: (опционально) если объект Service имеет имя для порта, то же имя должно присутствовать в объекте Endpoint, иначе сервис не будет работать. Например, если сервис определен как {Kind: Service, spec: {ports: [{name: postgresql, port: 5432, targetPort: 5432}]}}, то необходимо установить PATRONI_KUBERNETES_PORTS='[{"name": "postgresql", "port": 5432}]', и Patroni будет использовать это для обновления подмножеств лидера Endpoint. Этот параметр используется только если установлен PATRONI_KUBERNETES_USE_ENDPOINTS.
  • PATRONI_KUBERNETES_CACERT: (опционально) указывает файл с CA_BUNDLE, содержащий сертификаты доверенных ЦС, для проверки SSL-сертификатов Kubernetes API. Если не предоставлен, Patroni использует значение из секрета ServiceAccount.
  • PATRONI_RETRIABLE_HTTP_CODES: (опционально) список кодов состояния HTTP от K8s API, при которых следует выполнять повторные попытки. По умолчанию Patroni повторяет попытки при 500, 503 и 504, или если ответ K8s API содержит заголовок retry-after.

Raft (устаревший)

  • PATRONI_RAFT_SELF_ADDR: ip:port для прослушивания соединений Raft. self_addr должен быть доступен с других узлов кластера. Если не установлен, узел не будет участвовать в консенсусе.
  • PATRONI_RAFT_BIND_ADDR: (опционально) ip:port для прослушивания соединений Raft. Если не указан, будет использован self_addr.
  • PATRONI_RAFT_PARTNER_ADDRS: список других узлов Patroni в кластере в формате "'ip1:port1','ip2:port2'". Важно заключать каждую сущность в кавычки!
  • PATRONI_RAFT_DATA_DIR: каталог для хранения лога и снапшота Raft. Если не указан, используется текущий рабочий каталог.
  • PATRONI_RAFT_PASSWORD: (опционально) шифрование трафика Raft с указанным паролем, требует модуль Python cryptography.

PostgreSQL

  • PATRONI_POSTGRESQL_LISTEN: IP-адрес + порт, который прослушивает Postgres. Допускается несколько адресов, разделенных запятыми, при условии, что компонент порта добавляется после последнего через двоеточие, то есть listen: 127.0.0.1,127.0.0.2:5432. Patroni будет использовать первый адрес из этого списка для установления локальных подключений к узлу PostgreSQL.
  • PATRONI_POSTGRESQL_CONNECT_ADDRESS: IP-адрес + порт, через который Postgres доступен с других узлов и приложений.
  • PATRONI_POSTGRESQL_PROXY_ADDRESS: IP-адрес + порт, через который доступен пул соединений (например, pgbouncer), работающий рядом с Postgres. Значение записывается в ключ участника в DCS как proxy_url и может использоваться для service discovery.
  • PATRONI_POSTGRESQL_DATA_DIR: расположение каталога данных Postgres, существующего или инициализируемого Patroni.
  • PATRONI_POSTGRESQL_CONFIG_DIR: расположение каталога конфигурации Postgres, по умолчанию — каталог данных. Должен быть доступен для записи Patroni.
  • PATRONI_POSTGRESQL_BIN_DIR: путь к бинарным файлам PostgreSQL (pg_ctl, initdb, pg_controldata, pg_basebackup, postgres, pg_isready, pg_rewind). Значение по умолчанию — пустая строка, что означает использование переменной окружения PATH для поиска исполняемых файлов.
  • PATRONI_POSTGRESQL_BIN_PG_CTL: (опционально) пользовательское имя для бинарного файла pg_ctl.
  • PATRONI_POSTGRESQL_BIN_INITDB: (опционально) пользовательское имя для бинарного файла initdb.
  • PATRONI_POSTGRESQL_BIN_PG_CONTROLDATA: (опционально) пользовательское имя для бинарного файла pg_controldata.
  • PATRONI_POSTGRESQL_BIN_PG_BASEBACKUP: (опционально) пользовательское имя для бинарного файла pg_basebackup.
  • PATRONI_POSTGRESQL_BIN_POSTGRES: (опционально) пользовательское имя для бинарного файла postgres.
  • PATRONI_POSTGRESQL_BIN_IS_READY: (опционально) пользовательское имя для бинарного файла pg_isready.
  • PATRONI_POSTGRESQL_BIN_PG_REWIND: (опционально) пользовательское имя для бинарного файла pg_rewind.
  • PATRONI_POSTGRESQL_PGPASS: путь к файлу паролей .pgpass. Patroni создает этот файл перед выполнением pg_basebackup и в некоторых других случаях. Расположение должно быть доступно для записи Patroni.
  • PATRONI_REPLICATION_USERNAME: имя пользователя для репликации; пользователь будет создан при инициализации. Реплики будут использовать этого пользователя для доступа к источнику репликации через потоковую репликацию
  • PATRONI_REPLICATION_PASSWORD: пароль для репликации; пользователь будет создан при инициализации.
  • PATRONI_REPLICATION_SSLMODE: (опционально) соответствует параметру подключения sslmode, который позволяет клиенту указать тип режима согласования TLS с сервером. Подробнее о работе каждого режима смотрите документацию PostgreSQL. Режим по умолчанию: prefer.
  • PATRONI_REPLICATION_SSLKEY: (опционально) соответствует параметру подключения sslkey, который указывает расположение секретного ключа, используемого с сертификатом клиента.
  • PATRONI_REPLICATION_SSLPASSWORD: (опционально) соответствует параметру подключения sslpassword, который указывает пароль для секретного ключа, заданного в PATRONI_REPLICATION_SSLKEY.
  • PATRONI_REPLICATION_SSLCERT: (опционально) соответствует параметру подключения sslcert, который указывает расположение клиентского сертификата.
  • PATRONI_REPLICATION_SSLROOTCERT: (опционально) соответствует параметру подключения sslrootcert, который указывает расположение файла, содержащего один или несколько сертификатов центров сертификации (CA), которые клиент будет использовать для проверки сертификата сервера.
  • PATRONI_REPLICATION_SSLCRL: (опционально) соответствует параметру подключения sslcrl, который указывает расположение файла, содержащего список отзыва сертификатов. Клиент откажется подключаться к любому серверу, сертификат которого присутствует в этом списке.
  • PATRONI_REPLICATION_SSLCRLDIR: (опционально) соответствует параметру подключения sslcrldir, который указывает расположение каталога с файлами, содержащими список отзыва сертификатов. Клиент откажется подключаться к любому серверу, сертификат которого присутствует в этом списке.
  • PATRONI_REPLICATION_SSLNEGOTIATION: (опционально) соответствует параметру подключения sslnegotiation, который управляет тем, как согласуется шифрование SSL с сервером, если используется SSL.
  • PATRONI_REPLICATION_GSSENCMODE: (опционально) соответствует параметру подключения gssencmode, который определяет, будет ли и с каким приоритетом согласовываться безопасное GSS TCP/IP-соединение с сервером
  • PATRONI_REPLICATION_CHANNEL_BINDING: (опционально) соответствует параметру подключения channel_binding, который управляет использованием клиентом channel binding.
  • PATRONI_SUPERUSER_USERNAME: имя суперпользователя, задается при инициализации (initdb) и позже используется Patroni для подключения к postgres. Также этот пользователь используется pg_rewind.
  • PATRONI_SUPERUSER_PASSWORD: пароль суперпользователя, задается при инициализации (initdb).
  • PATRONI_SUPERUSER_SSLMODE: (опционально) соответствует параметру подключения sslmode (смотрите выше для PATRONI_REPLICATION_SSLMODE).
  • PATRONI_SUPERUSER_SSLKEY: (опционально) соответствует параметру подключения sslkey (смотрите выше).
  • PATRONI_SUPERUSER_SSLPASSWORD: (опционально) соответствует параметру подключения sslpassword (смотрите выше).
  • PATRONI_SUPERUSER_SSLCERT: (опционально) соответствует параметру подключения sslcert (смотрите выше).
  • PATRONI_SUPERUSER_SSLROOTCERT: (опционально) соответствует параметру подключения sslrootcert (смотрите выше).
  • PATRONI_SUPERUSER_SSLCRL: (опционально) соответствует параметру подключения sslcrl (смотрите выше).
  • PATRONI_SUPERUSER_SSLCRLDIR: (опционально) соответствует параметру подключения sslcrldir (смотрите выше).
  • PATRONI_SUPERUSER_SSLNEGOTIATION: (опционально) соответствует параметру подключения sslnegotiation (смотрите выше).
  • PATRONI_SUPERUSER_GSSENCMODE: (опционально) соответствует параметру подключения gssencmode (смотрите выше).
  • PATRONI_SUPERUSER_CHANNEL_BINDING: (опционально) соответствует параметру подключения channel_binding (смотрите выше).
  • PATRONI_REWIND_USERNAME: (опционально) имя пользователя для pg_rewind; пользователь будет создан при инициализации postgres 11+, и ему будут предоставлены все необходимые права доступа.
  • PATRONI_REWIND_PASSWORD: (опционально) пароль для пользователя pg_rewind; пользователь будет создан при инициализации.
  • PATRONI_REWIND_SSLMODE: (опционально) соответствует параметру подключения sslmode (смотрите выше).
  • PATRONI_REWIND_SSLKEY: (опционально) соответствует параметру подключения sslkey (смотрите выше).
  • PATRONI_REWIND_SSLPASSWORD: (опционально) соответствует параметру подключения sslpassword (смотрите выше).
  • PATRONI_REWIND_SSLCERT: (опционально) соответствует параметру подключения sslcert (смотрите выше).
  • PATRONI_REWIND_SSLROOTCERT: (опционально) соответствует параметру подключения sslrootcert (смотрите выше).
  • PATRONI_REWIND_SSLCRL: (опционально) соответствует параметру подключения sslcrl (смотрите выше).
  • PATRONI_REWIND_SSLCRLDIR: (опционально) соответствует параметру подключения sslcrldir (смотрите выше).
  • PATRONI_REWIND_SSLNEGOTIATION: (опционально) соответствует параметру подключения sslnegotiation (смотрите выше).
  • PATRONI_REWIND_GSSENCMODE: (опционально) соответствует параметру подключения gssencmode (смотрите выше).
  • PATRONI_REWIND_CHANNEL_BINDING: (опционально) соответствует параметру подключения channel_binding (смотрите выше).

REST API

  • PATRONI_RESTAPI_CONNECT_ADDRESS: IP-адрес и порт для доступа к REST API.
  • PATRONI_RESTAPI_LISTEN: IP-адрес и порт, который Patroni будет прослушивать для предоставления информации о здоровье для HAProxy.
  • PATRONI_RESTAPI_USERNAME: имя пользователя Basic-auth для защиты небезопасных endpoint REST API.
  • PATRONI_RESTAPI_PASSWORD: пароль Basic-auth для защиты небезопасных endpoint REST API.
  • PATRONI_RESTAPI_CERTFILE: указывает файл с сертификатом в формате PEM. Если certfile не указан или пуст, API-сервер будет работать без SSL.
  • PATRONI_RESTAPI_KEYFILE: указывает файл с секретным ключом в формате PEM.
  • PATRONI_RESTAPI_KEYFILE_PASSWORD: указывает пароль для расшифровки keyfile.
  • PATRONI_RESTAPI_CAFILE: указывает файл с CA_BUNDLE, содержащий сертификаты доверенных ЦС, для проверки клиентских сертификатов.
  • PATRONI_RESTAPI_CIPHERS: (опционально) указывает разрешенные наборы шифров (например, "ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:!SSLv1:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1")
  • PATRONI_RESTAPI_VERIFY_CLIENT: none (по умолчанию), optional или required. При none REST API не будет проверять клиентские сертификаты. При required клиентские сертификаты требуются для всех вызовов REST API. При optional клиентские сертификаты требуются для всех небезопасных endpoint REST API. При использовании required аутентификация клиента успешна, если проверка подписи сертификата успешна. Для optional клиентский сертификат проверяется только для запросов PUT, POST, PATCH и DELETE.
  • PATRONI_RESTAPI_ALLOWLIST: (опционально): указывает набор хостов, которым разрешено вызывать небезопасные endpoint'ы REST API. Отдельный элемент может быть именем хоста, IP-адресом или сетевым адресом в нотации CIDR. По умолчанию используется allow all. Если установлены allowlist или allowlist_include_members, все, что не включено, отклоняется.
  • PATRONI_RESTAPI_ALLOWLIST_INCLUDE_MEMBERS: (опционально): если установлено в true, разрешает доступ к небезопасным endpoint'ам REST API с других участников кластера, зарегистрированных в DCS (IP-адрес или имя хоста берется из api_url участника). Будьте осторожны: ОС может использовать другой IP-адрес для исходящих соединений.
  • PATRONI_RESTAPI_HTTP_EXTRA_HEADERS: (опционально) HTTP-заголовки, позволяющие серверу REST API передавать дополнительную информацию с HTTP-ответом.
  • PATRONI_RESTAPI_HTTPS_EXTRA_HEADERS: (опционально) HTTPS-заголовки, позволяющие серверу REST API передавать дополнительную информацию с HTTP-ответом при включенном TLS. Это также передаст дополнительную информацию, заданную в http_extra_headers.
  • PATRONI_RESTAPI_REQUEST_QUEUE_SIZE: (опционально): задает размер очереди запросов для TCP-сокета, используемого REST API Patroni. После заполнения очереди дальнейшие запросы получают ошибку "Connection denied". Значение по умолчанию: 5.
  • PATRONI_RESTAPI_SERVER_TOKENS: (опционально) настраивает значение заголовка HTTP Server. Original (по умолчанию) сохранит исходное поведение и отобразит версии BaseHTTP и Python, например: BaseHTTP/0.6 Python/3.12.3. Minimal: заголовок будет содержать только версию Patroni, например: Patroni/4.0.0. ProductOnly: заголовок будет содержать только имя продукта, например: Patroni.
warning
  • PATRONI_RESTAPI_CONNECT_ADDRESS должен быть доступен со всех узлов данного кластера Patroni. Внутренне Patroni использует его во время выборов лидера для поиска узлов с минимальным отставанием репликации.
  • Если проверка клиентских сертификатов включена (PATRONI_RESTAPI_VERIFY_CLIENT установлен в required), необходимо также предоставить действительные клиентские сертификаты в PATRONI_CTL_CERTFILE, PATRONI_CTL_KEYFILE, PATRONI_CTL_KEYFILE_PASSWORD. Если они не предоставлены, Patroni не будет работать корректно.

CTL

  • PATRONICTL_CONFIG_FILE: (опционально) расположение файла конфигурации.
  • PATRONI_CTL_USERNAME: (опционально) имя пользователя Basic-auth для доступа к защищенным endpoint'ам REST API. Если не предоставлено, patronictl будет использовать значение, указанное для параметра REST API "username".
  • PATRONI_CTL_PASSWORD: (опционально) пароль Basic-auth для доступа к защищенным endpoint'ам REST API. Если не предоставлено, patronictl будет использовать значение, указанное для параметра REST API "password".
  • PATRONI_CTL_INSECURE: (опционально) разрешает подключения к REST API без проверки SSL-сертификатов.
  • PATRONI_CTL_CACERT: (опционально) указывает файл с CA_BUNDLE или каталог с сертификатами доверенных ЦС для проверки SSL-сертификатов REST API. Если не предоставлено, patronictl будет использовать значение, указанное для параметра REST API "cafile".
  • PATRONI_CTL_CERTFILE: (опционально) указывает файл с клиентским сертификатом в формате PEM.
  • PATRONI_CTL_KEYFILE: (опционально) указывает файл с клиентским секретным ключом в формате PEM.
  • PATRONI_CTL_KEYFILE_PASSWORD: (опционально) указывает пароль для расшифровки клиентского keyfile.