# Image Requirements for Remaining Steps

**Last Updated**: 2024-12-19

## Overview

This document identifies all ISO files, disk images, and OS templates needed for the remaining deployment and testing tasks.

## Current Image Status

### Images Available on Proxmox Instances

*(To be populated from API scan)*

### Images Referenced in Configuration

#### Test VM Manifests

1. **test-vm-instance-1.yaml** (ML110-01):
   - Image: *(Check manifest)*
   - Storage: *(Check manifest)*
   - Purpose: Test VM deployment on Instance 1

2. **test-vm-instance-2.yaml** (R630-01):
   - Image: *(Check manifest)*
   - Storage: *(Check manifest)*
   - Purpose: Test VM deployment on Instance 2

3. **vm-example.yaml**:
   - Image: *(Check manifest)*
   - Storage: *(Check manifest)*
   - Purpose: Example VM configuration

## Required Images by Task

### TASK-015: Deploy Test VMs via Crossplane

**Required**:
- OS template or ISO for VM creation
- Recommended: Ubuntu 22.04 Cloud Image or similar
- Format: qcow2, raw, or ISO

**Options**:
1. **Cloud Images** (Recommended for automation):
   - Ubuntu 22.04 Cloud Image
   - Debian 12 Cloud Image
   - CentOS Stream 9 Cloud Image

2. **ISO Files** (For manual installation):
   - Ubuntu 22.04 Server ISO
   - Debian 12 Netinst ISO
   - CentOS Stream 9 ISO

### TASK-016: End-to-End Testing

**Required**:
- Multiple OS images for testing:
  - Linux distribution (Ubuntu/Debian)
  - Windows Server (if needed)
  - Specialized images for testing

### TASK-019: Backup Procedures

**Required**:
- Test VM images for backup/restore testing
- Various OS types to test backup compatibility

## Image Sources

### Official Proxmox Templates

Proxmox provides official templates via:
- **Proxmox VE Web UI**: Local → Templates → Download
- **Command Line**: `pveam download <storage> <template>`

### Popular Templates

1. **Ubuntu**:
   ```bash
   pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.gz
   ```

2. **Debian**:
   ```bash
   pveam download local debian-12-standard_12.0-1_amd64.tar.gz
   ```

3. **CentOS**:
   ```bash
   pveam download local centos-stream-9-standard_9-1.x86_64.tar.gz
   ```

### Cloud Images

Download from official sources:
- **Ubuntu Cloud Images**: https://cloud-images.ubuntu.com/
- **Debian Cloud Images**: https://cdimage.debian.org/cdimage/cloud/
- **CentOS Cloud Images**: https://cloud.centos.org/

### ISO Files

Download from official sources:
- **Ubuntu**: https://ubuntu.com/download/server
- **Debian**: https://www.debian.org/CD/http-ftp/
- **CentOS**: https://www.centos.org/download/

## Image Download Scripts

### Download to Proxmox Storage

```bash
# On Proxmox node
STORAGE="local"  # or your storage pool name

# Download Ubuntu template
pveam download ${STORAGE} ubuntu-22.04-standard_22.04-1_amd64.tar.gz

# Download Debian template
pveam download ${STORAGE} debian-12-standard_12.0-1_amd64.tar.gz
```

### Upload ISO via Web UI

1. Log in to Proxmox Web UI
2. Go to: **Datacenter** → **Storage** → Select storage → **Content** → **Upload**
3. Upload ISO file

### Upload via API

```bash
# Upload ISO file
curl -k -H "Authorization: PVEAPIToken ${TOKEN}" \
  -F "filename=@ubuntu-22.04-server-amd64.iso" \
  "https://${PROXMOX_IP}:8006/api2/json/storage/${STORAGE}/upload"
```

## Image Inventory Checklist

### For ML110-01 (us-sfvalley)

- [ ] Ubuntu 22.04 Cloud Image or Template
- [ ] Debian 12 Cloud Image or Template
- [ ] (Optional) CentOS Stream 9 Image
- [ ] (Optional) ISO files for manual installation

### For R630-01 (us-sfvalley-2)

- [ ] Ubuntu 22.04 Cloud Image or Template
- [ ] Debian 12 Cloud Image or Template
- [ ] (Optional) CentOS Stream 9 Image
- [ ] (Optional) ISO files for manual installation

## Storage Requirements

### Minimum Storage Needed

- **Per Cloud Image**: ~500MB - 1GB
- **Per ISO File**: ~1GB - 4GB
- **Recommended**: 10GB+ free space for images

### Storage Locations

- **Local Storage**: `local` (default)
- **NFS Storage**: If configured
- **Ceph Storage**: If cluster storage is configured

## Next Steps

1. **Inventory Current Images**:
   ```bash
   ./scripts/list-proxmox-images.sh
   ```

2. **Download Missing Images**:
   - Use Proxmox Web UI or `pveam` command
   - Download to appropriate storage pools

3. **Update VM Manifests**:
   - Update image references in test VM manifests
   - Verify image names match actual files

4. **Verify Image Availability**:
   - Check images are accessible from both nodes
   - Test image can be used for VM creation

## Related Documentation

- [Task List](./TASK_LIST.md)
- [VM Provisioning Runbook](../runbooks/PROXMOX_VM_PROVISIONING.md)
- [Deployment Guide](./DEPLOYMENT_GUIDE.md)

