- 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
40 lines
1.3 KiB
YAML
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
|