Files
quay-kubernetes/chart
feedc0de 3335a6956f
Validate, publish and promote Quay chart / chart (push) Failing after 21s
Validate and deploy Quay / Downtime deployment (push) Successful in 19s
Validate and deploy Quay / Validate manifest (push) Successful in 11s
Publish reusable Quay chart with optional PostgreSQL and Valkey
2026-10-20 08:54:24 +02:00
..

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.