-
Spike
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
Description
Validate feasibility of introducing OSImageStream to MCO, enabling per-pool OS image stream selection from release metadata.
Outcome
Stream Extraction from Release Image
- Successfully extracts ImageStream from /release-manifests/image-references in release image layers
- Parses image labels (io.coreos.oscontainerimage.osstream) to identify stream associations
- Groups OS/Extensions images by stream name
- Implementation: pkg/controller/osimagestream/imagestream_provider.go, imagestream_osimages.go
Multiple Source Support
- Three sources with precedence: CLI args → ImageStream → ConfigMap
- StreamSource interface allows composition and merging
- Maintains backward compatibility with existing machine-config-osimageurl ConfigMap
- Implementation: pkg/controller/osimagestream/osimagestream.go
API Design
- v1alpha1 singleton OSImageStream resource (name: "cluster")
- Status-driven: operator populates available streams, users select via MachineConfigPool
- Feature-gated behind OSStreams
- Added spec.osImageStream field to MachineConfigPool
PR: https://github.com/openshift/machine-config-operator/pull/5381