From 0f121c17dc3ed209f1f1e5dda5e7493c8e5361a4 Mon Sep 17 00:00:00 2001 From: Jacob Sanford Date: Fri, 30 Aug 2024 12:01:33 -0300 Subject: [PATCH] POS-6 Dockworker 6.x upgrade --- .../deployment/k8s/dev/deployment.yaml | 142 ------------------ .../deployment/k8s/prod/deployment.yaml | 142 ------------------ .dockworker/dockworker.yml | 73 ++++++--- .github/workflows/deployment-workflow.yaml | 19 +-- .gitignore | 2 +- build/nginx/app.conf | 10 +- composer.json | 12 +- 7 files changed, 77 insertions(+), 323 deletions(-) delete mode 100644 .dockworker/deployment/k8s/dev/deployment.yaml delete mode 100644 .dockworker/deployment/k8s/prod/deployment.yaml diff --git a/.dockworker/deployment/k8s/dev/deployment.yaml b/.dockworker/deployment/k8s/dev/deployment.yaml deleted file mode 100644 index aae6f16..0000000 --- a/.dockworker/deployment/k8s/dev/deployment.yaml +++ /dev/null @@ -1,142 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: ospos - instance: pos.lib.unb.ca - tier: pos - uri: dev-pos.lib.unb.ca - name: pos-lib-unb-ca - namespace: dev -spec: - selector: - matchLabels: - uri: dev-pos.lib.unb.ca - replicas: 1 - revisionHistoryLimit: 2 - minReadySeconds: 30 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: ospos - instance: pos.lib.unb.ca - tier: pos - uri: dev-pos.lib.unb.ca - spec: - nodeSelector: - deploy_dev: 'true' - containers: - - - env: - - - name: DEPLOY_ENV - value: dev - - - name: MYSQL_HOSTNAME - value: ospos-mysql-lib-unb-ca - - - name: MYSQL_PORT - value: "3306" - - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - name: mysql - key: root-password - - - name: MYSQL_DATABASE - valueFrom: - secretKeyRef: - name: ospos - key: db - - - name: MYSQL_DATABASE_HIL - valueFrom: - secretKeyRef: - name: ospos - key: hil-db - - - name: MYSQL_DATABASE_HWKC - valueFrom: - secretKeyRef: - name: ospos - key: hwkc-db - - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: ospos - key: pass - - - name: MYSQL_USERNAME - valueFrom: - secretKeyRef: - name: ospos - key: user - - - name: NR_INSTALL_KEY - valueFrom: - secretKeyRef: - name: newrelic - key: install-key - image: "||DEPLOYMENTIMAGE||" - imagePullPolicy: Always - name: pos-lib-unb-ca - ports: - - - containerPort: 80 - volumeMounts: - - - mountPath: /app/html/public/uploads - name: ospos-persistent-storage - - - mountPath: /app/hil/public/uploads - name: hil-ospos-persistent-storage - - - mountPath: /app/hwkc/public/uploads - name: hwkc-ospos-persistent-storage - - - name: ospos-spreadsheet - mountPath: "/reporting/pos-template.xlsx" - subPath: "pos-template.xlsx" - readOnly: true - - - name: ospos-spreadsheet-hwkc - mountPath: "/reporting/pos-template-hwkc.xlsx" - subPath: "pos-template-hwkc.xlsx" - readOnly: true - priorityClassName: dev-high-priority-services - imagePullSecrets: - - - name: github-container-registry-auth - restartPolicy: Always - volumes: - - - name: ospos-persistent-storage - persistentVolumeClaim: - claimName: pos-lib-unb-ca - - - name: hil-ospos-persistent-storage - persistentVolumeClaim: - claimName: hil-pos-lib-unb-ca - - - name: hwkc-ospos-persistent-storage - persistentVolumeClaim: - claimName: hwkc-pos-lib-unb-ca - - name: ospos-spreadsheet - secret: - secretName: pos-xls - items: - - key: pos-template.xlsx - path: pos-template.xlsx - - name: ospos-spreadsheet-hwkc - secret: - secretName: pos-xls-hwkc - items: - - key: pos-template-hwkc.xlsx - path: pos-template-hwkc.xlsx diff --git a/.dockworker/deployment/k8s/prod/deployment.yaml b/.dockworker/deployment/k8s/prod/deployment.yaml deleted file mode 100644 index fc22dc3..0000000 --- a/.dockworker/deployment/k8s/prod/deployment.yaml +++ /dev/null @@ -1,142 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: ospos - instance: pos.lib.unb.ca - tier: pos - uri: pos.lib.unb.ca - name: pos-lib-unb-ca - namespace: prod -spec: - selector: - matchLabels: - uri: pos.lib.unb.ca - replicas: 1 - revisionHistoryLimit: 2 - minReadySeconds: 30 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: ospos - instance: pos.lib.unb.ca - tier: pos - uri: pos.lib.unb.ca - spec: - nodeSelector: - deploy_prod: 'true' - containers: - - - env: - - - name: DEPLOY_ENV - value: prod - - - name: MYSQL_HOSTNAME - value: ospos-mysql-lib-unb-ca - - - name: MYSQL_PORT - value: "3306" - - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - name: mysql - key: root-password - - - name: MYSQL_DATABASE - valueFrom: - secretKeyRef: - name: ospos - key: db - - - name: MYSQL_DATABASE_HIL - valueFrom: - secretKeyRef: - name: ospos - key: hil-db - - - name: MYSQL_DATABASE_HWKC - valueFrom: - secretKeyRef: - name: ospos - key: hwkc-db - - - name: MYSQL_PASSWORD - valueFrom: - secretKeyRef: - name: ospos - key: pass - - - name: MYSQL_USERNAME - valueFrom: - secretKeyRef: - name: ospos - key: user - - - name: NR_INSTALL_KEY - valueFrom: - secretKeyRef: - name: newrelic - key: install-key - image: "||DEPLOYMENTIMAGE||" - imagePullPolicy: Always - name: pos-lib-unb-ca - ports: - - - containerPort: 80 - volumeMounts: - - - mountPath: /app/html/public/uploads - name: ospos-persistent-storage - - - mountPath: /app/hil/public/uploads - name: hil-ospos-persistent-storage - - - mountPath: /app/hwkc/public/uploads - name: hwkc-ospos-persistent-storage - - - name: ospos-spreadsheet - mountPath: "/reporting/pos-template.xlsx" - subPath: "pos-template.xlsx" - readOnly: true - - - name: ospos-spreadsheet-hwkc - mountPath: "/reporting/pos-template-hwkc.xlsx" - subPath: "pos-template-hwkc.xlsx" - readOnly: true - priorityClassName: high-priority-services - imagePullSecrets: - - - name: github-container-registry-auth - restartPolicy: Always - volumes: - - - name: ospos-persistent-storage - persistentVolumeClaim: - claimName: pos-lib-unb-ca - - - name: hil-ospos-persistent-storage - persistentVolumeClaim: - claimName: hil-pos-lib-unb-ca - - - name: hwkc-ospos-persistent-storage - persistentVolumeClaim: - claimName: hwkc-pos-lib-unb-ca - - name: ospos-spreadsheet - secret: - secretName: pos-xls - items: - - key: pos-template.xlsx - path: pos-template.xlsx - - name: ospos-spreadsheet-hwkc - secret: - secretName: pos-xls-hwkc - items: - - key: pos-template-hwkc.xlsx - path: pos-template-hwkc.xlsx diff --git a/.dockworker/dockworker.yml b/.dockworker/dockworker.yml index b4cf7e6..49dd1ca 100644 --- a/.dockworker/dockworker.yml +++ b/.dockworker/dockworker.yml @@ -1,27 +1,54 @@ dockworker: - version: '5' + version: '6' application: - name: pos.lib.unb.ca - finish_marker: 99_z_notify_user_URI - project_prefix: POS - upstream_images: - - ghcr.io/unb-libraries/nginx-php:1.x-7.x - - mariadb:10.3 - uuid: 3103 - deployment: - environments: + name: POS application for UNB Libraries. + uri: https://pos.lib.unb.ca + description: > + A Point of Sale (POS) application for use in University of New Brunswick Libraries. + topics: + - pos + identifiers: + id: pos.lib.unb.ca + slug: pos-lib-unb-ca + short_slug: pos + uuid: 3103 + framework: + name: ospos + version: 3 + startup_finished_marker: '99_startup_sequence_complete' + endpoint: + name: http + port: 80 + readiness_timeout: 15 + license: + license: MIT + holder: University of New Brunswick Libraries + shell: + path: /bin/sh + endpoints: + env: - dev - prod - workflow: - source: dockworker - type: deployment-workflow - github: - repo: pos.lib.unb.ca - owner: unb-libraries - image: - push_branches: - - dev - - prod - name: ghcr.io/unb-libraries/pos.lib.unb.ca - date_tag_image: true - repository: ghcr + deployments: + pos-lib-unb-ca: + default: true + managed: true + name: pos.lib.unb.ca + ospos-mysql-lib-unb-ca: + managed: false + name: mysql + workflows: + vcs: + type: github + owner: unb-libraries + name: pos.lib.unb.ca + jira: + project_keys: + - POS + image: + name: ghcr.io/unb-libraries/pos.lib.unb.ca + parent: ghcr.io/unb-libraries/nginx-php:3.18.x + repository: GitHub + push-branches: + - dev + - prod diff --git a/.github/workflows/deployment-workflow.yaml b/.github/workflows/deployment-workflow.yaml index a0a971a..85e2a5a 100644 --- a/.github/workflows/deployment-workflow.yaml +++ b/.github/workflows/deployment-workflow.yaml @@ -1,4 +1,4 @@ -name: pos.lib.unb.ca +name: Deploy pos.lib.unb.ca on: pull_request: @@ -7,15 +7,16 @@ on: jobs: deploy: - uses: unb-libraries/dockworker/.github/workflows/deployment-workflow.yaml@5.x + uses: unb-libraries/dockworker/.github/workflows/build-push-deploy-notify.yaml@6.x with: + branch-env-map: '{"dev":"dev","prod":"prod"}' + build-themes: false deploy-branches: '["dev","prod"]' + image-name: 'ghcr.io/unb-libraries/pos.lib.unb.ca' + k8s-deployment-name: 'pos.lib.unb.ca' + push-branches: '["dev","prod"]' secrets: - DOCKER_CLOUD_ACCESS_TOKEN: ${{ secrets.DOCKER_CLOUD_ACCESS_TOKEN }} - DOCKER_CLOUD_USER_NAME: ${{ secrets.DOCKER_CLOUD_USER_NAME }} - GH_CONTAINER_REGISTRY_TOKEN: ${{ secrets.GH_CONTAINER_REGISTRY_TOKEN }} - GH_CONTAINER_REGISTRY_USER: ${{ secrets.GH_CONTAINER_REGISTRY_USER }} - KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }} - NEW_RELIC_ACCOUNT_ID: ${{ secrets.NEW_RELIC_ACCOUNT_ID }} - NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }} + KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DATA }} SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + GH_CONTAINER_REGISTRY_USER: ${{ secrets.GH_CONTAINER_REGISTRY_USER }} + GH_CONTAINER_REGISTRY_TOKEN: ${{ secrets.GH_CONTAINER_REGISTRY_TOKEN }} diff --git a/.gitignore b/.gitignore index 961abc5..302f4f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .gitkeep vendor -composer.lock +/composer.lock config-yml/.htaccess diff --git a/build/nginx/app.conf b/build/nginx/app.conf index 7967bb9..108c9d2 100644 --- a/build/nginx/app.conf +++ b/build/nginx/app.conf @@ -23,8 +23,12 @@ http { try_files $uri $uri/ /index.html /index.htm /index.php?$query_string /index.php; } - location = /favicon.ico { log_not_found off; access_log off; } - location = /robots.txt { access_log off; log_not_found off; } + location = /favicon.ico { + log_not_found off; access_log off; + } + location = /robots.txt { + access_log off; log_not_found off; + } error_page 404 /index.html; @@ -43,5 +47,5 @@ http { return 403; } } - +} # APP CONFIG diff --git a/composer.json b/composer.json index d8ecd44..8645547 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,13 @@ { + "autoload": { + "psr-4": { + "Dockworker\\": ".dockworker/src" + } + }, "config": { "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true + "dealerdirect/phpcodesniffer-composer-installer": true, + "php-http/discovery": true }, "preferred-install": { "*": "dist" @@ -13,11 +19,11 @@ "name": "unb-libraries/pos.lib.unb.ca", "prefer-stable": true, "require-dev": { - "unb-libraries/dockworker": "^5" + "unb-libraries/dockworker-daemon": "^6" }, "scripts": { "post-update-cmd": [ - "vendor/bin/dockworker dockworker:git:setup-hooks" + "vendor/bin/dockworker git:setup-hooks" ] } }