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-unmaintainedtwuni/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
| Requirement | Version |
|---|---|
| Kubernetes | ≥ 1.19 |
| Helm | ≥ 3.2 — both 3.x and 4.x supported |
| PersistentVolume support | Required if persistence.enabled is true |
| Gateway API CRDs | Required if networking.type: gateway |
What's next?
- Configuration reference — every value, grouped by concern
- Usage examples — auth, TLS, storage backends, HA, and more
- Testing — running the four-layer test suite locally and in CI
- Design decisions — Architecture Decision Records
- Changelog