#!/usr/bin/env bash
# SPDX-FileCopyrightText: the secureCodeBox authors
#
# SPDX-License-Identifier: Apache-2.0
# Official uninstall script for the secureCodeBox
#
# Removes all available resources (scanners, demo-targets, hooks, operator) and namespaces
#
# For more information see https://www.securecodebox.io/
set -eu
shopt -s extglob
# @see: http://wiki.bash-hackers.org/syntax/shellvars
[ -z "${SCRIPT_DIRECTORY:-}" ] &&
SCRIPT_DIRECTORY="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
BASE_DIR=$(dirname "${SCRIPT_DIRECTORY}")
SCB_SYSTEM_NAMESPACE='securecodebox-system'
SCB_DEMO_NAMESPACE='demo-targets'
SCB_NAMESPACE='default'
function uninstallResources() {
local resource_directory="$1"
local namespace="$2"
local resources=()
for path in "$resource_directory"/*; do
[ -d "${path}" ] || continue # skip if not a directory
local directory
directory="$(basename "${path}")"
resources+=("${directory}")
done
for resource in "${resources[@]}"; do
helm uninstall "$resource" -n "$namespace" || true
done
}
helm -n "$SCB_SYSTEM_NAMESPACE" uninstall securecodebox-operator || true
uninstallResources "$BASE_DIR/demo-targets" "$SCB_DEMO_NAMESPACE"
uninstallResources "$BASE_DIR/scanners" "$SCB_NAMESPACE"
uninstallResources "$BASE_DIR/hooks" "$SCB_NAMESPACE"
kubectl delete namespaces "$SCB_SYSTEM_NAMESPACE" || true
echo "Uninstall completed"