我的应用程序包含两个容器:应用程序本身和数据库。我打算将应用程序包装成图表,从而为轻松重现部署铺平了道路。
除了设置/读取环境envs(helm + kubernetes似乎处理得非常好)之外,应用程序配置的一部分是:
确保数据库预先填充了特殊的辅助数据(例如,管理员用户存在,创建新用户所需的一些用户角色名称等)。
我喜欢让可读的yaml文件以人类可读的格式保存整个配置的想法。但是,一眼看来helm
似乎无法以任何方式帮助此(DB记录)类型的配置。
话虽如此,放置代码/配置以确保DB包含某些辅助记录的最佳位置是什么?配置yaml文件?一个用bash编写的容器初始化脚本?
答案 0 :(得分:1)
你是对的,Kubernetes或Helm无法帮助你准备预先填好的数据库记录/架构。
您应该让应用程序初始化那些预先填充的数据。如果您不想将此逻辑放入您的应用程序,您可以发送初始化脚本并使用Kubernetes配置init container。
Kubernetes确保每次重新启动应用程序容器时,init容器首先运行。在init容器中,你可以执行一个bash / python / ...脚本,确保你想要的记录在那里。