ADR-005: ISO Creation and Asset Management
Date
2025-03-09
Status
Accepted
Decision Makers
- OpenShift Platform Team
- Automation Team
Context
The OpenShift Agent-Based Installer requires a bootable ISO image containing all necessary configurations. Managing the creation of these ISOs and related assets requires:
- Consistent asset organization
- Automated ISO generation
- Clear post-installation instructions
- Support for multiple cluster configurations
Considered Options
1. Manual ISO Creation
- Pros:
- Direct control over process
- No automation overhead
- Cons:
- Error-prone
- Time-consuming
- Inconsistent results
- Poor scalability
2. Automated ISO Creation with Asset Management (Selected)
- Pros:
- Consistent results
- Automated generation
- Organized asset storage
- Clear instructions
- Support for multiple clusters
- Cons:
- Additional script maintenance
- Storage space requirements
- Initial setup complexity
Decision
Implement an automated ISO creation and asset management system with:
- Standardized Directory Structure
${GENERATED_ASSET_PATH}/ └── ${CLUSTER_NAME}/ ├── agent.x86_64.iso ├── auth/ │ ├── kubeconfig │ └── kubeadmin-password └── post-install-instructions.txt
- Configurable Asset Locations
SITE_CONFIG_DIR="${SITE_CONFIG_DIR:-examples}" GENERATED_ASSET_PATH="${GENERATED_ASSET_PATH:-${HOME}/generated_assets}"
- One-Command ISO Creation
./hack/create-iso.sh $FOLDER_NAME
Implementation
Script Flow
1. Validate environment and inputs
2. Download OpenShift binaries if needed
3. Extract cluster configuration
4. Template manifests with Ansible
5. Generate ISO
6. Create post-installation instructions
Configuration Structure
examples/
├── baremetal-example/
│ ├── cluster.yml
│ └── nodes.yml
└── vmware-example/
├── cluster.yml
└── nodes.yml
Validation Steps
- Directory existence checks
- Configuration validation
- Binary availability verification
- Asset path management
Asset Generation
- Manifests
- Generated via Ansible templating
- Based on cluster.yml and nodes.yml
- Stored in cluster-specific directory
- ISO Creation
- Uses openshift-install agent
- Includes all configurations
- Generates bootable image
- Instructions
- Generated automatically
- Includes next steps
- Contains access credentials
- Saved for reference
Consequences
Positive
- Consistent ISO generation
- Organized asset management
- Clear documentation
- Repeatable process
- Multiple cluster support
Negative
- Storage space requirements
- Script maintenance overhead
- Additional dependencies
Validation
Pre-flight Checks
- Binary availability
- Configuration presence
- Directory permissions
Post-generation Validation
- ISO file existence
- Authentication files
- Instructions generation
Related
Notes
Key aspects:
- Asset organization
- Error handling
- User guidance
- Resource management
- Security considerations
Generated assets include:
- Bootable ISO
- Authentication details
- Access instructions
- Configuration backups