-
Epic
-
Resolution: Unresolved
-
Normal
-
None
-
None
-
None
-
None
-
Additional Image Store Support
-
To Do
-
Product / Portfolio Work
-
-
100% To Do, 0% In Progress, 0% Done
-
False
-
-
False
-
Not Selected
-
None
-
None
Goal
Enable configuration of additional read-only image store locations in CRI-O, allowing users to configure shared image caches on high-performance or network-attached storage. This addresses the problem where multiple nodes redundantly pull the same container images from external registries, wasting network bandwidth and slowing down container startup times.
Why is this important?
- Multiple cluster nodes redundantly pull identical container images from external registries, consuming network bandwidth
- Cannot leverage shared network storage (NFS) or high-performance storage (SSD) for pre-populated image caches
- Air-gapped and edge deployments need pre-populated images without registry access
- Container startup times suffer from repeated image pulls instead of using local caches
- Root filesystem space consumed by duplicate images that could be shared across nodes
Scenarios
- As a Cluster Admin, I want to pre-populate a read-only image cache on shared network storage (NFS), so that multiple nodes can share images without redundant pulls from external registries
- As an Edge Deployment Operator, I want to use SSD-backed storage for frequently-used base images, so that container startup is faster and doesn't consume root filesystem space
- As a Cluster Admin in an air-gapped environment, I want to pre-populate complete container images on nodes, so that pods can start without registry access
Acceptance Criteria
- CI - MUST be running successfully with tests automated
- Release Technical Enablement - Provide necessary release enablement details and documents
- ContainerRuntimeConfig API accepts additionalImageStores configuration with path field
- MCO generates correct storage.conf with additionalimagestores array in [storage.options] section
- container-libs/storage checks additional image stores first before pulling from registry
- Measurable container startup time improvement when using pre-populated image caches
- Feature works with shared storage (NFS) and high-performance storage (SSD)
- No regressions for standard image pulling behavior
- Feature behind TechPreviewNoUpgrade feature gate for OpenShift 4.22
- Clear documentation on image cache population strategies and storage configuration
Dependencies (internal and external)
- Upstream: container-libs/storage - additionalimagestores feature already GA and stable
- OpenShift: Enhancement proposal approval covering additionalLayerStores, additionalImageStores, and additionalArtifactStores API design
- OpenShift: API merge in openshift/api before MCO implementation
- Storage: Pre-populated image cache setup procedures for NFS/SSD storage
- Documentation: Customer documentation for image cache population and storage setup
- Related: OCPNODE-4050 (Additional Layer Store Support) - shares enhancement proposal and MCO implementation
- Related: OCPNODE-4051 (Additional Artifact Store Support) - shares enhancement proposal and MCO implementation
Previous Work (Optional):
- Proven pattern: containers/storage additionalimagestores feature (already implemented and stable upstream)
- Similar to RHEL/Podman additionalimagestores configuration
Open questions:
- Should we provide tooling or automation for populating image caches?
- What are the recommended storage configurations (NFS parameters, SSD mount options)?
- Should we implement image cache validation/health checks?
- How should customers handle image cache updates and lifecycle management?
- Should we support filtering which images go to which stores (similar to artifact stores)?
Done Checklist
- CI - CI is running, tests are automated and merged.
- Release Technical Enablement <link to Feature Enablement Presentation>
- DEV - Upstream code and tests merged: <already stable in container-libs/storage>
- DEV - Enhancement proposal merged: <link to openshift/enhancements PR>
- DEV - API changes merged: <link to openshift/api PR>
- DEV - MCO implementation merged: <link to openshift/machine-config-operator PR>
- DEV - Downstream build attached to advisory: <link to errata>
- QE - Test plans in Polarion: <link or reference to Polarion>
- QE - Automated tests merged: <link or reference to automated tests>
- QE - Performance validation with shared storage: <link to validation results>
- DOC - Downstream documentation merged: <link to documentation PR>
- is related to
-
OCPNODE-4052 Enhancement Proposal - Advanced Container Storage Configuration for CRI-O
-
- To Do
-
-
OCPNODE-4060 OpenShift API - Advanced Container Storage Configuration for CRI-O
-
- To Do
-
- links to