From 38be5c11fe519981878e213f9edbe80557ed6de9 Mon Sep 17 00:00:00 2001
From: Luca Cattani <luca.cattani@eurac.edu>
Date: Fri, 29 Sep 2017 16:23:24 +0200
Subject: [PATCH] Added PostgreSQL files

---
 kubernetes/yaml/.gitignore              |   2 +
 kubernetes/yaml/postgresql-pvc.yaml     |  19 +++++
 kubernetes/yaml/postgresql-service.yaml |  22 +++++
 kubernetes/yaml/postgresql.yaml         | 106 ++++++++++++++++++++++++
 4 files changed, 149 insertions(+)
 create mode 100644 kubernetes/yaml/.gitignore
 create mode 100644 kubernetes/yaml/postgresql-pvc.yaml
 create mode 100644 kubernetes/yaml/postgresql-service.yaml
 create mode 100644 kubernetes/yaml/postgresql.yaml

diff --git a/kubernetes/yaml/.gitignore b/kubernetes/yaml/.gitignore
new file mode 100644
index 0000000..e301207
--- /dev/null
+++ b/kubernetes/yaml/.gitignore
@@ -0,0 +1,2 @@
+gitlab-scientificnet-org-registry.yaml
+postgresql-secret.yaml
diff --git a/kubernetes/yaml/postgresql-pvc.yaml b/kubernetes/yaml/postgresql-pvc.yaml
new file mode 100644
index 0000000..5c25b84
--- /dev/null
+++ b/kubernetes/yaml/postgresql-pvc.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  annotations:
+    volume.alpha.kubernetes.io/storage-class: default
+    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/rbd
+  labels:
+    app: dspace-postgresql
+    chart: postgresql-0.8.1
+    heritage: Tiller
+    release: dspace
+  name: dspace-postgresql
+spec:
+  accessModes:
+  - ReadWriteOnce
+  resources:
+    requests:
+      storage: 8Gi
+  storageClassName: auto
diff --git a/kubernetes/yaml/postgresql-service.yaml b/kubernetes/yaml/postgresql-service.yaml
new file mode 100644
index 0000000..be097b4
--- /dev/null
+++ b/kubernetes/yaml/postgresql-service.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: dspace-postgresql
+    chart: postgresql-0.8.1
+    heritage: Tiller
+    release: dspace
+  name: dspace-postgresql
+  namespace: dspace
+spec:
+  ports:
+  - name: postgresql
+    port: 5432
+    protocol: TCP
+    targetPort: postgresql
+  selector:
+    app: dspace-postgresql
+  sessionAffinity: None
+  type: ClusterIP
+status:
+  loadBalancer: {}
diff --git a/kubernetes/yaml/postgresql.yaml b/kubernetes/yaml/postgresql.yaml
new file mode 100644
index 0000000..ea50a10
--- /dev/null
+++ b/kubernetes/yaml/postgresql.yaml
@@ -0,0 +1,106 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  generation: 1
+  labels:
+    app: dspace-postgresql
+    chart: postgresql-0.8.1
+    heritage: Tiller
+    release: dspace
+  name: dspace-postgresql
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: dspace-postgresql
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 1
+    type: RollingUpdate
+  template:
+    metadata:
+      labels:
+        app: dspace-postgresql
+    spec:
+      containers:
+      - env:
+        - name: POSTGRES_USER
+          value: dspace
+        - name: PGUSER
+          value: dspace
+        - name: POSTGRES_DB
+        - name: POSTGRES_INITDB_ARGS
+        - name: dspaceuser
+          value: dbuser
+        - name: dspacepassword
+          valueFrom:
+            secretKeyRef:
+              key: dspace.password
+              name: dspace-secrets
+        - name: dspacedbname
+          value: dbname
+        - name: dspaceutilsdbname
+          value: dbnamespace
+        - name: PGDATA
+          value: /var/lib/postgresql/data/pgdata
+        - name: POSTGRES_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              key: postgres-password
+              name: dspace-postgresql
+        - name: POD_IP
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: status.podIP
+        image: gitlab.scientificnet.org:4567/commul/dspace/postgres:0.3
+        imagePullPolicy: IfNotPresent
+        livenessProbe:
+          exec:
+            command:
+            - sh
+            - -c
+            - exec pg_isready --host $POD_IP
+          failureThreshold: 6
+          initialDelaySeconds: 60
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 5
+        name: dspace-postgresql
+        ports:
+        - containerPort: 5432
+          name: postgresql
+          protocol: TCP
+        readinessProbe:
+          exec:
+            command:
+            - sh
+            - -c
+            - exec pg_isready --host $POD_IP
+          failureThreshold: 3
+          initialDelaySeconds: 5
+          periodSeconds: 5
+          successThreshold: 1
+          timeoutSeconds: 3
+        resources:
+          requests:
+            cpu: 100m
+            memory: 256Mi
+        terminationMessagePath: /dev/termination-log
+        terminationMessagePolicy: File
+        volumeMounts:
+        - mountPath: /var/lib/postgresql/data/pgdata
+          name: data
+          subPath: postgresql-db
+      dnsPolicy: ClusterFirst
+      imagePullSecrets:
+      - name: gitlab-scientificnet-org-registry
+      restartPolicy: Always
+      schedulerName: default-scheduler
+      securityContext: {}
+      terminationGracePeriodSeconds: 30
+      volumes:
+      - name: data
+        persistentVolumeClaim:
+          claimName: dspace-postgresql
-- 
GitLab