Helm:initdbScripts参数中的PostgreSQL

Helm:initdbScripts参数中的PostgreSQL,postgresql,kubernetes,kubernetes-helm,Postgresql,Kubernetes,Kubernetes Helm,PostgreSQL的默认掌舵图(即stable/PostgreSQL)定义了允许运行初始化脚本的initdbScripts参数。但是,在如何通过命令行发布它方面,我似乎无法获得正确的格式 有人能举例说明如何填充此命令行参数吗? 下面是我要发布的内容,减去initdbScripts参数的工作版本 helm install stable/postgresql -n testpg \ --set global.postgresql.postgresqlDatabase=testpg \

PostgreSQL的默认掌舵图(即
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
根据helm chart,
initdbScripts
是一个包含多行变量的init脚本名称的字典:

假设我们有以下
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”
  • 脚本的内容用双引号括起来,因为它是多行字符串变量
  • 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