This directory contains utility scripts for managing the Kubernetes cluster and services.
All scripts are organized in this central location. Related scripts are grouped by function:
- Infrastructure: Setup and configuration scripts
- Diagnostic: Health checks and troubleshooting
- Backup: Data backup and restoration
- Cleanup: Resource removal and migration
Sets up nginx reverse proxy on the control plane node to handle incoming traffic on standard ports (80/443).
Usage:
./setup-reverse-proxy.shWhat it does:
- Installs nginx
- Configures reverse proxy to forward to Kubernetes NodePorts
- Sets up SSL with self-signed certificates
- Configures security headers
Configures Let's Encrypt SSL certificates for all domains.
Usage:
./setup-letsencrypt.shPrerequisites:
- DNS must be pointing to the server
- Reverse proxy must be set up first
Verifies that the root directory contains only allowed files per the project organization requirements.
Usage:
./scripts/verify-root-cleanliness.shWhat it checks:
- Only allowed file types exist in root (*.tf, *.tfvars, README.md, .gitignore, etc.)
- Reports any violations with suggested actions
- Returns exit code 0 on success, 1 on violations
Validates: Requirements 1.1, 1.2, 1.3 (Root Directory Cleanliness)
Comprehensive connectivity test for all configured domains.
Usage:
./test-all-domains.shTests:
- DNS resolution
- HTTP to HTTPS redirect
- HTTPS response codes
- SSL certificate validation
Health check script for all Kubernetes services.
Usage:
./check-services.shChecks:
- Service HTTP responses
- Kubernetes NodePort connectivity
- Nginx status and logs
Diagnoses NFS connectivity issues between Kubernetes nodes and NFS server.
Usage:
./fix-nfs-connectivity.shTests:
- Network connectivity to NFS server
- NFS port accessibility
- Mount capability testing
Completely removes Airflow and all its dependencies from the cluster.
Usage:
./remove-airflow.shMigrates services from NFS storage to local storage.
Usage:
./migrate-to-local-storage.shchmod +x scripts/*.sh# From the project root
./scripts/test-all-domains.shMost scripts expect an SSH config file in the project root (ssh_config) for accessing Kubernetes nodes.
IDE configuration files (.cursorrules, epyc.code-workspace) are located in .vscode/ directory.
- Scripts that modify infrastructure should be reviewed before execution
- Always test in a non-production environment first
- Scripts with data deletion warnings require careful consideration
- Ensure proper backup procedures before running destructive operations
kubectlwith valid kubeconfig- SSH access to Kubernetes nodes
curlfor connectivity testingopensslfor SSL testinghelmfor some operations