diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1b18fc160b2b30f4c4facbd1a1de9700196dc25f..5a7dfba7bebface24151ff4334f2da431f55b295 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,6 +7,7 @@ stages: - deploy G2G - deploy WMS - deploy WMTS + - deploy Client variables: DOCKER_TLS_CERTDIR: "" @@ -64,12 +65,12 @@ create geotiff storage: # copy secret kubeconfig to the mounted (pwd) directory - cp $kubekorner_k3s_config . - kubeconfig=$(basename $kubekorner_k3s_config) - - ./helpers/create_pvc.sh "$ns" "production/geotiff-pvc.yaml" "cspp-geo-geo2grid" "$kubeconfig" + - ./helpers/create_pvc.sh "$ns" "ci_geosphere-test/geotiff-pvc.yaml" "cspp-geo-geo2grid" "$kubeconfig" # this job doesn't actually need any artifacts from previous jobs dependencies: [] rules: - changes: - - production/geotiff-pvc.yaml + - ci_geosphere-test/geotiff-pvc.yaml when: always - if: $CREATE_STORAGE when: always @@ -82,9 +83,10 @@ create geotiff storage: # required: SUBCOMP_REPOS: "" SUBCOMP_CHART_DIR: "" + SUBCOMP_BRANCH: "master" script: - repos_url="${SUBCOMP_REPOS_BASE}/${SUBCOMP_REPOS}" - - git clone --depth 1 $repos_url + - git clone --depth 1 --branch ${SUBCOMP_BRANCH} $repos_url - cd ${SUBCOMP_REPOS} # most recent docker image should be tagged with most recent SHA - docker_tag=$(git rev-parse --short=8 HEAD) @@ -133,10 +135,23 @@ get_chart_mapcache: SUBCOMP_REPOS: "geosphere-mapcache" SUBCOMP_CHART_DIR: "geosphere-mapcache" +get_chart_client: + extends: .get_chart_tmpl + variables: + SUBCOMP_REPOS: "geosphere-client" + SUBCOMP_CHART_DIR: "geosphere-client" + +get_chart_client_test: + extends: .get_chart_tmpl + variables: + SUBCOMP_REPOS: "geosphere-client" + SUBCOMP_CHART_DIR: "geosphere-client" + SUBCOMP_BRANCH: "develop" + deploy_prod_rabbit: environment: - name: production - url: http://geosphere.ssec.wisc.edu + name: geosphere-test + url: http://geosphere-test.ssec.wisc.edu extends: .helm_based_job stage: deploy rabbit script: @@ -157,7 +172,7 @@ deploy_prod_rabbit: - echo $EXTRA_ARGS # install third-party rabbitmq server - helm repo add bitnami "https://charts.bitnami.com/bitnami" - - helm upgrade -v 2 --install --kubeconfig $kubeconfig -f production/values-geosphere-rabbit.yaml $EXTRA_ARGS --namespace $ns geosphere-rabbit bitnami/rabbitmq + - helm upgrade -v 2 --install --kubeconfig $kubeconfig -f ci_geosphere-test/values-geosphere-rabbit.yaml $EXTRA_ARGS --namespace $ns geosphere-rabbit bitnami/rabbitmq # this job doesn't actually need any artifacts from previous jobs dependencies: [] rules: @@ -167,16 +182,15 @@ deploy_prod_rabbit: - if: $CI_PIPELINE_SOURCE == "pipeline" when: never - changes: - - production/values-geosphere-rabbit.yaml + - ci_geosphere-test/values-geosphere-rabbit.yaml when: always - if: $DEPLOY_RABBIT when: always - deploy_g16_grb: environment: - name: production - url: http://geosphere.ssec.wisc.edu + name: geosphere-test + url: http://geosphere-test.ssec.wisc.edu extends: .helm_based_job stage: deploy GRB script: @@ -188,7 +202,7 @@ deploy_g16_grb: - kubeconfig=$(basename $kubekorner_k3s_config) - echo "Deploying version $docker_tag to cluster namespace $ns" # copy extra values files to the local directory (where helm has access via docker mount) - - cp ../../production/values-grb-g16.yaml . + - cp ../../ci_geosphere-test/values-grb-g16.yaml . # namespace names are the same as domain names - helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns --set persistence.enabled=true --set persistence.storageClass=longhorn -f values-grb-g16.yaml cspp-geo-grb cspp-geo-grb/ dependencies: @@ -200,8 +214,8 @@ deploy_g16_grb: deploy_geo2grid_g16_radf: environment: - name: production - url: http://geosphere.ssec.wisc.edu + name: geosphere-test + url: http://geosphere-test.ssec.wisc.edu extends: .helm_based_job stage: deploy G2G script: @@ -213,7 +227,7 @@ deploy_geo2grid_g16_radf: - kubeconfig=$(basename $kubekorner_k3s_config) - echo "Deploying version $docker_tag to cluster namespace $ns" # copy extra values files to the local directory (where helm has access via docker mount) - - cp ../../production/values-geo2grid-g16-radf.yaml . + - cp ../../ci_geosphere-test/values-geo2grid-g16-radf.yaml . # namespace names are the same as domain names - helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns -f values-geo2grid-g16-radf.yaml cspp-geo-geo2grid cspp-geo-geo2grid/ dependencies: @@ -225,8 +239,8 @@ deploy_geo2grid_g16_radf: deploy_mapserver: environment: - name: production - url: http://geosphere.ssec.wisc.edu + name: geosphere-test + url: http://geosphere-test.ssec.wisc.edu extends: .helm_based_job stage: deploy WMS script: @@ -238,7 +252,7 @@ deploy_mapserver: - kubeconfig=$(basename $kubekorner_k3s_config) - echo "Deploying version $docker_tag to cluster namespace $ns" # copy extra values files to the local directory (where helm has access via docker mount) - - cp ../../production/values-mapserver.yaml . + - cp ../../ci_geosphere-test/values-mapserver.yaml . # namespace names are the same as domain names - helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns -f values-mapserver.yaml geosphere-mapserver geosphere-mapserver/ dependencies: @@ -250,8 +264,8 @@ deploy_mapserver: deploy_mapcache: environment: - name: production - url: http://geosphere.ssec.wisc.edu + name: geosphere-test + url: http://geosphere-test.ssec.wisc.edu extends: .helm_based_job stage: deploy WMTS script: @@ -263,7 +277,7 @@ deploy_mapcache: - kubeconfig=$(basename $kubekorner_k3s_config) - echo "Deploying version $docker_tag to cluster namespace $ns" # copy extra values files to the local directory (where helm has access via docker mount) - - cp ../../production/values-mapcache.yaml . + - cp ../../ci_geosphere-test/values-mapcache.yaml . # namespace names are the same as domain names - helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns -f values-mapcache.yaml geosphere-mapcache geosphere-mapcache/ dependencies: @@ -272,3 +286,53 @@ deploy_mapcache: - if: '$kubekorner_k3s_config == ""' when: never - when: on_success + +deploy_client_test: + environment: + name: geosphere-test + url: http://geosphere-test.ssec.wisc.edu + extends: .helm_based_job + stage: deploy Client + script: + - ns="geosphere" + - cd geosphere-client/chart + - source geosphere-client/cibuild.env + # copy secret kubeconfig to the mounted (pwd) directory + - cp $kubekorner_k3s_config . + - kubeconfig=$(basename $kubekorner_k3s_config) + - echo "Deploying version $docker_tag to cluster namespace $ns" + # copy extra values files to the local directory (where helm has access via docker mount) + - cp ../../ci_geosphere-test/values-client.yaml . + # namespace names are the same as domain names + - helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns -f values-client.yaml geosphere-client geosphere-client/ + dependencies: + - get_chart_client_test + rules: + - if: '$kubekorner_k3s_config == ""' + when: never + - when: on_success + +deploy_client_production: + environment: + name: geosphere + url: http://geosphere.ssec.wisc.edu + extends: .helm_based_job + stage: deploy Client + script: + - ns="geosphere" + - cd geosphere-client/chart + - source geosphere-client/cibuild.env + # copy secret kubeconfig to the mounted (pwd) directory + - cp $kubekorner_k3s_config . + - kubeconfig=$(basename $kubekorner_k3s_config) + - echo "Deploying version $docker_tag to cluster namespace $ns" + # copy extra values files to the local directory (where helm has access via docker mount) + - cp ../../ci_geosphere/values-client.yaml . + # namespace names are the same as domain names + - helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns -f values-client.yaml geosphere-client geosphere-client/ + dependencies: + - get_chart_client + rules: + - if: '$kubekorner_k3s_config == ""' + when: never + - when: on_success diff --git a/README.md b/README.md index 0db9d6f6ac9669ab62decdc3aaa411daa9432364..3350f133060235ef663fec14abf932af5a722eb3 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,10 @@ repositories to use for building and testing their pieces. are **not** run as part of continuous integration. * cichart: Docker image configuration used by certain CI jobs to build or download helm charts. -* production: Extra helm chart "values" YAML files to configure GeoSphere for +* ci_geosphere: Extra helm chart "values" YAML files to configure GeoSphere for the production environment. +* ci_geosphere-test: Extra helm chart "values" YAML files to configure GeoSphere for + the development (geosphere-test) environment. * sidecars: Docker image configurations for various "sidecar" containers that don't fit in one subcomponent's project. * .gitlab-ci.yml: Continuous Integration (CI) configuration \ No newline at end of file diff --git a/production/geotiff-pvc.yaml b/ci_geosphere-test/geotiff-pvc.yaml similarity index 100% rename from production/geotiff-pvc.yaml rename to ci_geosphere-test/geotiff-pvc.yaml diff --git a/ci_geosphere-test/values-client.yaml b/ci_geosphere-test/values-client.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7a9a0ebfc673aba54fa041414fbbe91c1d7f3f8f --- /dev/null +++ b/ci_geosphere-test/values-client.yaml @@ -0,0 +1,8 @@ +ingress: + enabled: true + hosts: + - host: geosphere-test.ssec.wisc.edu + paths: ["/"] + +infoServer: "http://geosphere-test.ssec.wisc.edu" +tileServer: "http://geosphere-test.ssec.wisc.edu/mapcache/wmts" diff --git a/production/values-geo2grid-g16-radf.yaml b/ci_geosphere-test/values-geo2grid-g16-radf.yaml similarity index 100% rename from production/values-geo2grid-g16-radf.yaml rename to ci_geosphere-test/values-geo2grid-g16-radf.yaml diff --git a/production/values-geosphere-rabbit.yaml b/ci_geosphere-test/values-geosphere-rabbit.yaml similarity index 100% rename from production/values-geosphere-rabbit.yaml rename to ci_geosphere-test/values-geosphere-rabbit.yaml diff --git a/production/values-grb-g16.yaml b/ci_geosphere-test/values-grb-g16.yaml similarity index 100% rename from production/values-grb-g16.yaml rename to ci_geosphere-test/values-grb-g16.yaml diff --git a/production/values-mapcache.yaml b/ci_geosphere-test/values-mapcache.yaml similarity index 100% rename from production/values-mapcache.yaml rename to ci_geosphere-test/values-mapcache.yaml diff --git a/production/values-mapserver.yaml b/ci_geosphere-test/values-mapserver.yaml similarity index 100% rename from production/values-mapserver.yaml rename to ci_geosphere-test/values-mapserver.yaml diff --git a/ci_geosphere/values-client.yaml b/ci_geosphere/values-client.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5da57c7df3d5e9f3ce0909f2be1356ff3148ca5a --- /dev/null +++ b/ci_geosphere/values-client.yaml @@ -0,0 +1,8 @@ +ingress: + enabled: true + hosts: + - host: geosphere.ssec.wisc.edu + paths: ["/"] + +infoServer: "http://presto.ssec.wisc.edu:8888" +tileServer: "http://g2g{1-4}.ssec.wisc.edu:8889/mapcache/wmts"