Description:
Let's say I have an HTTP Route and BackendTrafficPolicy that look like the following
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: BackendTrafficPolicy
metadata:
name: my-app
namespace: my-app
spec:
hostnames:
- api-external.cloud
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: cloud
namespace: cloud
rules:
- backendRefs:
- group: ""
kind: Service
name: my-app
port: 8000
weight: 1
matches:
- path:
type: Exact
value: /healthcheck
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
annotations:
meta.helm.sh/release-name: my-app
meta.helm.sh/release-namespace: my-app
name: my-app
namespace: my-app
spec:
hostnames:
- api-external.cloud
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: cloud
namespace: cloud
rules:
- backendRefs:
- group: ""
kind: Service
name: my-app
port: 8000
weight: 1
matches:
- path:
type: PathPrefix
value: /v1/my-app
When I debug the generated config within envoy gateway, I see the following
"health_checks": [
{
"timeout": "5s",
"interval": "5s",
"unhealthy_threshold": 1,
"healthy_threshold": 2,
"http_health_check": {
"host": "api-external.cloud",
"path": "/healthcheck",
"expected_statuses": [
{
"start": "200",
"end": "201"
}
],
"method": "GET"
}
}
],
And it leads to an error since the path /healthcheck is not exposed externally. I have a handful of questions
- Shouldn't envoy be able to look up this cluster locally instead of having to healthcheck through the host?
- If this is expected, is the expected workaround to expose an HTTPRoute/healthcheck publicly so that it can be accessed via envoy at this host?
[optional Relevant Links:]
Trying to follow: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/health_checking
And: https://gateway.envoyproxy.io/v0.6/design/backend-traffic-policy/
Description:
Let's say I have an HTTP Route and BackendTrafficPolicy that look like the following
When I debug the generated config within envoy gateway, I see the following
And it leads to an error since the path
/healthcheckis not exposed externally. I have a handful of questions[optional Relevant Links:]
Trying to follow: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/health_checking
And: https://gateway.envoyproxy.io/v0.6/design/backend-traffic-policy/