Files
homelab/terraform/scripts/phase-0-reconciliation.sh
T

57 lines
2.5 KiB
Bash
Raw Normal View History

#!/bin/bash
# Phase 0 — Read-only reconciliation of three ownership ambiguities
# Safe to run; only queries, no mutations
set -e
cd "$(dirname "$0")/.."
echo "=== Phase 0: Cluster Reconciliation ==="
echo ""
# Ambiguity 1: minio (storage) — standalone chart vs. Operator Tenant
echo "--- Ambiguity 1: minio (storage) ownership ---"
echo "Helm releases in 'storage' namespace:"
helm list -n storage || echo " (helm list failed)"
echo ""
echo "MinIO Operator Tenants in 'storage' namespace:"
kubectl get tenant -n storage -o wide 2>/dev/null || echo " (no Tenant CRD or none found)"
echo ""
echo "PVCs in 'storage' namespace:"
kubectl get pvc -n storage -o wide || echo " (kubectl failed)"
echo ""
# Ambiguity 2: kmsvc-redis — helmfile release vs. ArgoCD Application
echo "--- Ambiguity 2: kmsvc-redis ownership ---"
echo "ArgoCD Applications containing 'redis':"
argocd app list | grep redis || echo " (no match or argocd unavailable)"
echo ""
echo "Helm releases in 'sqs' namespace:"
helm list -n sqs | grep redis || echo " (no redis release)"
echo ""
echo "Redis-related PVCs in 'sqs' namespace:"
kubectl get pvc -n sqs -o wide | grep -i redis || echo " (no redis PVC)"
echo ""
# Ambiguity 3: forgejo-runner — helm chart vs. raw manifest
echo "--- Ambiguity 3: forgejo-runner ownership ---"
echo "Helm releases in 'cicd' namespace containing 'runner':"
helm list -n cicd | grep runner || echo " (no runner release)"
echo ""
echo "Deployments in 'cicd' namespace with label app=forgejo-runner:"
kubectl get deploy -n cicd -l app=forgejo-runner -o wide || echo " (no matching deployment)"
echo ""
echo "Checking managedFields on any forgejo-runner Deployment (to identify controller):"
kubectl get deploy -n cicd -l app=forgejo-runner -o json 2>/dev/null | jq '.items[0].metadata.managedFields' 2>/dev/null || echo " (no deployment found)"
echo ""
echo "PVCs in 'cicd' namespace named runner-*:"
kubectl get pvc -n cicd -o wide | grep runner || echo " (no runner PVC)"
echo ""
echo "=== Phase 0 Complete ==="
echo "Review the output above. Determine which of the three ambiguities are resolved:"
echo " 1. minio(storage): Is Helm release or Tenant CR authoritative? (helm list vs kubectl get tenant)"
echo " 2. kmsvc-redis: Is helmfile or ArgoCD Application active? (argocd app list vs helm list)"
echo " 3. forgejo-runner: Is Helm chart or raw manifest applied? (helm list vs kubectl get deploy managedFields)"
echo ""
echo "Document your findings. Proceed to Phase 1 (StorageClass import) only after clarity."