agora/store_db/operations/charts/templates/contosodb.yaml (105 lines of code) (raw):

# Postgre SQL Service apiVersion: v1 kind: Service metadata: name: contosodb namespace: {{ .Release.Namespace }} spec: selector: app: contosodb ports: - name: postgresql port: 5432 targetPort: 5432 --- # Create PostgreSQL Database Container with local storage apiVersion: apps/v1 kind: Deployment metadata: name: contosodb namespace: {{ .Release.Namespace }} spec: replicas: 1 selector: matchLabels: app: contosodb template: metadata: labels: app: contosodb spec: containers: - name: contosodb image: postgres:15.0 env: - name: POSTGRES_USER value: {{ .Values.postgres.username }} - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: postgrespw key: POSTGRES_PASSWORD - name: POSTGRES_DB value: contoso ports: - containerPort: 5432 volumeMounts: - name: postgresql-vol mountPath: /var/lib/postgresql/data volumes: - name: postgresql-vol hostPath: path: /var/postgresql-data --- apiVersion: v1 kind: ConfigMap metadata: name: init-db-sql-file data: initDB.sql: |- {{ .Files.Get "files/initdb.sql" | indent 4 }} --- apiVersion: batch/v1 kind: Job metadata: name: init-db namespace: {{ .Release.Namespace }} spec: template: metadata: name: init-db spec: containers: - name: initdb image: postgres:15.0 env: - name: PGHOST value: contosodb - name: POSTGRES_USER value: {{ .Values.postgres.username }} - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: postgrespw key: POSTGRES_PASSWORD - name: PGPASSWORD valueFrom: secretKeyRef: name: postgrespw key: POSTGRES_PASSWORD - name: POSTGRES_DB value: {{ .Values.postgres.database }} command: - sh - -c - psql -h $PGHOST -U $POSTGRES_USER -d $POSTGRES_DB -f /var/initdb.sql volumeMounts: - name: init-db-sql mountPath: /var/initdb.sql subPath: initDB.sql restartPolicy: "OnFailure" volumes: - name: init-db-sql configMap: name: init-db-sql-file items: - key: initDB.sql path: initDB.sql