Skip to content

Commit e37f5c2

Browse files
committed
fix ListenerSetHostnameConflict conformance test
Signed-off-by: zirain <zirain2009@gmail.com>
1 parent 1fa2c97 commit e37f5c2

27 files changed

Lines changed: 2741 additions & 155 deletions

internal/gatewayapi/contexts.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
package gatewayapi
77

88
import (
9+
"math"
10+
911
certificatesv1b1 "k8s.io/api/certificates/v1beta1"
1012
corev1 "k8s.io/api/core/v1"
1113
discoveryv1 "k8s.io/api/discovery/v1"
@@ -114,12 +116,17 @@ func (g *GatewayContext) attachEnvoyProxy(resources *resource.Resources, epMap m
114116
}
115117
}
116118

117-
func (g *GatewayContext) IncreaseAttachedListenerSets() {
119+
func (g *GatewayContext) IncreaseAttachedListenerSets(count uint32) {
118120
if g.Status.AttachedListenerSets == nil {
119-
g.Status.AttachedListenerSets = ptr.To[int32](1)
120-
} else {
121-
*g.Status.AttachedListenerSets++
121+
if count > 0 {
122+
g.Status.AttachedListenerSets = ptr.To(int32(min(int64(count), math.MaxInt32)))
123+
}
124+
return
122125
}
126+
127+
// Check for potential overflow before adding
128+
newValue := int64(*g.Status.AttachedListenerSets) + int64(count)
129+
*g.Status.AttachedListenerSets = int32(min(newValue, math.MaxInt32))
123130
}
124131

125132
// ListenerContext wraps a Listener and provides helper methods for

internal/gatewayapi/helpers.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -423,24 +423,24 @@ func wildcardHostnameMatchesHostname(wildcardHostname, hostname string) bool {
423423

424424
func containsPort(ports []*protocolPort, port *protocolPort) bool {
425425
for _, protocolPort := range ports {
426-
curProtocol, curLevel := layer4Protocol(protocolPort)
427-
myProtocol, myLevel := layer4Protocol(port)
428-
if protocolPort.port == port.port && (curProtocol == myProtocol && curLevel == myLevel) {
426+
curProtocol := layer4Protocol(protocolPort)
427+
myProtocol := layer4Protocol(port)
428+
if protocolPort.port == port.port && curProtocol == myProtocol {
429429
return true
430430
}
431431
}
432432
return false
433433
}
434434

435-
// layer4Protocol returns listener L4 protocol and listen protocol level
436-
func layer4Protocol(protocolPort *protocolPort) (string, string) {
435+
// layer4Protocol returns listener L4 protocol
436+
func layer4Protocol(protocolPort *protocolPort) string {
437437
switch protocolPort.protocol {
438438
case gwapiv1.HTTPProtocolType, gwapiv1.HTTPSProtocolType, gwapiv1.TLSProtocolType:
439-
return TCPProtocol, L7Protocol
439+
return TCPProtocol
440440
case gwapiv1.TCPProtocolType:
441-
return TCPProtocol, L4Protocol
441+
return TCPProtocol
442442
default:
443-
return UDPProtocol, L4Protocol
443+
return UDPProtocol
444444
}
445445
}
446446

internal/gatewayapi/listener.go

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/google/cel-go/cel"
1818
corev1 "k8s.io/api/core/v1"
1919
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
20+
"k8s.io/apimachinery/pkg/types"
2021
utilerrors "k8s.io/apimachinery/pkg/util/errors"
2122
"k8s.io/apimachinery/pkg/util/sets"
2223
"k8s.io/utils/ptr"
@@ -334,7 +335,7 @@ func (t *Translator) ProcessListeners(gateways []*GatewayContext, xdsIR resource
334335
}
335336
t.processProxyReadyListener(xdsIR[irKey], gateway.envoyProxy)
336337
t.processProxyObservability(gateway, xdsIR[irKey], infraIR[irKey].Proxy, resources)
337-
338+
gatewayAttachedListenerSets := sets.New[string]()
338339
for _, listener := range gateway.listeners {
339340
// Finalize listener conditions and check readiness.
340341
t.validateListenerConditions(listener)
@@ -348,6 +349,13 @@ func (t *Translator) ProcessListeners(gateways []*GatewayContext, xdsIR resource
348349
continue
349350
}
350351

352+
if listener.isFromListenerSet() {
353+
gatewayAttachedListenerSets.Insert(types.NamespacedName{
354+
Namespace: listener.listenerSet.Namespace,
355+
Name: listener.listenerSet.Name,
356+
}.String())
357+
}
358+
351359
address := netutils.IPv4ListenerAddress
352360
ipFamily := getEnvoyIPFamily(gateway.envoyProxy)
353361
if ipFamily != nil && (*ipFamily == egv1a1.IPv6 || *ipFamily == egv1a1.DualStack) {
@@ -427,11 +435,35 @@ func (t *Translator) ProcessListeners(gateways []*GatewayContext, xdsIR resource
427435
foundPorts[irKey] = append(foundPorts[irKey], servicePort)
428436
}
429437
}
438+
gateway.IncreaseAttachedListenerSets(uint32(len(gatewayAttachedListenerSets)))
430439
}
431440

432441
t.checkOverlappingTLSConfig(gateways)
433442
}
434443

444+
// isListenerReady returns true if the listener is ready (Accepted=True and Programmed=True or no conditions yet).
445+
// A listener is not ready if it has Accepted=False or Programmed=False.
446+
func isListenerReady(listener *ListenerContext) bool {
447+
conditions := listener.GetConditions()
448+
449+
// No conditions yet means it will be set to ready during validation.
450+
if len(conditions) == 0 {
451+
return true
452+
}
453+
454+
// Check if Accepted=False or Programmed=False exists.
455+
for _, cond := range conditions {
456+
if cond.Type == string(gwapiv1.ListenerConditionAccepted) && cond.Status == metav1.ConditionFalse {
457+
return false
458+
}
459+
if cond.Type == string(gwapiv1.ListenerConditionProgrammed) && cond.Status == metav1.ConditionFalse {
460+
return false
461+
}
462+
}
463+
464+
return true
465+
}
466+
435467
// checkOverlappingTLSConfig checks for overlapping hostnames and certificates between listeners and sets
436468
// the `OverlappingTLSConfig` condition if there are overlapping hostnames or certificates.
437469
func (t *Translator) checkOverlappingTLSConfig(gateways []*GatewayContext) {
@@ -440,7 +472,7 @@ func (t *Translator) checkOverlappingTLSConfig(gateways []*GatewayContext) {
440472
httpsListeners := []*ListenerContext{}
441473
for _, gateway := range gateways {
442474
for _, listener := range gateway.listeners {
443-
if listener.Protocol == gwapiv1.HTTPSProtocolType {
475+
if listener.Protocol == gwapiv1.HTTPSProtocolType && isListenerReady(listener) {
444476
httpsListeners = append(httpsListeners, listener)
445477
}
446478
}
@@ -455,7 +487,7 @@ func (t *Translator) checkOverlappingTLSConfig(gateways []*GatewayContext) {
455487
for _, gateway := range gateways {
456488
httpsListeners := []*ListenerContext{}
457489
for _, listener := range gateway.listeners {
458-
if listener.Protocol == gwapiv1.HTTPSProtocolType {
490+
if listener.Protocol == gwapiv1.HTTPSProtocolType && isListenerReady(listener) {
459491
httpsListeners = append(httpsListeners, listener)
460492
}
461493
}

internal/gatewayapi/listenerset.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ func (t *Translator) processListenerSet(ls *gwapiv1.ListenerSet, gatewayMap map[
9393
}
9494
gatewayCtx.listeners = append(gatewayCtx.listeners, listenerCtx)
9595
}
96-
gatewayCtx.IncreaseAttachedListenerSets()
9796
}
9897

9998
// ProcessListenerSetStatus computes the status of ListenerSets after their listeners have been processed.

internal/gatewayapi/testdata/backendtrafficpolicy-status-conditions.in.yaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ gateways:
176176
allowedRoutes:
177177
namespaces:
178178
from: Same
179+
tls:
180+
mode: Terminate
181+
certificateRefs:
182+
- name: tls-secret-1
179183
- name: tcp
180184
protocol: TCP
181185
port: 53
@@ -222,7 +226,16 @@ services:
222226
- name: http
223227
protocol: TCP
224228
port: 8080
225-
229+
secrets:
230+
- apiVersion: v1
231+
kind: Secret
232+
metadata:
233+
namespace: envoy-gateway
234+
name: tls-secret-1
235+
type: kubernetes.io/tls
236+
data:
237+
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREVENDQWZXZ0F3SUJBZ0lVRUZNaFA5ZUo5WEFCV3NRNVptNmJSazJjTE5Rd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZqRVVNQklHQTFVRUF3d0xabTl2TG1KaGNpNWpiMjB3SGhjTk1qUXdNakk1TURrek1ERXdXaGNOTXpRdwpNakkyTURrek1ERXdXakFXTVJRd0VnWURWUVFEREF0bWIyOHVZbUZ5TG1OdmJUQ0NBU0l3RFFZSktvWklodmNOCkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKbEk2WXhFOVprQ1BzNnBDUXhickNtZWl4OVA1RGZ4OVJ1NUxENFQKSm1kVzdJS2R0UVYvd2ZMbXRzdTc2QithVGRDaldlMEJUZmVPT1JCYlIzY1BBRzZFbFFMaWNsUVVydW4zcStncwpKcEsrSTdjSStqNXc4STY4WEg1V1E3clZVdGJ3SHBxYncrY1ZuQnFJVU9MaUlhdGpJZjdLWDUxTTF1RjljZkVICkU0RG5jSDZyYnI1OS9SRlpCc2toeHM1T3p3Sklmb2hreXZGd2V1VHd4Sy9WcGpJKzdPYzQ4QUJDWHBOTzlEL3EKRWgrck9hdWpBTWNYZ0hRSVRrQ2lpVVRjVW82TFNIOXZMWlB0YXFmem9acTZuaE1xcFc2NUUxcEF3RjNqeVRUeAphNUk4SmNmU0Zqa2llWjIwTFVRTW43TThVNHhIamFvL2d2SDBDQWZkQjdSTFUyc0NBd0VBQWFOVE1GRXdIUVlEClZSME9CQllFRk9SQ0U4dS8xRERXN2loWnA3Y3g5dFNtUG02T01COEdBMVVkSXdRWU1CYUFGT1JDRTh1LzFERFcKN2loWnA3Y3g5dFNtUG02T01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRnQ1M3pqc3FUYUg1YThFMmNodm1XQWdDcnhSSzhiVkxNeGl3TkdqYm1FUFJ6K3c2TngrazBBOEtFY0lEc0tjClNYY2k1OHU0b1didFZKQmx6YS9adWpIUjZQMUJuT3BsK2FveTc4NGJiZDRQMzl3VExvWGZNZmJCQ20xdmV2aDkKQUpLbncyWnRxcjRta2JMY3hFcWxxM3NCTEZBUzlzUUxuS05DZTJjR0xkVHAyYm9HK3FjZ3lRZ0NJTTZmOEVNdgpXUGlmQ01NR3V6Sy9HUkY0YlBPL1lGNDhld0R1M1VlaWgwWFhkVUFPRTlDdFVhOE5JaGMxVVBhT3pQcnRZVnFyClpPR2t2L0t1K0I3OGg4U0VzTzlYclFjdXdiT25KeDZLdFIrYWV5a3ZBcFhDUTNmWkMvYllLQUFSK1A4QUpvUVoKYndJVW1YaTRnajVtK2JLUGhlK2lyK0U9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
238+
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ2QwZlBDYWtweE1nUnUKT0VXQjFiQk5FM3ZseW55aTZWbkV2VWF1OUhvakR2UHVPTFJIaGI4MmoyY1ovMHhnL1lKR09LelBuV2JERkxGNApHdWh3dDRENmFUR0xYNklPODEwTDZ0SXZIWGZNUXRJS2VwdTZ3K3p1WVo4bG1yejB1RjZlWEtqamVIbHhyb2ZrCnVNekM3OUVaU0lYZlZlczJ1SmdVRSs4VGFzSDUzQ2Y4MFNSRGlIeEdxckttdVNjWCtwejBreGdCZ1VWYTVVS20KUWdTZDFmVUxLOUEwNXAxOXkrdURPM204bVhRNkxVQ0N1STFwZHNROGFlNS9zamlxa0VjWlJjMTdWYVgxWjVVaQpvcGZnNW9SY05VTG9VTHNiek9aNTR0YlVDUmdSV2VLbGZxaElINEZ6OUlkVlUyR3dFdEdhMmV6TjgyMVBaQ3QzCjZhbVRIelJsQWdNQkFBRUNnZ0VBWTFGTUlLNDVXTkVNUHJ6RTZUY3NNdVV2RkdhQVZ4bVk5NW5SMEtwajdvb3IKY21CVys2ZXN0TTQ4S1AwaitPbXd3VFpMY29Cd3VoWGN0V1Bob1lXcDhteWUxRUlEdjNyaHRHMDdocEQ1NGg2dgpCZzh3ejdFYStzMk9sT0N6UnlKNzBSY281YlhjWDNGaGJjdnFlRWJwaFFyQnpOSEtLMjZ4cmZqNWZIT3p6T1FGCmJHdUZ3SDVic3JGdFhlajJXM3c4eW90N0ZQSDV3S3RpdnhvSWU5RjMyOXNnOU9EQnZqWnpiaG1LVTArckFTK1kKRGVield2bFJyaEUrbXVmQTN6M0N0QXhDOFJpNzNscFNoTDRQQWlvcG1SUXlxZXRXMjYzOFFxcnM0R3hnNzhwbApJUXJXTmNBc2s3Slg5d3RZenV6UFBXSXRWTTFscFJiQVRhNTJqdFl2NVFLQmdRRE5tMTFtZTRYam1ZSFV2cStZCmFTUzdwK2UybXZEMHVaOU9JeFluQnBWMGkrckNlYnFFMkE1Rm5hcDQ5Yld4QTgwUElldlVkeUpCL2pUUkoxcVMKRUpXQkpMWm1LVkg2K1QwdWw1ZUtOcWxFTFZHU0dCSXNpeE9SUXpDZHBoMkx0UmtBMHVjSVUzY3hiUmVMZkZCRQpiSkdZWENCdlNGcWd0VDlvZTFldVpMVmFOd0tCZ1FERWdENzJENk81eGIweEQ1NDQ1M0RPMUJhZmd6aThCWDRTCk1SaVd2LzFUQ0w5N05sRWtoeXovNmtQd1owbXJRcE5CMzZFdkpKZFVteHdkU2MyWDhrOGcxMC85NVlLQkdWQWoKL3d0YVZYbE9WeEFvK0ZSelpZeFpyQ29uWWFSMHVwUzFybDRtenN4REhlZU9mUVZUTUgwUjdZN0pnbTA5dXQ4SwplanAvSXZBb1F3S0JnQjNaRWlRUWhvMVYrWjBTMlpiOG5KS0plMy9zMmxJTXFHM0ZkaS9RS3Q0eWViQWx6OGY5ClBZVXBzRmZEQTg5Z3grSU1nSm5sZVptdTk2ZnRXSjZmdmJSenllN216TG5zZU05TXZua1lHbGFGWmJRWnZubXMKN3ZoRmtzY3dHRlh4d21GMlBJZmU1Z3pNMDRBeVdjeTFIaVhLS2dNOXM3cGsxWUdyZGowZzdacmRBb0dCQUtLNApDR3MrbkRmMEZTMFJYOWFEWVJrRTdBNy9YUFhtSG5YMkRnU1h5N0Q4NTRPaWdTTWNoUmtPNTErbVNJejNQbllvCk41T1FXM2lHVVl1M1YvYmhnc0VSUzM1V2xmRk9BdDBzRUR5bjF5SVdXcDF5dG93d3BUNkVvUXVuZ2NYZjA5RjMKS1NROXowd3M4VmsvRWkvSFVXcU5LOWFXbU51cmFaT0ZqL2REK1ZkOUFvR0FMWFN3dEE3K043RDRkN0VEMURSRQpHTWdZNVd3OHFvdDZSdUNlNkpUY0FnU3B1MkhNU3JVY2dXclpiQnJZb09FUnVNQjFoMVJydk5ybU1qQlM0VW9FClgyZC8vbGhpOG1wL2VESWN3UDNRa2puanBJRFJWMFN1eWxrUkVaZURKZjVZb3R6eDdFdkJhbzFIbkQrWEg4eUIKVUtmWGJTaHZKVUdhRmgxT3Q1Y3JoM1k9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
226239
endpointslices:
227240
- apiVersion: discovery.k8s.io/v1
228241
kind: EndpointSlice

internal/gatewayapi/testdata/backendtrafficpolicy-status-conditions.out.yaml

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ gateways:
250250
name: https
251251
port: 443
252252
protocol: HTTPS
253+
tls:
254+
certificateRefs:
255+
- name: tls-secret-1
256+
mode: Terminate
253257
- allowedRoutes:
254258
namespaces:
255259
from: Same
@@ -284,10 +288,15 @@ gateways:
284288
- attachedRoutes: 1
285289
conditions:
286290
- lastTransitionTime: null
287-
message: Listener must have TLS set when protocol is HTTPS.
288-
reason: Invalid
289-
status: "False"
291+
message: Sending translated listener configuration to the data plane
292+
reason: Programmed
293+
status: "True"
290294
type: Programmed
295+
- lastTransitionTime: null
296+
message: Listener has been successfully translated
297+
reason: Accepted
298+
status: "True"
299+
type: Accepted
291300
- lastTransitionTime: null
292301
message: Listener references have been resolved
293302
reason: ResolvedRefs
@@ -508,6 +517,12 @@ infraIR:
508517
name: http-80
509518
protocol: HTTP
510519
servicePort: 80
520+
- name: envoy-gateway/gateway-2/https
521+
ports:
522+
- containerPort: 10443
523+
name: https-443
524+
protocol: HTTPS
525+
servicePort: 443
511526
- name: envoy-gateway/gateway-2/tcp
512527
ports:
513528
- containerPort: 10053
@@ -729,6 +744,65 @@ xdsIR:
729744
namespace: envoy-gateway
730745
name: grpcroute/envoy-gateway/grpcroute-1/rule/0/match/0/*
731746
traffic: {}
747+
- address: 0.0.0.0
748+
externalPort: 443
749+
grpc:
750+
enableGRPCStats: true
751+
enableGRPCWeb: true
752+
hostnames:
753+
- '*'
754+
metadata:
755+
kind: Gateway
756+
name: gateway-2
757+
namespace: envoy-gateway
758+
sectionName: https
759+
name: envoy-gateway/gateway-2/https
760+
path:
761+
escapedSlashesAction: UnescapeAndRedirect
762+
mergeSlashes: true
763+
port: 10443
764+
routes:
765+
- destination:
766+
metadata:
767+
kind: GRPCRoute
768+
name: grpcroute-1
769+
namespace: envoy-gateway
770+
name: grpcroute/envoy-gateway/grpcroute-1/rule/0
771+
settings:
772+
- addressType: IP
773+
endpoints:
774+
- host: 7.7.7.7
775+
port: 8080
776+
metadata:
777+
kind: Service
778+
name: service-1
779+
namespace: envoy-gateway
780+
sectionName: "8080"
781+
name: grpcroute/envoy-gateway/grpcroute-1/rule/0/backend/0
782+
protocol: GRPC
783+
weight: 1
784+
headerMatches:
785+
- distinct: false
786+
exact: foo
787+
name: magic
788+
hostname: '*'
789+
isHTTP2: true
790+
metadata:
791+
kind: GRPCRoute
792+
name: grpcroute-1
793+
namespace: envoy-gateway
794+
policies:
795+
- kind: BackendTrafficPolicy
796+
name: target-grpcroute-in-gateway-2
797+
namespace: envoy-gateway
798+
name: grpcroute/envoy-gateway/grpcroute-1/rule/0/match/0/*
799+
traffic: {}
800+
tls:
801+
alpnProtocols: null
802+
certificates:
803+
- certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREVENDQWZXZ0F3SUJBZ0lVRUZNaFA5ZUo5WEFCV3NRNVptNmJSazJjTE5Rd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZqRVVNQklHQTFVRUF3d0xabTl2TG1KaGNpNWpiMjB3SGhjTk1qUXdNakk1TURrek1ERXdXaGNOTXpRdwpNakkyTURrek1ERXdXakFXTVJRd0VnWURWUVFEREF0bWIyOHVZbUZ5TG1OdmJUQ0NBU0l3RFFZSktvWklodmNOCkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKbEk2WXhFOVprQ1BzNnBDUXhickNtZWl4OVA1RGZ4OVJ1NUxENFQKSm1kVzdJS2R0UVYvd2ZMbXRzdTc2QithVGRDaldlMEJUZmVPT1JCYlIzY1BBRzZFbFFMaWNsUVVydW4zcStncwpKcEsrSTdjSStqNXc4STY4WEg1V1E3clZVdGJ3SHBxYncrY1ZuQnFJVU9MaUlhdGpJZjdLWDUxTTF1RjljZkVICkU0RG5jSDZyYnI1OS9SRlpCc2toeHM1T3p3Sklmb2hreXZGd2V1VHd4Sy9WcGpJKzdPYzQ4QUJDWHBOTzlEL3EKRWgrck9hdWpBTWNYZ0hRSVRrQ2lpVVRjVW82TFNIOXZMWlB0YXFmem9acTZuaE1xcFc2NUUxcEF3RjNqeVRUeAphNUk4SmNmU0Zqa2llWjIwTFVRTW43TThVNHhIamFvL2d2SDBDQWZkQjdSTFUyc0NBd0VBQWFOVE1GRXdIUVlEClZSME9CQllFRk9SQ0U4dS8xRERXN2loWnA3Y3g5dFNtUG02T01COEdBMVVkSXdRWU1CYUFGT1JDRTh1LzFERFcKN2loWnA3Y3g5dFNtUG02T01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRnQ1M3pqc3FUYUg1YThFMmNodm1XQWdDcnhSSzhiVkxNeGl3TkdqYm1FUFJ6K3c2TngrazBBOEtFY0lEc0tjClNYY2k1OHU0b1didFZKQmx6YS9adWpIUjZQMUJuT3BsK2FveTc4NGJiZDRQMzl3VExvWGZNZmJCQ20xdmV2aDkKQUpLbncyWnRxcjRta2JMY3hFcWxxM3NCTEZBUzlzUUxuS05DZTJjR0xkVHAyYm9HK3FjZ3lRZ0NJTTZmOEVNdgpXUGlmQ01NR3V6Sy9HUkY0YlBPL1lGNDhld0R1M1VlaWgwWFhkVUFPRTlDdFVhOE5JaGMxVVBhT3pQcnRZVnFyClpPR2t2L0t1K0I3OGg4U0VzTzlYclFjdXdiT25KeDZLdFIrYWV5a3ZBcFhDUTNmWkMvYllLQUFSK1A4QUpvUVoKYndJVW1YaTRnajVtK2JLUGhlK2lyK0U9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
804+
name: envoy-gateway/tls-secret-1
805+
privateKey: '[redacted]'
732806
readyListener:
733807
address: 0.0.0.0
734808
ipFamily: IPv4

internal/gatewayapi/testdata/clienttrafficpolicy-status-conditions.in.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ gateways:
128128
allowedRoutes:
129129
namespaces:
130130
from: Same
131+
tls:
132+
mode: Terminate
133+
certificateRefs:
134+
- name: tls-secret-1
131135
- name: tcp
132136
protocol: TCP
133137
port: 53
@@ -162,3 +166,13 @@ gateways:
162166
allowedRoutes:
163167
namespaces:
164168
from: Same
169+
secrets:
170+
- apiVersion: v1
171+
kind: Secret
172+
metadata:
173+
namespace: envoy-gateway
174+
name: tls-secret-1
175+
type: kubernetes.io/tls
176+
data:
177+
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREVENDQWZXZ0F3SUJBZ0lVRUZNaFA5ZUo5WEFCV3NRNVptNmJSazJjTE5Rd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZqRVVNQklHQTFVRUF3d0xabTl2TG1KaGNpNWpiMjB3SGhjTk1qUXdNakk1TURrek1ERXdXaGNOTXpRdwpNakkyTURrek1ERXdXakFXTVJRd0VnWURWUVFEREF0bWIyOHVZbUZ5TG1OdmJUQ0NBU0l3RFFZSktvWklodmNOCkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKbEk2WXhFOVprQ1BzNnBDUXhickNtZWl4OVA1RGZ4OVJ1NUxENFQKSm1kVzdJS2R0UVYvd2ZMbXRzdTc2QithVGRDaldlMEJUZmVPT1JCYlIzY1BBRzZFbFFMaWNsUVVydW4zcStncwpKcEsrSTdjSStqNXc4STY4WEg1V1E3clZVdGJ3SHBxYncrY1ZuQnFJVU9MaUlhdGpJZjdLWDUxTTF1RjljZkVICkU0RG5jSDZyYnI1OS9SRlpCc2toeHM1T3p3Sklmb2hreXZGd2V1VHd4Sy9WcGpJKzdPYzQ4QUJDWHBOTzlEL3EKRWgrck9hdWpBTWNYZ0hRSVRrQ2lpVVRjVW82TFNIOXZMWlB0YXFmem9acTZuaE1xcFc2NUUxcEF3RjNqeVRUeAphNUk4SmNmU0Zqa2llWjIwTFVRTW43TThVNHhIamFvL2d2SDBDQWZkQjdSTFUyc0NBd0VBQWFOVE1GRXdIUVlEClZSME9CQllFRk9SQ0U4dS8xRERXN2loWnA3Y3g5dFNtUG02T01COEdBMVVkSXdRWU1CYUFGT1JDRTh1LzFERFcKN2loWnA3Y3g5dFNtUG02T01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRnQ1M3pqc3FUYUg1YThFMmNodm1XQWdDcnhSSzhiVkxNeGl3TkdqYm1FUFJ6K3c2TngrazBBOEtFY0lEc0tjClNYY2k1OHU0b1didFZKQmx6YS9adWpIUjZQMUJuT3BsK2FveTc4NGJiZDRQMzl3VExvWGZNZmJCQ20xdmV2aDkKQUpLbncyWnRxcjRta2JMY3hFcWxxM3NCTEZBUzlzUUxuS05DZTJjR0xkVHAyYm9HK3FjZ3lRZ0NJTTZmOEVNdgpXUGlmQ01NR3V6Sy9HUkY0YlBPL1lGNDhld0R1M1VlaWgwWFhkVUFPRTlDdFVhOE5JaGMxVVBhT3pQcnRZVnFyClpPR2t2L0t1K0I3OGg4U0VzTzlYclFjdXdiT25KeDZLdFIrYWV5a3ZBcFhDUTNmWkMvYllLQUFSK1A4QUpvUVoKYndJVW1YaTRnajVtK2JLUGhlK2lyK0U9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
178+
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ2QwZlBDYWtweE1nUnUKT0VXQjFiQk5FM3ZseW55aTZWbkV2VWF1OUhvakR2UHVPTFJIaGI4MmoyY1ovMHhnL1lKR09LelBuV2JERkxGNApHdWh3dDRENmFUR0xYNklPODEwTDZ0SXZIWGZNUXRJS2VwdTZ3K3p1WVo4bG1yejB1RjZlWEtqamVIbHhyb2ZrCnVNekM3OUVaU0lYZlZlczJ1SmdVRSs4VGFzSDUzQ2Y4MFNSRGlIeEdxckttdVNjWCtwejBreGdCZ1VWYTVVS20KUWdTZDFmVUxLOUEwNXAxOXkrdURPM204bVhRNkxVQ0N1STFwZHNROGFlNS9zamlxa0VjWlJjMTdWYVgxWjVVaQpvcGZnNW9SY05VTG9VTHNiek9aNTR0YlVDUmdSV2VLbGZxaElINEZ6OUlkVlUyR3dFdEdhMmV6TjgyMVBaQ3QzCjZhbVRIelJsQWdNQkFBRUNnZ0VBWTFGTUlLNDVXTkVNUHJ6RTZUY3NNdVV2RkdhQVZ4bVk5NW5SMEtwajdvb3IKY21CVys2ZXN0TTQ4S1AwaitPbXd3VFpMY29Cd3VoWGN0V1Bob1lXcDhteWUxRUlEdjNyaHRHMDdocEQ1NGg2dgpCZzh3ejdFYStzMk9sT0N6UnlKNzBSY281YlhjWDNGaGJjdnFlRWJwaFFyQnpOSEtLMjZ4cmZqNWZIT3p6T1FGCmJHdUZ3SDVic3JGdFhlajJXM3c4eW90N0ZQSDV3S3RpdnhvSWU5RjMyOXNnOU9EQnZqWnpiaG1LVTArckFTK1kKRGVield2bFJyaEUrbXVmQTN6M0N0QXhDOFJpNzNscFNoTDRQQWlvcG1SUXlxZXRXMjYzOFFxcnM0R3hnNzhwbApJUXJXTmNBc2s3Slg5d3RZenV6UFBXSXRWTTFscFJiQVRhNTJqdFl2NVFLQmdRRE5tMTFtZTRYam1ZSFV2cStZCmFTUzdwK2UybXZEMHVaOU9JeFluQnBWMGkrckNlYnFFMkE1Rm5hcDQ5Yld4QTgwUElldlVkeUpCL2pUUkoxcVMKRUpXQkpMWm1LVkg2K1QwdWw1ZUtOcWxFTFZHU0dCSXNpeE9SUXpDZHBoMkx0UmtBMHVjSVUzY3hiUmVMZkZCRQpiSkdZWENCdlNGcWd0VDlvZTFldVpMVmFOd0tCZ1FERWdENzJENk81eGIweEQ1NDQ1M0RPMUJhZmd6aThCWDRTCk1SaVd2LzFUQ0w5N05sRWtoeXovNmtQd1owbXJRcE5CMzZFdkpKZFVteHdkU2MyWDhrOGcxMC85NVlLQkdWQWoKL3d0YVZYbE9WeEFvK0ZSelpZeFpyQ29uWWFSMHVwUzFybDRtenN4REhlZU9mUVZUTUgwUjdZN0pnbTA5dXQ4SwplanAvSXZBb1F3S0JnQjNaRWlRUWhvMVYrWjBTMlpiOG5KS0plMy9zMmxJTXFHM0ZkaS9RS3Q0eWViQWx6OGY5ClBZVXBzRmZEQTg5Z3grSU1nSm5sZVptdTk2ZnRXSjZmdmJSenllN216TG5zZU05TXZua1lHbGFGWmJRWnZubXMKN3ZoRmtzY3dHRlh4d21GMlBJZmU1Z3pNMDRBeVdjeTFIaVhLS2dNOXM3cGsxWUdyZGowZzdacmRBb0dCQUtLNApDR3MrbkRmMEZTMFJYOWFEWVJrRTdBNy9YUFhtSG5YMkRnU1h5N0Q4NTRPaWdTTWNoUmtPNTErbVNJejNQbllvCk41T1FXM2lHVVl1M1YvYmhnc0VSUzM1V2xmRk9BdDBzRUR5bjF5SVdXcDF5dG93d3BUNkVvUXVuZ2NYZjA5RjMKS1NROXowd3M4VmsvRWkvSFVXcU5LOWFXbU51cmFaT0ZqL2REK1ZkOUFvR0FMWFN3dEE3K043RDRkN0VEMURSRQpHTWdZNVd3OHFvdDZSdUNlNkpUY0FnU3B1MkhNU3JVY2dXclpiQnJZb09FUnVNQjFoMVJydk5ybU1qQlM0VW9FClgyZC8vbGhpOG1wL2VESWN3UDNRa2puanBJRFJWMFN1eWxrUkVaZURKZjVZb3R6eDdFdkJhbzFIbkQrWEg4eUIKVUtmWGJTaHZKVUdhRmgxT3Q1Y3JoM1k9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K

0 commit comments

Comments
 (0)