deploy-templates/templates/run-db-scripts-job.yaml (107 lines of code) (raw):

apiVersion: batch/v1 kind: Job metadata: name: {{ .Values.postgresCluster.jobName }} annotations: "helm.sh/hook": post-install,post-upgrade spec: backoffLimit: 10 template: metadata: annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: jenkins restartPolicy: Never initContainers: - name: wait-for-postgres-cluster image: {{ template "imageRegistry" . -}} curlimages/curl command: - sh - '-c' - >- get_postgres_cluster_ststus () { operational_curl=$(curl -k https://operational-pods:8008/cluster 2>&1 | grep -o 'state.\{0,12\}') if [[ ! "$operational_curl" ]]; then echo 'EMPTY' else operational_status=$(curl -k https://operational-pods:8008/cluster 2>&1 | grep -o 'state.\{0,12\}' | cut -d'"' -f3 | grep -v 'running' | wc -l) fi echo $operational_status; analytical_curl=$(curl -k https://analytical-pods:8008/cluster 2>&1 | grep -o 'state.\{0,12\}') if [[ ! "$analytical_curl" ]]; then echo -n 'EMPTY' else analytical_status=$(curl -k https://analytical-pods:8008/cluster 2>&1 | grep -o 'state.\{0,12\}' | cut -d'"' -f3 | grep -v 'running' | wc -l) fi echo $analytical_status; if [[ "$operational_status" == "0" && "$analytical_status" == "0" ]]; then return 0 else return 1 fi } while ! get_postgres_cluster_ststus; do echo waiting for postgres clusters...; sleep 10; done; echo postgres clusters are ready!; containers: - name: {{ .Values.postgresCluster.jobName }} image: {{ .Values.image.name }}:{{ .Values.image.version }} imagePullPolicy: IfNotPresent workingDir: /liquibase/platform-db command: - sh - '-c' - >- bash update.sh env: {{- $rolesSecret := .Values.postgresCluster.secrets.citusSecrets.rolesSecret }} {{- range $k,$v := .Values.postgresCluster.secrets.citusRolesSecrets }} {{- $keyName := (print $k "Name") }} - name: {{ $keyName }} valueFrom: secretKeyRef: name: {{ $rolesSecret }} key: {{ $keyName }} {{- end }} {{- range $k,$v := .Values.postgresCluster.secrets.citusRolesSecrets }} {{- $keyPass := (print $k "Pass") }} - name: {{ $keyPass }} valueFrom: secretKeyRef: name: {{ $rolesSecret }} key: {{ $keyPass }} {{- end }} - name: DB_NAME_OP valueFrom: secretKeyRef: name: {{ .Values.postgresCluster.operationalClusterSecret.name }} key: user - name: DB_PASS_OP valueFrom: secretKeyRef: name: {{ .Values.postgresCluster.operationalClusterSecret.name }} key: password - name: DB_NAME_AN valueFrom: secretKeyRef: name: {{ .Values.postgresCluster.analyticalClusterSecret.name }} key: user - name: DB_PASS_AN valueFrom: secretKeyRef: name: {{ .Values.postgresCluster.analyticalClusterSecret.name }} key: password - name: masterDBurl value: jdbc:postgresql://operational-primary:5432 - name: replicaDBurl value: jdbc:postgresql://analytical-primary:5432 - name: dbName value: {{ .Values.postgresCluster.dbName }} - name: archiveSchema value: {{ .Values.postgresCluster.archiveSchema }} - name: pubHost value: {{ .Values.postgresCluster.pubHost }} - name: pubUser value: {{ .Values.postgresCluster.pubUser }} - name: pubPort value: {{ .Values.postgresCluster.pubPort | quote }}