Files
k3s-cluster/nas/ingress.yaml

78 lines
1.8 KiB
YAML
Raw Normal View History

2026-06-23 00:31:04 +02:00
apiVersion: v1
kind: Namespace
metadata:
name: nas-proxy
---
2026-06-26 18:54:17 +02:00
# Standalone cert-manager Certificate for nas.rogi.casa (not owned by an Ingress,
# since cert-manager's ingress-shim would otherwise create one owned by the
# Ingress below and tie its lifecycle to it; keeping it standalone is cleaner).
2026-06-26 18:40:41 +02:00
apiVersion: cert-manager.io/v1
kind: Certificate
2026-06-23 00:31:04 +02:00
metadata:
2026-06-26 18:40:41 +02:00
name: nas-tls
2026-06-23 00:31:04 +02:00
namespace: nas-proxy
spec:
2026-06-26 18:40:41 +02:00
secretName: nas-tls
dnsNames:
- nas.rogi.casa
issuerRef:
group: cert-manager.io
kind: ClusterIssuer
name: letsencrypt-prod
usages:
- digital signature
- key encipherment
2026-06-26 18:25:29 +02:00
---
2026-06-26 18:54:17 +02:00
# Selector-less Service + manual Endpoints pointing at the NAS.
2026-06-26 19:01:08 +02:00
# (Endpoints is no longer excluded in argocd-cm, so ArgoCD manages it.)
2026-06-26 18:54:17 +02:00
apiVersion: v1
kind: Service
2026-06-23 00:26:29 +02:00
metadata:
2026-06-26 18:54:17 +02:00
name: synology-nas
2026-06-23 00:31:04 +02:00
namespace: nas-proxy
2026-06-23 00:26:29 +02:00
spec:
2026-06-26 18:54:17 +02:00
type: ClusterIP
clusterIP: None
ports:
- port: 5001
targetPort: 5001
protocol: TCP
2026-06-26 18:40:41 +02:00
---
2026-06-26 18:54:17 +02:00
apiVersion: v1
kind: Endpoints
2026-06-26 18:40:41 +02:00
metadata:
2026-06-26 18:54:17 +02:00
name: synology-nas
2026-06-26 18:40:41 +02:00
namespace: nas-proxy
2026-06-26 18:54:17 +02:00
subsets:
- addresses:
- ip: 10.88.30.10
ports:
- port: 5001
protocol: TCP
2026-06-26 18:40:41 +02:00
---
2026-06-26 19:01:08 +02:00
# Traefik IngressRoute (CRD provider) where scheme: https is a first-class
# field. The standard kubernetes Ingress `service.serversscheme` annotation is
# ignored for selector-less/Endpoints-backed services in Traefik v3, which
# caused Traefik to dial the NAS with plain HTTP -> 400 from DSM's nginx.
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
2026-06-26 18:40:41 +02:00
metadata:
2026-06-26 18:54:17 +02:00
name: nas
2026-06-26 18:40:41 +02:00
namespace: nas-proxy
spec:
2026-06-26 19:01:08 +02:00
entryPoints:
- websecure
routes:
- match: Host(`nas.rogi.casa`)
kind: Rule
services:
- kind: Service
name: synology-nas
namespace: nas-proxy
port: 5001
scheme: https
serversTransport: skip-verify
passHostHeader: true
2026-06-26 18:54:17 +02:00
tls:
2026-06-26 19:01:08 +02:00
secretName: nas-tls