alert-bridge: switch ingress from HTTPS to plain HTTP
Some checks failed
validate / lint (push) Failing after 1s

Callers on the LAN (e.g. nik-gpu) don't trust this cluster's internal CA,
and installing it everywhere was judged not worth it for a LAN-only,
bearer-token-authenticated endpoint. Drops the internal-CA Certificate and
switches the IngressRoute from websecure to the web entrypoint.
This commit is contained in:
Nik Afiq 2026-08-01 23:00:06 +09:00
parent 85cc8494fa
commit 6277c7fa33
2 changed files with 14 additions and 25 deletions

View File

@ -61,7 +61,7 @@ Public services under `nik4nao.com` use Let's Encrypt.
| `https://ha.home.arpa` | Home Assistant | Internal CA | | `https://ha.home.arpa` | Home Assistant | Internal CA |
| `https://glances.home.arpa` | Glances on K3s | Internal CA | | `https://glances.home.arpa` | Glances on K3s | Internal CA |
| `https://glances-debian.home.arpa` | Glances on Debian | Internal CA | | `https://glances-debian.home.arpa` | Glances on Debian | Internal CA |
| `https://alert-bridge.home.arpa` | Alert bridge (Discord webhook relay) | Internal CA | | `http://alert-bridge.home.arpa` | Alert bridge (Discord webhook relay) | Plain HTTP |
| `https://watch-party.nik4nao.com` | Watch Party on Mac Mini | Let's Encrypt | | `https://watch-party.nik4nao.com` | Watch Party on Mac Mini | Let's Encrypt |
| `https://nik4nao.com` | Portfolio | Let's Encrypt | | `https://nik4nao.com` | Portfolio | Let's Encrypt |
| `http://ca.home.arpa` | Internal CA installer | Plain HTTP | | `http://ca.home.arpa` | Internal CA installer | Plain HTTP |

View File

@ -1,26 +1,17 @@
# Apply: kubectl apply -f manifests/home-services/alert-bridge-ingress.yaml # Apply: kubectl apply -f manifests/home-services/alert-bridge-ingress.yaml
# Delete: kubectl delete -f manifests/home-services/alert-bridge-ingress.yaml # Delete: kubectl delete -f manifests/home-services/alert-bridge-ingress.yaml
# Description: Internal-CA TLS certificate and Traefik IngressRoute for # Description: Plain-HTTP Traefik IngressRoute for alert-bridge at
# alert-bridge at alert-bridge.home.arpa, so a caller elsewhere on the home # alert-bridge.home.arpa, so a caller elsewhere on the home network (not
# network (not inside the k8s cluster, e.g. a cronjob on another LAN host) can # inside the k8s cluster, e.g. a cronjob on another LAN host) can reach
# reach POST /alerts. Modeled on manifests/authentik/authentik-ingress.yaml's # POST /alerts. Deliberately plain HTTP, not internal-CA TLS like
# shape (internal-ca-issuer + websecure entrypoint) rather than # authentik-ingress.yaml/ha.home.arpa - callers (e.g. nik-gpu) don't have this
# alexa-bridge-public-ingress.yaml's letsencrypt-prod pattern, since this is # cluster's internal CA trusted, and the alternative (installing it via
# not exposed to the public internet - LAN-only, same trust tier as Argo CD, # ca.home.arpa on every caller) was judged not worth it for a LAN-only,
# Traefik's own dashboard, etc. # already-bearer-token-authenticated endpoint. The `/alerts` bearer token
apiVersion: cert-manager.io/v1 # therefore travels in cleartext on the LAN - accepted tradeoff, not an
kind: Certificate # oversight. Revisit (switch back to websecure + internal-ca-issuer, see git
metadata: # history for the prior version) if this ever needs to be reachable from
name: alert-bridge-tls # somewhere less trusted than the home LAN.
namespace: home-services
spec:
secretName: alert-bridge-tls
issuerRef:
name: internal-ca-issuer
kind: ClusterIssuer
dnsNames:
- alert-bridge.home.arpa
---
apiVersion: traefik.io/v1alpha1 apiVersion: traefik.io/v1alpha1
kind: IngressRoute kind: IngressRoute
metadata: metadata:
@ -28,12 +19,10 @@ metadata:
namespace: home-services namespace: home-services
spec: spec:
entryPoints: entryPoints:
- websecure - web
routes: routes:
- match: Host(`alert-bridge.home.arpa`) - match: Host(`alert-bridge.home.arpa`)
kind: Rule kind: Rule
services: services:
- name: alert-bridge - name: alert-bridge
port: 8080 port: 8080
tls:
secretName: alert-bridge-tls