fix(harbor): correct naming convention and use staging certs

- Rename application/namespace: the-seas -> harbor
- Move directory: cluster/platform/the-seas -> cluster/platform/harbor
- Update all resource references (ExternalSecret, HTTPRoutes, Certificates)
- Switch to letsencrypt-staging issuer (avoid ACME rate limits during testing)
- Thematic name 'the-seas' remains in DNS hostnames and comments
This commit is contained in:
Hermes Agent service account
2026-06-04 20:25:25 -05:00
parent 8f190eb188
commit 4b1e8a7cac
8 changed files with 34 additions and 32 deletions

View File

@@ -1,12 +1,13 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Platform: the-seas (Harbor Container Registry) # Platform: harbor (Container Registry)
# Theme: the-seas (EPCOT: The Seas with Nemo & Friends)
# Wave 7 — depends on Gateway API (wave 4), cert-manager (wave 3), ESO (wave 1) # 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 # Multi-source: Helm chart from upstream + values + manifests from repo
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: the-seas name: harbor
namespace: argocd namespace: argocd
annotations: annotations:
argocd.argoproj.io/sync-wave: "7" argocd.argoproj.io/sync-wave: "7"
@@ -19,17 +20,17 @@ spec:
targetRevision: 1.19.1 targetRevision: 1.19.1
helm: helm:
valueFiles: valueFiles:
- $values/cluster/platform/the-seas/values.yaml - $values/cluster/platform/harbor/values.yaml
# Source 2: Repo — values ref + ExternalSecret + HTTPRoutes + Certificates # Source 2: Repo — values ref + ExternalSecret + HTTPRoutes + Certificates
- repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git - repoURL: https://gitea.mk-labs.cloud/rblundon/homelab.git
targetRevision: main targetRevision: main
path: cluster/platform/the-seas path: cluster/platform/harbor
ref: values ref: values
directory: directory:
exclude: "application.yaml" exclude: "application.yaml"
destination: destination:
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
namespace: the-seas namespace: harbor
syncPolicy: syncPolicy:
automated: automated:
prune: true prune: true

View File

@@ -1,16 +1,16 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Certificate — Harbor Alternate TLS Certificate # Certificate — Harbor Alternate TLS Certificate (staging until stable)
# Alternate DNS: harbor.local.mk-labs.cloud # Alternate DNS: harbor.local.mk-labs.cloud
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: harbor-tls name: harbor-alt-tls
namespace: the-seas namespace: harbor
spec: spec:
secretName: harbor-tls secretName: harbor-alt-tls
issuerRef: issuerRef:
name: letsencrypt-prod name: letsencrypt-staging
kind: ClusterIssuer kind: ClusterIssuer
dnsNames: dnsNames:
- harbor.local.mk-labs.cloud - harbor.local.mk-labs.cloud

View File

@@ -1,16 +1,16 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Certificate — The Seas TLS Certificate # Certificate — Harbor TLS Certificate (staging until stable)
# Primary DNS: the-seas.local.mk-labs.cloud # Primary DNS: the-seas.local.mk-labs.cloud
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: the-seas-tls name: harbor-tls
namespace: the-seas namespace: harbor
spec: spec:
secretName: the-seas-tls secretName: harbor-tls
issuerRef: issuerRef:
name: letsencrypt-prod name: letsencrypt-staging
kind: ClusterIssuer kind: ClusterIssuer
dnsNames: dnsNames:
- the-seas.local.mk-labs.cloud - the-seas.local.mk-labs.cloud

View File

@@ -10,15 +10,15 @@
apiVersion: external-secrets.io/v1beta1 apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: the-seas-credentials name: harbor-credentials
namespace: the-seas namespace: harbor
spec: spec:
secretStoreRef: secretStoreRef:
kind: ClusterSecretStore kind: ClusterSecretStore
name: onepassword-connect name: onepassword-connect
refreshInterval: "1h" refreshInterval: "1h"
target: target:
name: the-seas-credentials name: harbor-credentials
creationPolicy: Owner creationPolicy: Owner
data: data:
- secretKey: HARBOR_ADMIN_PASSWORD - secretKey: HARBOR_ADMIN_PASSWORD

View File

@@ -1,12 +1,13 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# HTTPRoute — Harbor (Alternate) via Cilium Gateway # ------------------------------------------------------------------------------
# Alternate DNS: harbor.local.mk-labs.cloud # HTTPRoute — Harbor (Alternate) via Cilium Gateway
# Alternate DNS: harbor.local.mk-labs.cloud (functional name)
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
apiVersion: gateway.networking.k8s.io/v1 apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute kind: HTTPRoute
metadata: metadata:
name: harbor-alt name: harbor-alt
namespace: the-seas namespace: harbor
annotations: annotations:
external-dns.alpha.kubernetes.io/hostname: harbor.local.mk-labs.cloud external-dns.alpha.kubernetes.io/hostname: harbor.local.mk-labs.cloud
external-dns.alpha.kubernetes.io/target: "10.1.71.90" external-dns.alpha.kubernetes.io/target: "10.1.71.90"

View File

@@ -1,12 +1,12 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# HTTPRoute — The Seas (Primary) via Cilium Gateway # HTTPRoute — Harbor (Primary) via Cilium Gateway
# Primary DNS: the-seas.local.mk-labs.cloud # Primary DNS: the-seas.local.mk-labs.cloud (EPCOT theme)
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
apiVersion: gateway.networking.k8s.io/v1 apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute kind: HTTPRoute
metadata: metadata:
name: the-seas name: harbor-the-seas
namespace: the-seas namespace: harbor
annotations: annotations:
external-dns.alpha.kubernetes.io/hostname: the-seas.local.mk-labs.cloud external-dns.alpha.kubernetes.io/hostname: the-seas.local.mk-labs.cloud
external-dns.alpha.kubernetes.io/target: "10.1.71.90" external-dns.alpha.kubernetes.io/target: "10.1.71.90"
@@ -27,6 +27,6 @@ spec:
backendRefs: backendRefs:
- group: "" - group: ""
kind: Service kind: Service
name: the-seas name: harbor
port: 80 port: 80
weight: 1 weight: 1

View File

@@ -22,7 +22,7 @@ expose:
# Admin credentials from ExternalSecret # Admin credentials from ExternalSecret
harborAdminPassword: "" harborAdminPassword: ""
existingSecretAdminPassword: "the-seas-credentials" existingSecretAdminPassword: "harbor-credentials"
existingSecretAdminPasswordKey: "HARBOR_ADMIN_PASSWORD" existingSecretAdminPasswordKey: "HARBOR_ADMIN_PASSWORD"
# Disable internal TLS (Gateway terminates TLS) # Disable internal TLS (Gateway terminates TLS)
@@ -38,7 +38,7 @@ database:
tag: "v2.15.1" tag: "v2.15.1"
# Password from ExternalSecret # Password from ExternalSecret
password: "" password: ""
existingSecret: "the-seas-credentials" existingSecret: "harbor-credentials"
resources: resources:
requests: requests:
memory: 1Gi memory: 1Gi
@@ -61,7 +61,7 @@ redis:
tag: "v2.15.1" tag: "v2.15.1"
# Password from ExternalSecret # Password from ExternalSecret
jobservicePassword: "" jobservicePassword: ""
existingSecret: "the-seas-credentials" existingSecret: "harbor-credentials"
resources: resources:
requests: requests:
memory: 256Mi memory: 256Mi
@@ -130,7 +130,7 @@ core:
replicas: 1 replicas: 1
# Core secret from ExternalSecret # Core secret from ExternalSecret
secret: "" secret: ""
existingSecret: "the-seas-credentials" existingSecret: "harbor-credentials"
secretName: "CORE_SECRET" secretName: "CORE_SECRET"
# Enable HTTP/2 for better performance # Enable HTTP/2 for better performance
configureUserSettings: |- configureUserSettings: |-
@@ -153,7 +153,7 @@ jobservice:
replicas: 1 replicas: 1
# Job service secret from ExternalSecret # Job service secret from ExternalSecret
secret: "" secret: ""
existingSecret: "the-seas-credentials" existingSecret: "harbor-credentials"
existingSecretKey: "JOBSERVICE_SECRET" existingSecretKey: "JOBSERVICE_SECRET"
resources: resources:
requests: requests:
@@ -175,7 +175,7 @@ registry:
credentials: credentials:
username: "harbor_registry_user" username: "harbor_registry_user"
password: "" password: ""
existingSecret: "the-seas-credentials" existingSecret: "harbor-credentials"
resources: resources:
requests: requests:
memory: 1Gi memory: 1Gi