Параметры конфигурации среды
Эта страница переведена при помощи нейросети GigaChat.
Некоторые параметры конфигурации, определенные в файле конфигурации Patroni, можно переопределить с помощью системных переменных окружения. В этом документе перечислены все переменные окружения, обрабатываемые Patroni. Значения, установленные через эти переменные, всегда имеют приоритет над значениями, заданными в файле конфигурации Patroni.
Глобальные/Универсальные
- PATRONI_CONFIGURATION: позволяет задать всю конфигурацию для Patroni через переменную окружения
PATRONI_CONFIGURATION. В этом случае любые другие переменные окружения игнорируются! - PATRONI_THREAD_POOL_SIZE: размер пула потоков, используемого Patroni для выполнения асинхронных задач и связи через REST API с другими участниками во время гонки лидеров или проверок отказоустойчивости. Минимальное значение —
5, значение по умолчанию —5. - PATRONI_THREAD_STACK_SIZE: указывает размер стека, используемого для потоков, запускаемых Patroni. Значение должно быть выровнено по
64kB. Минимальное значение —64kB, значение по умолчанию (устанавливаемое Patroni) —512kB. - PATRONI_NAME: имя узла, на котором запущен текущий экземпляр Patroni. Должно быть уникальным для кластера.
- PATRONI_NAMESPACE: путь в хранилище конфигураций, где Patroni будет хранить информацию о кластере. Значение по умолчанию:
"/service" - PATRONI_SCOPE: имя кластера.
- PG_MALLOC_ARENA_MAX: пользовательское значение для переменной среды
MALLOC_ARENA_MAXдля процессаpostmaster. Если не задано,postmasterунаследует значениеMALLOC_ARENA_MAX.
Логирование
- 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.
Время выполнения цикла 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 и так далее.
Ключи, созданные с протоколом версии 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_THREAD_POOL_SIZE: размер пула потоков, используемого Patroni для обработки запросов REST API. Минимальное значение —
5, значение по умолчанию —5. - 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. ПриnoneREST 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.
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.