# Copyright 2020 Huawei Technologies Co., Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # postgres database --- apiVersion: apps/v1 kind: Deployment metadata: name: postgres-db namespace: mep labels: app: postgres-db spec: replicas: 1 selector: matchLabels: app: postgres-db template: metadata: labels: app: postgres-db spec: volumes: - name: postgres-data persistentVolumeClaim: claimName: postgres-pv-claim containers: - name: postgres-db image: postgres:9.6 imagePullPolicy: "IfNotPresent" env: - name: POSTGRES_DB value: kong - name: POSTGRES_USER value: kong - name: POSTGRES_PASSWORD value: kong volumeMounts: - mountPath: /var/lib/postgresql/data name: postgres-data ports: - containerPort: 5432 # prepare postgres-db --- apiVersion: batch/v1 kind: Job metadata: name: prepare-postgre-db namespace: mep spec: template: spec: initContainers: - name: check-db-ready image: postgres:9.6 command: ['sh', '-c', 'until pg_isready -h postgres-db -p 5432; do echo waiting for database; sleep 2; done;'] containers: - name: prepare-postgres-db image: kong:1.5.1-alpine env: - name: KONG_DATABASE value: "postgres" - name: KONG_PG_DATABASE value: kong - name: KONG_PG_HOST value: postgres-db - name: KONG_PG_USER value: kong - name: KONG_PG_PASSWORD value: kong command: ['kong'] args: ['migrations', 'bootstrap'] restartPolicy: Never backoffLimit: 4 # postgres servcie --- apiVersion: v1 kind: Service metadata: name: postgres-db namespace: mep spec: selector: app: postgres-db type: ClusterIP ports: - port: 5432