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 that were left open upstream. For versions prior to 4.0, see the upstream repository.
- Kubernetes 1.19+
- Helm 3.2+ — both Helm 3.x and 4.x are supported (CI tests the latest of each)
- PersistentVolume support (if persistence is required)
helm repo add docker-registry https://risadams.github.io/docker-registry.helm
helm repo update
helm install my-registry docker-registry/docker-registryhelm install my-registry oci://ghcr.io/risadams/docker-registry --version 4.0.2With 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:latestTo expose the registry outside the cluster, set httproute.parentRefs to
attach it to your Gateway (Gateway API is the default networking mode):
httproute:
parentRefs:
- name: my-gateway
namespace: gateway-systemFull documentation is available at https://risadams.github.io/docker-registry.helm/
| Topic | |
|---|---|
| Configuration reference | All values, grouped by concern, with detailed descriptions |
| Usage examples | Auth, TLS, storage backends, networking, HA, and more |
| Design decisions | Architecture Decision Records explaining the chart's defaults |
| Changelog | Release history (4.x+) |
helm test my-registryThe full multi-layer test suite (static analysis, helm-unittest, cluster
integration) lives under tests/ — see
tests/README.md.