#!/usr/bin/env bash set -xe SCRIPT="$(readlink -f "$0")" SCRIPTPATH="$(dirname "${SCRIPT}")" TESTDIR="${SCRIPTPATH}/../../../.github/tests" DEPS="${TESTDIR}/dependencies" # shellcheck source=/dev/null source "${SCRIPTPATH}/../../../.github/scripts/parse-versions.sh" # shellcheck source=/dev/null source "${TESTDIR}/common.sh" CLEANUP=1 for i in "$@"; do case $i in -c) CLEANUP=0 shift # past argument=value ;; esac done teardown() { print_helm_releases print_spire_workload_status spire-root-server print_spire_workload_status spire-server spire-system if [[ "$1" -ne 0 ]]; then get_namespace_details spire-root-server get_namespace_details spire-server spire-system fi if [ "${CLEANUP}" -eq 1 ]; then helm uninstall --namespace spire-server spire 2>/dev/null || true kubectl delete ns spire-server 2>/dev/null || true kubectl delete ns spire-system 2>/dev/null || true helm uninstall --namespace mysql spire-root-server 2>/dev/null || true kubectl delete ns spire-root-server 2>/dev/null || true fi } trap 'EC=$? && trap - SIGTERM && teardown $EC' SIGINT SIGTERM EXIT kubectl create namespace spire-system --dry-run=client -o yaml | kubectl apply -f - kubectl label namespace spire-system pod-security.kubernetes.io/enforce=privileged || true kubectl create namespace spire-server --dry-run=client -o yaml | kubectl apply -f - kubectl label namespace spire-server pod-security.kubernetes.io/enforce=restricted || true helm upgrade --install --create-namespace spire charts/spire \ --namespace spire-root-server \ --values "${DEPS}/spire-root-server-values.yaml" \ --wait kind create cluster --name other --kubeconfig "${SCRIPTPATH}/kubeconfig" --config "${SCRIPTPATH}/kind-config.yaml" md5sum "${SCRIPTPATH}/kubeconfig" wc -l "${SCRIPTPATH}/kubeconfig" KCB64="$(base64 < "${SCRIPTPATH}/kubeconfig" | tr '\n' ' ' | sed 's/ //g')" helm upgrade --install --create-namespace --namespace spire-server --values "${SCRIPTPATH}/values.yaml" \ --wait spire charts/spire --set "spire-server.kubeConfigs.other.kubeConfigBase64=$KCB64" helm test --namespace spire-server spire