Skip to content

Commit b82eef5

Browse files
authored
Merge pull request #191 from bcgov/deploymentconfigs-to-deployments
Convert DeploymentConfigs to Deployments
2 parents c8b537d + 227848a commit b82eef5

File tree

8 files changed

+342
-235
lines changed

8 files changed

+342
-235
lines changed

.github/workflows/build.from.master.branch.deploy.to.dev.yml

Lines changed: 79 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ env:
55
OPENSHIFT_NAMESPACE_DEV: '${{ secrets.ECAS_NAMESPACE_NO_ENV }}-dev'
66
REDHAT_REGISTRY_USERNAME: '${{ secrets.REDHAT_REGISTRY_USERNAME }}'
77
REDHAT_REGISTRY_PASSWORD: '${{ secrets.REDHAT_REGISTRY_PASSWORD }}'
8-
9-
10-
8+
119
SOURCE_REPOSITORY: 'https://github.com/bcgov/EDUC-HUB.git'
1210
DOTNET_STARTUP_PROJECT: 'CASInterfaceService/cas-interface-service.csproj'
1311
IMAGE_REGISTRY: 'ghcr.io/${{ github.repository_owner }}'
@@ -17,7 +15,7 @@ env:
1715
APP_NAME_API: ecas-api
1816
APP_NAME_CAS: cas-api
1917
REDHAT_REGISTRY: https://registry.redhat.io
20-
18+
2119
DOCKER_ARTIFACTORY_REPO: artifacts.developer.gov.bc.ca/docker-remote
2220
ARTIFACTORY_REPO: artifacts.developer.gov.bc.ca
2321
APP_NAME: ecas
@@ -48,7 +46,7 @@ env:
4846
CAS_API_SERVER: ${{ secrets.CAS_API_SERVER }}
4947
CAS_TOKEN_URI: /ords/cas/oauth/token
5048
CAS_INVOICE_URI: /ords/cas/cfs/apinvoice/
51-
49+
5250
HOST_ROUTE: '${{ secrets.SITE_URL }}'
5351
BRANCH: "master"
5452

@@ -57,7 +55,6 @@ env:
5755
PRIVATE_KEY: ${{ secrets.PRIV_KEY }}
5856
TRUSTED_CA_BUNDLE: ${{ secrets.TRUSTED_CA_BUNDLE }}
5957
ENV: "dev"
60-
6158

6259
on:
6360
workflow_dispatch:
@@ -116,12 +113,12 @@ jobs:
116113
117114
- name: Check out repository
118115
uses: actions/checkout@v3
119-
116+
120117
- name: Determine image tags
121118
if: env.TAG == ''
122119
run: |
123120
echo "TAG=latest ${GITHUB_SHA::12}" | tee -a $GITHUB_ENV
124-
121+
125122
- name: Install oc
126123
uses: redhat-actions/openshift-tools-installer@v1
127124
with:
@@ -211,77 +208,101 @@ jobs:
211208
registry: ${{ env.IMAGE_REGISTRY }}
212209
username: ${{ env.IMAGE_REGISTRY_USER }}
213210
password: ${{ env.IMAGE_REGISTRY_PASSWORD }}
214-
211+
215212
- name: Deploy
216-
run: >
213+
run: |
217214
set -eux
218215
219216
# Login to OpenShift and select project
220-
221-
oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{
222-
env.OPENSHIFT_SERVER }}
223217
218+
oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }}
224219
oc project ${{ env.OPENSHIFT_NAMESPACE_DEV }}
225220
226221
# Cancel any rollouts in progress
227-
228222
oc rollout cancel dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "No rollout in progress"
229-
230223
oc rollout cancel dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "No ecas api rollout in progress"
231-
232224
oc rollout cancel dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "No cas api rollout in progress"
233225
234-
235226
# Create the image stream if it doesn't exist
236-
237227
oc create imagestream ${{ env.REPO_NAME }}-frontend> /dev/null || true && echo "Frontend image stream in place"
238228
oc create imagestream ${{ env.REPO_NAME }}-api> /dev/null || true && echo "Ecas API image stream in place"
239229
oc create imagestream ${{ env.REPO_NAME }}-cas-api> /dev/null || true && echo "CAS API image stream in place"
240230
231+
oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-frontend.outputs.registry-path }} ${{ env.REPO_NAME }}-frontend:${{ env.TAG }}
232+
oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-api.outputs.registry-path }} ${{ env.REPO_NAME }}-api:${{ env.TAG }}
233+
oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-cas.outputs.registry-path }} ${{ env.REPO_NAME }}-cas-api:${{ env.TAG }}
234+
235+
curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/${{ env.BRANCH }}/openshift/update-configmap.sh \
236+
| bash /dev/stdin \
237+
"${{ env.REPO_NAME }}" \
238+
"${{ env.APP_DEBUG }}" \
239+
"${{ env.DOCUMENTROOT }}" \
240+
"${{ env.DYNAMICSBASEURL }}" \
241+
"${{ env.ASPNETCORE_ENVIRONMENT }}" \
242+
"${{ env.DYNAMICSAUTHENTICATIONSETTINGS__ACTIVEENVIRONMENT }}" \
243+
"${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDWEBAPIURL }}" \
244+
"${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDREDIRECTURL }}" \
245+
"${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDRESOURCEURL }}" \
246+
"${{ env.DYNAMICSAUTHENTICATIONSETTINGS__CLOUDBASEURL }}" \
247+
"${{ env.ASPNETCORE_ENVIRONMENT_CAS }}" \
248+
"${{ env.CAS_API_SERVER }}" \
249+
"${{ env.CAS_TOKEN_URI }}" \
250+
"${{ env.CAS_INVOICE_URI }}" \
251+
"${{ env.TRUSTED_CA_BUNDLE }}"
241252
242-
oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-frontend.outputs.registry-path }} ${{ env.REPO_NAME }}-frontend:${{ env.TAG }}
243-
244-
245-
oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-api.outputs.registry-path }} ${{env.REPO_NAME }}-api:${{ env.TAG }}
246-
247-
248-
249-
oc tag -n ${{ env.OPENSHIFT_NAMESPACE_DEV }} ${{ steps.push-image-cas.outputs.registry-path }} ${{env.REPO_NAME }}-cas-api:${{ env.TAG }}
250-
251-
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 }}"
252-
253-
254253
# Process and apply deployment template
255-
256-
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 -
257-
258-
259-
260-
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 }}\
261-
| oc apply -f -
262-
263-
264-
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 }}\
265-
| oc apply -f -
266-
267-
268-
# Start rollout (if necessary) and follow it
269-
254+
oc process -f ./openshift/templates/ecas-frontend/frontend.dc.yaml \
255+
-p APP_NAME=${{ env.APP_NAME }} \
256+
-p REPO_NAME=${{ env.REPO_NAME }} \
257+
-p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} \
258+
-p TAG=${{ env.TAG }} \
259+
-p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \
260+
-p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \
261+
-p MIN_CPU=${{ env.MIN_CPU }} \
262+
-p MAX_CPU=${{ env.MAX_CPU }} \
263+
-p MIN_MEM=${{ env.MIN_MEM }} \
264+
-p MAX_MEM=${{ env.MAX_MEM }} \
265+
-p HOST_ROUTE=${{ env.HOST_ROUTE}} \
266+
-p CA_CERT="${{ env.CA_CERT }}" \
267+
-p CERTIFICATE="${{ env.CERTIFICATE }}" \
268+
-p PRIVATE_KEY="${{ env.PRIVATE_KEY }}" \
269+
-p ENV="${{env.ENV}}" | oc apply -f -
270+
271+
oc process -f ./openshift/templates/ecas-api/api.dc.yaml \
272+
-p APP_NAME=${{ env.APP_NAME }} \
273+
-p REPO_NAME=${{ env.REPO_NAME }} \
274+
-p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} \
275+
-p TAG=${{ env.TAG }} \
276+
-p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \
277+
-p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \
278+
-p MIN_CPU=${{ env.MIN_CPU }} \
279+
-p MAX_CPU=${{ env.MAX_CPU }} \
280+
-p MIN_MEM=${{ env.MIN_MEM }} \
281+
-p MAX_MEM=${{ env.MAX_MEM }} \
282+
-p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f -
283+
284+
oc process -f ./openshift/templates/cas-api/cas-api.dc.yaml \
285+
-p APP_NAME=${{ env.APP_NAME }} \
286+
-p REPO_NAME=${{ env.REPO_NAME }} \
287+
-p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_DEV }} \
288+
-p TAG=${{ env.TAG }} \
289+
-p MIN_REPLICAS=${{ env.MIN_REPLICAS }} \
290+
-p MAX_REPLICAS=${{ env.MAX_REPLICAS }} \
291+
-p MIN_CPU=${{ env.MIN_CPU }} \
292+
-p MAX_CPU=${{ env.MAX_CPU }} \
293+
-p MIN_MEM=${{ env.MIN_MEM }} \
294+
-p MAX_MEM=${{ env.MAX_MEM }} \
295+
-p HOST_ROUTE=${{ env.HOST_ROUTE }} | oc apply -f -
296+
297+
# Restart deployments to pick up new images and follow rollout status
298+
oc rollout restart deployment/${{ env.APP_NAME_FRONTEND }} && echo "Rollout Front End in progress"
299+
oc rollout restart deployment/${{ env.APP_NAME_API }} && echo "Rollout ECAS API in progress"
300+
oc rollout restart deployment/${{ env.APP_NAME_CAS }} && echo "Rollout CAS API in progress"
270301
271-
oc rollout latest dc/${{ env.APP_NAME_FRONTEND }} 2> /dev/null || true && echo "Rollout Front End in progress"
272-
273-
oc rollout latest dc/${{ env.APP_NAME_API }} 2> /dev/null || true && echo "Rollout ECAS API in progress"
274-
275-
oc rollout latest dc/${{ env.APP_NAME_CAS }} 2> /dev/null || true && echo "Rollout CAS API in progress"
276-
277302
# Get status, returns 0 if rollout is successful
278-
279-
oc rollout status dc/${{ env.APP_NAME_FRONTEND }}
280-
281-
oc rollout status dc/${{ env.APP_NAME_API }}
282-
283-
oc rollout status dc/${{ env.APP_NAME_CAS }}
284-
303+
oc rollout status deployment/${{ env.APP_NAME_FRONTEND }}
304+
oc rollout status deployment/${{ env.APP_NAME_API }}
305+
oc rollout status deployment/${{ env.APP_NAME_CAS }}
285306
286307
- name: ZAP Scan (action, fail on alerts)
287308
uses: zaproxy/action-full-scan@v0.12.0

.github/workflows/create_tag.yml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
name: Create Tag
22

33
env:
4-
5-
64
OPENSHIFT_SERVER: '${{ secrets.OPENSHIFT_SERVER }}'
75
OPENSHIFT_TOKEN: '${{ secrets.OPENSHIFT_TOKEN }}'
86
OPENSHIFT_NAMESPACE_DEV: '${{ secrets.ECAS_NAMESPACE_NO_ENV }}-dev'
@@ -22,15 +20,11 @@ on:
2220
description: 'Version Number'
2321
required: true
2422

25-
26-
2723
jobs:
2824
tag_image:
2925
name: Tag Image
3026
runs-on: ubuntu-24.04
3127
environment: dev
32-
33-
3428
steps:
3529
- name: Check out repository
3630
uses: actions/checkout@v2
@@ -45,8 +39,6 @@ jobs:
4539
ref: 'refs/tags/${{ github.event.inputs.version }}',
4640
sha: context.sha
4741
})
48-
49-
5042
- name: Install oc
5143
uses: redhat-actions/openshift-tools-installer@v1
5244
with:
@@ -57,9 +49,9 @@ jobs:
5749
- name: Tag in OpenShift
5850
run: |
5951
set -eux
60-
52+
6153
# Login to OpenShift and select project
62-
54+
6355
oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{
6456
env.OPENSHIFT_SERVER }}
6557

0 commit comments

Comments
 (0)