Skip to content
Snippets Groups Projects
Verified Commit 99d50e7a authored by David Hoese's avatar David Hoese
Browse files

Try some fancier PVC checks

parent 3064409a
No related branches found
No related tags found
No related merge requests found
...@@ -64,7 +64,7 @@ create geotiff storage: ...@@ -64,7 +64,7 @@ create geotiff storage:
# copy secret kubeconfig to the mounted (pwd) directory # copy secret kubeconfig to the mounted (pwd) directory
- cp $kubekorner_k3s_config . - cp $kubekorner_k3s_config .
- kubeconfig=$(basename $kubekorner_k3s_config) - kubeconfig=$(basename $kubekorner_k3s_config)
- ./helpers/create_pvc.sh "$ns" "production/geotiff-pvc.yaml" "$kubeconfig" - ./helpers/create_pvc.sh "$ns" "production/geotiff-pvc.yaml" "cspp-geo-geo2grid" "$kubeconfig"
# this job doesn't actually need any artifacts from previous jobs # this job doesn't actually need any artifacts from previous jobs
dependencies: [] dependencies: []
rules: rules:
......
#!/usr/bin/env bash #!/usr/bin/env bash
if [[ $# -eq 2 ]]; then fail() {
echo "$@"
exit 3
}
if [[ $# -eq 3 ]]; then
ns=$1 ns=$1
pvc=$2 pvc_file=$2
pvc_name=$3
EXTRA_ARGS="--namespace $ns" EXTRA_ARGS="--namespace $ns"
elif [[ $# -eq 3 ]]; then elif [[ $# -eq 4 ]]; then
ns=$1 ns=$1
pvc=$2 pvc_file=$2
kubeconfig=$3 pvc_name=$3
kubeconfig=$4
EXTRA_ARGS="--namespace $ns --kubeconfig $kubeconfig" EXTRA_ARGS="--namespace $ns --kubeconfig $kubeconfig"
else else
echo "Usage: ./create_pvc.sh <kubernetes namespace> <PVC YAML definition> <kubernetes config file>" echo "Usage: ./create_pvc.sh <kubernetes namespace> <PVC YAML definition> <PVC name> [<kubernetes config file>]"
exit 1 exit 1
fi fi
...@@ -19,11 +26,23 @@ fi ...@@ -19,11 +26,23 @@ fi
# didn't change. Let's make sure it exists on the cluster and if so, don't # didn't change. Let's make sure it exists on the cluster and if so, don't
# try to recreate it. # try to recreate it.
if [[ $CI_PIPELINE_SOURCE == "pipeline" ]]; then if [[ $CI_PIPELINE_SOURCE == "pipeline" ]]; then
pvc_exists=$(kubectl $EXTRA_ARGS get pvc $pvc -o jsonpath="{.metadata.name}" || echo "") pvc_exists=$(kubectl $EXTRA_ARGS get pvc $pvc_name -o jsonpath="{.metadata.name}" || echo "")
if [[ "$pvc_exists" != "" ]]; then if [[ "$pvc_exists" != "" ]]; then
# it exists # it exists
exit 0 exit 0
fi fi
fi fi
kubectl $EXTRA_ARGS replace -f $pvc pvc_pending=$(kubectl $EXTRA_ARGS get pvc $pvc_name -o jsonpath="{.status.phase}" || echo "")
\ No newline at end of file if [[ $pvc_pending == "" ]]; then
echo "PVC does not exist, creating..."
elif [[ $pvc_pending != "Pending" ]]; then
echo "PVC already exists and is not pending. Manually 'helm uninstall' all bound pods"
exit 2
else
echo "PVC exists but is pending, deleting..."
# kubectl $EXTRA_ARGS delete $pvc_name || fail "Could not delete existing PVC"
fi
kubectl $EXTRA_ARGS replace -f $pvc_file
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment