From 7d0b07a2e3fdd8d6409aa1cabdf27d010e10749b Mon Sep 17 00:00:00 2001 From: Derek Roberts Date: Fri, 16 Aug 2024 00:02:16 -0400 Subject: [PATCH] chore(ci): use vanilla postgres container (#1523) --- .github/workflows/.deploy.yml | 5 ++- .github/workflows/pr-close.yml | 2 +- .github/workflows/pr-open.yml | 2 +- backend/openshift.deploy.yml | 4 +-- {database => common}/init_db/init.sql | 0 .../openshift.database.yml | 35 +++---------------- common/openshift.init.yml | 14 ++++++++ database/Dockerfile | 10 ------ docker-compose.yml | 4 +-- oracle-api/openshift.deploy.yml | 4 +-- 10 files changed, 29 insertions(+), 51 deletions(-) rename {database => common}/init_db/init.sql (100%) rename database/openshift.deploy.yml => common/openshift.database.yml (80%) delete mode 100644 database/Dockerfile diff --git a/.github/workflows/.deploy.yml b/.github/workflows/.deploy.yml index edb34165c..04ac28b6d 100644 --- a/.github/workflows/.deploy.yml +++ b/.github/workflows/.deploy.yml @@ -79,6 +79,7 @@ jobs: overwrite: true parameters: -p ZONE=${{ inputs.target }} + -p DB_PASSWORD='${{ secrets.DB_PASSWORD }}' -p FORESTCLIENTAPI_KEY='${{ secrets.FORESTCLIENTAPI_KEY }}' -p ORACLE_PASSWORD='${{ secrets.ORACLE_PASSWORD }}' -p ORACLE_SERVICE='${{ vars.ORACLE_SERVICE }}' @@ -96,12 +97,10 @@ jobs: oc_namespace: ${{ vars.OC_NAMESPACE }} oc_server: ${{ vars.OC_SERVER }} oc_token: ${{ secrets.OC_TOKEN }} - file: database/openshift.deploy.yml + file: common/openshift.database.yml overwrite: false parameters: - -p TAG=${{ inputs.tag }} -p ZONE=${{ inputs.target }} - -p DB_PASSWORD='${{ secrets.DB_PASSWORD }}' ${{ github.event_name == 'pull_request' && '-p DB_PVC_SIZE=192Mi' || '' }} ${{ github.event_name == 'pull_request' && '-p MEMORY_REQUEST=100Mi' || '' }} ${{ github.event_name == 'pull_request' && '-p MEMORY_LIMIT=200Mi' || '' }} diff --git a/.github/workflows/pr-close.yml b/.github/workflows/pr-close.yml index 4ba32bb0b..560ede7ac 100644 --- a/.github/workflows/pr-close.yml +++ b/.github/workflows/pr-close.yml @@ -18,5 +18,5 @@ jobs: oc_token: ${{ secrets.OC_TOKEN }} with: cleanup: label - packages: database backend frontend oracle-api sync + packages: backend frontend oracle-api sync diff --git a/.github/workflows/pr-open.yml b/.github/workflows/pr-open.yml index 4802cc747..eb8ddf388 100644 --- a/.github/workflows/pr-open.yml +++ b/.github/workflows/pr-open.yml @@ -18,7 +18,7 @@ jobs: packages: write strategy: matrix: - package: [database, backend, frontend, oracle-api, sync] + package: [backend, frontend, oracle-api, sync] steps: - uses: bcgov-nr/action-builder-ghcr@v2.2.0 id: build diff --git a/backend/openshift.deploy.yml b/backend/openshift.deploy.yml index 3abe7dbfb..d7c8ee287 100644 --- a/backend/openshift.deploy.yml +++ b/backend/openshift.deploy.yml @@ -35,9 +35,9 @@ parameters: - name: FORESTCLIENTAPI_ADDRESS value: "https://nr-forest-client-api-prod.api.gov.bc.ca/api" - name: CPU_REQUEST - value: 15m + value: 25m - name: CPU_LIMIT - value: 60m + value: 100m - name: MEMORY_REQUEST value: 150Mi - name: MEMORY_LIMIT diff --git a/database/init_db/init.sql b/common/init_db/init.sql similarity index 100% rename from database/init_db/init.sql rename to common/init_db/init.sql diff --git a/database/openshift.deploy.yml b/common/openshift.database.yml similarity index 80% rename from database/openshift.deploy.yml rename to common/openshift.database.yml index 8a6899776..f9555691f 100644 --- a/database/openshift.deploy.yml +++ b/common/openshift.database.yml @@ -12,18 +12,6 @@ parameters: - name: ZONE description: Deployment zone, e.g. pr-### or prod required: true - - name: TAG - description: Image tag; e.g. PR number, latest or prod - required: true - - name: REGISTRY - description: Container registry to import from (internal is image-registry.openshift-image-registry.svc:5000) - value: ghcr.io - - name: ORG - description: Organization name - value: bcgov - - name: PVC_MOUNT_PATH - description: Where to mount the PVC, subpath (e.g. data/) - value: /var/lib/postgresql - name: CPU_REQUEST value: 25m - name: CPU_LIMIT @@ -33,24 +21,9 @@ parameters: - name: MEMORY_LIMIT value: 4Gi - name: DB_PVC_SIZE - description: Volume space available for data, e.g. 512Mi, 2Gi. - displayName: Database Volume Capacity + description: Volume space available for data, e.g. 512Mi, 2Gi value: 1.8Gi - - name: DB_PASSWORD - description: Password for the PostgreSQL connection user - required: true objects: - - apiVersion: v1 - kind: Secret - metadata: - name: ${NAME}-${ZONE}-${COMPONENT} - labels: - app: ${NAME}-${ZONE} - stringData: - database-name: ${NAME} - database-password: ${DB_PASSWORD} - database-port: "5432" - database-user: ${NAME} - kind: PersistentVolumeClaim apiVersion: v1 metadata: @@ -93,7 +66,7 @@ objects: claimName: ${NAME}-${ZONE}-${COMPONENT} containers: - name: ${NAME}-${ZONE} - image: ${REGISTRY}/${ORG}/${NAME}/${COMPONENT}:${TAG} + image: postgis/postgis:15-master resources: requests: cpu: ${CPU_REQUEST} @@ -111,6 +84,8 @@ objects: - bash - '-ce' - exec pg_isready -U $POSTGRES_USER -d "dbname=$POSTGRES_DB" -h 127.0.0.1 -p 5432 + periodSeconds: 30 + timeoutSeconds: 10 livenessProbe: exec: command: @@ -138,7 +113,7 @@ objects: key: database-user volumeMounts: - name: ${NAME}-${ZONE}-${COMPONENT} - mountPath: ${PVC_MOUNT_PATH} + mountPath: /var/lib/postgresql terminationMessagePath: "/dev/termination-log" terminationMessagePolicy: File imagePullPolicy: Always diff --git a/common/openshift.init.yml b/common/openshift.init.yml index d77aed0e3..1da33db29 100644 --- a/common/openshift.init.yml +++ b/common/openshift.init.yml @@ -7,6 +7,9 @@ parameters: - name: ZONE description: Deployment zone, e.g. pr-### or prod required: true + - name: DB_PASSWORD + description: Password for the PostgreSQL connection user + required: true - name: FORESTCLIENTAPI_KEY required: true - name: ORACLE_HOST @@ -35,6 +38,17 @@ parameters: description: Cognito user pools web client ID required: true objects: + - apiVersion: v1 + kind: Secret + metadata: + name: ${NAME}-${ZONE}-database + labels: + app: ${NAME}-${ZONE} + stringData: + database-name: ${NAME} + database-password: ${DB_PASSWORD} + database-port: "5432" + database-user: ${NAME} - apiVersion: v1 kind: Secret metadata: diff --git a/database/Dockerfile b/database/Dockerfile deleted file mode 100644 index 491f15f73..000000000 --- a/database/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM postgis/postgis:15-master - -# Enable pgcrypto extension on startup -RUN sed -i '/EXISTS postgis_tiger_geocoder;*/a CREATE EXTENSION IF NOT EXISTS pgcrypto;' \ - /docker-entrypoint-initdb.d/10_postgis.sh - -# User, port and Healthcheck -USER postgres -EXPOSE 5432 -HEALTHCHECK CMD ["psql", "-q", "-U", "$${POSTGRES_USER}", "-d", "$${POSTGRES_DB}", "-c", "SELECT 1"] diff --git a/docker-compose.yml b/docker-compose.yml index 4f52e6384..a4348236b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,12 +24,12 @@ x-frontend: &frontend services: database: container_name: database - build: ./database + image: postgis/postgis:15-master environment: <<: *postgres-vars volumes: - "/pgdata" - - "./database/init_db:/init_db" + - "./common/init_db:/init_db" ports: ["5432:5432"] healthcheck: test: psql -q -U $${POSTGRES_USER} -d $${POSTGRES_DB} -c 'SELECT 1' diff --git a/oracle-api/openshift.deploy.yml b/oracle-api/openshift.deploy.yml index 0013d13b2..77b67be89 100644 --- a/oracle-api/openshift.deploy.yml +++ b/oracle-api/openshift.deploy.yml @@ -24,9 +24,9 @@ parameters: - name: DOMAIN value: apps.silver.devops.gov.bc.ca - name: CPU_REQUEST - value: 15m + value: 25m - name: CPU_LIMIT - value: 50m + value: 100m - name: MEMORY_REQUEST value: 150Mi - name: MEMORY_LIMIT