Files
homelab/cluster/platform/the-seas/application.yaml
Hermes Agent service account 95ae6919b0 feat(platform): add Harbor container registry (the-seas) deployment
- Add Harbor v2.15.1 (chart 1.19.1) deployment to wave 7
- Service name: the-seas (EPCOT: The Seas with Nemo & Friends)
- Architecture: Embedded PostgreSQL, embedded Redis, single instance
- Storage: NFS via nfs-emporium StorageClass (130Gi total)
- Expose via Gateway API with dual DNS names
- Primary: the-seas.local.mk-labs.cloud
- Alternate: harbor.local.mk-labs.cloud
- ExternalSecret for 1Password integration (6 secrets)
- All image tags pinned to 2.15.1
- Resource requests/limits configured for homelab
- Multi-source ArgoCD application pattern
- TLS certificates via cert-manager (Let's Encrypt)
- Metrics and Trivy scanning enabled

Components:
- Portal, Core, Registry, JobService (1 replica each)
- Embedded PostgreSQL and Redis
- NGINX reverse proxy
- Trivy vulnerability scanner
- Prometheus metrics exporter

Refs: /mnt/mk-labs-pka/tony-stark-inbox/harbor-phase1-deployment.md
2026-06-04 20:20:51 -05:00

40 lines
1.3 KiB
YAML

# ------------------------------------------------------------------------------
# Platform: the-seas (Harbor Container Registry)
# Wave 7 — depends on Gateway API (wave 4), cert-manager (wave 3), ESO (wave 1)
# Multi-source: Helm chart from upstream + values + manifests from repo
# ------------------------------------------------------------------------------
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: the-seas
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "7"
spec:
project: default
sources:
# Source 1: Helm chart from upstream Harbor repository
- repoURL: https://helm.goharbor.io
chart: harbor
targetRevision: 1.19.1
helm:
valueFiles:
- $values/cluster/platform/the-seas/values.yaml
# Source 2: Repo — values ref + ExternalSecret + HTTPRoutes + Certificates
- repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git
targetRevision: main
path: cluster/platform/the-seas
ref: values
directory:
exclude: "application.yaml"
destination:
server: https://kubernetes.default.svc
namespace: the-seas
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true