Skip to main content

Docker Registry Helm Chart

A Helm chart for deploying a private Docker Registry (Distribution) on Kubernetes.

Fork notice. This is risadams/docker-registry.helm, a maintained fork of the now-unmaintained twuni/docker-registry.helm. It incorporates the actionable community pull requests and issues left open upstream. For versions prior to 4.0 see the upstream repository.

Installing

Via the Helm repository

helm repo add docker-registry https://risadams.github.io/docker-registry.helm
helm repo update
helm install my-registry docker-registry/docker-registry

Via the OCI registry (GHCR)

helm install my-registry oci://ghcr.io/risadams/docker-registry --version 4.0.1

Quick start

With the default ClusterIP service, port-forward and push:

kubectl port-forward svc/my-registry-docker-registry 5000:5000 &
docker tag my-image:latest localhost:5000/my-image:latest
docker push localhost:5000/my-image:latest
docker pull localhost:5000/my-image:latest

To expose the registry outside the cluster, configure httproute.parentRefs to attach to your Gateway — Gateway API is the default networking mode:

httproute:
parentRefs:
- name: my-gateway
namespace: gateway-system
sectionName: https
hostnames:
- registry.example.com

Prerequisites

RequirementVersion
Kubernetes≥ 1.19
Helm≥ 3.2 — both 3.x and 4.x supported
PersistentVolume supportRequired if persistence.enabled is true
Gateway API CRDsRequired if networking.type: gateway

What's next?