У меня есть кластер Kubernetes с несколькими развернутыми приложениями, каждое из которых использует отдельный пользователь + базу данных в экземпляре Amazon RDS (Postgres).
При развертывании нового экземпляра приложения мы хотели бы предоставить базу данных и пользователя на существующем сервере Postgres.
т.е. мы хотели бы выполнить что-то одно в следующей строке декларативным способом «Желаемое состояние».
CREATE DATABASE $appname;
CREATE USER $appname;
GRANT ALL PRIVILEGES ON DATABASE $appname TO $appname;
В настоящее время мы делаем это с помощью отдельного сценария Ansible, однако я бы хотел обработать его, используя CustomResourceDefinition, чтобы избежать дублирования инструментов.
При поиске в Google появился экспериментальный оператор, который реализует этот шаблон (https://github.com/torchbox/k8s-database-controller),, однако он помечен как экспериментальный, не рекомендуется для использования и в основном не поддерживается.
Существует ли наилучший подход для реализации этого в Kubernetes, или нам лучше оставить это как отдельный этап подготовки?
tl; dr Хотелось бы, чтобы один экземпляр RDS Postgres совместно использовался несколькими приложениями, развернутыми в кластере Kubernetes, причем каждое приложение получало свою собственную «базу данных» в этом экземпляре.