PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL dans Helm :paramètre initdbScripts

Selon stable/postgresql graphique helm, initdbScripts est un dictionnaire de noms de scripts d'initialisation qui sont des variables multilignes :

Supposons que nous ayons le init.sql suivant script :

CREATE USER helm;
CREATE DATABASE helm;
GRANT ALL PRIVILEGES ON DATABASE helm TO helm;

Lorsque nous allons injecter un texte multiligne dans des valeurs, nous devons gérer l'indentation dans YAML.

Pour le cas particulier ci-dessus, il s'agit :

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

Il y a une explication à l'exemple ci-dessus :

  1. Si le nom du script a . il doit être échappé, comme "init\.sql" .
  2. Le contenu du script est entre guillemets, car il s'agit d'une variable de chaîne multiligne.