Add initial Harbor Helm chart and application configuration

This commit is contained in:
Marco van Zijl 2025-11-08 21:51:13 +01:00
parent b5315d9d53
commit 37e8b42987
3 changed files with 141 additions and 0 deletions

7
apps/harbor/Chart.yaml Normal file
View File

@ -0,0 +1,7 @@
apiVersion: v2
name: harbor
version: 0.1.0
dependencies:
- name: harbor
version: 1.18.0
repository: https://helm.goharbor.io

View File

@ -0,0 +1,38 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: harbor
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://git.mvzijl.nl/marco/veda.git
targetRevision: applicationset-rewrite
path: apps/harbor
helm:
releaseName: harbor
valueFiles:
- values.yaml
destination:
server: https://kubernetes.default.svc
namespace: harbor
ignoreDifferences:
- group: gateway.networking.k8s.io
kind: HTTPRoute
jsonPointers:
- /spec/parentRefs/0/group
- /spec/parentRefs/0/kind
- /spec/rules/0/backendRefs/0/group
- /spec/rules/0/backendRefs/0/kind
- /spec/rules/0/backendRefs/0/weight
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true

96
apps/harbor/values.yaml Normal file
View File

@ -0,0 +1,96 @@
harbor:
expose:
type: route
tls:
enabled: false
route:
# Attach to your Traefik Gateway + HTTPS listener
parentRefs:
- name: traefik-gateway # your Gateway name
namespace: traefik # Gateway namespace
sectionName: websecure # listener name on the Gateway
hosts:
- harbor.noxxos.nl # external hostname for Harbor
# What Harbor advertises to clients (docker login/push)
externalURL: https://harbor.noxxos.nl
# Single-writer PVCs: roll pods with Recreate to avoid multi-writer needs
updateStrategy:
type: Recreate
# Persistence via PVCs
persistence:
enabled: true
imageChartStorage:
type: filesystem
persistentVolumeClaim:
registry:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 100Gi
database:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 10Gi
redis:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 2Gi
jobservice:
jobLog:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 2Gi
trivy:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 10Gi
# Keep replicas at 1 for components that write to RWO PVCs
core:
replicas: 1
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 512Mi
registry:
replicas: 1
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 512Mi
portal:
replicas: 1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
memory: 256Mi
jobservice:
replicas: 1
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 512Mi
trivy:
replicas: 1
resources:
requests:
cpu: 200m
memory: 512Mi
limits:
memory: 1Gi
harborAdminPassword: "harboradmin"