# Remaining Blockers - Complete Step-by-Step Guide **Last Updated**: 2024-12-19 ## Overview This document provides detailed step-by-step instructions to resolve all remaining blockers for deployment. ## Priority Order **Important**: Resolve blockers in this order for optimal workflow: 1. **SSH Access** (Blocker 2) - Required first to verify/download images 2. **Image Verification** (Blocker 3) - Depends on SSH, needed before VM deployment 3. **Kubernetes Cluster** (Blocker 1) - Needed for provider deployment and VM creation **Rationale**: SSH access is needed to verify and download images, which must be ready before deploying VMs via Crossplane. Kubernetes can be set up in parallel, but images should be verified first. ## Blocker 2: SSH Access to Proxmox Nodes (PRIORITY 1) **Resolve this first** - Required for image verification and download ### Required For - TASK-009: Build and test Crossplane provider - TASK-010: Deploy Crossplane provider to Kubernetes - TASK-011: Create ProviderConfig resource - TASK-014: Set up monitoring dashboards - TASK-015: Deploy test VMs via Crossplane ### Step-by-Step Instructions #### Option A: Using kind (Kubernetes in Docker) - Recommended for Local Development **Step 1: Install kind** ```bash # On Linux 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 # Verify installation kind version ``` **Step 2: Install kubectl** ```bash # On Linux curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/ # Verify installation kubectl version --client ``` **Step 3: Create kind cluster** ```bash # Create cluster configuration cat > kind-config.yaml <> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys exit ``` #### Step 3: Copy Public Key to R630-01 ```bash # Copy key to R630-01 ssh-copy-id -i ~/.ssh/sankofa_proxmox.pub root@192.168.11.11 # Test connection ssh -i ~/.ssh/sankofa_proxmox root@192.168.11.11 'echo "SSH working"' ``` #### Step 4: Configure SSH Config (Optional but Recommended) ```bash # Add to ~/.ssh/config cat >> ~/.ssh/config <> .env echo "SSH_USER=root" >> .env ``` ### Verification Checklist - [ ] SSH key pair generated - [ ] Public key copied to ML110-01 - [ ] Public key copied to R630-01 - [ ] SSH connection works to ML110-01 (passwordless) - [ ] SSH connection works to R630-01 (passwordless) - [ ] SSH config file updated (optional) --- ## Blocker 1: Kubernetes Cluster Setup (PRIORITY 3) **Can be done in parallel** - Needed for provider deployment and VM creation ### Required For - TASK-015: Deploy test VMs via Crossplane - All VM deployment tasks ### Step-by-Step Instructions #### Step 1: Verify Images via SSH ```bash # Check ML110-01 ssh ml110-01 'pveam list local | grep ubuntu' # Check R630-01 ssh r630-01 'pveam list local | grep ubuntu' ``` #### Step 2: Download Images if Missing **Option A: Using pveam (Proxmox Template Downloader)** ```bash # On ML110-01 ssh ml110-01 <