Skip to the content.

ADR-009: Testing Infrastructure and ISO Management

Date

2025-03-09

Status

Accepted

Decision Makers

Context

The project requires a reliable and automated system for:

Considered Options

1. Manual ISO Creation and Testing

2. Third-party Testing Frameworks

3. Custom Testing Infrastructure (Selected)

Decision

Implement a comprehensive testing infrastructure with:

  1. Core Components
    hack/
    ├── create-iso.sh              # ISO generation
    ├── deploy-on-kvm.sh           # VM deployment
    ├── watch-and-reboot-kvm-vms.sh # VM monitoring
    ├── configure_dns_entries.sh    # DNS configuration
    └── deploy-freeipa.sh          # Identity management
       
    e2e-tests/
    ├── bootstrap_env.sh           # Environment setup
    ├── validate_env.sh            # Environment validation
    ├── run_e2e.sh                # Test orchestration
    └── delete_e2e.sh             # Environment cleanup
    
  2. ISO Management
    • Automated ISO creation
    • Configuration templating
    • Validation checks
    • Asset organization
  3. Testing Infrastructure
    • Environment setup
    • VM deployment
    • Network configuration
    • Monitoring systems

Implementation

ISO Creation Process

# ISO Generation Flow
1. Configuration Validation
   - Verify input parameters
   - Check dependencies
   - Validate templates

2. ISO Creation
   - Generate configuration
   - Create bootable ISO
   - Apply customizations
   - Validate output

3. Asset Management
   - Organize generated files
   - Track configurations
   - Maintain versions

Testing Infrastructure

# Test Environment Setup
1. Environment Bootstrap
   - System package installation
   - Tool configuration
   - Network setup
   - Service initialization

2. Infrastructure Deployment
   - VM creation
   - Network configuration
   - DNS setup
   - Identity management

3. Test Execution
   - Environment validation
   - Test case running
   - Result collection
   - Environment cleanup

Monitoring and Control

# Infrastructure Management
1. VM Monitoring
   - State tracking
   - Resource monitoring
   - Boot process validation
   - Error detection

2. Network Management
   - DNS configuration
   - Network validation
   - Connectivity testing
   - Route verification

Consequences

Positive

  1. Automated ISO generation
  2. Consistent test environments
  3. Reproducible processes
  4. Integrated monitoring
  5. Efficient resource management
  6. Comprehensive validation

Negative

  1. Setup complexity
  2. Resource requirements
  3. Maintenance overhead
  4. Technical expertise needed

Test Coverage

Basic Testing

  1. ISO creation validation
  2. Environment setup verification
  3. Network configuration testing
  4. VM deployment validation

Advanced Testing

  1. Disconnected installations
  2. Multi-node deployments
  3. Network scenarios
  4. Failure recovery