PostgreSQL的默认Helm图表(即stable/postgresql
)定义了一个initdbScripts
参数,允许运行初始化脚本。但是,我似乎无法通过命令行获取格式正确的格式。
有人可以提供一个如何填充此命令行参数的示例吗?
这是我发布的内容,减去了initdbScripts
参数的工作版本。
helm install stable/postgresql -n testpg \
--set global.postgresql.postgresqlDatabase=testpg \
--set global.postgresql.postgresqlUsername=testpg \
--set global.postgresql.postgresqlPassword=testpg \
--set global.postgresql.servicePort=5432 \
--set initdbScripts=(WHAT GOES HERE TO RUN "sql/init.sql"??) \
--set service.type=LoadBalancer
根据stable/postgresql头盔图,initdbScripts
是一个init脚本名称的字典,它是多行变量:
## initdb scripts ## Specify dictionnary of scripts to be run at first boot ## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory ## # initdbScripts: # my_init_script.sh:| # #!/bin/sh # echo "Do something."
我们假设我们有以下init.sql
脚本:
CREATE USER helm;
CREATE DATABASE helm;
GRANT ALL PRIVILEGES ON DATABASE helm TO helm;
当我们要将多行文本注入值时,我们需要处理YAML中的缩进。
对于上述特定情况,它是:
helm install stable/postgresql -n testpg \
--set global.postgresql.postgresqlDatabase=testpg \
--set global.postgresql.postgresqlUsername=testpg \
--set global.postgresql.postgresqlPassword=testpg \
--set global.postgresql.servicePort=5432 \
--set initdbScripts."init\.sql"="CREATE USER helm;
CREATE DATABASE helm;
GRANT ALL PRIVILEGES ON DATABASE docker TO helm;" \
--set service.type=LoadBalancer
上面的例子有一些解释:
.
,它应该被转义,如"init\.sql"
。