Add PostgreSQL to KDT
Change-Id: I6317421eab7f1dfedd3a5302c4a3f293c99e5be8
Related-prod: PROD-28242 (PROD:28242)
diff --git a/defaults/init.yml b/defaults/init.yml
index b70367e..72ca17c 100644
--- a/defaults/init.yml
+++ b/defaults/init.yml
@@ -11,6 +11,7 @@
- system.defaults.backupninja
- system.defaults.git
- system.defaults.jenkins
+- system.defaults.postgresql
- system.defaults.maas
- system.defaults.openstack
- system.defaults.galera
diff --git a/defaults/postgresql/init.yml b/defaults/postgresql/init.yml
new file mode 100644
index 0000000..e0d3de1
--- /dev/null
+++ b/defaults/postgresql/init.yml
@@ -0,0 +1,9 @@
+parameters:
+ _param:
+ postgresql_server: localhost
+ postgresql_exposed_port: 5432
+ postgresql_admin_user: postgres
+ postgresql_glusterfs_volume_name: postgresql-data
+ postgresql_data_mountpoint: /var/lib/postgresql/data
+ postgresql_data_directory: ${_param:postgresql_data_mountpoint}/pgdata
+
diff --git a/glusterfs/server/volume/postgresql_k8s.yml b/glusterfs/server/volume/postgresql_k8s.yml
new file mode 100644
index 0000000..f276d60
--- /dev/null
+++ b/glusterfs/server/volume/postgresql_k8s.yml
@@ -0,0 +1,20 @@
+parameters:
+ glusterfs:
+ server:
+ volumes:
+ postgresql-data:
+ storage: /srv/glusterfs/postgresql
+ replica: 3
+ bricks:
+ - ${_param:cluster_node01_address}:/srv/glusterfs/postgresql
+ - ${_param:cluster_node02_address}:/srv/glusterfs/postgresql
+ - ${_param:cluster_node03_address}:/srv/glusterfs/postgresql
+ options:
+ storage.owner-gid: 999
+ storage.owner-uid: 999
+ cluster.readdir-optimize: On
+ nfs.disable: On
+ network.remote-dio: On
+ diagnostics.client-log-level: WARNING
+ diagnostics.brick-log-level: WARNING
+ cluster.favorite-child-policy: mtime
diff --git a/kubernetes/control/services/drivetrain/postgresql.yml b/kubernetes/control/services/drivetrain/postgresql.yml
new file mode 100644
index 0000000..fd1c7bd
--- /dev/null
+++ b/kubernetes/control/services/drivetrain/postgresql.yml
@@ -0,0 +1,48 @@
+parameters:
+ kubernetes:
+ common:
+ addons:
+ ingress-nginx:
+ tcp_data:
+ 5432: drivetrain/postgresql-db:${_param:postgresql_exposed_port}
+ tcp_ports:
+ - 5432
+ control:
+ service:
+ postgresql-db:
+ enabled: true
+ cluster: drivetrain
+ service: postgresql-db
+ create: true
+ namespace: drivetrain
+ ports:
+ - port: ${_param:postgresql_exposed_port}
+ name: psql-server
+ type: ClusterIP
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ postgresql-server:
+ image: ${_param:docker_image_postgresql}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: POSTGRES_USER
+ value: ${_param:postgresql_admin_user}
+ - name: POSTGRES_PASSWORD
+ value: ${_param:postgresql_admin_user_password}
+ - name: PGDATA
+ value: ${_param:postgresql_data_directory}
+ ports:
+ - port: ${_param:postgresql_exposed_port}
+ name: psql-server
+ volumes:
+ - name: postgresql-data
+ mount: ${_param:postgresql_data_mountpoint}
+ read_only: false
+ volume:
+ postgresql-data:
+ type: glusterfs
+ endpoints: glusterfs
+ path: ${_param:postgresql_glusterfs_volume_name}
+ read_only: false