Я пытаюсь создать несколько баз данных после установки Helm chart bitnami / postgresql. Я добавил параметр initdbScripts в команду установки helm:
helm install postgresql bitnami/postgresql --namespace=namespace_name \
--set global.postgresql.postgresqlUsername=username,global.postgresql.postgresqlPassword=password123 \
--set initdbScripts."init\.sql"="CREATE DATABASE db1;
GRANT ALL PRIVILEGES ON DATABASE db1 TO username;
CREATE DATABASE db2;
GRANT ALL PRIVILEGES ON DATABASE db2 TO username;
CREATE DATABASE db3;
GRANT ALL PRIVILEGES ON DATABASE db3 TO username;"
Модуль начинает давать сбой с CrashLoopBackOff, и в журнале есть строка: touch: cannot touch '/bitnami/postgresql/.user_scripts_initialized': Permission denied
Мое предположение почему это не работает, так это то, что я установил диаграмму в кластер с голым железом, и, поскольку в ней не настроена динамическая c подготовка, я сначала создал том:
kind: PersistentVolume
apiVersion: v1
metadata:
name: postgresql-data
labels:
type: local
app: postgresql
annotations:
volume.alpha.kubernetes.io/storage-class: postgresql-data
spec:
storageClassName: postgresql-data
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: "/opt/postgresql-data"
Том успешно заявлено PV C, которое я не создаю вручную.
Есть ли способ инициализировать несколько баз данных с помощью initdbScripts в кластере BM Kubernetes? Подойдет любое решение со сценарием SQL или в сочетании с Bash.
Версия Helm и Kubernetes : версия helm:
version.BuildInfo{Version:"v3.0.2", GitCommit:"19e47ee3283ae98139d98460de796c1be1e3975f", GitTreeState:"clean", GoVersion:"go1.13.5"}
версия kubectl:
Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", BuildDate:"2020-06-26T03:39:24Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Мое решение основано на лучшем ответе в этом потоке: PostgreSQL в Helm: Параметр initdbScripts