2.1 KiB
Quay Helm chart
This chart runs the official Project Quay image and owns the registry Deployment, repository-mirror Deployment, Service, Ingress, and probes. It can also deploy PostgreSQL and Valkey through optional Bitnami subcharts. It does not create a second container image.
An S3-compatible object store and bucket are required. Provision them outside
this chart, then create a private config.yaml using
config.yaml.example. The file includes the database
URI, S3 credentials, Redis credentials, and two persistent Quay encryption
keys. Keep all of those out of Helm values and public Git. Store the file in a
Secret in the release namespace:
kubectl -n default create secret generic quay-config --from-file=config.yaml
Set quay.configSecretName to that Secret name. For an existing installation,
preserve its SECRET_KEY, DATABASE_SECRET_KEY, bucket, and database records.
The chart never creates or deletes S3 objects or buckets.
The optional PostgreSQL subchart is enabled with postgresql.enabled=true.
Use a durable storage class and stable postgresql.auth.existingSecret; the
database-password key must match the password inside Quay's DB_URI. The
chart also accepts an external PostgreSQL server with the subchart disabled.
Likewise, valkey.enabled=true installs a cache; keep the Redis hosts and
password in config.yaml aligned with either that subchart or your external
cache. Both dependencies are independently optional.
Published releases are available from the indexed Helm repository:
helm repo add brunner.ninja https://brunner.ninja/charts
helm repo update brunner.ninja
helm upgrade --install quay brunner.ninja/quay --namespace default \
--values values.yaml --wait --timeout 15m
For local development, run helm dependency build chart/quay and
bash chart/test.sh. Chart package versions derive from the actual Quay Git
release tag with git describe; Chart.yaml.appVersion is the tested upstream
image version. Homelab-specific values are in
homelab-gitops/apps/quay.