apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: molesignal-public
namespace: molesignal
spec:
parentRefs:
- name: molesignal-public
hostnames: [molesignal.example.com]
rules:
# 外部回调:外部告警、心跳打卡、Jira 的工单 Webhook、值班日历订阅、Teams 里的 Mole Agent、回复短信与电话按键、自动化的 API 触发、推送来源
- 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 }
# 用户体验:POST 和浏览器的 CORS 预检
- 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 }
# 拨测 Probe Agent 上传产物
- matches:
- { path: { type: PathPrefix, value: /api/v1/synthetics/artifacts }, method: PUT }
backendRefs:
- { name: molesignal, port: 5080 }
# 状态页、资源共享和它们的网页文件
- 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 }