2025-11-28 12:54:33 -08:00
# Installation Scripts
Automated installation scripts for deploying the hybrid cloud control plane.
## Structure
```
scripts/
├── bootstrap-cluster.sh # Kubernetes cluster bootstrap
├── install-components.sh # Control plane components installation
├── setup-proxmox-agents.sh # Proxmox site agent setup
├── configure-cloudflare.sh # Cloudflare tunnel configuration
├── validate.sh # Post-install validation
Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- Add comprehensive database migrations (001-024) for schema evolution
- Enhance API schema with expanded type definitions and resolvers
- Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth
- Implement new services: AI optimization, billing, blockchain, compliance, marketplace
- Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage)
- Update Crossplane provider with enhanced VM management capabilities
- Add comprehensive test suite for API endpoints and services
- Update frontend components with improved GraphQL subscriptions and real-time updates
- Enhance security configurations and headers (CSP, CORS, etc.)
- Update documentation and configuration files
- Add new CI/CD workflows and validation scripts
- Implement design system improvements and UI enhancements
2025-12-12 18:01:35 -08:00
├── enable-guest-agent-existing-vms.sh # Enable guest agent on all VMs
├── verify-guest-agent.sh # Verify guest agent status on all VMs
2025-11-28 12:54:33 -08:00
└── ansible/ # Ansible playbooks
├── site-playbook.yml # Multi-site deployment
├── inventory.example # Inventory template
└── roles/ # Ansible roles
```
## Usage
### Quick Start
```bash
# 1. Bootstrap Kubernetes cluster
./bootstrap-cluster.sh
# 2. Install control plane components
./install-components.sh
# 3. Setup Proxmox agents (run on each Proxmox node)
Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- Add comprehensive database migrations (001-024) for schema evolution
- Enhance API schema with expanded type definitions and resolvers
- Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth
- Implement new services: AI optimization, billing, blockchain, compliance, marketplace
- Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage)
- Update Crossplane provider with enhanced VM management capabilities
- Add comprehensive test suite for API endpoints and services
- Update frontend components with improved GraphQL subscriptions and real-time updates
- Enhance security configurations and headers (CSP, CORS, etc.)
- Update documentation and configuration files
- Add new CI/CD workflows and validation scripts
- Implement design system improvements and UI enhancements
2025-12-12 18:01:35 -08:00
./setup-proxmox-agents.sh --site us-sfvalley --node ML110-01
2025-11-28 12:54:33 -08:00
# 4. Configure Cloudflare tunnels
./configure-cloudflare.sh
# 5. Validate installation
./validate.sh
```
### Ansible Deployment
For multi-site deployments, use Ansible:
```bash
cd ansible
cp inventory.example inventory
# Edit inventory with your hosts
ansible-playbook -i inventory site-playbook.yml
```
## Prerequisites
- Linux-based systems (Ubuntu 22.04+, RHEL 8+, Debian 11+)
- Root or sudo access
- Internet connectivity
- Kubernetes cluster (for component installation)
- Proxmox VE 8+ (for agent setup)
- Cloudflare account (for tunnel configuration)
## Script Details
### bootstrap-cluster.sh
Installs and configures Kubernetes cluster (RKE2 or k3s):
- System preparation
- Container runtime installation
- Kubernetes installation
- Network plugin configuration
- Storage class setup
### install-components.sh
Installs all control plane components:
- ArgoCD
- Rancher
- Crossplane
- Vault
- Monitoring stack
- Portal
### setup-proxmox-agents.sh
Configures Proxmox nodes:
- cloudflared installation
- Prometheus exporter installation
Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- Add comprehensive database migrations (001-024) for schema evolution
- Enhance API schema with expanded type definitions and resolvers
- Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth
- Implement new services: AI optimization, billing, blockchain, compliance, marketplace
- Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage)
- Update Crossplane provider with enhanced VM management capabilities
- Add comprehensive test suite for API endpoints and services
- Update frontend components with improved GraphQL subscriptions and real-time updates
- Enhance security configurations and headers (CSP, CORS, etc.)
- Update documentation and configuration files
- Add new CI/CD workflows and validation scripts
- Implement design system improvements and UI enhancements
2025-12-12 18:01:35 -08:00
### enable-guest-agent-existing-vms.sh
Enables QEMU guest agent on all existing VMs:
- Automatically discovers all nodes on each Proxmox site
- Discovers all VMs on each node
- Checks if guest agent is already enabled
- Enables guest agent on VMs that need it
- Provides summary statistics
**Usage:**
```bash
./scripts/enable-guest-agent-existing-vms.sh
```
**Features:**
- Dynamic node and VM discovery (no hardcoded VMIDs)
- Supports API token and password authentication
- Skips VMs that already have guest agent enabled
- Provides detailed progress and summary reports
### verify-guest-agent.sh
Verifies guest agent status on all VMs:
- Lists all VMs with their guest agent status
- Shows which VMs have guest agent enabled/disabled
- Provides per-node and per-site summaries
**Usage:**
```bash
./scripts/verify-guest-agent.sh
```
**Note:** New VMs created with the updated Crossplane provider automatically have guest agent enabled in Proxmox configuration (`agent=1` ). The guest agent package is also automatically installed via cloud-init userData.
### setup-dns-records.sh
Creates DNS records for Proxmox instances via Cloudflare API:
- A records for primary FQDNs
- CNAME records for API and metrics endpoints
- Automated record creation and verification
### create-proxmox-secret.sh
Creates Kubernetes secrets for Proxmox credentials:
- Interactive credential input
- Secret creation in crossplane-system namespace
- Verification of secret creation
### verify-provider-deployment.sh
Verifies Crossplane provider deployment:
- CRD existence check
- Provider deployment status
- Pod health and logs
- ProviderConfig status
- Credentials secret verification
### test-proxmox-connectivity.sh
Tests Proxmox instance connectivity:
- DNS resolution testing
- HTTP connectivity testing
- Authentication testing (with credentials)
- Version information retrieval
### deploy-crossplane-provider.sh
Automated deployment of Crossplane provider:
- Builds provider (optional)
- Installs CRDs
- Deploys provider to Kubernetes
- Verifies deployment status
### deploy-test-vms.sh
Deploys test VMs to both Proxmox instances:
- Deploys VM to Instance 1 (ML110-01)
- Deploys VM to Instance 2 (R630-01)
- Waits for VM creation
- Displays VM status
### setup-monitoring.sh
Sets up Prometheus and Grafana for Proxmox:
- Creates ServiceMonitor for Prometheus
- Configures scrape targets
- Creates alert rules
- Imports Grafana dashboards
### quick-deploy.sh
Interactive quick deployment script:
- Guides through all deployment steps
- Runs all deployment scripts in sequence
- Interactive prompts for each step
2025-11-28 12:54:33 -08:00
- Custom agent installation
- Service configuration
### configure-cloudflare.sh
Sets up Cloudflare tunnels:
- Tunnel creation
- Configuration deployment
- Service startup
- Health checks
### validate.sh
Validates installation:
- Component health checks
- API connectivity tests
- Resource availability
- Network connectivity