From 407fc8b472bb8bc2e286a50f4419b177020f249c Mon Sep 17 00:00:00 2001 From: David Hoese <david.hoese@ssec.wisc.edu> Date: Tue, 24 Nov 2020 13:20:02 -0600 Subject: [PATCH] Attempt to add other components to testing --- .gitlab-ci.yml | 34 ++-- ci_geosphere-test/gitlab-ci.yaml | 18 +- ci_geosphere-test/values-mapserver.yaml | 16 -- .../values-tile-gen-g16-radc.yaml | 18 -- .../values-tile-gen-g16-radf.yaml | 19 -- .../values-tile-gen-g16-radm2.yaml | 18 -- ci_geosphere/gitlab-ci.yaml | 19 +- ci_tests/get_release_names.sh | 3 +- ci_tests/gitlab-ci.yaml | 188 ------------------ ci_tests/run_basic_grb_test.sh | 64 +++++- ci_tests/values-client.yaml | 2 + ci_tests/values-mapcache.yaml | 19 ++ ci_tests/values-mapserver.yaml | 5 + .../values-tile-gen-g16-radm1.yaml | 9 +- helpers/deploy_client.sh | 24 +++ helpers/deploy_mapcache.sh | 24 +++ helpers/deploy_mapserver.sh | 24 +++ helpers/deploy_rabbitmq.sh | 14 +- helpers/deploy_tile_gen.sh | 24 ++- 19 files changed, 207 insertions(+), 335 deletions(-) delete mode 100644 ci_geosphere-test/values-mapserver.yaml delete mode 100644 ci_geosphere-test/values-tile-gen-g16-radc.yaml delete mode 100644 ci_geosphere-test/values-tile-gen-g16-radf.yaml delete mode 100644 ci_geosphere-test/values-tile-gen-g16-radm2.yaml create mode 100644 ci_tests/values-client.yaml create mode 100644 ci_tests/values-mapcache.yaml create mode 100644 ci_tests/values-mapserver.yaml rename {ci_geosphere-test => ci_tests}/values-tile-gen-g16-radm1.yaml (54%) create mode 100755 helpers/deploy_client.sh create mode 100755 helpers/deploy_mapcache.sh create mode 100755 helpers/deploy_mapserver.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 582426f..ee2c710 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -157,17 +157,7 @@ get_chart_client_test: extends: .helm_based_job stage: deploy WMS script: - - ns=$(./helpers/get_namespace.sh) - - cd geosphere-mapserver/chart - - source geosphere-mapserver/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 ../../${VALUES_DIR}/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/ + - ./helpers/deploy_mapserver.sh "${VALUES_DIR}" dependencies: - get_chart_mapserver @@ -177,17 +167,17 @@ get_chart_client_test: extends: .helm_based_job stage: deploy WMTS script: - - ns=$(./helpers/get_namespace.sh) - - cd geosphere-mapcache/chart - - source geosphere-mapcache/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 ../../${VALUES_DIR}/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/ + - ./helpers/deploy_mapcache.sh "${VALUES_DIR}" dependencies: - get_chart_mapcache +.deploy_client: + variables: + VALUES_DIR: "" + extends: .helm_based_job + stage: deploy Client + script: + - ./helpers/deploy_client.sh "${VALUES_DIR}" + dependencies: + - get_chart_client + diff --git a/ci_geosphere-test/gitlab-ci.yaml b/ci_geosphere-test/gitlab-ci.yaml index 3b60262..8c30f98 100644 --- a/ci_geosphere-test/gitlab-ci.yaml +++ b/ci_geosphere-test/gitlab-ci.yaml @@ -130,24 +130,12 @@ gstest deploy client: environment: name: geosphere-test url: http://geosphere-test.ssec.wisc.edu - extends: .helm_based_job - stage: deploy Client - script: - - ns="geosphere-test" - - 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/ + variables: + VALUES_DIR: "ci_geosphere-test" + extends: .deploy_client dependencies: - get_chart_client_test rules: - if: $CI_COMMIT_TAG !~ /$GEOSPHERE_TEST_TAG_REGEX/ when: never - when: on_success - diff --git a/ci_geosphere-test/values-mapserver.yaml b/ci_geosphere-test/values-mapserver.yaml deleted file mode 100644 index 971734a..0000000 --- a/ci_geosphere-test/values-mapserver.yaml +++ /dev/null @@ -1,16 +0,0 @@ -imageSource: - # s3Endpoint: "http://geosphere-minio:9000" - existingClaim: "cspp-geo-geo2grid" -tileSource: - existingClaim: "geosphere-tile-gen-shapefiles" -ingress: - enabled: true - annotations: - ingress.kubernetes.io/ssl-redirect: "true" - hosts: - - host: geosphere-test.ssec.wisc.edu - paths: ["/wms", "/wms_times"] - tls: - - hosts: - - "geosphere-test.ssec.wisc.edu" - secretName: "geosphere-tls-certs" diff --git a/ci_geosphere-test/values-tile-gen-g16-radc.yaml b/ci_geosphere-test/values-tile-gen-g16-radc.yaml deleted file mode 100644 index 7e9dc56..0000000 --- a/ci_geosphere-test/values-tile-gen-g16-radc.yaml +++ /dev/null @@ -1,18 +0,0 @@ -rabbitIn: - # use the rabbitmq from the production environment (geosphere) - host: "geosphere-rabbit-rabbitmq.geosphere" - username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq-production" - topic: "data.goes.g16.abi.radc.l1b.geotiff.all.complete" -rabbitOut: - host: "geosphere-rabbit-rabbitmq" - username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq" -source: - existingClaim: "cspp-geo-geo2grid" -destination: - # s3Endpoint: "http://geosphere-minio:9000" - persistence: - enabled: true - storageClass: "longhorn" - existingClaim: "geosphere-tile-gen-shapefiles" diff --git a/ci_geosphere-test/values-tile-gen-g16-radf.yaml b/ci_geosphere-test/values-tile-gen-g16-radf.yaml deleted file mode 100644 index 86975c2..0000000 --- a/ci_geosphere-test/values-tile-gen-g16-radf.yaml +++ /dev/null @@ -1,19 +0,0 @@ -rabbitIn: - # use the rabbitmq from the production environment (geosphere) - host: "geosphere-rabbit-rabbitmq.geosphere" - username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq-production" - topic: "data.goes.g16.abi.radf.l1b.geotiff.all.complete" -rabbitOut: - host: "geosphere-rabbit-rabbitmq" - username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq" -source: - existingClaim: "cspp-geo-geo2grid" -destination: - # s3Endpoint: "http://geosphere-minio:9000" - persistence: - enabled: true - storageClass: "longhorn" - existingClaim: "geosphere-tile-gen-shapefiles" - diff --git a/ci_geosphere-test/values-tile-gen-g16-radm2.yaml b/ci_geosphere-test/values-tile-gen-g16-radm2.yaml deleted file mode 100644 index c4548c4..0000000 --- a/ci_geosphere-test/values-tile-gen-g16-radm2.yaml +++ /dev/null @@ -1,18 +0,0 @@ -rabbitIn: - # use the rabbitmq from the production environment (geosphere) - host: "geosphere-rabbit-rabbitmq.geosphere" - username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq-production" - topic: "data.goes.g16.abi.radm2.l1b.geotiff.all.complete" -rabbitOut: - host: "geosphere-rabbit-rabbitmq" - username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq" -source: - existingClaim: "cspp-geo-geo2grid" -destination: - # s3Endpoint: "http://geosphere-minio:9000" - persistence: - enabled: true - storageClass: "longhorn" - existingClaim: "geosphere-tile-gen-shapefiles" diff --git a/ci_geosphere/gitlab-ci.yaml b/ci_geosphere/gitlab-ci.yaml index 8230ba2..6aa8f92 100644 --- a/ci_geosphere/gitlab-ci.yaml +++ b/ci_geosphere/gitlab-ci.yaml @@ -193,22 +193,9 @@ gs deploy client: 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 + variables: + VALUES_DIR: "ci_geosphere" + extends: .deploy_client rules: - if: $CI_COMMIT_TAG !~ /$GEOSPHERE_TAG_REGEX/ when: never diff --git a/ci_tests/get_release_names.sh b/ci_tests/get_release_names.sh index 3e39bf3..b75d6fc 100755 --- a/ci_tests/get_release_names.sh +++ b/ci_tests/get_release_names.sh @@ -2,7 +2,8 @@ export RELEASE_PREFIX="${CI_JOB_NAME//_/-}-${CI_JOB_ID//_/-}-" export GRB_RELEASE_NAME="${RELEASE_PREFIX}cspp-geo-grb" -export RABBITMQ_RELEASE_NAME="geosphere-rabbit" +export RABBITMQ_RELEASE_NAME="${RELEASE_PREFIX}geosphere-rabbit" +export RABBITMQ_SERVICE_NAME="${RABBITMQ_RELEASE_NAME}-rabbitmq" export GEO2GRID_RELEASE_NAME="${RELEASE_PREFIX}cspp-geo-geo2grid-g16-radm1" export TILEGEN_RELEASE_NAME="${RELEASE_PREFIX}geosphere-tilegen-g16-radm1" export MAPSERVER_RELEASE_NAME="${RELEASE_PREFIX}geosphere-mapserver" diff --git a/ci_tests/gitlab-ci.yaml b/ci_tests/gitlab-ci.yaml index 2457abf..b726c5a 100644 --- a/ci_tests/gitlab-ci.yaml +++ b/ci_tests/gitlab-ci.yaml @@ -7,65 +7,6 @@ # Create TLS certificate secret: # kubectl create -n geosphere secret tls geosphere-tls-certs --cert=geosphere_ssec_wisc_edu.crt --key=geosphere_ssec_wisc_edu.key -#gs create geotiff storage: -# extends: .helm_based_job -# stage: create storage -# script: -# - ns=$(./helpers/get_namespace.sh) -# # copy secret kubeconfig to the mounted (pwd) directory -# - cp $kubekorner_k3s_config . -# - kubeconfig=$(basename $kubekorner_k3s_config) -# - ./helpers/create_pvc.sh "$ns" "ci_geosphere/geotiff-pvc.yaml" "cspp-geo-geo2grid" "$kubeconfig" -# # this job doesn't actually need any artifacts from previous jobs -# dependencies: [] -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - if: $CREATE_STORAGE -# -#gs create shapefile storage: -# extends: .helm_based_job -# stage: create storage -# script: -# - ns=$(./helpers/get_namespace.sh) -# # copy secret kubeconfig to the mounted (pwd) directory -# - cp $kubekorner_k3s_config . -# - kubeconfig=$(basename $kubekorner_k3s_config) -# - ./helpers/create_pvc.sh "$ns" "ci_geosphere/shapefiles-pvc.yaml" "geosphere-tile-gen-shapefiles" "$kubeconfig" -# # this job doesn't actually need any artifacts from previous jobs -# dependencies: [] -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# # this will always be true for tags -# - changes: -# - ci_geosphere/shapefiles-pvc.yaml -# - if: $CREATE_STORAGE -# -#gs deploy rabbit: -# environment: -# name: geosphere -# url: http://geosphere.ssec.wisc.edu -# extends: .helm_based_job -# stage: deploy rabbit -# script: -# - ./helpers/deploy_rabbitmq.sh ci_geosphere -# - cp ${kubekorner_k3s_config} . -# - kubeconfig=$(basename ${kubekorner_k3s_config}) -# - |- -# kubectl get secret --kubeconfig "${kubeconfig}" geosphere-rabbit-rabbitmq --namespace=geosphere -oyaml | grep -v '^\s*namespace:\s' | grep -v "[Hh]elm" | grep -v "[tT]ime" | grep -v "selfLink" | grep -v "uid" | grep -v "resourceVersion" | sed 's/ name: .*/ name: geosphere-rabbit-rabbitmq-production/' | kubectl_stdin apply --kubeconfig "${kubeconfig}" --namespace=geosphere-test -f - -# # this job doesn't actually need any artifacts from previous jobs -# dependencies: [] -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# # no need to build if another project triggered us -# - if: $CI_PIPELINE_SOURCE == "pipeline" -# when: never -# - changes: -# - ci_geosphere/values-geosphere-rabbit.yaml -# - if: $DEPLOY_RABBIT -# test_basic_grb: extends: .helm_based_job stage: test @@ -82,132 +23,3 @@ test_basic_grb: - get_chart_client rules: - when: on_success -# -#gs deploy geo2grid g16 radf: -# extends: .deploy_geo2grid -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radf" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy geo2grid g16 radc: -# extends: .deploy_geo2grid -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radc" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy geo2grid g16 radm1: -# extends: .deploy_geo2grid -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radm1" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy geo2grid g16 radm2: -# extends: .deploy_geo2grid -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radm2" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy tile gen g16 radf: -# extends: .deploy_tile_gen -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radf" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy tile gen g16 radc: -# extends: .deploy_tile_gen -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radc" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy_tile_gen_g16_radm1: -# extends: .deploy_tile_gen -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radm1" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy_tile_gen_g16_radm2: -# extends: .deploy_tile_gen -# variables: -# VALUES_DIR: "ci_geosphere" -# DEPLOY_SUFFIX: "-g16-radm2" -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy mapserver: -# environment: -# name: geosphere -# url: http://geosphere.ssec.wisc.edu -# variables: -# VALUES_DIR: "ci_geosphere" -# extends: .deploy_mapserver -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy mapcache: -# environment: -# name: geosphere -# url: http://geosphere.ssec.wisc.edu -# variables: -# VALUES_DIR: "ci_geosphere" -# extends: .deploy_mapcache -# rules: -# - if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success -# -#gs deploy client: -# 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: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX -# when: never -# - when: on_success diff --git a/ci_tests/run_basic_grb_test.sh b/ci_tests/run_basic_grb_test.sh index 5f21822..b6fe089 100755 --- a/ci_tests/run_basic_grb_test.sh +++ b/ci_tests/run_basic_grb_test.sh @@ -11,17 +11,40 @@ error() { install_charts() { # use the production rabbitmq config - ./helpers/deploy_rabbitmq.sh "ci_tests" + ./helpers/deploy_rabbitmq.sh "ci_tests" "${RELEASE_PREFIX}" # GRB pushd geosphere-grb/chart + sed -i "s/geosphere-rabbit-rabbitmq/${RABBITMQ_SERVICE_NAME}/g" "ci_tests/values-grb-g16.yaml" helm upgrade -v 2 --install --namespace $ns -f ../../ci_tests/values-grb-g16.yaml ${GRB_RELEASE_NAME} cspp-geo-grb/ popd # Geo2Grid grb_pvc=$(get_pvc_name ${GRB_RELEASE_NAME}) + sed -i "s/geosphere-rabbit-rabbitmq/${RABBITMQ_SERVICE_NAME}/g" "ci_tests/values-geo2grid-g16-radm1.yaml" sed -i "s/cspp-geo-grb/${GRB_RELEASE_NAME}/g" "ci_tests/values-geo2grid-g16-radm1.yaml" ./helpers/deploy_geo2grid.sh "ci_tests" "${RELEASE_PREFIX}" "-g16-radm1" + + # Tile Gen + geotiff_pvc=$(get_pvc_name ${GEO2GRID_RELEASE_NAME}) + sed -i "s/geosphere-rabbit-rabbitmq/${RABBITMQ_SERVICE_NAME}/g" "ci_tests/values-tile-gen-g16-radm1.yaml" + sed -i "s/cspp-geo-geo2grid/${GEO2GRID_RELEASE_NAME}/g" "ci_tests/values-tile-gen-g16-radm1.yaml" + ./helpers/deploy_tile_gen.sh "ci_tests" "${RELEASE_PREFIX}" "-g16-radm1" + + # MapServer + sed -i "s/cspp-geo-geo2grid/${GEO2GRID_RELEASE_NAME}/g" "ci_tests/values-mapserver.yaml" + sed -i "s/geosphere-tile-gen-shapefiles/${TILEGEN_RELEASE_NAME}/g" "ci_tests/values-mapserver.yaml" + ./helpers/deploy_mapserver.sh "ci_test" + + # MapCache + sed -i "s/geosphere-rabbit-rabbitmq/${RABBITMQ_SERVICE_NAME}/g" "ci_tests/values-mapcache.yaml" + sed -i "s/geosphere-mapserver/${MAPSERVER_RELEASE_NAME}/g" "ci_tests/values-mapcache.yaml" + ./helpers/deploy_mapcache.sh "ci_test" + + # Client + sed -i "s/geosphere-mapserver/${MAPSERVER_RELEASE_NAME}/g" "ci_tests/values-client.yaml" + sed -i "s/geosphere-mapcache/${MAPCACHE_RELEASE_NAME}/g" "ci_tests/values-client.yaml" + ./helpers/deploy_client.sh "ci_test" } get_pod_name() { @@ -46,7 +69,7 @@ run_grb_checks() { num_files=$(kubectl exec -n $ns ${GRB_POD_NAME} -c cspp-geo-grb-notifier -- ls -1 /dst | wc -l || echo 0) let count=count+1 if [[ $num_files -gt 16 ]]; then - debug "Got at least 16 files" + debug "Got at least 16 files ($num_files)" break fi if [[ $count -gt 10 ]]; then @@ -62,15 +85,32 @@ run_geo2grid_checks() { num_files=$(kubectl exec -n $ns ${GEO2GRID_POD_NAME} -- ls -1 /dst/geotiffs/g16/abi/radm1/ | wc -l || echo 0) let count=count+1 if [[ $num_files -gt 16 ]]; then - debug "Got at least 16 files" + debug "Got at least 16 files ($num_files)" break fi if [[ $count -gt 10 ]]; then - error "Took too long for Geo2Grid to produce files" + error "Took too long for Geo2Grid to produce files ($num_files so far)" fi sleep 10 done } + +run_tile_gen_checks() { + return 0 +} + +run_mapserver_checks() { + return 0 +} + +run_mapcache_checks() { + return 0 +} + +run_client_checks() { + # just try to load the webpage at all + curl -s "http://${CLIENT_RELEASE_NAME}/" +} set -e ns=$(./helpers/get_namespace.sh) @@ -85,9 +125,25 @@ GRB_POD_NAME=$(get_pod_name "${GRB_RELEASE_NAME}") debug "GRB pod name: ${GRB_POD_NAME}" GEO2GRID_POD_NAME=$(get_pod_name "${GEO2GRID_RELEASE_NAME}") debug "Geo2Grid pod name: ${GEO2GRID_POD_NAME}" +TILEGEN_POD_NAME=$(get_pod_name "${TILEGEN_RELEASE_NAME}") +debug "Tile Generation pod name: ${TILEGEN_POD_NAME}" +MAPSERVER_POD_NAME=$(get_pod_name "${MAPSERVER_RELEASE_NAME}") +debug "MapServer pod name: ${MAPSERVER_POD_NAME}" +MAPCACHE_POD_NAME=$(get_pod_name "${MAPCACHE_RELEASE_NAME}") +debug "MapCache pod name: ${MAPCACHE_POD_NAME}" +CLIENT_POD_NAME=$(get_pod_name "${CLIENT_RELEASE_NAME}") +debug "Client pod name: ${CLIENT_POD_NAME}" wait_for_pod ${GRB_POD_NAME} || error "GRB pod was never ready" run_grb_checks || error "GRB checks failed" wait_for_pod ${GEO2GRID_POD_NAME} || error "Geo2Grid pod was never ready" run_geo2grid_checks || error "Geo2Grid checks failed" +wait_for_pod ${TILEGEN_POD_NAME} || error "Tile Gen pod was never ready" +run_tile_gen_checks || error "Tile Generation checks failed" +wait_for_pod ${MAPSERVER_POD_NAME} || error "MapServer pod was never ready" +run_mapserver_checks || error "MapServer checks failed" +wait_for_pod ${MAPCACHE_POD_NAME} || error "MapCache pod was never ready" +run_mapcache_checks || error "MapCache checks failed" +wait_for_pod ${CLIENT_POD_NAME} || error "Client pod was never ready" +run_client_checks || error "Client checks failed" diff --git a/ci_tests/values-client.yaml b/ci_tests/values-client.yaml new file mode 100644 index 0000000..558e745 --- /dev/null +++ b/ci_tests/values-client.yaml @@ -0,0 +1,2 @@ +infoServer: "geosphere-mapserver" +tileServer: "geosphere-mapcache" diff --git a/ci_tests/values-mapcache.yaml b/ci_tests/values-mapcache.yaml new file mode 100644 index 0000000..9ba2671 --- /dev/null +++ b/ci_tests/values-mapcache.yaml @@ -0,0 +1,19 @@ +rabbitIn: + host: "geosphere-rabbit-rabbitmq" + username: "user" + passwordSecret: "geosphere-rabbit-rabbitmq" + topic: "data.goes.g16.abi.*.l1b.tiles.*.complete" +wms: + host: "geosphere-mapserver" +cache: + persistence: + enabled: true + storageClass: "local-path" + size: 1Ti + cleanup: + # every 6 hours + schedule: "0 */6 * * *" + age: "+2" +seed: + images: true + overlays: true diff --git a/ci_tests/values-mapserver.yaml b/ci_tests/values-mapserver.yaml new file mode 100644 index 0000000..f24f333 --- /dev/null +++ b/ci_tests/values-mapserver.yaml @@ -0,0 +1,5 @@ +imageSource: + # s3Endpoint: "http://geosphere-minio:9000" + existingClaim: "cspp-geo-geo2grid" +tileSource: + existingClaim: "geosphere-tile-gen-shapefiles" diff --git a/ci_geosphere-test/values-tile-gen-g16-radm1.yaml b/ci_tests/values-tile-gen-g16-radm1.yaml similarity index 54% rename from ci_geosphere-test/values-tile-gen-g16-radm1.yaml rename to ci_tests/values-tile-gen-g16-radm1.yaml index f0aaa5b..581446c 100644 --- a/ci_geosphere-test/values-tile-gen-g16-radm1.yaml +++ b/ci_tests/values-tile-gen-g16-radm1.yaml @@ -1,8 +1,7 @@ rabbitIn: - # use the rabbitmq from the production environment (geosphere) - host: "geosphere-rabbit-rabbitmq.geosphere" + host: "geosphere-rabbit-rabbitmq" username: "user" - passwordSecret: "geosphere-rabbit-rabbitmq-production" + passwordSecret: "geosphere-rabbit-rabbitmq" topic: "data.goes.g16.abi.radm1.l1b.geotiff.all.complete" rabbitOut: host: "geosphere-rabbit-rabbitmq" @@ -11,8 +10,8 @@ rabbitOut: source: existingClaim: "cspp-geo-geo2grid" destination: - # s3Endpoint: "http://geosphere-minio:9000" persistence: enabled: true storageClass: "longhorn" - existingClaim: "geosphere-tile-gen-shapefiles" + cleanup: + enabled: false diff --git a/helpers/deploy_client.sh b/helpers/deploy_client.sh new file mode 100755 index 0000000..8848999 --- /dev/null +++ b/helpers/deploy_client.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +if [ $# -ne 2 ] && [ $# -ne 3 ]; then + echo "Usage: ./helpers/deploy_client.sh <values_base_dir> [<release_prefix>]" + exit 1 +fi + +# ci_geosphere-test +values_base="$1" + +# Prefix Example: testing-YYYYMMDD- +if [[ $# -eq 1 ]]; then + release_prefix="" +else + release_prefix="$2" +fi + +ns=$(./helpers/get_namespace.sh) +cd geosphere-client/chart +source geosphere-client/cibuild.env +echo "Deploying version $docker_tag to cluster namespace $ns" +helm upgrade -v 2 --install --namespace $ns -f ../../${values_base}/values-client.yaml "${release_prefix}geosphere-client" geosphere-client/ diff --git a/helpers/deploy_mapcache.sh b/helpers/deploy_mapcache.sh new file mode 100755 index 0000000..ae254b6 --- /dev/null +++ b/helpers/deploy_mapcache.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +if [ $# -ne 2 ] && [ $# -ne 3 ]; then + echo "Usage: ./helpers/deploy_mapcache.sh <values_base_dir> [<release_prefix>]" + exit 1 +fi + +# ci_geosphere-test +values_base="$1" + +# Prefix Example: testing-YYYYMMDD- +if [[ $# -eq 1 ]]; then + release_prefix="" +else + release_prefix="$2" +fi + +ns=$(./helpers/get_namespace.sh) +cd geosphere-mapcache/chart +source geosphere-mapcache/cibuild.env +echo "Deploying version $docker_tag to cluster namespace $ns" +helm upgrade -v 2 --install --namespace $ns -f ../../${values_base}/values-mapcache.yaml "${release_prefix}geosphere-mapcache" geosphere-mapcache/ diff --git a/helpers/deploy_mapserver.sh b/helpers/deploy_mapserver.sh new file mode 100755 index 0000000..b57dc0a --- /dev/null +++ b/helpers/deploy_mapserver.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +if [ $# -ne 2 ] && [ $# -ne 3 ]; then + echo "Usage: ./helpers/deploy_mapserver.sh <values_base_dir> [<release_prefix>]" + exit 1 +fi + +# ci_geosphere-test +values_base="$1" + +# Prefix Example: testing-YYYYMMDD- +if [[ $# -eq 1 ]]; then + release_prefix="" +else + release_prefix="$2" +fi + +ns=$(./helpers/get_namespace.sh) +cd geosphere-mapserver/chart +source geosphere-mapserver/cibuild.env +echo "Deploying version $docker_tag to cluster namespace $ns" +helm upgrade -v 2 --install --namespace $ns -f ../../${values_base}/values-mapserver.yaml "${release_prefix}geosphere-mapserver" geosphere-mapserver/ diff --git a/helpers/deploy_rabbitmq.sh b/helpers/deploy_rabbitmq.sh index 1d681a1..c6b4541 100755 --- a/helpers/deploy_rabbitmq.sh +++ b/helpers/deploy_rabbitmq.sh @@ -10,6 +10,14 @@ fi # ci_geosphere-test values_base="$1" +# Prefix Example: testing-YYYYMMDD- +if [[ $# -eq 1 ]]; then + release_prefix="" +else + release_prefix="$2" +fi + + ns=$(./helpers/get_namespace.sh) # get password from any previous installation # if we don't do this the password will get out of sync @@ -32,11 +40,13 @@ fi echo "Adding extra arguments: $EXTRA_ARGS" # install third-party rabbitmq server helm repo add bitnami "https://charts.bitnami.com/bitnami" -helm upgrade -v 2 --install -f ${values_base}/values-geosphere-rabbit.yaml $EXTRA_ARGS --namespace $ns geosphere-rabbit bitnami/rabbitmq + +release_name="${release_prefix}geosphere-rabbit" +helm upgrade -v 2 --install -f ${values_base}/values-geosphere-rabbit.yaml $EXTRA_ARGS --namespace $ns "${release_name}" bitnami/rabbitmq # do a little waiting for the rabbitmq pod to be ready so future stages # don't fail to communicate with it echo "Start waiting for rabbitmq: $(date +%Y%m%dT%H%M%S)" -kubectl wait -n $ns pod/geosphere-rabbit-rabbitmq-0 --timeout 120s --for=condition=Ready +kubectl wait -n $ns pod/"${release_name}-rabbitmq-0" --timeout 120s --for=condition=Ready status=$? echo "Done waiting for rabbitmq: $(date +%Y%m%dT%H%M%S) : $status" exit $status diff --git a/helpers/deploy_tile_gen.sh b/helpers/deploy_tile_gen.sh index 554e4ab..3fabf07 100755 --- a/helpers/deploy_tile_gen.sh +++ b/helpers/deploy_tile_gen.sh @@ -2,24 +2,26 @@ set -e -if [ $# -ne 2 ]; then - echo "Usage: ./helpers/deploy_tile_gen.sh <values_base_dir> <deploy_suffix>" +if [ $# -ne 2 ] && [ $# -ne 3 ]; then + echo "Usage: ./helpers/deploy_tile_gen.sh <values_base_dir> [<release_prefix>] <release_suffix>" exit 1 fi # ci_geosphere-test values_base="$1" -# Example: -g16-radf -deploy_suffix="$2" + +# Prefix Example: testing-YYYYMMDD- +# Suffix Example: -g16-radf +if [[ $# -eq 2 ]]; then + release_prefix="" + release_suffix="$2" +else + release_prefix="$2" + release_suffix="$3" +fi ns=$(./helpers/get_namespace.sh) cd geosphere-tile-gen/chart source geosphere-tile-gen/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 ../../${values_base}/values-tile-gen${deploy_suffix}.yaml . -# namespace names are the same as domain names -helm upgrade -v 2 --install --kubeconfig $kubeconfig --namespace $ns -f values-tile-gen${deploy_suffix}.yaml geosphere-tile-gen${deploy_suffix} geosphere-tile-gen/ +helm upgrade -v 2 --install --namespace $ns -f ../../${values_base}/values-tile-gen${release_suffix}.yaml "${release_prefix}geosphere-tile-gen${release_suffix}" geosphere-tile-gen/ -- GitLab