uninstall-eso-v2-e2e.sh 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. #
  3. # Uninstall External Secrets Operator V2 E2E installation
  4. # This script removes the monolithic Helm chart installation
  5. #
  6. set -e
  7. NAMESPACE="external-secrets-system"
  8. # Colors
  9. GREEN='\033[0;32m'
  10. RED='\033[0;31m'
  11. YELLOW='\033[1;33m'
  12. NC='\033[0m'
  13. log_info() {
  14. local message="$1"
  15. echo -e "${GREEN}[INFO]${NC} $message"
  16. return 0
  17. }
  18. log_warning() {
  19. local message="$1"
  20. echo -e "${YELLOW}[WARN]${NC} $message"
  21. return 0
  22. }
  23. log_info "Uninstalling External Secrets Operator V2"
  24. # Delete all ExternalSecret resources first (they have finalizers that need to be removed by the controller)
  25. log_info "Deleting all ExternalSecret resources (waiting for finalizers to be processed)"
  26. kubectl delete externalsecrets --all --all-namespaces --timeout=120s 2>/dev/null || log_warning "No ExternalSecrets found or already deleted"
  27. # Delete other resources that may have finalizers
  28. log_info "Deleting all PushSecret resources"
  29. kubectl delete pushsecrets --all --all-namespaces --timeout=120s 2>/dev/null || log_warning "No PushSecrets found or already deleted"
  30. log_info "Deleting all ClusterExternalSecret resources"
  31. kubectl delete clusterexternalsecrets --all --timeout=120s 2>/dev/null || log_warning "No ClusterExternalSecrets found or already deleted"
  32. log_info "Deleting all ClusterPushSecret resources"
  33. kubectl delete clusterpushsecrets --all --timeout=120s 2>/dev/null || log_warning "No ClusterPushSecrets found or already deleted"
  34. # Uninstall the monolithic Helm release
  35. log_info "Removing Helm release: external-secrets"
  36. helm uninstall external-secrets -n "$NAMESPACE" 2>/dev/null || log_warning "Helm release 'external-secrets' not found"
  37. # Delete any leftover resources
  38. log_info "Cleaning up any leftover resources"
  39. # Delete CRDs (only if you want to clean them completely)
  40. log_info "Deleting CRDs"
  41. kubectl delete crd secretstores.external-secrets.io 2>/dev/null || true
  42. kubectl delete crd clustersecretstores.external-secrets.io 2>/dev/null || true
  43. kubectl delete crd externalsecrets.external-secrets.io 2>/dev/null || true
  44. kubectl delete crd clusterexternalsecrets.external-secrets.io 2>/dev/null || true
  45. kubectl delete crd pushsecrets.external-secrets.io 2>/dev/null || true
  46. kubectl delete crd clusterpushsecrets.external-secrets.io 2>/dev/null || true
  47. kubectl delete crd generators.external-secrets.io 2>/dev/null || true
  48. kubectl delete crd clustergenerators.external-secrets.io 2>/dev/null || true
  49. # Delete namespace
  50. log_info "Deleting namespace: $NAMESPACE"
  51. kubectl delete namespace "$NAMESPACE" --ignore-not-found=true --timeout=60s
  52. log_info "Uninstallation complete"