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