You are viewing documentation for Cozystack next, which is currently in beta. For the latest stable version, see the v1.4 documentation.

Managed Harbor Container Registry

Harbor is an open-source trusted cloud-native registry project that stores, signs, and scans content.

Prerequisites

The Cozystack Harbor app stores its registry data exclusively in S3-compatible object storage: the chart pins the registry backend to S3 and exposes no filesystem option. That bucket is provisioned through COSI (objectstorage.k8s.io) from a SeaweedFS deployment, so before deploying Harbor the tenant must have SeaweedFS available — enabled on the same tenant or inherited from a parent tenant (the resolved class is propagated down the tenant tree, surfaced as the namespace.cozystack.io/seaweedfs namespace annotation).

Enable it by setting seaweedfs: true on the tenant (or a parent tenant):

seaweedfs: true

Without object storage in the tenant chain, Harbor cannot provision its registry bucket: the <release>-registry BucketClaim/BucketAccess never produces the <release>-registry-bucket credentials secret, so the Harbor HelmRelease stays unreconciled, waiting on BucketInfo.

storageClass is annotated as immutable in the chart schema — see docs/storage-immutability.md for the contract and which consumers enforce it.

Parameters

Common parameters

NameDescriptionTypeValue
hostHostname for external access to Harbor (defaults to ‘harbor’ subdomain for the tenant host).string""
storageClassStorageClass used to store the data.string""

Component configuration

NameDescriptionTypeValue
coreCore API server configuration.object{}
core.resourcesExplicit CPU and memory configuration. When omitted, the preset defined in resourcesPreset is applied.object{}
core.resources.cpuNumber of CPU cores allocated.quantity""
core.resources.memoryAmount of memory allocated.quantity""
core.resourcesPresetDefault sizing preset used when resources is omitted.stringt1.small
registryContainer image registry configuration.object{}
registry.resourcesExplicit CPU and memory configuration. When omitted, the preset defined in resourcesPreset is applied.object{}
registry.resources.cpuNumber of CPU cores allocated.quantity""
registry.resources.memoryAmount of memory allocated.quantity""
registry.resourcesPresetDefault sizing preset used when resources is omitted.stringt1.small
jobserviceBackground job service configuration.object{}
jobservice.resourcesExplicit CPU and memory configuration. When omitted, the preset defined in resourcesPreset is applied.object{}
jobservice.resources.cpuNumber of CPU cores allocated.quantity""
jobservice.resources.memoryAmount of memory allocated.quantity""
jobservice.resourcesPresetDefault sizing preset used when resources is omitted.stringt1.nano
trivyTrivy vulnerability scanner configuration.object{}
trivy.enabledEnable or disable the vulnerability scanner.booltrue
trivy.sizePersistent Volume size for vulnerability database cache.quantity5Gi
trivy.resourcesExplicit CPU and memory configuration. When omitted, the preset defined in resourcesPreset is applied.object{}
trivy.resources.cpuNumber of CPU cores allocated.quantity""
trivy.resources.memoryAmount of memory allocated.quantity""
trivy.resourcesPresetDefault sizing preset used when resources is omitted.stringt1.nano
databasePostgreSQL database configuration.object{}
database.sizePersistent Volume size for database storage.quantity5Gi
database.replicasNumber of database instances.int2
redisRedis cache configuration.object{}
redis.sizePersistent Volume size for cache storage.quantity1Gi
redis.replicasNumber of Redis replicas.int2