diff --git a/cluster/applications/couchdb/ingress-public.yaml b/cluster/applications/couchdb/ingress-public.yaml new file mode 100644 index 0000000..410ff7e --- /dev/null +++ b/cluster/applications/couchdb/ingress-public.yaml @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------ +# FILE: cluster/applications/couchdb/ingress-public.yaml +# DESCRIPTION: External ingress for CouchDB — communicore.mk-labs.cloud only. +# Separate from the Helm-managed internal ingress so each cert +# has the correct CN for its hostname. CN validation in Obsidian +# Sync requires CN=communicore.mk-labs.cloud on the public cert. +# ------------------------------------------------------------------------------ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: couchdb-public + namespace: couchdb + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + external-dns.alpha.kubernetes.io/hostname: "communicore.mk-labs.cloud" + external-dns.alpha.kubernetes.io/target: "ingress.mk-labs.cloud" + external-dns.alpha.kubernetes.io/public: "true" +spec: + ingressClassName: nginx + rules: + - host: communicore.mk-labs.cloud + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: couchdb-svc-couchdb + port: + number: 5984 + tls: + - secretName: couchdb-tls-public + hosts: + - communicore.mk-labs.cloud diff --git a/cluster/applications/couchdb/values.yaml b/cluster/applications/couchdb/values.yaml index 0f8d1a7..1630b12 100644 --- a/cluster/applications/couchdb/values.yaml +++ b/cluster/applications/couchdb/values.yaml @@ -53,24 +53,21 @@ service: type: ClusterIP port: 5984 -# Ingress configuration +# Ingress configuration — internal only +# External access via separate ingress manifest (ingress-public.yaml) +# which carries its own cert with CN=communicore.mk-labs.cloud ingress: enabled: true className: nginx annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" external-dns.alpha.kubernetes.io/hostname: "communicore.local.mk-labs.cloud" - external-dns.alpha.kubernetes.io/target: "ingress.mk-labs.cloud" - # Opt in to public Cloudflare DNS — creates communicore.mk-labs.cloud -> ingress.mk-labs.cloud - external-dns.alpha.kubernetes.io/public: "true" hosts: - communicore.local.mk-labs.cloud - - communicore.mk-labs.cloud tls: - secretName: couchdb-tls hosts: - communicore.local.mk-labs.cloud - - communicore.mk-labs.cloud # Resource limits resources: