Merge "[COMMON] Allow special characters in postgress passwords"
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Fri, 13 Mar 2020 15:34:38 +0000 (15:34 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 13 Mar 2020 15:34:38 +0000 (15:34 +0000)
kubernetes/common/postgres/configs/setup.sql [new file with mode: 0644]
kubernetes/common/postgres/templates/_deployment.tpl
kubernetes/common/postgres/values.yaml

diff --git a/kubernetes/common/postgres/configs/setup.sql b/kubernetes/common/postgres/configs/setup.sql
new file mode 100644 (file)
index 0000000..f60b473
--- /dev/null
@@ -0,0 +1,40 @@
+--- System Setup
+SET application_name="container_setup";
+
+CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
+CREATE EXTENSION IF NOT EXISTS pgaudit;
+
+ALTER USER postgres PASSWORD '${PG_ROOT_PASSWORD}';
+
+CREATE USER ${PG_PRIMARY_USER} WITH REPLICATION;
+ALTER USER ${PG_PRIMARY_USER} PASSWORD '${PG_PRIMARY_PASSWORD}';
+
+CREATE USER "${PG_USER}" LOGIN;
+ALTER USER "${PG_USER}" PASSWORD '${PG_PASSWORD}';
+
+CREATE DATABASE ${PG_DATABASE};
+GRANT ALL PRIVILEGES ON DATABASE ${PG_DATABASE} TO "${PG_USER}";
+
+CREATE TABLE IF NOT EXISTS primarytable (key varchar(20), value varchar(20));
+GRANT ALL ON primarytable TO ${PG_PRIMARY_USER};
+
+--- PG_DATABASE Setup
+
+\c ${PG_DATABASE}
+
+CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
+CREATE EXTENSION IF NOT EXISTS pgaudit;
+
+--- Verify permissions via PG_USER
+
+\c ${PG_DATABASE} "${PG_USER}";
+
+CREATE SCHEMA IF NOT EXISTS "${PG_USER}";
+
+CREATE TABLE IF NOT EXISTS "${PG_USER}".testtable (
+       name varchar(30) PRIMARY KEY,
+       value varchar(50) NOT NULL,
+       updatedt timestamp NOT NULL
+);
+
+INSERT INTO "${PG_USER}".testtable (name, value, updatedt) VALUES ('CPU', '256', now());
index 3777c1b..361e648 100644 (file)
@@ -40,6 +40,34 @@ spec:
         name: "{{ index $dot.Values "container" "name" $pgMode }}"
     spec:
       initContainers:
+      - command:
+        - sh
+        args:
+        - -c
+        - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        env:
+        - name: PG_PRIMARY_USER
+          value: primaryuser
+        - name: PG_PRIMARY_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" $dot "uid" (include "common.postgres.secret.primaryPasswordUID" .) "key" "password") | indent 10 }}
+        - name: PG_USER
+          {{- include "common.secret.envFromSecret" (dict "global" $dot "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "login") | indent 10 }}
+        - name: PG_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" $dot "uid" (include "common.postgres.secret.userCredentialsUID" .) "key" "password") | indent 10 }}
+        - name: PG_DATABASE
+          value: "{{ $dot.Values.config.pgDatabase }}"
+        - name: PG_ROOT_PASSWORD
+          {{- include "common.secret.envFromSecret" (dict "global" $dot "uid" (include "common.postgres.secret.rootPassUID" .) "key" "password") | indent 10 }}
+        volumeMounts:
+        - mountPath: /config-input/setup.sql
+          name: config
+          subPath: setup.sql
+        - mountPath: /config
+          name: pgconf
+        image: "{{ $dot.Values.global.envsubstImage }}"
+        imagePullPolicy: {{ $dot.Values.global.pullPolicy | default $dot.Values.pullPolicy }}
+        name: {{ include "common.name" $dot }}-update-config
+
       - name: init-sysctl
         command:
         - /bin/sh
@@ -98,9 +126,12 @@ spec:
         - name: PG_ROOT_PASSWORD
           {{- include "common.secret.envFromSecret" (dict "global" $dot "uid" (include "common.postgres.secret.rootPassUID" .) "key" "password") | indent 10 }}
         volumeMounts:
-        - name: pool-hba-conf
+        - name: config
           mountPath: /pgconf/pool_hba.conf
           subPath: pool_hba.conf
+        - name: pgconf
+          mountPath: /pgconf/setup.sql
+          subPath: setup.sql
         - mountPath: /pgdata
           name: {{ include "common.fullname" $dot }}-data
         - mountPath: /backup
@@ -129,7 +160,10 @@ spec:
 {{- else }}
         emptyDir: {}
 {{ end }}
-      - name: pool-hba-conf
+      - name: config
         configMap:
           name: {{ include "common.fullname" $dot }}
-{{- end -}}
\ No newline at end of file
+      - name: pgconf
+        emptyDir:
+          medium: Memory
+{{- end -}}
index 7aff189..10f9405 100644 (file)
@@ -21,6 +21,9 @@ global:
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
 
+  # envsusbt
+  envsubstImage: dibi/envsubst
+
 #################################################################
 # Secrets metaconfig
 #################################################################