6262 - name : dynamic
6363 dynamic : {}
6464 policies :
65+ http :
66+ version : HTTP/1.1
6567 backendTunnel :
6668 proxy :
6769 backend : /dynamic
@@ -85,20 +87,17 @@ data:
8587 key : /run/servicedns.podcert.ate.dev/credential-bundle.pem
8688
8789 routes :
88- - name : substrate-actors-grpc
90+ - name : substrate-actors
8991 gateways :
9092 - http
9193 - https
9294 matches :
93- - headers :
94- - name : content-type
95- value :
96- regex : ' (?i)^application/grpc(?:\+[^;]+)?(?:;.*)?$'
97- path :
95+ - path :
9896 pathPrefix : /
99- policies :
97+ policies : &substrate-ingress
10098 substrateIngress :
10199 host : {{ include "substrate.fullname" (list "api" .) }}.{{ .Release.Namespace }}.svc:443
100+ # AgentGateway only uses atunnel's CONNECT listener.
102101 connectTargetPort : 8443
103102 policies :
104103 backendTLS :
@@ -107,31 +106,24 @@ data:
107106 root : /run/servicedns-ca/trust-bundle.pem
108107 backends :
109108 - backend : /dynamic
110- policies :
111- http :
112- version : HTTP/2.0
113- - name : substrate-actors
109+ - name : substrate-actors-grpc
114110 gateways :
115111 - http
116112 - https
117- matches :
118- - path :
119- pathPrefix : /
120- policies :
121- substrateIngress :
122- host : {{ include "substrate.fullname" (list "api" .) }}.{{ .Release.Namespace }}.svc:443
123- connectTargetPort : 8443
124- policies :
125- backendTLS :
126- cert : /run/podidentity.podcert.ate.dev/credential-bundle.pem
127- key : /run/podidentity.podcert.ate.dev/credential-bundle.pem
128- root : /run/servicedns-ca/trust-bundle.pem
129- backends :
113+ matches : &grpc-matches
114+ - method : POST
115+ headers :
116+ - name : content-type
117+ value :
118+ regex : ' (?i)^application/grpc([+;].*)?$'
119+ policies : *substrate-ingress
120+ backends : &grpc-backends
130121 - backend : /dynamic
131122 policies :
132123 http :
133- version : HTTP/1.1
124+ version : HTTP/2.0
134125
126+ # Terminate client CONNECT before internal HTTP routing.
135127 binds :
136128 - port : 8081
137129 tunnelProtocol : connect
@@ -150,46 +142,17 @@ data:
150142 listeners :
151143 - protocol : HTTP
152144 routes :
153- - name : substrate-actors-tunneled-grpc
154- matches :
155- - headers :
156- - name : content-type
157- value :
158- regex : ' (?i)^application/grpc(?:\+[^;]+)?(?:;.*)?$'
159- path :
160- pathPrefix : /
161- policies :
162- substrateIngress :
163- host : {{ include "substrate.fullname" (list "api" .) }}.{{ .Release.Namespace }}.svc:443
164- connectTargetPort : 8443
165- policies :
166- backendTLS :
167- cert : /run/podidentity.podcert.ate.dev/credential-bundle.pem
168- key : /run/podidentity.podcert.ate.dev/credential-bundle.pem
169- root : /run/servicedns-ca/trust-bundle.pem
170- backends :
171- - backend : /dynamic
172- policies :
173- http :
174- version : HTTP/2.0
175145 - name : substrate-actors-tunneled
176146 matches :
177147 - path :
178148 pathPrefix : /
179- policies :
180- substrateIngress :
181- host : {{ include "substrate.fullname" (list "api" .) }}.{{ .Release.Namespace }}.svc:443
182- connectTargetPort : 8443
183- policies :
184- backendTLS :
185- cert : /run/podidentity.podcert.ate.dev/credential-bundle.pem
186- key : /run/podidentity.podcert.ate.dev/credential-bundle.pem
187- root : /run/servicedns-ca/trust-bundle.pem
149+ policies : *substrate-ingress
188150 backends :
189151 - backend : /dynamic
190- policies :
191- http :
192- version : HTTP/1.1
152+ - name : substrate-actors-tunneled-grpc
153+ matches : *grpc-matches
154+ policies : *substrate-ingress
155+ backends : *grpc-backends
193156---
194157apiVersion : apps/v1
195158kind : Deployment
0 commit comments