ADR-004: Disconnected Installation Support
Date
2025-03-09
Status
Accepted
Decision Makers
- OpenShift Platform Team
- Security Team
Context
Many enterprise environments require the ability to install OpenShift in air-gapped or disconnected networks. This requires:
- Local registry mirroring
- Certificate management
- Proxy configuration
- Update service configuration
Considered Options
1. Basic Disconnected Support
- Pros:
- Simple implementation
- Basic mirroring only
- Cons:
- Limited functionality
- Manual certificate management
- No update service support
2. Comprehensive Disconnected Support (Selected)
- Pros:
- Full registry mirroring
- Automated certificate management
- Proxy configuration support
- Update service integration
- Cons:
- More complex setup
- Additional configuration required
- Certificate management overhead
Decision
Implement comprehensive disconnected installation support with:
- Registry Mirroring Configuration
```yaml
disconnected_registries:
- target: disconn-harbor.d70.kemo.labs/quay-ptc/openshift-release-dev/ocp-release source: quay.io/openshift-release-dev/ocp-release
- target: disconn-harbor.d70.kemo.labs/quay-ptc/openshift-release-dev/ocp-v4.0-art-dev source: quay.io/openshift-release-dev/ocp-v4.0-art-dev ```
- Certificate Management
- Additional trust bundle support
- ConfigMap-based certificate distribution
- Update service registry certificates
- Proxy Configuration
proxy: http_proxy: http://192.168.42.31:3128 https_proxy: http://192.168.42.31:3128 no_proxy: - .svc.cluster.local - .kemo.network
Implementation
Post-Deployment Configuration
- Trust Bundle Configuration
apiVersion: v1 kind: ConfigMap metadata: name: additional-trust-bundle namespace: openshift-config data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- [certificate data] -----END CERTIFICATE-----
- Proxy Configuration
apiVersion: config.openshift.io/v1 kind: Proxy metadata: name: cluster spec: trustedCA: name: 'additional-trust-bundle'
- Image Registry Configuration
spec: additionalTrustedCA: name: additional-trust-bundle
Integration Points
- Registry Mirroring
- ImageTagMirrorSet support
- ImageDigestMirrorSet configuration
- Local registry setup
- Update Service
- Local update service configuration
- Certificate management
- Repository mirroring
Consequences
Positive
- Support for air-gapped environments
- Secure certificate management
- Flexible proxy configuration
- Automated update service integration
Negative
- Additional setup complexity
- Certificate management overhead
- More configuration to maintain
Validation
Configuration Validation
- Certificate validation
- Registry connectivity tests
- Proxy configuration verification
- Update service validation
Related
- Installation Guide
- ADR-001: Agent-based Installation
- ADR-003: Ansible Automation
- External: OCP4 Disconnected Helper
Notes
Key considerations for implementation:
- Security implications
- Certificate lifecycle management
- Registry synchronization
- Network requirements
- Update service maintenance
Automated through Ansible playbooks: ``` playbooks/templates/ ├── imagedigestmirrorset.yml.j2 └── updateservice.yml.j2