# Blocker Resolution Priority Order **Last Updated**: 2024-12-19 ## Correct Priority Order You're absolutely right! SSH access should come **before** Kubernetes cluster setup. Here's why: ### Priority 1: SSH Access (Blocker 2) - DO THIS FIRST **Why First?** - Required to verify and download images - Needed for image verification (Blocker 3) - Images must be ready before VM deployment - Can be done independently **Time**: ~5-10 minutes ### Priority 2: Image Verification (Blocker 3) - DO THIS SECOND **Why Second?** - Depends on SSH access (Priority 1) - Images must be verified/downloaded before deploying VMs - VM deployment will fail if images are missing - Can be done once SSH is working **Time**: ~5-15 minutes (depending on download speed) ### Priority 3: Kubernetes Cluster (Blocker 1) - CAN BE DONE IN PARALLEL **Why Third?** - Can be set up in parallel with SSH/Images - Needed for provider deployment - Provider deployment can wait until images are ready - No dependency on SSH or images **Time**: ~10-20 minutes ## Rationale ### Dependency Chain ``` SSH Access (Priority 1) ↓ Image Verification (Priority 2) ↓ VM Deployment (requires both SSH and Images) ↑ Kubernetes Cluster (Priority 3) - Can be parallel ``` ### Why This Order Matters 1. **SSH First**: Without SSH, you cannot: - Verify images exist - Download missing images - Deploy exporters - Configure tunnels 2. **Images Second**: Without images, you cannot: - Deploy test VMs - Verify VM creation works - Test the full deployment 3. **Kubernetes Third**: Kubernetes can be set up anytime, but: - Provider deployment can wait - VM deployment requires images first - No dependency on SSH or images ## Recommended Execution Order ### Step 1: SSH Access (5-10 min) ```bash # Generate key ssh-keygen -t ed25519 -f ~/.ssh/sankofa_proxmox # Copy to nodes ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.10 ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.11 # Test ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.10 'hostname' ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.11 'hostname' ``` ### Step 2: Image Verification (5-15 min) ```bash # Check images ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.10 'pveam list local | grep ubuntu' ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.11 'pveam list local | grep ubuntu' # Download if missing ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.10 'pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.gz' ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.11 'pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.gz' ``` ### Step 3: Kubernetes Cluster (10-20 min) ```bash # Install kind (if not installed) curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 chmod +x ./kind && sudo mv ./kind /usr/local/bin/kind # Create cluster kind create cluster --name sankofa # Install Crossplane helm repo add crossplane-stable https://charts.crossplane.io/stable helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace ``` ## Parallel Execution While SSH and Images must be sequential, Kubernetes can be set up in parallel: ``` Time → SSH Access ──────────────┐ │ Image Verification ─────┼───┐ │ │ Kubernetes ──────────────┘ │ │ All Ready ┘ ``` ## Updated Script Order The `resolve-blockers.sh` script now follows this priority: 1. SSH Access (Priority 1) 2. Image Verification (Priority 2) 3. Kubernetes Cluster (Priority 3) ## Related Documentation - [Remaining Blockers Guide](./REMAINING_BLOCKERS_GUIDE.md) - Updated with priority order - [Blockers Resolution Status](./BLOCKERS_RESOLUTION_STATUS.md) - [Deployment Readiness Final](./DEPLOYMENT_READINESS_FINAL.md)