apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: molesignal-public
namespace: molesignal
spec:
parentRefs:
- name: molesignal-public
hostnames: [molesignal.example.com]
rules:
# External callbacks: external alerts, heartbeat check-ins, the Jira ticket webhook, on-call calendar subscriptions, Mole Agent in Teams, replies to texts and calls, automation API triggers, push sources
- matches:
- { path: { type: Exact, value: /api/v1/intake/alerts }, method: POST }
- { path: { type: PathPrefix, value: /api/v1/intake/heartbeats }, method: GET }
- { path: { type: PathPrefix, value: /api/v1/intake/heartbeats }, method: POST }
- { path: { type: PathPrefix, value: /api/v1/public/tickets/jira }, method: POST }
- { path: { type: PathPrefix, value: /api/v1/public/calendar }, method: GET }
- { path: { type: PathPrefix, value: /api/v1/public/im/teams }, method: POST }
- { path: { type: PathPrefix, value: /api/v1/public/notify }, method: POST }
- { path: { type: PathPrefix, value: /api/v1/public/automations }, method: POST }
- { path: { type: Exact, value: /api/v1/_kinesis_firehose }, method: POST }
- { path: { type: Exact, value: /api/v1/_cloudflare }, method: POST }
- { path: { type: Exact, value: /api/v1/_heroku }, method: POST }
backendRefs:
- { name: molesignal, port: 5080 }
# RUM: POST and the browser's CORS preflight
- matches:
- { path: { type: Exact, value: /api/v1/rum/events }, method: POST }
- { path: { type: Exact, value: /api/v1/rum/events }, method: OPTIONS }
- { path: { type: Exact, value: /api/v1/rum/replay }, method: POST }
- { path: { type: Exact, value: /api/v1/rum/replay }, method: OPTIONS }
backendRefs:
- { name: molesignal, port: 5080 }
# Synthetics Probe Agent artifact uploads
- matches:
- { path: { type: PathPrefix, value: /api/v1/synthetics/artifacts }, method: PUT }
backendRefs:
- { name: molesignal, port: 5080 }
# Status pages, resource sharing and their web files
- matches:
- { path: { type: PathPrefix, value: /status }, method: GET }
- { path: { type: PathPrefix, value: /api/v1/public/status-pages } }
- { path: { type: PathPrefix, value: /s }, method: GET }
- { path: { type: Exact, value: /shared }, method: GET }
- { path: { type: PathPrefix, value: /api/v1/public/share } }
- { path: { type: PathPrefix, value: /assets }, method: GET }
- { path: { type: Exact, value: /favicon.ico }, method: GET }
- { path: { type: Exact, value: /favicon.svg }, method: GET }
backendRefs:
- { name: molesignal, port: 5080 }