# ------------------------------------------------------------------------------ # Harbor Helm Chart Values # Service: the-seas (The Seas with Nemo & Friends) # Architecture: Embedded PostgreSQL, embedded Redis, single instance # ------------------------------------------------------------------------------ # External URL for Harbor - primary DNS name externalURL: https://the-seas.local.mk-labs.cloud # Expose Harbor via Ingress (nginx-ingress controller) expose: type: ingress tls: enabled: true certSource: secret secret: secretName: harbor-tls notarySecretName: harbor-tls ingress: hosts: core: the-seas.local.mk-labs.cloud notary: notary-the-seas.local.mk-labs.cloud className: nginx annotations: cert-manager.io/cluster-issuer: letsencrypt-staging nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" # Admin credentials from ExternalSecret harborAdminPassword: "" existingSecretAdminPassword: "harbor-credentials" existingSecretAdminPasswordKey: "HARBOR_ADMIN_PASSWORD" # Disable internal TLS (Gateway terminates TLS) internalTLS: enabled: false # Embedded PostgreSQL configuration database: type: internal internal: image: repository: docker.io/goharbor/harbor-db tag: "v2.15.1" # Password auto-generated by Harbor Helm chart resources: requests: memory: 1Gi cpu: 500m limits: memory: 2Gi cpu: 2000m shmSizeLimit: 512Mi maxIdleConns: 100 maxOpenConns: 900 podAnnotations: {} podLabels: {} # Embedded Redis configuration redis: type: internal internal: image: repository: docker.io/goharbor/redis-photon tag: "v2.15.1" # Password auto-generated by Harbor Helm chart resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m podAnnotations: {} podLabels: {} # Storage configuration - use nfs-emporium StorageClass persistence: enabled: true resourcePolicy: "keep" persistentVolumeClaim: registry: storageClass: nfs-emporium accessMode: ReadWriteOnce size: 100Gi jobservice: jobLog: storageClass: nfs-emporium accessMode: ReadWriteOnce size: 5Gi database: storageClass: nfs-emporium accessMode: ReadWriteOnce size: 10Gi redis: storageClass: nfs-emporium accessMode: ReadWriteOnce size: 5Gi trivy: storageClass: nfs-emporium accessMode: ReadWriteOnce size: 10Gi # Image chart storage - use local filesystem (on PVC) imageChartStorage: disableredirect: false type: filesystem filesystem: rootdirectory: /storage # Portal (UI) configuration - single replica portal: image: repository: docker.io/goharbor/harbor-portal tag: "v2.15.1" replicas: 1 resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m podAnnotations: {} podLabels: {} # Core service configuration - single replica core: image: repository: docker.io/goharbor/harbor-core tag: "v2.15.1" replicas: 1 # Core secret auto-generated by Harbor Helm chart resources: requests: memory: 512Mi cpu: 500m limits: memory: 1Gi cpu: 1000m podAnnotations: {} podLabels: {} # Job service configuration - single replica jobservice: image: repository: docker.io/goharbor/harbor-jobservice tag: "v2.15.1" replicas: 1 # Job service secret auto-generated by Harbor Helm chart resources: requests: memory: 512Mi cpu: 500m limits: memory: 1Gi cpu: 1000m podAnnotations: {} podLabels: {} # Registry configuration - single replica registry: image: repository: docker.io/goharbor/registry-photon tag: "v2.15.1" replicas: 1 # Registry credentials auto-generated by Harbor Helm chart resources: requests: memory: 1Gi cpu: 500m limits: memory: 2Gi cpu: 1000m podAnnotations: {} podLabels: {} # Registry controller registryctl: image: repository: docker.io/goharbor/harbor-registryctl tag: "v2.15.1" resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m # Trivy vulnerability scanner trivy: enabled: true image: repository: docker.io/goharbor/trivy-adapter-photon tag: "v2.15.1" resources: requests: memory: 512Mi cpu: 500m limits: memory: 1Gi cpu: 1000m podAnnotations: {} podLabels: {} # Exporter for metrics exporter: image: repository: docker.io/goharbor/harbor-exporter tag: "v2.15.1" replicas: 1 resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m podAnnotations: {} podLabels: {} # Metrics configuration metrics: enabled: true core: path: /metrics port: 8001 registry: path: /metrics port: 8001 jobservice: path: /metrics port: 8001 exporter: path: /metrics port: 8001 # Cache configuration (for performance) cache: enabled: true expireHours: 24 # Update strategy updateStrategy: type: RollingUpdate # NGINX (proxy in front of Harbor) nginx: image: repository: docker.io/goharbor/nginx-photon tag: "v2.15.1" replicas: 1 resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m podAnnotations: {} podLabels: {}