diff --git a/openshiftTemplate.yml b/openshiftTemplate.yml
index f717516181888105b5c9f1c94b1eb80358909ee9..1d114dba309458a5838f15ade5b92dda10117573 100644
--- a/openshiftTemplate.yml
+++ b/openshiftTemplate.yml
@@ -11,8 +11,83 @@ metadata:
     tags: hda,hdapad
 objects:
 
-# init container definitions
+# student postgres
+- apiVersion: v1
+  kind: PersistentVolumeClaim
+  metadata:
+    name: studentpostgres-volume
+  spec:
+    accessModes:
+    - ReadWriteOnce
+    resources:
+      requests:
+        storage: ${STUDENT_POSTGRES_SIZE}Gi
+  status: {}
+
+- apiVersion: v1
+  kind: DeploymentConfig
+  metadata:
+    name: studentdb
+  spec:
+    replicas: 0
+    selector:
+      app: studentdb
+      deploymentconfig: studentdb
+    template:
+      metadata:
+        labels:
+          app: studentdb
+          deploymentconfig: studentdb
+      spec:
+        containers:
+        - env:
+          - name: POSTGRESQL_USER
+            value: ${STUDENT_DB_USERNAME}
+          - name: POSTGRESQL_PASSWORD
+            value: ${STUDENT_DB_PASSWORD}
+          - name: POSTGRESQL_DATABASE
+            value: studentdbdefault
+          image: ' '
+          name: studentdb
+          ports:
+          - containerPort: 5432
+            protocol: TCP
+          volumeMounts:
+          - mountPath: /var/lib/pgsql/data
+            name: studentpostgres-volume
+        volumes:
+        - name: studentpostgres-volume
+          persistentVolumeClaim:
+            claimName: studentpostgres-volume
+    test: false
+    triggers:
+    - type: ConfigChange
+    - imageChangeParams:
+        automatic: true
+        containerNames:
+        - studentdb
+        from:
+          kind: ImageStreamTag
+          namespace: openshift
+          name: postgresql:9.6
+      type: ImageChange
+
+- apiVersion: v1
+  kind: Service
+  metadata:
+    labels:
+      app: studentdb
+    name: studentdb
+  spec:
+    ports:
+    - name: studentdb-5432
+      port: 5432
+      protocol: TCP
+      targetPort: 5432
+    selector:
+      deploymentconfig: studentdb
 
+# init container definitions
 - apiVersion: v1
   kind: DeploymentConfig
   metadata:
@@ -825,12 +900,30 @@ parameters:
   required: true
   name: POSTGRES_SIZE
 
+- displayName: student postgres volume size in GB
+  from: '[0-9]{4}'
+  value: '50'
+  required: true
+  name: STUDENT_POSTGRES_SIZE
+
 - displayName: opensubmit-web volume size in GB
   from: '[0-9]{4}'
   required: true
   value: '15'
   name: WEB_VOLUME_SIZE
 
+- displayName: student database username
+  name: STUDENT_DB_USERNAME
+  from: user[a-zA-Z0-9]{3}
+  generate: expression
+  required: true
+
+- displayName: student database password
+  name: STUDENT_DB_PASSWORD
+  from: '[a-zA-Z0-9]{8}'
+  generate: expression
+  required: true
+
 # jenkins parameter
 - name: JENKINS_VOLUME_CAPACITY
   displayName: jenkins volume size in GB