Architectural Decision Records (ADRs)
This directory contains the Architectural Decision Records (ADRs) for the OpenShift Agent-Based Installer Helper project. This utility provides automation and configuration management to simplify the usage of the OpenShift Agent-Based Installer.
What is an ADR?
An Architectural Decision Record (ADR) is a document that captures an important architectural decision made along with its context and consequences. It provides a record of what was decided, why it was decided, and how it impacts the project.
ADR Format
Each ADR follows a consistent format:
- Title and status
- Context
- Decision
- Consequences
- Implementation details
- Related documentation and test cases
Index
Active ADRs
- ADR-001: Agent-based Installation Approach
- Documents the foundational approach using OpenShift Agent-Based Installer
- Covers connected and disconnected scenarios
- Details platform support (baremetal, vsphere, none)
- ADR-002: Advanced Networking Configurations
- Details network architecture and configuration options
- Covers bonding, VLANs, and SR-IOV support
- Provides NMState configuration examples
- ADR-003: Ansible-based Automation
- Establishes automation strategy using Ansible
- Documents declarative vs manual approaches
- Details template management and configuration
- ADR-004: Disconnected Installation Support
- Comprehensive disconnected environment support
- Registry mirroring and certificate management
- Proxy and update service configuration
- ADR-005: ISO Creation and Asset Management
- Automated ISO generation process
- Standardized asset organization
- Post-installation instructions handling
- ADR-006: Testing and Execution Environment
- Comprehensive testing framework
- Dependency management
- Environment validation strategy
- ADR-007: Virtual Infrastructure Testing
- KVM/QEMU virtualization platform decisions
- Resource allocation strategies
- Network configuration approach
- BMC emulation implementation
- ADR-008: BMC Management and Automation
- BMC management through Redfish
- Infrastructure configuration automation
- Deployment and monitoring tools
- System integration approaches
- ADR-009: Testing Infrastructure and ISO Management
- ISO creation automation
- Testing framework architecture
- Environment management
- Monitoring and control systems
- ADR-010: Manifest Generation and Template Management
- Centralized manifest generation
- Template organization strategy
- Configuration management approach
- Platform-specific customization
- ADR-011: Identity Management Integration
- FreeIPA integration strategy
- DNS management automation
- Certificate lifecycle management
- Authentication and authorization approach
- ADR-012: Deployment Patterns and Reference Configurations
- Standardized deployment patterns
- Network configuration templates
- Platform-specific examples
- Scale and architecture variations
- ADR-013: End-to-End Testing Framework
- Environment management framework
- Testing components and validation
- Test execution orchestration
- Infrastructure setup and cleanup
Categories
Installation Strategy
- ADR-001: Agent-based Installation Approach
- ADR-003: Ansible-based Automation
- ADR-010: Manifest Generation and Template Management
- ADR-012: Deployment Patterns and Reference Configurations
Networking
- ADR-002: Advanced Networking Configurations
- ADR-012: Deployment Patterns and Reference Configurations
Automation & Installation
- ADR-003: Ansible-based Automation
- ADR-004: Disconnected Installation Support
- ADR-005: ISO Creation and Asset Management
- ADR-006: Testing and Execution Environment
Infrastructure & Testing
- ADR-007: Virtual Infrastructure Testing
- ADR-008: BMC Management and Automation
- ADR-009: Testing Infrastructure and ISO Management
- ADR-013: End-to-End Testing Framework
Configuration & Identity Management
Reference Architecture
Testing Framework
ADR States
ADRs can have the following states:
- Proposed: Under discussion
- Accepted: Approved and implemented
- Deprecated: No longer applicable but kept for historical record
- Superseded: Replaced by a newer ADR
Contributing
When creating a new ADR:
- Copy the template from an existing ADR
- Use the next available number in sequence
- Follow the established format
- Update this index with the new ADR
- Link related ADRs together