HTTPRoute
| 필수 Secret | 오버레이 |
|---|---|
OPENAI_API_KEY, API_SERVER_KEY, WEBHOOK_SECRET |
values-httproute.yaml |
언제 사용하나요?¶
클러스터에 Gateway API CRD와 Gateway가 이미 있을 때 사용하세요.
httpRoute.parentRefs를 그 Gateway로 설정합니다. 이 차트는 Gateway API CRD를
설치하거나 Gateway를 만들지 않습니다.
설치¶
helm upgrade --install hermes-agent ./charts/hermes-agent \
--namespace hermes-agent --create-namespace \
-f charts/hermes-agent/values-httproute.yaml --wait
배포 전 조정¶
비어 있는 backendRefs[].name은 이 release의 Service를 대상으로 하므로
service.enabled: true가 필요합니다. 외부 Service로 라우팅할 때는 이름을
명시하세요. 암시적 backend가 존재하지 않는 Service를 가리키면 차트가 일찍 실패합니다.
하나의 HTTPRoute에서 hostnames는 모든 rule에 적용됩니다. API와 webhook rule을
hostname 단위로 분리해야 하면 별도의 HTTPRoute를 만드세요.
Ingress controller로 운영하는 클러스터에서는 Ingress를 사용하세요. 두 라우팅 리소스는 기본으로 꺼져 있으므로 host와 path마다 하나를 선택하세요.
전체 오버레이¶
charts/hermes-agent/values-httproute.yaml
# values-httproute.yaml
#
# Routes Hermes' API server and generic webhook receiver through a Gateway API
# HTTPRoute. The cluster must already have the Gateway API CRD and a Gateway
# named hermes-gateway. Create hermes-agent-listener-secrets with
# OPENAI_API_KEY, API_SERVER_KEY, and WEBHOOK_SECRET before installing. Do not
# commit real credentials.
#
# helm upgrade --install hermes-agent ./charts/hermes-agent \
# --namespace hermes-agent --create-namespace \
# -f charts/hermes-agent/values-httproute.yaml --wait
config:
model:
provider: openai-api
default: gpt-4o-mini
terminal:
backend: local
extraEnvFrom:
- secretRef:
name: hermes-agent-listener-secrets
apiServer:
enabled: true
host: 0.0.0.0
port: 8642
corsOrigins: "https://chat.example.com"
webhook:
enabled: true
port: 8644
service:
enabled: true
ports:
- name: api-server
port: 8642
- name: webhook
port: 8644
httpRoute:
enabled: true
parentRefs:
- name: hermes-gateway
sectionName: https
hostnames:
- api.example.com
- webhooks.example.com
rules:
- matches:
- path:
type: PathPrefix
value: /v1
backendRefs:
- port: 8642
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- port: 8644