Newer
Older
# This file is included as part of the main repository .gitlab-ci.yml file
# NOTE: Since this is running from the root of the repository all referenced
# files must be relative to the root directory.
# Most jobs in this file are only meant to be run when a git tag is created
# Prerequisites:
# 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
- 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
# 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
gs deploy g16 grb:
# environment:
# name: geosphere
# url: http://geosphere.ssec.wisc.edu
extends: .helm_based_job
stage: deploy GRB
script:
- ns=$(./helpers/get_namespace.sh)
- cd geosphere-grb/chart
- source cspp-geo-grb/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-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:
- get_chart_grb
rules:
- if: $CI_COMMIT_TAG !~ $GEOSPHERE_TAG_REGEX
when: never
- when: on_success
gs deploy geo2grid g16 radf:
extends: .deploy_geo2grid
variables:
VALUES_DIR: "ci_geosphere"
- 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"
- 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"
- 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"
- if: $CI_COMMIT_TAG !~ /^r[0-9]+_[0-9]+/
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