This document provides a comprehensive overview of all configuration options available in the UDS Registry Helm chart.
Parameter Default Description replicaCount1Number of registry replicas to deploy
Parameter Default Description image.repositoryghcr.io/defenseunicorns/uds-registryContainer image repository image.tag0.20.1Container image tag image.pullPolicyIfNotPresentImage pull policy
Parameter Default Description package.gatewaytenantGateway configuration for the package package.hostregistryHostname for the registry service package.domain###ZARF_VAR_DOMAIN###Domain name (uses Zarf variable) package.useRootDomainfalseUse root domain instead of subdomain package.serviceMeshModeambientService mesh mode configuration
Default resource values are suitable for uds-core only. Increase for production workloads.
Parameter Default Description resources.requests.memory128MiMemory request resources.requests.cpu250mCPU request resources.limits.memory1GiMemory limit resources.limits.cpu750mCPU limit
Two storage backends are available:
filesystem - Uses persistent volumes for storage
s3 - Uses S3-compatible object storage
When haDatabase is enabled:
ociStorage must be set to s3
Database PVC creation is disabled
External database must be configured via database.connectionString
Parameter Default Options Description ociStoragefilesystemfilesystem, s3Storage backend for OCI artifacts haDatabasefalse- Enable HA database (requires S3 storage)
Parameter Default Options Description registry.logging.levelINFODEBUG, INFO, WARN, ERRORLog level
Use the classification banner to render a header and footer in the UI. The classification value sets the banner colors and, if no label is provided, the banner text. If you provide a label, it replaces the displayed text, so you must include the classification in the label if you want it shown (for example: CUI//EXERCISE USE ONLY). Providing only classification: CUI and label: EXERCISE USE ONLY displays only EXERCISE USE ONLY.
Parameter Default Options Description registry.classificationBanner.classification""UNCLASSIFIED, CUI, CONFIDENTIAL, SECRET, TOP SECRET, TOP SECRET//SCIRequired classification value used to set banner colors. registry.classificationBanner.label""- Optional label that overrides the displayed classification text.
Parameter Default Description registry.auth.access.admins["admin"]List of initial admin usernames registry.auth.publicOrgs.metadataAccess["public"]Organizations with UI access (no OCI access) registry.auth.publicOrgs.readAccess["library"]Organizations with UI access (auth required for OCI) registry.auth.webSession.duration8hUser session duration registry.auth.personalTokens.defaultExpiry720hDefault token expiry (30 days) registry.auth.personalTokens.maxExpiry4320hMaximum token expiry (180 days) registry.auth.serviceTokens.defaultExpiry1440hDefault token expiry (60 days) registry.auth.serviceTokens.maxExpiry8760hMaximum token expiry (365 days)
Parameter Default Description registry.scanner.enabledtrueEnable vulnerability scanning registry.scanner.updateInterval12hScanner database update interval registry.scanner.scanInterval24hImage scanning interval
Parameter Default Description registry.features.registryAnalyticsfalseEnable registry analytics registry.features.servePrivatetrueServe private repositories
Parameter Default Description persistence.database.pv.storageClassName""Storage class (empty = default) persistence.database.pv.accessModes["ReadWriteOnce"]Access modes persistence.database.pv.size256MiStorage size persistence.database.pv.annotations{}Persistent volume annotations persistence.database.pv.finalizers["kubernetes.io/pvc-protection"]Persistent volume finalizers persistence.database.pv.existingClaim""Use existing PVC persistence.database.pv.extraPvcLabels{}Extra PVC labels
Parameter Default Description persistence.registry.pv.storageClassName""Storage class (empty = default) persistence.registry.pv.accessModes["ReadWriteOnce"]Access modes persistence.registry.pv.size10GiStorage size persistence.registry.pv.annotations{}Persistent volume annotations persistence.registry.pv.finalizers["kubernetes.io/pvc-protection"]Persistent volume finalizers persistence.registry.pv.existingClaim""Use existing PVC persistence.registry.pv.extraPvcLabels{}Extra PVC labels
Set a secure random string for production deployments to ensure consistency across replicas.
Parameter Default Description distribution.http.secret""HTTP secret for upload resumption distribution.storage.filesystem.rootDirectory/app/data/registryRoot directory for registry data
Parameter Default Required Description distribution.storage.s3.regionus-west-1Yes AWS region distribution.storage.s3.regionEndpoint""No Custom S3 endpoint distribution.storage.s3.bucketuds-registryYes S3 bucket name distribution.storage.s3.rootDirectoryregistryNo Root directory in bucket distribution.storage.s3.securefalseNo Use HTTPS distribution.storage.s3.v4AuthtrueNo Use AWS Signature Version 4 distribution.storage.s3.chunkSize5242880No Chunk size for multipart uploads distribution.storage.s3.multipartCopyChunkSize33554432No Chunk size for multipart copy distribution.storage.s3.multipartCopyMaxConcurrency100No Max concurrency for multipart copy distribution.storage.s3.multipartCopyThresholdSize33554432No Threshold for multipart copy distribution.storage.s3.storageClassSTANDARDNo S3 storage class distribution.storage.s3.keyId""No AWS access key ID distribution.storage.s3.accessKey""No AWS secret access key distribution.storage.s3.sessionToken""No AWS session token
Parameter Default Options Description database.typesqlite3sqlite3, postgresDatabase type database.connectionStringfile:./db/registry.sqlite?_pragma=foreign_keys(1)- Database connection string
Parameter Default Description serviceAccount.annotations""Service account annotations podSecurityContext.runAsUser65532User ID to run pods podSecurityContext.runAsGroup65532Group ID to run pods podSecurityContext.fsGroup65532Filesystem group ID containerSecurityContext.runAsUser65532User ID for containers containerSecurityContext.runAsGroup65532Group ID for containers
SQLite (Default):
connectionString : " file:./db/registry.sqlite?_pragma=foreign_keys(1) "
PostgreSQL for Production:
connectionString : " postgres://user:password@host:5432/dbname?sslmode=require "
# Basic filesystem storage with logging
rootdirectory : " ./data/registry "
label : " CUI//EXERCISE USE ONLY "
# S3 storage with comprehensive settings
accesskey : " ${AWS_ACCESS_KEY} "
secretkey : " ${AWS_SECRET_KEY} "
# Optional: Custom S3 endpoint for S3-compatible storage
# regionendpoint: "https://custom.s3.endpoint"
# rootdirectory: "/registry"
# storageclass: "STANDARD"
blobdescriptor : " inmemory "
# OIDC authentication configuration
issuer : " https://sso.uds.dev/realms/uds "
clientSecret : " your-client-secret "
callbackUrl : " https://registry.example.com/uds/auth/callback "
# Optional: Custom scopes and claims
# username: "preferred_username"
# Authentication, token management, and session settings
cookieDomain : " example.com "
# Organizations with UI access (no OCI access)
# Organizations with UI access (auth required for OCI)
defaultExpiry : " 168h " # 7 days
maxExpiry : " 4320h " # 180 days
defaultExpiry : " 168h " # 7 days
maxExpiry : " 4320h " # 180 days
# Vulnerability scanner settings
scanInterval : " 1h " # More frequent for dev/test (default: 24h)
# Enable/disable registry features
strictPackageValidation : true
secret : " your-secure-random-string "
bucket : " my-registry-bucket "
accessKey : " your-access-key "
secretKey : " your-secret-key "
connectionString : " postgres://user:password@db-host:5432/registry "
# Comprehensive configuration combining multiple aspects
bucket : " production-registry "
accesskey : " ${AWS_ACCESS_KEY} "
secretkey : " ${AWS_SECRET_KEY} "
blobdescriptor : " inmemory "
secret : " production-secret-key "
issuer : " https://sso.company.com/realms/production "
clientId : " uds-registry-prod "
clientSecret : " ${OIDC_CLIENT_SECRET} "
callbackUrl : " https://registry.company.com/uds/auth/callback "
cookieDomain : " company.com "
- " registry-admin@company.com "
defaultExpiry : " 720h " # 30 days
maxExpiry : " 4320h " # 180 days
connectionString : " postgres://registry:${DB_PASSWORD}@db.company.com:5432/registry?sslmode=require "