From 4af35afe8307b004355cf6d90a6425b7d1bfaab5 Mon Sep 17 00:00:00 2001
From: Andrew Kapuscinski <akapusci@nrao.edu>
Date: Thu, 1 Apr 2021 18:04:59 +0000
Subject: [PATCH] Add support for passing dl host to our web container from GL

- made our volume mounts dynamic with ENV variable
- changed our test deployment trigger with git tags as end-of-sprint-[0-9]+
---
 .gitlab-ci.yml                                     | 7 +++++--
 apps/web/Dockerfile.dev                            | 5 +----
 apps/web/{ws-nginx.conf => ws-nginx.conf.template} | 2 +-
 docker-compose.dev.yml                             | 4 +++-
 4 files changed, 10 insertions(+), 8 deletions(-)
 rename apps/web/{ws-nginx.conf => ws-nginx.conf.template} (91%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b14c1699f..d150308ef 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,6 +18,7 @@ variables:
     POSTGRES_DB: archive
     POSTGRES_USER: "archive"
     POSTGRES_PASSWORD: "docker"
+    DL_HOST: https://dl-nrao.aoc.nrao.edu
 
 # CI Postgres Service
 services:
@@ -241,16 +242,18 @@ deploy:
         # Docker doesn't allow variable interpolation when declaring Docker Secret names
         # This sed command finds and replaces "dsoc_ENV_secrets:" with "dsoc_${DEPLOY_ENV}_secrets:"
         - sed -i "s/dsoc_ENV_secrets:/dsoc_${DEPLOY_ENV}_secrets:/g" docker-compose.dev.yml
-        - ENV=$DEPLOY_ENV TAG=$IMAGE_TAG docker stack deploy --compose-file docker-compose.dev.yml workspaces-${DEPLOY_ENV}
+        - ENV=$DEPLOY_ENV TAG=$IMAGE_TAG DL_HOST=$DL_HOST docker stack deploy --compose-file docker-compose.dev.yml workspaces-${DEPLOY_ENV}
     rules:
         - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
           variables:
             IMAGE_TAG: ${CI_DEFAULT_BRANCH}
-        - if: '$CI_COMMIT_TAG =~ /^end-of-sprint\/[0-9]+/'
+        - if: '$CI_COMMIT_TAG =~ /^end-of-sprint-[0-9]+/'
           variables:
             IMAGE_TAG: $CI_COMMIT_TAG
             # override DEPLOY_ENV
             DEPLOY_ENV: "test"
+            # override DL_HOST
+            DL_HOST: https://dl-dsoc-test.nrao.edu
         # - if: '$CI_COMMIT_TAG =~ /^test_[0-9]+\.[0-9]+.[0-9]+$/'
         #   variables:
         #     IMAGE_TAG: $CI_COMMIT_TAG
diff --git a/apps/web/Dockerfile.dev b/apps/web/Dockerfile.dev
index 1422df1de..c429182bb 100644
--- a/apps/web/Dockerfile.dev
+++ b/apps/web/Dockerfile.dev
@@ -23,7 +23,7 @@ RUN ./node_modules/.bin/ng build --configuration=dev --output-path=dist
 FROM nginx:1.19.7-alpine
 
 # Copy WS nginx config from base-build stage
-COPY --from=base-build /app/ws-nginx.conf /etc/nginx/conf.d/
+COPY --from=base-build /app/ws-nginx.conf.template /etc/nginx/templates/
 
 # Remove default nginx config
 RUN rm /etc/nginx/conf.d/default.conf
@@ -33,6 +33,3 @@ COPY --from=base-build /app/dist /usr/share/nginx/html
 
 # Expose port
 EXPOSE 4444
-
-# Run nginx with daemon off to run as foreground process
-CMD nginx -g "daemon off;"
\ No newline at end of file
diff --git a/apps/web/ws-nginx.conf b/apps/web/ws-nginx.conf.template
similarity index 91%
rename from apps/web/ws-nginx.conf
rename to apps/web/ws-nginx.conf.template
index 0a494c19b..d7073974b 100644
--- a/apps/web/ws-nginx.conf
+++ b/apps/web/ws-nginx.conf.template
@@ -19,7 +19,7 @@ server {
     }
 
     location /dl {
-        rewrite ^/dl(/.*)$ https://dl-nrao.aoc.nrao.edu$1 last;
+        rewrite ^/dl(/.*)$ ${DL_HOST}$1 last;
     }
 
     error_page 500 502 503 504 /50x.html;
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index 973d4ace6..d818dc664 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -31,7 +31,7 @@ services:
         parallelism: 0
         order: stop-first
     volumes: 
-      - /lustre/aoc/cluster/pipeline/dsoc-dev/downloads/nrao:/lustre/aoc/cluster/pipeline/dsoc-dev/downloads/nrao
+      - /lustre/aoc/cluster/pipeline/dsoc-${ENV}/downloads/nrao:/lustre/aoc/cluster/pipeline/dsoc-${ENV}/downloads/nrao
 
   capability:
     image: marconi.aoc.nrao.edu/workspaces/capability:${TAG}
@@ -100,6 +100,8 @@ services:
         published: 4444
         protocol: tcp
         mode: host
+    environment:
+      DL_HOST: ${DL_HOST}
     deploy:
       placement:
         constraints:
-- 
GitLab