diff --git a/.github/workflows/build.from.master.branch.deploy.to.dev.yml b/.github/workflows/build.from.master.branch.deploy.to.dev.yml index e7629449d..afceb61d6 100644 --- a/.github/workflows/build.from.master.branch.deploy.to.dev.yml +++ b/.github/workflows/build.from.master.branch.deploy.to.dev.yml @@ -5,9 +5,7 @@ env: OPENSHIFT_NAMESPACE_DEV: '${{ secrets.ECAS_NAMESPACE_NO_ENV }}-dev' REDHAT_REGISTRY_USERNAME: '${{ secrets.REDHAT_REGISTRY_USERNAME }}' REDHAT_REGISTRY_PASSWORD: '${{ secrets.REDHAT_REGISTRY_PASSWORD }}' - - - + SOURCE_REPOSITORY: 'https://github.com/bcgov/EDUC-HUB.git' DOTNET_STARTUP_PROJECT: 'CASInterfaceService/cas-interface-service.csproj' IMAGE_REGISTRY: 'ghcr.io/${{ github.repository_owner }}' @@ -17,7 +15,7 @@ env: APP_NAME_API: ecas-api APP_NAME_CAS: cas-api REDHAT_REGISTRY: https://registry.redhat.io - + DOCKER_ARTIFACTORY_REPO: artifacts.developer.gov.bc.ca/docker-remote ARTIFACTORY_REPO: artifacts.developer.gov.bc.ca APP_NAME: ecas @@ -48,7 +46,7 @@ env: CAS_API_SERVER: ${{ secrets.CAS_API_SERVER }} CAS_TOKEN_URI: /ords/cas/oauth/token CAS_INVOICE_URI: /ords/cas/cfs/apinvoice/ - + HOST_ROUTE: '${{ secrets.SITE_URL }}' BRANCH: "master" @@ -57,7 +55,6 @@ env: PRIVATE_KEY: ${{ secrets.PRIV_KEY }} TRUSTED_CA_BUNDLE: ${{ secrets.TRUSTED_CA_BUNDLE }} ENV: "dev" - on: workflow_dispatch: @@ -116,12 +113,12 @@ jobs: - name: Check out repository uses: actions/checkout@v3 - + - name: Determine image tags if: env.TAG == '' run: | echo "TAG=latest ${GITHUB_SHA::12}" | tee -a $GITHUB_ENV - + - name: Install oc uses: redhat-actions/openshift-tools-installer@v1 with: @@ -211,77 +208,101 @@ jobs: registry: ${{ env.IMAGE_REGISTRY }} username: ${{ env.IMAGE_REGISTRY_USER }} password: ${{ env.IMAGE_REGISTRY_PASSWORD }} - + - name: Deploy - run: > + run: | set -eux # Login to OpenShift and select project - - oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ - env.OPENSHIFT_SERVER }} + oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }} oc project ${{ env.OPENSHIFT_NAMESPACE_DEV }} # Cancel any rollouts in progress - oc rollout cancel dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" - oc rollout cancel dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" - oc rollout cancel dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" - # Create the image stream if it doesn't exist - oc create imagestream ${{ env.REPO_NAME }}-frontend> /dev/null || true && echo "Frontend image stream in place" oc create imagestream ${{ env.REPO_NAME }}-api> /dev/null || true && echo "Ecas API image stream in place" oc create imagestream ${{ env.REPO_NAME }}-cas-api> /dev/null || true && echo "CAS API image stream in place" + oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-frontend.outputs.registry-path }} ${{ env.REPO_NAME }}-frontend:${{ env.TAG }} + oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-api.outputs.registry-path }} ${{ env.REPO_NAME }}-api:${{ env.TAG }} + oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-cas.outputs.registry-path }} ${{ env.REPO_NAME }}-cas-api:${{ env.TAG }} + + curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh \ + | bash /dev/stdin \ + "${{ env.REPO_NAME }}" \ + "${{ env.APP_DEBUG }}" \ + "${{ env.DOCUMENTROOT }}" \ + "${{ env.DYNAMICSBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT_CAS }}" \ + "${{ env.CAS_API_SERVER }}" \ + "${{ env.CAS_TOKEN_URI }}" \ + "${{ env.CAS_INVOICE_URI }}" \ + "${{ env.TRUSTED_CA_BUNDLE }}" - oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-frontend.outputs.registry-path }} ${{ env.REPO_NAME }}-frontend:${{ env.TAG }} - - - oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-api.outputs.registry-path }} ${{env.REPO_NAME }}-api:${{ env.TAG }} - - - - oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-cas.outputs.registry-path }} ${{env.REPO_NAME }}-cas-api:${{ env.TAG }} - - curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh | bash /dev/stdin "${{ env.REPO_NAME }}" "${{env.APP_DEBUG}}" "${{env.DOCUMENTROOT}}" "${{ env.DYNAMICSBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT_CAS}}" "${{env.CAS_API_SERVER}}" "${{env.CAS_TOKEN_URI}}" "${{env.CAS_INVOICE_URI}}" "${{ env.TRUSTED_CA_BUNDLE }}" - - # Process and apply deployment template - - oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE}} -p CA_CERT="${{ env.CA_CERT }}" -p CERTIFICATE="${{ env.CERTIFICATE }}" -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" -p ENV="${{env.ENV}}"| oc apply -f - - - - - oc process -f ./openshift/templates/ecas-api/api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\ - | oc apply -f - - - - oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\ - | oc apply -f - - - - # Start rollout (if necessary) and follow it - + oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} \ + -p TAG=${{ env.TAG }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE}} \ + -p CA_CERT="${{ env.CA_CERT }}" \ + -p CERTIFICATE="${{ env.CERTIFICATE }}" \ + -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" \ + -p ENV="${{env.ENV}}" | oc apply -f - + + oc process -f ./openshift/templates/ecas-api/api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} \ + -p TAG=${{ env.TAG }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} \ + -p TAG=${{ env.TAG }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + # Restart deployments to pick up new images and follow rollout status + oc rollout restart deployment/${{ env.APP_NAME_FRONTEND }} && echo "Rollout Front End in progress" + oc rollout restart deployment/${{ env.APP_NAME_API }} && echo "Rollout ECAS API in progress" + oc rollout restart deployment/${{ env.APP_NAME_CAS }} && echo "Rollout CAS API in progress" - oc rollout latest dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "Rollout Front End in progress" - - oc rollout latest dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "Rollout ECAS API in progress" - - oc rollout latest dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "Rollout CAS API in progress" - # Get status, returns 0 if rollout is successful - - oc rollout status dc/${{ env.APP_NAME_FRONTEND }} - - oc rollout status dc/${{ env.APP_NAME_API }} - - oc rollout status dc/${{ env.APP_NAME_CAS }} - + oc rollout status deployment/${{ env.APP_NAME_FRONTEND }} + oc rollout status deployment/${{ env.APP_NAME_API }} + oc rollout status deployment/${{ env.APP_NAME_CAS }} - name: ZAP Scan (action, fail on alerts) uses: zaproxy/action-full-scan@v0.12.0 diff --git a/.github/workflows/create_tag.yml b/.github/workflows/create_tag.yml index f236af088..8ac33a920 100644 --- a/.github/workflows/create_tag.yml +++ b/.github/workflows/create_tag.yml @@ -1,8 +1,6 @@ name: Create Tag env: - - OPENSHIFT_SERVER: '${{ secrets.OPENSHIFT_SERVER }}' OPENSHIFT_TOKEN: '${{ secrets.OPENSHIFT_TOKEN }}' OPENSHIFT_NAMESPACE_DEV: '${{ secrets.ECAS_NAMESPACE_NO_ENV }}-dev' @@ -22,15 +20,11 @@ on: description: 'Version Number' required: true - - jobs: tag_image: name: Tag Image runs-on: ubuntu-24.04 environment: dev - - steps: - name: Check out repository uses: actions/checkout@v2 @@ -45,8 +39,6 @@ jobs: ref: 'refs/tags/${{ github.event.inputs.version }}', sha: context.sha }) - - - name: Install oc uses: redhat-actions/openshift-tools-installer@v1 with: @@ -57,9 +49,9 @@ jobs: - name: Tag in OpenShift run: | set -eux - + # Login to OpenShift and select project - + oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }} diff --git a/.github/workflows/deploy_latest_to_test.yml b/.github/workflows/deploy_latest_to_test.yml index cb0d4eb6a..3d922e4bd 100644 --- a/.github/workflows/deploy_latest_to_test.yml +++ b/.github/workflows/deploy_latest_to_test.yml @@ -1,7 +1,7 @@ name: Deploy latest to TEST env: - # 🖊️ EDIT your repository secrets to log into your OpenShift cluster and set up the context. + # EDIT your repository secrets to log into your OpenShift cluster and set up the context. # See https://github.com/redhat-actions/oc-login#readme for how to retrieve these values. # To get a permanent token, refer to https://github.com/redhat-actions/oc-login/wiki/Using-a-Service-Account-for-GitHub-Actions OPENSHIFT_SERVER: '${{ secrets.OPENSHIFT_SERVER }}' @@ -49,22 +49,15 @@ env: PRIVATE_KEY: ${{ secrets.PRIV_KEY }} ENV: "test" - - - on: # https://docs.github.com/en/actions/reference/events-that-trigger-workflows workflow_dispatch: - jobs: deploy-to-openshift-test: name: Deploy to OpenShift TEST runs-on: ubuntu-24.04 environment: test - - - steps: - name: Check out repository uses: actions/checkout@v3 @@ -81,13 +74,11 @@ jobs: # Login to OpenShift and select project oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }} oc project ${{ env.OPENSHIFT_NAMESPACE_TEST }} - # Cancel any rollouts in progress - oc rollout cancel dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" - - oc rollout cancel dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" - - oc rollout cancel dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" + # Cancel any rollouts in progress + oc rollout cancel deployment/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" + oc rollout cancel deployment/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" + oc rollout cancel deployment/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" oc tag ${{ env.OPENSHIFT_NAMESPACE_DEV }}/${{ env.REPO_NAME }}-frontend:latest \ ${{ env.OPENSHIFT_NAMESPACE_TEST }}/${{ env.REPO_NAME }}-frontend:latest @@ -98,38 +89,75 @@ jobs: oc tag ${{ env.OPENSHIFT_NAMESPACE_DEV }}/${{ env.REPO_NAME }}-cas-api:latest \ ${{ env.OPENSHIFT_NAMESPACE_TEST }}/${{ env.REPO_NAME }}-cas-api:latest - curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh | bash /dev/stdin "${{ env.REPO_NAME }}" "${{env.APP_DEBUG}}" "${{env.DOCUMENTROOT}}" "${{ env.DYNAMICSBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT_CAS}}" "${{env.CAS_API_SERVER}}" "${{env.CAS_TOKEN_URI}}" "${{env.CAS_INVOICE_URI}}" "${{ env.TRUSTED_CA_BUNDLE }}" - - - # Process and apply deployment template - - oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=latest -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE}} -p CA_CERT="${{ env.CA_CERT }}" -p CERTIFICATE="${{ env.CERTIFICATE }}" -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" -p ENV="${{env.ENV}}"| oc apply -f - - - - - oc process -f ./openshift/templates/ecas-api/api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=latest -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }} \ - | oc apply -f - - - - oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=latest -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\ - | oc apply -f - - - - - # Start rollout (if necessary) and follow it - - - oc rollout latest dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "Rollout Front End in progress" - - oc rollout latest dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "Rollout ECAS API in progress" - - oc rollout latest dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "Rollout CAS API in progress" + curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh \ + | bash /dev/stdin \ + "${{ env.REPO_NAME }}" \ + "${{ env.APP_DEBUG }}" \ + "${{ env.DOCUMENTROOT }}" \ + "${{ env.DYNAMICSBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT_CAS }}" \ + "${{ env.CAS_API_SERVER }}" \ + "${{ env.CAS_TOKEN_URI }}" \ + "${{ env.CAS_INVOICE_URI }}" \ + "${{ env.TRUSTED_CA_BUNDLE }}" + + # Process and apply deployment template + oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} \ + -p TAG=latest \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE}} \ + -p CA_CERT="${{ env.CA_CERT }}" \ + -p CERTIFICATE="${{ env.CERTIFICATE }}" \ + -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" \ + -p ENV="${{ env.ENV }}" | oc apply -f - + + oc process -f ./openshift/templates/ecas-api/api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} \ + -p TAG=latest \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} \ + -p TAG=latest \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + # Restart deployments to pick up new images and follow rollout status + oc rollout restart deployment/${{ env.APP_NAME_FRONTEND }} && echo "Rollout Front End in progress" + oc rollout restart deployment/${{ env.APP_NAME_API }} && echo "Rollout ECAS API in progress" + oc rollout restart deployment/${{ env.APP_NAME_CAS }} && echo "Rollout CAS API in progress" # Get status, returns 0 if rollout is successful - - oc rollout status dc/${{ env.APP_NAME_FRONTEND }} - - oc rollout status dc/${{ env.APP_NAME_API }} - - oc rollout status dc/${{ env.APP_NAME_CAS }} + oc rollout status deployment/${{ env.APP_NAME_FRONTEND }} + oc rollout status deployment/${{ env.APP_NAME_API }} + oc rollout status deployment/${{ env.APP_NAME_CAS }} diff --git a/.github/workflows/deploy_test.yml b/.github/workflows/deploy_test.yml index 7a5f9b8cb..8dde2a8d2 100644 --- a/.github/workflows/deploy_test.yml +++ b/.github/workflows/deploy_test.yml @@ -1,7 +1,7 @@ name: Deploy to TEST env: - # 🖊️ EDIT your repository secrets to log into your OpenShift cluster and set up the context. + # EDIT your repository secrets to log into your OpenShift cluster and set up the context. # See https://github.com/redhat-actions/oc-login#readme for how to retrieve these values. # To get a permanent token, refer to https://github.com/redhat-actions/oc-login/wiki/Using-a-Service-Account-for-GitHub-Actions OPENSHIFT_SERVER: '${{ secrets.OPENSHIFT_SERVER }}' @@ -79,13 +79,11 @@ jobs: # Login to OpenShift and select project oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }} oc project ${{ env.OPENSHIFT_NAMESPACE_TEST }} - # Cancel any rollouts in progress - oc rollout cancel dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" - - oc rollout cancel dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" - - oc rollout cancel dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" + # Cancel any rollouts in progress + oc rollout cancel deployment/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" + oc rollout cancel deployment/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" + oc rollout cancel deployment/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" oc tag ${{ env.OPENSHIFT_NAMESPACE_DEV }}/${{ env.REPO_NAME }}-frontend:${{ steps.get-latest-tag.outputs.tag }} \ ${{ env.OPENSHIFT_NAMESPACE_TEST }}/${{ env.REPO_NAME }}-frontend:${{ steps.get-latest-tag.outputs.tag }} @@ -96,37 +94,74 @@ jobs: oc tag ${{ env.OPENSHIFT_NAMESPACE_DEV }}/${{ env.REPO_NAME }}-cas-api:${{ steps.get-latest-tag.outputs.tag }} \ ${{ env.OPENSHIFT_NAMESPACE_TEST }}/${{ env.REPO_NAME }}-cas-api:${{ steps.get-latest-tag.outputs.tag }} - curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh | bash /dev/stdin "${{ env.REPO_NAME }}" "${{env.APP_DEBUG}}" "${{env.DOCUMENTROOT}}" "${{ env.DYNAMICSBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT_CAS}}" "${{env.CAS_API_SERVER}}" "${{env.CAS_TOKEN_URI}}" "${{env.CAS_INVOICE_URI}}" "${{ env.TRUSTED_CA_BUNDLE }}" - - # Process and apply deployment template - - oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ steps.get-latest-tag.outputs.tag }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE}} -p CA_CERT="${{ env.CA_CERT }}" -p CERTIFICATE="${{ env.CERTIFICATE }}" -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" -p ENV="${{env.ENV}}"| oc apply -f - - - - - oc process -f ./openshift/templates/ecas-api/api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ steps.get-latest-tag.outputs.tag}} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }} \ - | oc apply -f - - - - oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ steps.get-latest-tag.outputs.tag}} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\ - | oc apply -f - - - - - # Start rollout (if necessary) and follow it - - - oc rollout latest dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "Rollout Front End in progress" - - oc rollout latest dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "Rollout ECAS API in progress" - - oc rollout latest dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "Rollout CAS API in progress" + curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh \ + | bash /dev/stdin \ + "${{ env.REPO_NAME }}" \ + "${{ env.APP_DEBUG }}" \ + "${{ env.DOCUMENTROOT }}" \ + "${{ env.DYNAMICSBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT_CAS }}" \ + "${{ env.CAS_API_SERVER }}" \ + "${{ env.CAS_TOKEN_URI }}" \ + "${{ env.CAS_INVOICE_URI }}" \ + "${{ env.TRUSTED_CA_BUNDLE }}" + + # Process and apply deployment template + oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} \ + -p TAG=${{ steps.get-latest-tag.outputs.tag }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE}} \ + -p CA_CERT="${{ env.CA_CERT }}" \ + -p CERTIFICATE="${{ env.CERTIFICATE }}" \ + -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" \ + -p ENV="${{ env.ENV }}" | oc apply -f - + + oc process -f ./openshift/templates/ecas-api/api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} \ + -p TAG=${{ steps.get-latest-tag.outputs.tag }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} \ + -p TAG=${{ steps.get-latest-tag.outputs.tag }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + # Restart deployments to pick up new images and follow rollout status + oc rollout restart deployment/${{ env.APP_NAME_FRONTEND }} && echo "Rollout Front End in progress" + oc rollout restart deployment/${{ env.APP_NAME_API }} && echo "Rollout ECAS API in progress" + oc rollout restart deployment/${{ env.APP_NAME_CAS }} && echo "Rollout CAS API in progress" # Get status, returns 0 if rollout is successful - - oc rollout status dc/${{ env.APP_NAME_FRONTEND }} - - oc rollout status dc/${{ env.APP_NAME_API }} - - oc rollout status dc/${{ env.APP_NAME_CAS }} - + oc rollout status deployment/${{ env.APP_NAME_FRONTEND }} + oc rollout status deployment/${{ env.APP_NAME_API }} + oc rollout status deployment/${{ env.APP_NAME_CAS }} diff --git a/.github/workflows/deploy_to_prod.yml b/.github/workflows/deploy_to_prod.yml index 05f5deeb9..9c234caf9 100644 --- a/.github/workflows/deploy_to_prod.yml +++ b/.github/workflows/deploy_to_prod.yml @@ -1,7 +1,7 @@ name: Deploy to PROD env: - # 🖊️ EDIT your repository secrets to log into your OpenShift cluster and set up the context. + # EDIT your repository secrets to log into your OpenShift cluster and set up the context. # See https://github.com/redhat-actions/oc-login#readme for how to retrieve these values. # To get a permanent token, refer to https://github.com/redhat-actions/oc-login/wiki/Using-a-Service-Account-for-GitHub-Actions OPENSHIFT_SERVER: '${{ secrets.OPENSHIFT_SERVER }}' @@ -80,13 +80,11 @@ jobs: # Login to OpenShift and select project oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }} oc project ${{ env.OPENSHIFT_NAMESPACE_PROD }} - # Cancel any rollouts in progress - oc rollout cancel dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" - - oc rollout cancel dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" - - oc rollout cancel dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" + # Cancel any rollouts in progress + oc rollout cancel deployment/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress" + oc rollout cancel deployment/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress" + oc rollout cancel deployment/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress" oc tag ${{ env.OPENSHIFT_NAMESPACE_TEST }}/${{ env.REPO_NAME }}-frontend:${{ steps.get-latest-tag.outputs.tag }} \ ${{ env.OPENSHIFT_NAMESPACE_PROD }}/${{ env.REPO_NAME }}-frontend:${{ steps.get-latest-tag.outputs.tag }} @@ -97,38 +95,75 @@ jobs: oc tag ${{ env.OPENSHIFT_NAMESPACE_TEST }}/${{ env.REPO_NAME }}-cas-api:${{ steps.get-latest-tag.outputs.tag }} \ ${{ env.OPENSHIFT_NAMESPACE_PROD }}/${{ env.REPO_NAME }}-cas-api:${{ steps.get-latest-tag.outputs.tag }} - curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh | bash /dev/stdin "${{ env.REPO_NAME }}" "${{env.APP_DEBUG}}" "${{env.DOCUMENTROOT}}" "${{ env.DYNAMICSBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL}}" "${{env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL}}" "${{env.ASPNETCORE_ENVIRONMENT_CAS}}" "${{env.CAS_API_SERVER}}" "${{env.CAS_TOKEN_URI}}" "${{env.CAS_INVOICE_URI}}" "${{ env.TRUSTED_CA_BUNDLE }}" - - - # Process and apply deployment template - - oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_PROD }} -p TAG=${{ steps.get-latest-tag.outputs.tag }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE}} -p CA_CERT="${{ env.CA_CERT }}" -p CERTIFICATE="${{ env.CERTIFICATE }}" -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" -p ENV="${{env.ENV}}"| oc apply -f - - - - - oc process -f ./openshift/templates/ecas-api/api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_PROD }} -p TAG=${{ steps.get-latest-tag.outputs.tag}} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }} \ - | oc apply -f - - - - oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_PROD }} -p TAG=${{ steps.get-latest-tag.outputs.tag}} -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\ - | oc apply -f - - - - - # Start rollout (if necessary) and follow it - - - oc rollout latest dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "Rollout Front End in progress" - - oc rollout latest dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "Rollout ECAS API in progress" - - oc rollout latest dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "Rollout CAS API in progress" + curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh \ + | bash /dev/stdin \ + "${{ env.REPO_NAME }}" \ + "${{ env.APP_DEBUG }}" \ + "${{ env.DOCUMENTROOT }}" \ + "${{ env.DYNAMICSBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL }}" \ + "${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL }}" \ + "${{ env.ASPNETCORE_ENVIRONMENT_CAS }}" \ + "${{ env.CAS_API_SERVER }}" \ + "${{ env.CAS_TOKEN_URI }}" \ + "${{ env.CAS_INVOICE_URI }}" \ + "${{ env.TRUSTED_CA_BUNDLE }}" + + # Process and apply deployment template + oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_PROD }} \ + -p TAG=${{ steps.get-latest-tag.outputs.tag }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE}} \ + -p CA_CERT="${{ env.CA_CERT }}" \ + -p CERTIFICATE="${{ env.CERTIFICATE }}" \ + -p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" \ + -p ENV="${{ env.ENV }}" | oc apply -f - + + oc process -f ./openshift/templates/ecas-api/api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_PROD }} \ + -p TAG=${{ steps.get-latest-tag.outputs.tag }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml \ + -p APP_NAME=${{ env.APP_NAME }} \ + -p REPO_NAME=${{ env.REPO_NAME }} \ + -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_PROD }} \ + -p TAG=${{ steps.get-latest-tag.outputs.tag }} \ + -p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \ + -p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \ + -p MIN_CPU=${{ env.MIN_CPU }} \ + -p MAX_CPU=${{ env.MAX_CPU }} \ + -p MIN_MEM=${{ env.MIN_MEM }} \ + -p MAX_MEM=${{ env.MAX_MEM }} \ + -p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f - + + # Restart deployments to pick up new images and follow rollout status + oc rollout restart deployment/${{ env.APP_NAME_FRONTEND }} && echo "Rollout Front End in progress" + oc rollout restart deployment/${{ env.APP_NAME_API }} && echo "Rollout ECAS API in progress" + oc rollout restart deployment/${{ env.APP_NAME_CAS }} && echo "Rollout CAS API in progress" # Get status, returns 0 if rollout is successful - - oc rollout status dc/${{ env.APP_NAME_FRONTEND }} - - oc rollout status dc/${{ env.APP_NAME_API }} - - oc rollout status dc/${{ env.APP_NAME_CAS }} + oc rollout status deployment/${{ env.APP_NAME_FRONTEND }} + oc rollout status deployment/${{ env.APP_NAME_API }} + oc rollout status deployment/${{ env.APP_NAME_CAS }} diff --git a/openshift/templates/cas-api/cas-api.dc.yaml b/openshift/templates/cas-api/cas-api.dc.yaml index cfdc78a6f..db0bcf2aa 100644 --- a/openshift/templates/cas-api/cas-api.dc.yaml +++ b/openshift/templates/cas-api/cas-api.dc.yaml @@ -5,8 +5,8 @@ metadata: name: "cas-api-dc" objects: - - apiVersion: v1 - kind: DeploymentConfig + - apiVersion: apps/v1 + kind: Deployment metadata: labels: app: "${APP_NAME}" @@ -17,16 +17,19 @@ spec: replicas: ${{MIN_REPLICAS}} selector: - app: "${APP_NAME}" - deploymentconfig: "cas-api" + matchLabels: + app: "${APP_NAME}" + deployment: "cas-api" strategy: - resources: {} - type: Rolling + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 template: metadata: labels: app: "${APP_NAME}" - deploymentconfig: "cas-api" + deployment: "cas-api" spec: containers: - image: image-registry.openshift-image-registry.svc:5000/${NAMESPACE}/${REPO_NAME}-cas-api:${TAG} @@ -87,9 +90,6 @@ secret: secretName: trusted-custom-ca - test: false - triggers: - - type: ConfigChange - apiVersion: v1 kind: Route metadata: @@ -127,7 +127,7 @@ targetPort: 8080 selector: app: "${APP_NAME}" - deploymentconfig: "cas-api" + deployment: "cas-api" - apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -140,10 +140,9 @@ app-group: "${APP_NAME}" spec: scaleTargetRef: - apiVersion: apps.openshift.io/v1 - kind: DeploymentConfig + apiVersion: apps/v1 + kind: Deployment name: "cas-api" - subresource: scale minReplicas: ${{MIN_REPLICAS}} maxReplicas: ${{MAX_REPLICAS}} metrics: diff --git a/openshift/templates/ecas-api/api.dc.yaml b/openshift/templates/ecas-api/api.dc.yaml index d033fa0a6..e2e15d2a5 100644 --- a/openshift/templates/ecas-api/api.dc.yaml +++ b/openshift/templates/ecas-api/api.dc.yaml @@ -6,8 +6,8 @@ name: "${REPO_NAME}-api-dc" creationTimestamp: objects: - - apiVersion: v1 - kind: DeploymentConfig + - apiVersion: apps/v1 + kind: Deployment metadata: labels: app: "${APP_NAME}" @@ -18,16 +18,19 @@ spec: replicas: ${{MIN_REPLICAS}} selector: - app: "${APP_NAME}" - deploymentconfig: "${APP_NAME}-api" + matchLabels: + app: "${APP_NAME}" + deployment: "${APP_NAME}-api" strategy: - resources: {} - type: Rolling + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 template: metadata: labels: app: "${APP_NAME}" - deploymentconfig: "${APP_NAME}-api" + deployment: "${APP_NAME}-api" spec: containers: - image: image-registry.openshift-image-registry.svc:5000/${NAMESPACE}/${REPO_NAME}-api:${TAG} @@ -119,9 +122,6 @@ cpu: "${MAX_CPU}" memory: "${MAX_MEM}" - test: false - triggers: - - type: ConfigChange - apiVersion: v1 kind: Route @@ -160,7 +160,7 @@ targetPort: 8080 selector: app: "${APP_NAME}" - deploymentconfig: "${APP_NAME}-api" + deployment: "${APP_NAME}-api" - apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: @@ -172,10 +172,9 @@ name: "${APP_NAME}-api-cpu-autoscaler" spec: scaleTargetRef: - apiVersion: apps.openshift.io/v1 - kind: DeploymentConfig + apiVersion: apps/v1 + kind: Deployment name: "${APP_NAME}-api" - subresource: scale minReplicas: ${{MIN_REPLICAS}} maxReplicas: ${{MAX_REPLICAS}} metrics: diff --git a/openshift/templates/ecas-frontend/frontend.dc.yaml b/openshift/templates/ecas-frontend/frontend.dc.yaml index bb3f69137..2da39110e 100644 --- a/openshift/templates/ecas-frontend/frontend.dc.yaml +++ b/openshift/templates/ecas-frontend/frontend.dc.yaml @@ -6,10 +6,9 @@ metadata: name: "${REPO_NAME}-frontend-dc" objects: - - apiVersion: v1 - kind: DeploymentConfig + - apiVersion: apps/v1 + kind: Deployment metadata: - creationTimestamp: labels: app: "${APP_NAME}" name: "${APP_NAME}-frontend" @@ -19,16 +18,19 @@ spec: replicas: ${{MIN_REPLICAS}} selector: - app: "${APP_NAME}" - deploymentconfig: "${APP_NAME}-frontend" + matchLabels: + app: "${APP_NAME}" + deployment: "${APP_NAME}-frontend" strategy: - resources: {} - type: Rolling + type: RollingUpdate + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% template: metadata: labels: app: "${APP_NAME}" - deploymentconfig: "${APP_NAME}-frontend" + deployment: "${APP_NAME}-frontend" spec: containers: - image: image-registry.openshift-image-registry.svc:5000/${NAMESPACE}/${REPO_NAME}-frontend:${TAG} @@ -109,9 +111,6 @@ limits: cpu: "${MAX_CPU}" memory: "${MAX_MEM}" - test: false - triggers: - - type: ConfigChange - apiVersion: v1 kind: Route @@ -175,7 +174,7 @@ targetPort: 8080 selector: app: "${APP_NAME}" - deploymentconfig: "${APP_NAME}-frontend" + deployment: "${APP_NAME}-frontend" - apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -188,10 +187,9 @@ name: "${APP_NAME}-frontend-cpu-autoscaler" spec: scaleTargetRef: - apiVersion: apps.openshift.io/v1 - kind: DeploymentConfig + apiVersion: apps/v1 + kind: Deployment name: "${APP_NAME}-frontend" - subresource: scale minReplicas: ${{MIN_REPLICAS}} maxReplicas: ${{MAX_REPLICAS}} metrics: