Hi,
I was trying to reach an external endpoint with EndpointSlice and was wondering if I need to tune my GatewayParameters to make it work?
I’m aware that ExternalName services are not supported by the Gateway API.
This example was working fine with Envoy Gateway (GatewayClass), however:
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: airlock-microgateway
spec:
controllerName: microgateway.airlock.com/gatewayclass-controller
---
apiVersion: v1
kind: Namespace
metadata:
name: ergon-external-service
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: eg-ergon-external-service
namespace: ergon-external-service
spec:
infrastructure:
parametersRef:
group: microgateway.airlock.com
kind: GatewayParameters
name: gatewayparameters
gatewayClassName: airlock-microgateway
listeners:
- name: http
hostname: www.ergon.ch
protocol: HTTP
port: 4447
---
apiVersion: microgateway.airlock.com/v1alpha1
kind: GatewayParameters
metadata:
name: gatewayparameters
namespace: ergon-external-service
spec:
logging:
level: info
kubernetes:
service:
type: LoadBalancer
externalTrafficPolicy: Cluster
deployment:
replicas: 1
placement: {}
engineContainer: {}
automountServiceAccountToken: false
---
apiVersion: v1
kind: Service
metadata:
name: verapp
namespace: ergon-external-service
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
name: https
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: verapp
namespace: ergon-external-service
labels:
kubernetes.io/service-name: verapp
addressType: FQDN
ports:
- name: https
protocol: TCP
port: 443
endpoints:
- addresses:
- www.ergon.ch
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: verapp
namespace: ergon-external-service
spec:
parentRefs:
- name: eg-ergon-external-service
hostnames:
- www.ergon.ch
rules:
- backendRefs:
- group: ""
kind: Service
name: verapp
port: 443
weight: 1
matches:
- path:
type: PathPrefix
value: /
---
apiVersion: gateway.networking.k8s.io/v1alpha3
kind: BackendTLSPolicy
metadata:
name: verapp-ext-btls
namespace: ergon-external-service
spec:
targetRefs:
- group: ''
kind: Service
name: verapp
sectionName: https
validation:
wellKnownCACertificates: System
hostname: www.ergon.ch
The request:
curl -I -H "Host: www.ergon.ch" --resolve "www.ergon.ch:4447:127.0.0.1" http://www.ergon.ch:4447
HTTP/1.1 503 Service Unavailable
content-length: 51
content-type: text/plain
x-frame-options: SAMEORIGIN
strict-transport-security: max-age=31536000
content-security-policy: default-src 'self'; img-src *
x-content-type-options: nosniff
referrer-policy: same-origin
permissions-policy: accelerometer=(self), ambient-light-sensor=(self), autoplay=(self), camera=(self), display-capture=(self), document-domain=(self), encrypted-media=(self), fullscreen=(self), geolocation=(self), gyroscope=(self), magnetometer=(self), microphone=(self), midi=(self), payment=(self), usb=(self), xr-spatial-tracking=(self)
date: Wed, 18 Jun 2025 18:11:44 GMT
The logs show upstream_reset_before_response_started{remote_connection_failure|delayed_connect_error:_Connection_refused
:
{"network":{"forwarded_ip":"10.244.0.1"},"@timestamp":"2025-06-18T18:11:45.326+0000","log":{"level":"info","logger":"access"},"destination":{"port":4447,"ip":"10.244.0.33"},"event":{"module":"envoy","end":"2025-06-18T18:11:45.329+0000","category":["web"],"outcome":"success","dataset":"envoy.access","start":"2025-06-18T18:11:45.326+0000","kind":"event","type":["access","error"],"duration":3285833},"source":{"ip":"10.244.0.1","port":40603},"ecs":{"version":"8.5"},"airlock":{"summary":{"flags":"UF","details":"upstream_reset_before_response_started{remote_connection_failure|delayed_connect_error:_Connection_refused}","action":"error"},"log_correlation":{"connection_id":13,"stream_id":"16011475674719698354"}},"http":{"response":{"bytes":591,"mime_type":"text/plain","status_code":503,"body":{"bytes":0}},"request":{"id":"e06c70f2-376c-9523-915a-fb6d85225750","bytes":187,"body":{"bytes":0},"method":"HEAD"},"version":"1.1"},"observer":{"product":"Airlock Microgateway","vendor":"Ergon Informatik AG","version":"4.6.0","type":"waap"},"url":{"domain":"www.ergon.ch","path":"/"},"user_agent":{"original":"curl/8.7.1"}}
Thank you for your input.
My software:
- minikube with Kubernetes v1.33.1
- MicroGateway 4.6.0
Best,
Andreas