Skip to content

Instantly share code, notes, and snippets.

@nkreiger
Created July 8, 2025 23:24
Show Gist options
  • Save nkreiger/22c5eda609de4db460aef5040c6e7352 to your computer and use it in GitHub Desktop.
Save nkreiger/22c5eda609de4db460aef5040c6e7352 to your computer and use it in GitHub Desktop.
#!/bin/bash
# bashsupport disable=BP5006
set -euo pipefail
##############################################################################
# Default Parameters
##############################################################################
# Usage:
# ./uninstall_fianu.sh [NAMESPACE] [RELEASE_NAME] [--full]
# Defaults:
# NAMESPACE: fianu
# RELEASE_NAME: fianu-core
NAMESPACE=${1:-"fianu"}
RELEASE_NAME=${2:-"fianu-core"}
# Check for optional full cleanup flag (deletes namespace if set)
FULL_CLEANUP=false
if [[ "${3:-}" == "--full" ]]; then
FULL_CLEANUP=true
fi
##############################################################################
# Logging helper for structured logs
##############################################################################
log() {
local level="$1"
local action="$2"
local details="$3"
echo "$(date +'%Y-%m-%d %H:%M:%S') | LEVEL=$level | ACTION=$action | DETAILS=$details"
}
##############################################################################
# Main Control Flow
##############################################################################
main() {
log "INFO" "Script Start" "Fianu Core uninstall script started."
# Uninstall the Helm release
log "INFO" "Helm Uninstall" "Uninstalling Helm release '$RELEASE_NAME' from namespace '$NAMESPACE'."
if helm uninstall "$RELEASE_NAME" --namespace "$NAMESPACE"; then
log "INFO" "Helm Uninstall" "Helm release '$RELEASE_NAME' uninstalled successfully."
else
log "WARN" "Helm Uninstall" "Failed to uninstall Helm release '$RELEASE_NAME'. It may not exist or could have been already removed."
fi
# If the --full flag is provided, delete the namespace (skip deletion of the default namespace)
if [ "$FULL_CLEANUP" = true ]; then
if [ "$NAMESPACE" = "default" ]; then
log "INFO" "Namespace Cleanup" "Skipping deletion of the default namespace."
else
log "INFO" "Namespace Cleanup" "Deleting namespace '$NAMESPACE'."
if kubectl delete namespace "$NAMESPACE"; then
log "INFO" "Namespace Cleanup" "Namespace '$NAMESPACE' deleted successfully."
else
log "WARN" "Namespace Cleanup" "Failed to delete namespace '$NAMESPACE'. It may not exist."
fi
fi
fi
log "SUCCESS" "Script Completion" "Fianu Core uninstall script completed successfully."
}
# Run main
main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment