# FlowerCore MenuBoard — TLS + Ingress # Deployment and Service managed by deploy script (not ArgoCD) --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: menuboard-web-tls namespace: fc-menuboard spec: secretName: menuboard-web-tls issuerRef: name: step-ca-acme kind: ClusterIssuer dnsNames: - menuboard.iamworkin.lan --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: menuboard-web namespace: fc-menuboard spec: entryPoints: - websecure routes: - match: Host(`menuboard.iamworkin.lan`) kind: Rule services: - name: menuboard-web port: 80 tls: secretName: menuboard-web-tls # ---- PUBLIC HOST PRE-STAGING (DISABLED - Sprint 61+ exposure go-decision only) ---- # When the operator decides to expose menuboard-web publicly, uncomment + update the host, # then verify the five safe-to-expose gates (authentik-safe-to-expose-readiness-2026-06-07.md section 2). # # --- IngressRoute --- # apiVersion: traefik.io/v1alpha1 # kind: IngressRoute # metadata: # name: menuboard-web-public # namespace: fc-menuboard # spec: # entryPoints: [websecure] # routes: # - match: Host(`menuboard.flowercore.io`) && (Method(`GET`) || Method(`HEAD`)) # kind: Rule # middlewares: # - name: menuboard-web-public-profile-header # injects entitlement profile # services: # - name: menuboard-web # port: 80 # tls: {} # # POST/PUT/PATCH/DELETE miss every route -> Traefik 404 -> no admin writes on the public surface. # # Reference pattern: dist.flowercore.io (already live + method-gated; do not edit that one).