jef*_*her 4 postgresql kubernetes kubernetes-helm
PostgreSQL 的默认 Helm Chart(即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 helm chart,initdbScripts是一个多行变量的初始化脚本名称字典:
Run Code Online (Sandbox Code Playgroud)## initdb scripts ## Specify dictionary 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 helm TO helm;" \
--set service.type=LoadBalancer
上面的例子有一些解释:
.它应该被转义,比如"init\.sql".| 归档时间: | 
 | 
| 查看次数: | 4307 次 | 
| 最近记录: |