ShipperD provides a kubernetes native, simple human interface to upload and update arbitrary image collections via self contained offline carry friendly packages. This operator's primary function is to serve as a purpose built point of entry for disconnected container image uploading and publishing. The Koffer + ShipperD model was created to fill the restricted, disconnected, and airgap cluster use cases currently missing from the OCI Distribution Spec.
OCI distribution-spec disconnected bundle prototype reference builds are currently built by Koffer and driven by it's various plugin examples.
Active Field use cases and artifact types where this model is being practiced include:
- Local artifact mirror caching in connected cluster deployments (WAN bandwidth bottleneck remediation)
- Day Zero/One offline artifact image mirror for Restricted/Airgaped platform deployment.
- Day Two offline artifact image mirror augmentation, update, and upgrade
- For oci container images including Platfom Infra, Operator, and arbitrary application images
Some painpoints ShipperD attempts to address include pre-platform & pre-infrastructure blockers:
- need for unique image distribution approaches and inventiveness
- self serving images over nginx/registry service is a barrier to clean automation
- pre-priming (via skopeo or podman/docker pull/push cmds) does not scale
- fragmented approaches and patterns induce a wide range of outcomes and failure/troubleshooting vectors which significantly lengthen runway to success from environment to environment and version to version
- Universal Gather format (ee - oo - Gee) aka Prototype Proposal OCI Distribution Spec Disconnected RFE POC
- Enablement support for all image types including:
- Red Hat OpenShift Platform Container Images (by name@sha:digest)
- RedHat Operators Catalog Container Images (by name@sha:digest)
- Arbitrary Container Image Lists (by name@sha:digest and/or name:tag)
- Serving via UGF bundle Supportible via RH OCP IPI Bootstrap capability
- Deploy Time & Post Deploy Cluster/Operator/Application serve / update / upgrade via UGF
- Automated squashfs bundle unpack & upload
- UGF Bundle upload via http(s) enabled
- UGF Bundle upload via
oc rsync
enabled - OCP Cluster Internal Registry as first MVP
- Path to support cluster external & on cluster alternate registries (harbor/quay/etc)
- Path to support action on bundle metadata from upload/unpack/push event (webhook, etc)