如何在创建bitnami mongodb图表中插入数据?



我学习k8s和Helm,所以我开始创建一个简单的flask应用程序,它使用mongondb,我有部署,服务和入口安装了Helm,并且工作良好。对于mongo容器,我使用Bitnami的图表,但我需要在创建时插入一些数据,就像我通过添加正常部署所做的那样:

volumeMounts:
- name: mongo-initdb
mountPath: /docker-entrypoint-initdb.d

在bitnami文档https://artifacthub.io/packages/helm/bitnami/mongodb中,它说数据可以通过脚本或配置图输入参数initdbScriptsinitdbScriptsConfigMap,但我尝试像这样添加它们并且不起作用:

mongodb:
metrics:
enabled: true
global:
namespaceOverride: flask-app
initdbScriptsConfigMap: mongo-initdb.yaml

是在使用k8和.yaml文件时工作的configmap:

apiVersion: v1
data:
init-db.js: |-
db = db.getSiblingDB("cars_db");
db.car_tb.drop();
db.car_tb.insertMany([
{
"id": 1,
"brand": "Ford",
"model": "Mustang"
},
{
"id": 2,
"brand": "Lamborghini",
"model": "Veneno"
},
{
"id": 3,
"brand": "Ferrari",
"model": "Enzo"
},
{
"id": 4,
"brand": "Mercedes",
"model": "Cls63-AMG"
},
]);
kind: ConfigMap
metadata:
name: mongo-initdb
namespace: flask-app

作为mongo-configmap。

由于它不起作用,我尝试添加一个名为docker-entrypoint-initdb.d的configmap,并将其设置在一个名为files的文件夹中,如这里所述https://docs.bitnami.com/kubernetes/infrastructure/mongodb/administration/initialize-instance/,但它们都不起作用,并且在文档中没有任何示例。

编辑我已经尝试将此添加到values.yaml:

mongodb:
metrics:
enabled: true
global:
namespaceOverride: flask-app
auth:
username: root
password: pass
database: cars_db
rootPassword: pass
initdbScripts: 
init-db.js: |
db = db.getSiblingDB("cars_db");
db.car_tb.drop();
db.car_tb.insertMany([
{
"id": 1,
"brand": "Ford",
"model": "Mustang"
},
{
"id": 2,
"brand": "Lamborghini",
"model": "Veneno"
},
{
"id": 3,
"brand": "Ferrari",
"model": "Enzo"
},
{
"id": 4,
"brand": "Mercedes",
"model": "Cls63-AMG"
},
]);

但是这不起作用,我从官方github https://github.com/bitnami/charts/blob/master/bitnami/mongodb/values.yaml得到了这个,但我不知道如何使它从文档中工作,我找不到任何例子

你现在可能已经明白了,因为你已经很接近了。我能够在我的父图表的values.yaml中使用以下内容做你想做的事情:

mongodb:
initdbScripts:
my_init_script.js: |
db = db.getSiblingDB("cars_db");
db.car_tb.drop();
db.car_tb.insertMany([
{
"id": 1,
"brand": "Ford",
"model": "Mustang"
},
{
"id": 2,
"brand": "Lamborghini",
"model": "Veneno"
},
{
"id": 3,
"brand": "Ferrari",
"model": "Enzo"
},
{
"id": 4,
"brand": "Mercedes",
"model": "Cls63-AMG"
},
]);

重要的是,这是在我的父图表的values.yaml。如果您直接修改mongodb图表(您可能不应该这样做,但无论如何),请省略mongodb部分并删除其余部分。这只需要重写子图表的值。

还值得注意的是,我还没有尝试过你正在使用的un/db/密码覆盖,所以也许试着删除那些?

另一件事可能是Bitnami mongo图表的一个有bug的版本,他们直接忘记在启动时执行.js/.sh文件,所以什么也没发生。尝试更新你的图表版本。我使用:

- name: mongodb
version: "10.15.0"
repository: https://charts.bitnami.com/bitnami

相关内容

  • 没有找到相关文章

最新更新