feat(couchdb): split internal/external ingress for correct CN per cert
- values.yaml: internal ingress only (communicore.local.mk-labs.cloud) CN=communicore.local.mk-labs.cloud, secret=couchdb-tls - ingress-public.yaml: external ingress (communicore.mk-labs.cloud) CN=communicore.mk-labs.cloud, secret=couchdb-tls-public ExternalDNS opt-in annotations for Cloudflare -> ingress.mk-labs.cloud Obsidian Sync connects externally via communicore.mk-labs.cloud; JARVIS traffic stays internal on communicore.local.mk-labs.cloud.
This commit is contained in:
34
cluster/applications/couchdb/ingress-public.yaml
Normal file
34
cluster/applications/couchdb/ingress-public.yaml
Normal file
@@ -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
|
||||||
@@ -53,24 +53,21 @@ service:
|
|||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
port: 5984
|
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:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
className: nginx
|
className: nginx
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
external-dns.alpha.kubernetes.io/hostname: "communicore.local.mk-labs.cloud"
|
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:
|
hosts:
|
||||||
- communicore.local.mk-labs.cloud
|
- communicore.local.mk-labs.cloud
|
||||||
- communicore.mk-labs.cloud
|
|
||||||
tls:
|
tls:
|
||||||
- secretName: couchdb-tls
|
- secretName: couchdb-tls
|
||||||
hosts:
|
hosts:
|
||||||
- communicore.local.mk-labs.cloud
|
- communicore.local.mk-labs.cloud
|
||||||
- communicore.mk-labs.cloud
|
|
||||||
|
|
||||||
# Resource limits
|
# Resource limits
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
Reference in New Issue
Block a user