Skip to content

Define optimal multi-distro HA solution for the in-cluster registry #375

@jeff-mccoy

Description

@jeff-mccoy

Currently Zarf uses a helm chart to deploy a docker registry. This chart utilizes deployments with an optional PVC for persistence. We need to define a better solution for making the registry highly-available and fault-tolerant. This issue exists to facilitate that discussion.

Concerns:

  • Storage classes are cluster/distro-specific and a default storage class does not always exist
  • Using a simple deployment with multiple replicas requires a RWX access mode to tolerate Node failure/taints
  • Docker registry does support S3/Minio object storage, but that introduces a new complex dependency (Minio) or a vendor cloud dependency (AWS)
  • Pushing to a svc vs every running pod without RWX or S3-backed storage will create an inconsistent state of image availability. In other words one pod would have the pushed image, the others would not

Considerations:

  • Docker registry as an OCI Distribution Spec API makes it trivial to synchronize registries with tools we already have in Zarf such as Crane.
  • For HA we don't need a daemonset such as Kube-Fledged as 3+ registries distributed across nodes (if 3 nodes are available) would still provide HA
  • We have solved the initial lack of a registry issue with Distro-Agnostic Zarf Registry Bootstrap #329, so we can assume a seed registry will already exist in the cluster during bootstrapping

Metadata

Metadata

Assignees

No one assigned

    Labels

    v1.0.0Issues tracking toward Zarf v1.0.0

    Type

    No type

    Projects

    Status

    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions