# Infrastructure Management

Comprehensive infrastructure management for Sankofa Phoenix, including Proxmox VE, TP-Link Omada, network equipment, and other infrastructure components.

## Overview

This directory contains all infrastructure management components for the Sankofa Phoenix platform, enabling unified management of:

- **Proxmox VE**: Virtualization and compute infrastructure
- **TP-Link Omada**: Network controller and access point management
- **Network Infrastructure**: Switches, routers, VLANs, and network topology
- **Monitoring**: Infrastructure monitoring, exporters, and dashboards
- **Inventory**: Infrastructure discovery, tracking, and inventory management

## Architecture

```
infrastructure/
├── proxmox/              # Proxmox VE management
│   ├── api/             # Proxmox API clients and utilities
│   ├── terraform/       # Terraform modules for Proxmox
│   ├── ansible/         # Ansible roles and playbooks
│   └── scripts/         # Proxmox management scripts
├── omada/               # TP-Link Omada management
│   ├── api/             # Omada API client library
│   ├── terraform/       # Terraform provider/modules
│   ├── ansible/         # Ansible roles for Omada
│   └── scripts/         # Omada management scripts
├── network/              # Network infrastructure
│   ├── switches/        # Switch configuration management
│   ├── routers/         # Router configuration management
│   └── vlans/           # VLAN management and tracking
├── monitoring/           # Infrastructure monitoring
│   ├── exporters/       # Custom Prometheus exporters
│   └── dashboards/      # Grafana dashboards
└── inventory/           # Infrastructure inventory
    ├── discovery/        # Auto-discovery scripts
    └── database/         # Inventory database schema
```

## Components

### Proxmox VE Management

The Proxmox management components integrate with the existing Crossplane provider (`crossplane-provider-proxmox/`) and provide additional tooling for:

- Cluster management and monitoring
- Storage pool management
- Network bridge configuration
- Backup and restore operations
- Multi-site coordination

**See**: [Proxmox Management](./proxmox/README.md)

### TP-Link Omada Management

TP-Link Omada integration provides centralized management of:

- Omada Controller configuration
- Access point provisioning and management
- Network policies and SSID management
- Client device tracking
- Network analytics and monitoring

**See**: [Omada Management](./omada/README.md)

### Network Infrastructure

Network management components handle:

- Switch configuration (VLANs, ports, trunking)
- Router configuration (routing tables, BGP, OSPF)
- Network topology discovery
- Network policy enforcement

**See**: [Network Management](./network/README.md)

### Monitoring

Infrastructure monitoring includes:

- Custom Prometheus exporters for infrastructure components
- Grafana dashboards for visualization
- Alerting rules for infrastructure health
- Performance metrics collection

**See**: [Monitoring](./monitoring/README.md)

### Inventory

Infrastructure inventory system provides:

- Auto-discovery of infrastructure components
- Centralized inventory database
- Asset tracking and lifecycle management
- Configuration drift detection

**See**: [Inventory](./inventory/README.md)

## Integration with Sankofa Phoenix

All infrastructure management components integrate with the Sankofa Phoenix control plane:

- **Crossplane**: Infrastructure as Code via Crossplane providers
- **ArgoCD**: GitOps deployment of infrastructure configurations
- **Kubernetes**: Infrastructure management running on Kubernetes
- **API Gateway**: Unified API for infrastructure operations
- **Portal**: Web UI for infrastructure management

## Usage

### Quick Start

```bash
# Setup Proxmox management
cd infrastructure/proxmox
./scripts/setup-cluster.sh --site us-east-1

# Setup Omada management
cd infrastructure/omada
./scripts/setup-controller.sh --controller omada.sankofa.nexus

# Discover infrastructure
cd infrastructure/inventory
./discovery/discover-all.sh
```

### Ansible Deployment

```bash
# Deploy infrastructure management to all sites
cd infrastructure
ansible-playbook -i inventory.yml deploy-infrastructure.yml
```

### Terraform

```bash
# Provision infrastructure via Terraform
cd infrastructure/proxmox/terraform
terraform init
terraform plan
terraform apply
```

## Configuration

Infrastructure management components use environment variables and configuration files:

- **Environment Variables**: See `ENV_EXAMPLES.md` in project root
- **Secrets**: Managed via Vault
- **Site Configuration**: Per-site configuration in `gitops/infrastructure/`

## Security

All infrastructure management follows security best practices:

- API authentication via tokens and certificates
- Secrets management via Vault
- Network isolation via Cloudflare Tunnels
- RBAC for all management operations
- Audit logging for all changes

## Contributing

When adding new infrastructure management components:

1. Follow the directory structure conventions
2. Include comprehensive README documentation
3. Provide Ansible roles and Terraform modules
4. Add monitoring exporters and dashboards
5. Update inventory discovery scripts

## Related Documentation

- [System Architecture](../docs/system_architecture.md)
- [Datacenter Architecture](../docs/datacenter_architecture.md)
- [Deployment Plan](../docs/deployment_plan.md)
- [Crossplane Provider](../crossplane-provider-proxmox/README.md)

