From 13ccfcb0abde4958761e15448247655ca564cd1c Mon Sep 17 00:00:00 2001 From: Mulder Date: Fri, 3 Nov 2023 13:14:00 -0700 Subject: [PATCH] DBC22-1141 Updated HELM charts to release to dev Updated github actions so they are now available for all the new --- .github/workflows/dev.yml | 17 ++-- .github/workflows/prod.yml | 73 ++++++++++++++++++ .github/workflows/test.yml | 12 +-- .github/workflows/uat.yml | 3 +- .github/workflows/zapscan.yml | 2 +- .../_django/templates/django-route.yaml | 30 ++++++- infrastructure/_django/values.yaml | 10 ++- .../templates/caching-route.yaml | 33 +++++++- infrastructure/_image-caching/values.yaml | 4 + .../_redis/templates/redis-imageStream.yaml | 2 +- .../_static/templates/static-route.yaml | 4 + infrastructure/_static/values.yaml | 4 +- infrastructure/_tasks/values.yaml | 6 +- infrastructure/charts/init/values-dev.yaml | 4 + infrastructure/charts/init/values-prod.yaml | 4 + infrastructure/charts/init/values-test.yaml | 4 + infrastructure/charts/init/values-uat.yaml | 4 + .../crunchy-postgres/values-dev.yaml | 2 +- .../crunchy-postgres/values-prod.yaml | 2 +- .../crunchy-postgres/values-test.yaml | 6 +- .../crunchy-postgres/values-uat.yaml | 4 +- infrastructure/init/values-prod.yaml | 2 +- infrastructure/init/values-uat.yaml | 6 +- infrastructure/main/charts/django-0.1.0.tgz | Bin 2938 -> 3187 bytes .../main/charts/image-caching-0.1.0.tgz | Bin 2474 -> 2738 bytes infrastructure/main/charts/redis-0.1.0.tgz | Bin 2251 -> 2253 bytes infrastructure/main/charts/static-0.1.0.tgz | Bin 2346 -> 2542 bytes infrastructure/main/charts/tasks-0.1.0.tgz | Bin 2531 -> 2516 bytes infrastructure/main/values-dev.yaml | 16 +++- infrastructure/main/values-prod.yaml | 39 ++++++---- infrastructure/main/values-test.yaml | 20 +++-- infrastructure/main/values-uat.yaml | 18 ++++- infrastructure/main/values.yaml | 14 +++- 33 files changed, 277 insertions(+), 68 deletions(-) create mode 100644 .github/workflows/prod.yml create mode 100644 infrastructure/charts/init/values-dev.yaml create mode 100644 infrastructure/charts/init/values-prod.yaml create mode 100644 infrastructure/charts/init/values-test.yaml create mode 100644 infrastructure/charts/init/values-uat.yaml diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 3ba7d1b20..0fc4695d1 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -9,7 +9,10 @@ jobs: build-static: runs-on: ubuntu-latest name: Build & Deploy Docker Static images - environment: dev + environment: + name: dev + url: https://dev-drivebc.apps.silver.devops.gov.bc.ca + steps: - name: checkout code @@ -20,10 +23,10 @@ jobs: with: context: . layers: true - image: static + image: dev-static tags: latest ${{ github.sha }} labels: | - app=drivebc + app=dev-drivebc containerfiles: ./compose/frontend/StaticBuild build-args: | API_HOST=${{ vars.API_HOST }} @@ -40,7 +43,7 @@ jobs: - name: push to registry uses: redhat-actions/push-to-registry@v2.7 with: - image: static + image: dev-static registry: ${{ secrets.REGISTRY }} username: ${{ secrets.BUILDER_USERNAME }} password: ${{ secrets.BUILDER_TOKEN }} @@ -56,17 +59,17 @@ jobs: - name: build backend uses: redhat-actions/buildah-build@v2 with: - image: django + image: dev-django tags: latest ${{ github.sha }} labels: | - app=drivebc + app=dev-drivebc containerfiles: ./compose/backend/Dockerfile build-args: DEBUG_BUILD=true - name: push to registry uses: redhat-actions/push-to-registry@v2.7 with: - image: django + image: dev-django registry: ${{ secrets.REGISTRY }} username: ${{ secrets.BUILDER_USERNAME }} password: ${{ secrets.BUILDER_TOKEN }} diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml new file mode 100644 index 000000000..f25698e47 --- /dev/null +++ b/.github/workflows/prod.yml @@ -0,0 +1,73 @@ +name: Deploy main to prod + +on: + workflow_dispatch: + + +jobs: + + build-static: + runs-on: ubuntu-latest + name: Build & Deploy Docker Static images + environment: prod + + steps: + - name: checkout code + uses: actions/checkout@v3 + + - name: build static + uses: redhat-actions/buildah-build@v2 + with: + context: . + layers: true + image: prod-static + tags: latest ${{ github.sha }} + labels: | + app=prod-drivebc + containerfiles: ./compose/frontend/StaticBuild + build-args: | + API_HOST=${{ vars.API_HOST }} + BASE_MAP=${{ vars.BASE_MAP }} + MAP_STYLE=${{ vars.MAP_STYLE }} + HIGHWAY_LAYER=${{ vars.HIGHWAY_LAYER }} + OPEN511_LAYER=${{ vars.OPEN511_LAYER }} + REPLAY_THE_DAY=${{ vars.REPLAY_THE_DAY }} + ROUTE_PLANNER=${{ vars.ROUTE_PLANNER }} + ROUTE_PLANNER_KEY=${{ vars.ROUTE_PLANNER_KEY }} + GEOCODER_HOST=${{ vars.GEOCODER_HOST }} + GEOCODER_API_AUTH_KEY=${{ vars.GEOCODER_API_AUTH_KEY }} + DEBUG_BUILD=false + - name: push to registry + uses: redhat-actions/push-to-registry@v2.7 + with: + image: prod-static + registry: ${{ secrets.REGISTRY }} + username: ${{ secrets.BUILDER_USERNAME }} + password: ${{ secrets.BUILDER_TOKEN }} + + build-backend: + runs-on: ubuntu-latest + name: Build & Deploy Docker backend images + environment: prod + + steps: + - name: checkout code + uses: actions/checkout@v3 + + - name: build backend + uses: redhat-actions/buildah-build@v2 + with: + image: prod-django + tags: latest ${{ github.sha }} + labels: | + app=prod-drivebc + containerfiles: ./compose/backend/Dockerfile + build-args: + DEBUG_BUILD=false + - name: push to registry + uses: redhat-actions/push-to-registry@v2.7 + with: + image: prod-django + registry: ${{ secrets.REGISTRY }} + username: ${{ secrets.BUILDER_USERNAME }} + password: ${{ secrets.BUILDER_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 929fa335e..e8f987af0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,10 +21,10 @@ jobs: with: context: . layers: true - image: static + image: test-static tags: latest ${{ github.sha }} labels: | - app=drivebc + app=test-drivebc containerfiles: ./compose/frontend/StaticBuild build-args: | API_HOST=${{ vars.API_HOST }} @@ -41,7 +41,7 @@ jobs: - name: push to registry uses: redhat-actions/push-to-registry@v2.7 with: - image: static + image: test-static registry: ${{ secrets.REGISTRY }} username: ${{ secrets.BUILDER_USERNAME }} password: ${{ secrets.BUILDER_TOKEN }} @@ -58,17 +58,17 @@ jobs: - name: build backend uses: redhat-actions/buildah-build@v2 with: - image: django + image: test-django tags: latest ${{ github.sha }} labels: | - app=drivebc + app=test-drivebc containerfiles: ./compose/backend/Dockerfile build-args: DEBUG_BUILD=true - name: push to registry uses: redhat-actions/push-to-registry@v2.7 with: - image: django + image: test-django registry: ${{ secrets.REGISTRY }} username: ${{ secrets.BUILDER_USERNAME }} password: ${{ secrets.BUILDER_TOKEN }} diff --git a/.github/workflows/uat.yml b/.github/workflows/uat.yml index 25f62fa16..6fed1a0b2 100644 --- a/.github/workflows/uat.yml +++ b/.github/workflows/uat.yml @@ -1,8 +1,9 @@ -name: Deploy to UAT +name: Deploy main to uat on: workflow_dispatch: + jobs: build-static: diff --git a/.github/workflows/zapscan.yml b/.github/workflows/zapscan.yml index fae98913c..697e866c8 100644 --- a/.github/workflows/zapscan.yml +++ b/.github/workflows/zapscan.yml @@ -13,5 +13,5 @@ jobs: - name: ZAP Scan uses: zaproxy/action-full-scan@v0.7.0 with: - target: "https://drivebc-frontend-c59ecc-dev.apps.silver.devops.gov.bc.ca/" + target: "https://dev-drivebc.apps.silver.devops.gov.bc.ca/" # rules_file_name: ".zap/rules.tsv" diff --git a/infrastructure/_django/templates/django-route.yaml b/infrastructure/_django/templates/django-route.yaml index ada3d8bca..3da22ec65 100644 --- a/infrastructure/_django/templates/django-route.yaml +++ b/infrastructure/_django/templates/django-route.yaml @@ -3,6 +3,10 @@ kind: Route metadata: name: {{ template "app.fullname" . }}-backend labels: {{ include "app.labels" . | nindent 4 }} +{{ if .Values.route.iprestricted }} + annotations: + haproxy.router.openshift.io/ip_whitelist: {{ .Values.route.ipallowlist }} +{{ end }} spec: to: kind: Service @@ -13,4 +17,28 @@ spec: termination: edge insecureEdgeTerminationPolicy: Redirect wildcardPolicy: None - host: {{ .Values.route.host }} \ No newline at end of file + host: {{ .Values.route.host }} + path: {{ .Values.route.backendpath }} + +--- +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: {{ template "app.fullname" . }}-api + labels: {{ include "app.labels" . | nindent 4 }} +{{ if .Values.route.iprestricted }} + annotations: + haproxy.router.openshift.io/ip_whitelist: {{ .Values.route.ipallowlist }} +{{ end }} +spec: + to: + kind: Service + name: {{ template "app.fullname" . }} + port: + targetPort: 80-tcp + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect + wildcardPolicy: None + host: {{ .Values.route.host }} + path: {{ .Values.route.apipath }} \ No newline at end of file diff --git a/infrastructure/_django/values.yaml b/infrastructure/_django/values.yaml index f02fd6bda..812e66243 100644 --- a/infrastructure/_django/values.yaml +++ b/infrastructure/_django/values.yaml @@ -1,5 +1,5 @@ -fullnameOverride: dev-django -namespace: c59ecc-tools #enter the full namespace here to the deployment has the correct imagestream +fullnameOverride: +namespace: #enter the full namespace here to the deployment has the correct imagestream deployment: @@ -18,7 +18,11 @@ deployment: djangoSecret: dev-drivebc-django route: - host: dev-drivebc-backend.apps.silver.devops.gov.bc.ca + host: drivebc.apps.silver.devops.gov.bc.ca + backendpath: /backend/ #must be surrounded by / + apipath: /api/ #must be surrounded by / + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP pvc: port: 3000 diff --git a/infrastructure/_image-caching/templates/caching-route.yaml b/infrastructure/_image-caching/templates/caching-route.yaml index ca2f59844..7ed65f8f4 100644 --- a/infrastructure/_image-caching/templates/caching-route.yaml +++ b/infrastructure/_image-caching/templates/caching-route.yaml @@ -1,8 +1,12 @@ apiVersion: route.openshift.io/v1 kind: Route metadata: - name: {{ template "app.fullname" . }} + name: {{ template "app.fullname" . }}-webcam labels: {{ include "app.labels" . | nindent 4 }} +{{ if .Values.route.iprestricted }} + annotations: + haproxy.router.openshift.io/ip_whitelist: {{ .Values.route.ipallowlist }} +{{ end }} spec: to: kind: Service @@ -10,6 +14,31 @@ spec: weight: 100 port: targetPort: nginx + tls: + termination: edge host: {{ .Values.route.host }} + path: {{ .Values.route.webcamPath }} + + +--- + +apiVersion: route.openshift.io/v1 +kind: Route +metadata: + name: {{ template "app.fullname" . }}-replaytheday + labels: {{ include "app.labels" . | nindent 4 }} +{{ if .Values.route.iprestricted }} + annotations: + haproxy.router.openshift.io/ip_whitelist: {{ .Values.route.ipallowlist }} +{{ end }} +spec: + to: + kind: Service + name: {{ template "app.fullname" . }} + weight: 100 + port: + targetPort: nginx tls: - termination: edge \ No newline at end of file + termination: edge + host: {{ .Values.route.host }} + path: {{ .Values.route.replayTheDayPath }} \ No newline at end of file diff --git a/infrastructure/_image-caching/values.yaml b/infrastructure/_image-caching/values.yaml index 838a50f14..92cce7b1f 100644 --- a/infrastructure/_image-caching/values.yaml +++ b/infrastructure/_image-caching/values.yaml @@ -16,4 +16,8 @@ deployment: route: host: + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP + webcamPath: + replayTheDayPath: diff --git a/infrastructure/_redis/templates/redis-imageStream.yaml b/infrastructure/_redis/templates/redis-imageStream.yaml index 7eeb60bc0..77f5aba12 100644 --- a/infrastructure/_redis/templates/redis-imageStream.yaml +++ b/infrastructure/_redis/templates/redis-imageStream.yaml @@ -8,4 +8,4 @@ spec: - name: latest from: kind: DockerImage - name: redis \ No newline at end of file + name: redis:7 \ No newline at end of file diff --git a/infrastructure/_static/templates/static-route.yaml b/infrastructure/_static/templates/static-route.yaml index e7b6697a6..49ade9b55 100644 --- a/infrastructure/_static/templates/static-route.yaml +++ b/infrastructure/_static/templates/static-route.yaml @@ -3,6 +3,10 @@ kind: Route metadata: name: {{ template "app.fullname" . }}-frontend labels: {{ include "app.labels" . | nindent 4 }} +{{ if .Values.route.iprestricted }} + annotations: + haproxy.router.openshift.io/ip_whitelist: {{ .Values.route.ipallowlist }} +{{ end }} spec: host: {{ .Values.route.host }} to: diff --git a/infrastructure/_static/values.yaml b/infrastructure/_static/values.yaml index 2bc08e9de..c3118b3a0 100644 --- a/infrastructure/_static/values.yaml +++ b/infrastructure/_static/values.yaml @@ -14,4 +14,6 @@ deployment: memory: 128Mi route: - host: dev-drivebc-frontend.apps.silver.devops.gov.bc.ca + host: drivebc.apps.silver.devops.gov.bc.ca + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP diff --git a/infrastructure/_tasks/values.yaml b/infrastructure/_tasks/values.yaml index c1d723bf6..7d8c6f4e7 100644 --- a/infrastructure/_tasks/values.yaml +++ b/infrastructure/_tasks/values.yaml @@ -1,9 +1,9 @@ -fullnameOverride: dev-tasks -namespace: c59ecc-tools #enter the full namespace here to the deployment has the correct imagestream +fullnameOverride: tasks +namespace: #enter the full namespace here to the deployment has the correct imagestream deployment: - djangoImageName: dev-django #by default use the image from the ImageStream + djangoImageName: #by default use the image from the ImageStream replicas: 1 resources: requests: diff --git a/infrastructure/charts/init/values-dev.yaml b/infrastructure/charts/init/values-dev.yaml new file mode 100644 index 000000000..7c5742e5b --- /dev/null +++ b/infrastructure/charts/init/values-dev.yaml @@ -0,0 +1,4 @@ +fullnameOverride: dev-drivebc #By default it will use the name you assign the helm chart. Since we are running +#this separatly from the main Helm Chart with all dependencies we set this value to match. + +networkPolicyRequired: false #Set to true if you need the allow traffic between pods and internet ingress setup \ No newline at end of file diff --git a/infrastructure/charts/init/values-prod.yaml b/infrastructure/charts/init/values-prod.yaml new file mode 100644 index 000000000..2051626ab --- /dev/null +++ b/infrastructure/charts/init/values-prod.yaml @@ -0,0 +1,4 @@ +fullnameOverride: prod-drivebc #By default it will use the name you assign the helm chart. Since we are running +#this separatly from the main Helm Chart with all dependencies we set this value to match. + +networkPolicyRequired: false #Set to true if you need the allow traffic between pods and internet ingress setup. Get's used when doing the init. \ No newline at end of file diff --git a/infrastructure/charts/init/values-test.yaml b/infrastructure/charts/init/values-test.yaml new file mode 100644 index 000000000..104813da4 --- /dev/null +++ b/infrastructure/charts/init/values-test.yaml @@ -0,0 +1,4 @@ +fullnameOverride: test-drivebc #By default it will use the name you assign the helm chart. Since we are running +#this separatly from the main Helm Chart with all dependencies we set this value to match. + +networkPolicyRequired: false #Set to true if you need the allow traffic between pods and internet ingress setup \ No newline at end of file diff --git a/infrastructure/charts/init/values-uat.yaml b/infrastructure/charts/init/values-uat.yaml new file mode 100644 index 000000000..8eae8e607 --- /dev/null +++ b/infrastructure/charts/init/values-uat.yaml @@ -0,0 +1,4 @@ +fullnameOverride: uat-drivebc #By default it will use the name you assign the helm chart. Since we are running +#this separatly from the main Helm Chart with all dependencies we set this value to match. + +networkPolicyRequired: false #Set to true if you need the allow traffic between pods and internet ingress setup \ No newline at end of file diff --git a/infrastructure/crunchy-postgres/values-dev.yaml b/infrastructure/crunchy-postgres/values-dev.yaml index 4c760c1cc..5b2a9b3c2 100644 --- a/infrastructure/crunchy-postgres/values-dev.yaml +++ b/infrastructure/crunchy-postgres/values-dev.yaml @@ -34,7 +34,7 @@ pgBackRest: repos: schedules: full: 0 8 * * * - incremental: 0,30 * * * * #set this to every 30 min to reduce chance of WAL log issues + incremental: 15,45 * * * * #set this to every 30 min to reduce chance of WAL log issues volume: accessModes: "ReadWriteOnce" storage: 2Gi diff --git a/infrastructure/crunchy-postgres/values-prod.yaml b/infrastructure/crunchy-postgres/values-prod.yaml index 43afd56f0..461af5a30 100644 --- a/infrastructure/crunchy-postgres/values-prod.yaml +++ b/infrastructure/crunchy-postgres/values-prod.yaml @@ -34,7 +34,7 @@ pgBackRest: repos: schedules: full: 0 8 * * * - incremental: 0,15,30,45 * * * * #set this to every 15 min to reduce chance of WAL log issues + incremental: 15,45 * * * * #set this to every 30 min to reduce chance of WAL log issues volume: accessModes: "ReadWriteOnce" storage: 2Gi diff --git a/infrastructure/crunchy-postgres/values-test.yaml b/infrastructure/crunchy-postgres/values-test.yaml index f031a520f..9a912cf07 100644 --- a/infrastructure/crunchy-postgres/values-test.yaml +++ b/infrastructure/crunchy-postgres/values-test.yaml @@ -12,10 +12,10 @@ instances: storage: 2Gi storageClassName: netapp-block-standard requests: - cpu: 100m + cpu: 250m memory: 256Mi limits: - cpu: 250m + cpu: 500m memory: 512Mi replicaCertCopy: requests: @@ -34,7 +34,7 @@ pgBackRest: repos: schedules: full: 0 8 * * * - incremental: 0,30 * * * * #set this to every 30 min to reduce chance of WAL log issues + incremental: 15,45 * * * * #set this to every 30 min to reduce chance of WAL log issues volume: accessModes: "ReadWriteOnce" storage: 2Gi diff --git a/infrastructure/crunchy-postgres/values-uat.yaml b/infrastructure/crunchy-postgres/values-uat.yaml index 449740305..d1899c342 100644 --- a/infrastructure/crunchy-postgres/values-uat.yaml +++ b/infrastructure/crunchy-postgres/values-uat.yaml @@ -7,7 +7,7 @@ postGISVersion: '3.3' instances: name: ha # high availability - replicas: 3 + replicas: 2 dataVolumeClaimSpec: storage: 2Gi storageClassName: netapp-block-standard @@ -34,7 +34,7 @@ pgBackRest: repos: schedules: full: 0 8 * * * - incremental: 0,30 * * * * #set this to every 30 min to reduce chance of WAL log issues + incremental: 15,45 * * * * #set this to every 30 min to reduce chance of WAL log issues volume: accessModes: "ReadWriteOnce" storage: 2Gi diff --git a/infrastructure/init/values-prod.yaml b/infrastructure/init/values-prod.yaml index b08341c91..ac99dc8cc 100644 --- a/infrastructure/init/values-prod.yaml +++ b/infrastructure/init/values-prod.yaml @@ -1,4 +1,4 @@ fullnameOverride: prod-drivebc #By default it will use the name you assign the helm chart. Since we are running #this separatly from the main Helm Chart with all dependencies we set this value to match. -networkPolicyRequired: false #Set to yes if you need the allow traffic between pods and internet ingress setup \ No newline at end of file +networkPolicyRequired: true #Set to true if you need the allow traffic between pods and internet ingress setup \ No newline at end of file diff --git a/infrastructure/init/values-uat.yaml b/infrastructure/init/values-uat.yaml index 264b902b2..c061dbd86 100644 --- a/infrastructure/init/values-uat.yaml +++ b/infrastructure/init/values-uat.yaml @@ -1,2 +1,4 @@ -fullnameOverride: drivebc #By default it will use the name you assign the helm chart. Since we are running -#this separatly from the main Helm Chart with all dependencies we set this value to match. \ No newline at end of file +fullnameOverride: uat-drivebc #By default it will use the name you assign the helm chart. Since we are running +#this separatly from the main Helm Chart with all dependencies we set this value to match. + +networkPolicyRequired: false #Set to yes if you need the allow traffic between pods and internet ingress setup \ No newline at end of file diff --git a/infrastructure/main/charts/django-0.1.0.tgz b/infrastructure/main/charts/django-0.1.0.tgz index 43fe7a2e33ce7f96b7d6971e541567f9a764ac06..097dcc2a64d24610b79555447692ce3b685e393c 100644 GIT binary patch delta 3158 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 delta 2907 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 F005L( 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 Xjgz1V9S&~*00960gjcW<05AXmcC|NW delta 2183 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 Xhdu1!i@^T_00960)&qZD05|{ui{1KC delta 2312 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 delta 2497 zcmV;y2|o7J6XO$*Jb&+U+qe0Zr7jfPWRwRXK%l=dvI{j-PwK8?(FRDb)G=`Q-6S|mrN=mp0t1WSaspP zl0s7Y4uzzg`7qycNScP8jrk%$ zreH>-sS3Cd7$~3#iBKwmBxyMMZ`s#xH~`_Vghl*V_c}FhMT4@H@N}|(5T_)I6=V_( zU&9Zkf+yzH5RP*800NC4l0J0otK^voP@19i`)?UaRe!t!1Zn2Oemg1N6HK^R_^`9z zJ)yQTrU|W6bT*LecXliZvU%P+U*vID@@XuD3q;>8OA9J>8bP&a|L(U|IWc~r)K|q2fMqE_WwD` z^>yn-!++_&PYDZ+?PyyDKDFj*!or60qIG-QaIUYL+VChta7mhax~B`xN|Uik&jyp) zZozwJ7nZ7rfg4aFV*zw`%}<()vgwq*2e;`$!3-FB(CtsU;A^;j-B{n?=RzrFv5t>7#bVYzrit0hZZVqK~IXn?7pOijW4MmE2Z zZhwuN9rt6V+P2@dDOmZk+GO&$R)1CVb@RDmd&Oje@zyVF`cyt|U7o7C?e9D^ha0n` z>GjtAiwo|B`@h)~PZG{7NVyH9ZOu{6Fit!G|TweoaL7auF0(tp}tBn$43=|hX zOsL3u%JM}1Um085~^?wGM8~82b3fBZ)=aUddA`F|8g=JMtoe_#T z4c0jnDjVfO+@Z9(tj*0RY{pbqlr?&93v$Y&A}qjF+$&~fLEqE=*VljZ-du)be?(4j z$NGP;zq?mk|GV9G_i_FI9HpB7lQfmBd8grAQWpBqD^#ZGwA`r^w`tPL;L-C1@0(kUspaS%lm_ zUAsB~aQ$mn<9B_xk_McU$bIP=biS)CCttrR6TOym0NmdC#wJuwX)>Hu@@3)!x3})? zOV@-E1EOZG@9H4ID^%o}w|rSdA%B1R`?G%-@^8QW`Tl@@cAx*^8GX1f-Bd?2uJ2As zEYZFFrQzr?{MC$SGwY%qa-|mzE7y2JR4}v7t4wk3_UFrQ+0EG&!WV3-lgMOIt3!O; zAg}U407|h$7o-`KSeB(o0q@Dhc7I=Iw3eNI z6vTr1_kt|>Y=*gcC0ln0C3c=9goQPkn$XhDSY4P!$dj{WQ?=tVm0l8B0KL~2-=B@n z>q45{t?vX+)^w<6zD||j;9`i=4b2tNHs}Z0+*?iOH|bcHOI-Lc<5Fz}J~$gbSl}ra z+kw9w^@k4?cqUP720l0&oqzvx*dKkR@b!c_9F2ZF8}=S5_>@R_#YK3B{=aT9dao}| z4^R3J6?{0+%ZZVmN+lM{w5M5Xkn_ObZ@1g6ZRtqs-dRNffJ~>9QMIVZn)2|F zDSEixqCXK%Q3wosnSY=x8U-^9vzW5zIAXl4?!U(%GpEN@+9q5fjbVaArs~C`eI2Oc{C&$LozQMv4p6O!B?!cSj=#sgMoFi>PYZhZUmXc$0sN zmVJ~}v#4eMFMliKoV6+pCnUJcQkc>hWy5*l$*WX9Cgf5-RASz^pi#ql@gGh1jtI&# z3CF#@Mv)5sD+a3Jcr--P%83O3wc&Vk8SoHWjR$r4#oGU{f7m&a=-?(3#-MFo z!SKvn8I!v51_nfs1Qm+qdU^xB<;}A7<#yT09zL$MXtvF@0-GxD)v3aEymojxzJcRh zaxhU7odQ=ga|ed7;)L`D#x}YdZ$vw;gkIx9KJx}6v&{z2=oA>wugBPp>*u=DR`nRR zM}xO8w14|^CEH3J940(t8#D;x{q`EtRklCSgsSn9qO9A-)Ue&z%-6C#u^WgLz&Eg3 zCpR&_fpKT&)tziBfJ?R?0&LKBx3eAQ8|C8)#jxBw-&!=2nXh^rG-s9?N6-zbO9=00960 LE$|$c05SjoXSnIw diff --git a/infrastructure/main/values-dev.yaml b/infrastructure/main/values-dev.yaml index 7ebaa28ec..ee511fa3e 100644 --- a/infrastructure/main/values-dev.yaml +++ b/infrastructure/main/values-dev.yaml @@ -24,7 +24,11 @@ django: djangoConfigMap: dev-drivebc-django #By default this should be correct for Dev djangoSecret: dev-drivebc-django #By default this should be correct for dev route: - host: dev-drivebc-backend.apps.silver.devops.gov.bc.ca + host: dev-drivebc.apps.silver.devops.gov.bc.ca + backendpath: /backend/ #must be surrounded by / + apipath: /api/ #must be surrounded by / + iprestricted: false #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: pvc: port: 3000 storage: 1Gi @@ -62,7 +66,11 @@ image-caching: cpu: 150m memory: 128Mi route: - host: dev-drivebc-image-caching.apps.silver.devops.gov.bc.ca + host: dev-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: false #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: + webcamPath: /webcam/ + replayTheDayPath: /ReplayTheDay/ redis: @@ -93,4 +101,6 @@ static: memory: 128Mi route: - host: dev-drivebc-frontend.apps.silver.devops.gov.bc.ca + host: dev-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: false #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: diff --git a/infrastructure/main/values-prod.yaml b/infrastructure/main/values-prod.yaml index dbdefa83e..315679af1 100644 --- a/infrastructure/main/values-prod.yaml +++ b/infrastructure/main/values-prod.yaml @@ -1,8 +1,4 @@ # See https://helm.sh/docs/chart_template_guide/subcharts_and_globals/#global-chart-values -global: - licensePlate: c59ecc - namespace: prod - nameOverride: prod-drivebc fullnameOverride: prod-drivebc @@ -11,7 +7,7 @@ django: fullnameOverride: prod-django namespace: c59ecc-prod #The namespace you are running the application on. This is used to pull from the ImageStream deployment: - replicas: 1 + replicas: 2 resources: requests: cpu: 50m @@ -20,11 +16,15 @@ django: cpu: 150m memory: 512Mi env: - postgresSecret: prod-drivebc-pguser-prod-drivebc #By default this should be correct for Dev - djangoConfigMap: prod-drivebc-django #By default this should be correct for Dev - djangoSecret: prod-drivebc-django #By default this should be correct for dev + postgresSecret: prod-drivebc-pguser-prod-drivebc #By default this should be correct for Prod + djangoConfigMap: prod-drivebc-django #By default this should be correct for Prod + djangoSecret: prod-drivebc-django #By default this should be correct for Prod route: - host: prod-drivebc-backend.apps.silver.devops.gov.bc.ca + host: prod-drivebc.apps.silver.devops.gov.bc.ca + backendpath: /backend/ #must be surrounded by / + apipath: /api/ #must be surrounded by / + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP pvc: port: 3000 storage: 1Gi @@ -44,16 +44,16 @@ tasks: cpu: 150m memory: 512Mi env: - postgresSecret: prod-drivebc-pguser-prod-drivebc #By default this should be correct for Dev - djangoConfigMap: prod-drivebc-django #By default this should be correct for Dev - djangoSecret: prod-drivebc-django #By default this should be correct for dev + postgresSecret: prod-drivebc-pguser-prod-drivebc #By default this should be correct for Prod + djangoConfigMap: prod-drivebc-django #By default this should be correct for Prod + djangoSecret: prod-drivebc-django #By default this should be correct for Prod image-caching: fullnameOverride: prod-image-caching namespace: c59ecc-prod #enter the full namespace here to the deployment has the correct imagestream - environment: dev #enter the environment this is being deployed too. Needed to set the configmap reference + environment: prod #enter the environment this is being deployed too. Needed to set the configmap reference deployment: - replicas: 1 + replicas: 2 resources: requests: cpu: 50m @@ -62,7 +62,12 @@ image-caching: cpu: 150m memory: 128Mi route: - host: prod-drivebc-image-caching.apps.silver.devops.gov.bc.ca + host: prod-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP + webcamPath: /webcam/ + replayTheDayPath: /ReplayTheDay/ + redis: @@ -93,4 +98,6 @@ static: memory: 128Mi route: - host: prod-drivebc-frontend.apps.silver.devops.gov.bc.ca + host: prod-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP diff --git a/infrastructure/main/values-test.yaml b/infrastructure/main/values-test.yaml index cf2f66dc9..cc6ae52cc 100644 --- a/infrastructure/main/values-test.yaml +++ b/infrastructure/main/values-test.yaml @@ -24,7 +24,11 @@ django: djangoConfigMap: test-drivebc-django #By default this should be correct for Dev djangoSecret: test-drivebc-django #By default this should be correct for dev route: - host: test-drivebc-backend.apps.silver.devops.gov.bc.ca + host: test-drivebc.apps.silver.devops.gov.bc.ca + backendpath: /backend/ #must be surrounded by / + apipath: /api/ #must be surrounded by / + iprestricted: false #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: pvc: port: 3000 storage: 1Gi @@ -51,7 +55,7 @@ tasks: image-caching: fullnameOverride: test-image-caching namespace: c59ecc-dev #enter the full namespace here to the deployment has the correct imagestream - environment: dev #enter the environment this is being deployed too. Needed to set the configmap reference + environment: test #enter the environment this is being deployed too. Needed to set the configmap reference deployment: replicas: 1 resources: @@ -62,12 +66,16 @@ image-caching: cpu: 150m memory: 128Mi route: - host: dev-drivebc-image-caching.apps.silver.devops.gov.bc.ca + host: test-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: false #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: + webcamPath: /webcam/ + replayTheDayPath: /ReplayTheDay/ redis: fullnameOverride: test-redis - namespace: c59ecc-tools #enter the full namespace here to the deployment has the correct imagestream + namespace: c59ecc-dev #enter the full namespace here to the deployment has the correct imagestream deployment: replicas: 1 resources: @@ -93,4 +101,6 @@ static: memory: 128Mi route: - host: test-drivebc-frontend.apps.silver.devops.gov.bc.ca + host: test-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: false #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: diff --git a/infrastructure/main/values-uat.yaml b/infrastructure/main/values-uat.yaml index fa20f98fc..3c08f58ed 100644 --- a/infrastructure/main/values-uat.yaml +++ b/infrastructure/main/values-uat.yaml @@ -24,7 +24,11 @@ django: djangoConfigMap: uat-drivebc-django #By default this should be correct for Dev djangoSecret: uat-drivebc-django #By default this should be correct for dev route: - host: uat-drivebc-backend.apps.silver.devops.gov.bc.ca + host: uat-drivebc.apps.silver.devops.gov.bc.ca + backendpath: /backend/ #must be surrounded by / + apipath: /api/ #must be surrounded by / + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP pvc: port: 3000 storage: 1Gi @@ -51,7 +55,7 @@ tasks: image-caching: fullnameOverride: uat-image-caching namespace: c59ecc-test #enter the full namespace here to the deployment has the correct imagestream - environment: dev #enter the environment this is being deployed too. Needed to set the configmap reference + environment: uat #enter the environment this is being deployed too. Needed to set the configmap reference deployment: replicas: 2 resources: @@ -62,7 +66,11 @@ image-caching: cpu: 150m memory: 128Mi route: - host: uat-drivebc-image-caching.apps.silver.devops.gov.bc.ca + host: uat-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP + webcamPath: /webcam/ + replayTheDayPath: /ReplayTheDay/ redis: @@ -93,4 +101,6 @@ static: memory: 128Mi route: - host: uat-drivebc-frontend.apps.silver.devops.gov.bc.ca + host: uat-drivebc.apps.silver.devops.gov.bc.ca + iprestricted: true #Set to true if you want to limit IP's the the addresses in the ipallowlist below + ipallowlist: 142.34.53.0/24 142.22.0.0/15 142.24.0.0/13 142.32.0.0/13 208.181.128.46/32 #The first 4 ranges are GOV IP's, the last one is for OXD external IP diff --git a/infrastructure/main/values.yaml b/infrastructure/main/values.yaml index 6512d0a88..99d1ac1b9 100644 --- a/infrastructure/main/values.yaml +++ b/infrastructure/main/values.yaml @@ -24,7 +24,10 @@ django: djangoConfigMap: drivebc-django #By default this should be correct for Dev djangoSecret: drivebc-django #By default this should be correct for dev route: - host: drivebc-backend.apps.silver.devops.gov.bc.ca + host: drivebc.apps.silver.devops.gov.bc.ca + backendpath: /backend/ #must be surrounded by / + apipath: /api/ #must be surrounded by / + govonly: true #Set to true so limited access is limited to gov IP's only. False for public access pvc: port: 3000 storage: 1Gi @@ -62,8 +65,10 @@ image-caching: cpu: 150m memory: 128Mi route: - host: drivebc-image-caching.apps.silver.devops.gov.bc.ca - + host: drivebc.apps.silver.devops.gov.bc.ca + govonly: true #Set to true so limited access is limited to gov IP's only. False for public access + webcamPath: /webcam/ + replayTheDayPath: /ReplayTheDay/ redis: fullnameOverride: redis @@ -93,4 +98,5 @@ static: memory: 128Mi route: - host: drivebc-frontend.apps.silver.devops.gov.bc.ca + host: drivebc.apps.silver.devops.gov.bc.ca + govonly: true #Set to true so limited access is limited to gov IP's only. False for public access