Сброрка создана с целью решить проблему запуска patroni в виде службы в кластере swarm. Основная проблема, препятствующая полноценной работе, это сетевое самоопределение конетейнеров. То-есть экземпляр не понимает где он находится и не может правильно выставить настройки партнеров репликации.
С целью устранить этот недостаток я обернул patroni в простую функцию определения сетевых настроек.
Принцип работы предельно прост. Берем переменную PATRONI_RAFT_SELF_ADDR и вычитаем ее из PATRONI_RAFT_PARTNER_ADDRS. При этом все сетевые имена преобразуем в ip адреса (так нужно оригинальному patroni).
Как запустить:
- в PATRONI_RAFT_PARTNER_ADDRS записываем все адреса:порты кластера pantroni
- в PATRONI_RAFT_SELF_ADDR записываем имя:порт ноды docker
форматы точно такие-же как в документации patroni
Оригинальный patroni никаким изменения не подвергался, это просто процедура настройки окружения перед запуской службы.
Собранный образ контейнера доступен на Docker Hub