Skip to content

Commit aab12cc

Browse files
committed
Align Helm routing and validation with current upstream
Use the current agentgateway image and route configuration in Helm, mirror the sandbox pause-image validation, and retain manifest credential-provider coverage in the upstream setup tests. Save the fork E2E Go cache for its agentgateway lane. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
1 parent 99e14be commit aab12cc

6 files changed

Lines changed: 33 additions & 74 deletions

File tree

‎.github/workflows/pr-workflow.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ jobs:
257257
- name: Save Go build cache
258258
# Main only, so PRs restore the latest main build rather than each
259259
# storing its own copy.
260-
if: ${{ !cancelled() && github.ref == 'refs/heads/main' && matrix.dataplane == 'envoy' }}
260+
if: ${{ !cancelled() && github.ref == 'refs/heads/main' }}
261261
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
262262
with:
263263
path: |

‎charts/substrate-crds/templates/ate.dev_sandboxconfigs.yaml‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ spec:
106106
PauseImage is the container image used as the root sandbox container.
107107
It holds the sandbox's namespaces and runs no workload code, so it is an
108108
implementation detail of the sandbox rather than something actor authors
109-
choose. It is captured in the snapshot manifest alongside the sandbox
109+
choose. Required for gvisor; not allowed for microvm, which runs no pause
110+
container. It is captured in the snapshot manifest alongside the sandbox
110111
binaries, so a restore always re-creates the sandbox from the same image
111112
the snapshot was taken with.
112113
@@ -129,9 +130,12 @@ spec:
129130
- microvm
130131
type: string
131132
required:
132-
- pauseImage
133133
- sandboxClass
134134
type: object
135+
x-kubernetes-validations:
136+
- message: pauseImage is required for gvisor and not allowed for other
137+
sandbox classes
138+
rule: 'self.sandboxClass == ''gvisor'' ? has(self.pauseImage) : !has(self.pauseImage)'
135139
required:
136140
- spec
137141
type: object

‎charts/substrate/templates/atenet-egress.yaml‎

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,6 @@ data:
8383
cert: /run/podidentity.podcert.ate.dev/credential-bundle.pem
8484
key: /run/podidentity.podcert.ate.dev/credential-bundle.pem
8585
root: /run/servicedns.podcert.ate.dev/trust-bundle.pem
86-
- protocol: TLS
87-
hostname: "*"
88-
tcpRoutes:
89-
- backends:
90-
- dynamic: {}
9186
- protocol: HTTP
9287
routes:
9388
- backends:
@@ -110,11 +105,10 @@ data:
110105
cert: /run/podidentity.podcert.ate.dev/credential-bundle.pem
111106
key: /run/podidentity.podcert.ate.dev/credential-bundle.pem
112107
root: /run/servicedns.podcert.ate.dev/trust-bundle.pem
113-
- protocol: TCP
108+
- protocol: TLS
114109
tcpRoutes:
115110
- backends:
116-
- dynamic:
117-
target: source.connectHeaders["host"]
111+
- dynamic: {}
118112
---
119113
apiVersion: apps/v1
120114
kind: Deployment

‎charts/substrate/templates/atenet-router.yaml‎

Lines changed: 22 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ data:
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
---
194157
apiVersion: apps/v1
195158
kind: Deployment

‎charts/substrate/values.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,5 @@ images:
133133
postgres: postgres:18-alpine@sha256:9a8afca54e7861fd90fab5fdf4c42477a6b1cb7d293595148e674e0a3181de15
134134
rustfs: rustfs/rustfs:1.0.0-beta.3@sha256:378642b05b7dcb4849fb77ebe6aca4ced1c3f66e7e504247df95a5c9018d3358
135135
awsCli: amazon/aws-cli:2.17.0@sha256:643507c10ada7964ca6157b3d799f030b90577643da9955d319a77399ed80d73
136-
agentgateway: cr.agentgateway.dev/agentgateway:v0.0.0-alpha.9e78d1da@sha256:8177311eb0444df2829cc00410147e960a3bd7261492f2c8d52b48be6d693a45
136+
agentgateway: cr.agentgateway.dev/agentgateway:v0.0.0-alpha.168b05d6@sha256:5e8384d1fcfdc443a3ad5155ea6a64dc7953bde162df7f5f8e131a5c19ae08a3
137137
busybox: busybox:1.36

‎cmd/credential-provider/kubernetes-secrets/manifests_test.go‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ func TestProviderManifests(t *testing.T) {
236236
}
237237
}
238238

239-
func TestAgentgatewayCredentialConfiguration(t *testing.T) {
239+
func TestHelmAgentgatewayCredentialConfiguration(t *testing.T) {
240240
for _, tc := range []struct {
241241
name, tool, host, roots string
242242
args []string
@@ -245,8 +245,6 @@ func TestAgentgatewayCredentialConfiguration(t *testing.T) {
245245
args: []string{"template", "substrate", "../../../charts/substrate", "-n", "ate-system"}},
246246
{name: "custom release", tool: "helm", host: "test-k8s-credential-provider.custom.svc:50051", roots: "/run/servicedns.podcert.ate.dev/trust-bundle.pem",
247247
args: []string{"template", "test", "../../../charts/substrate", "-n", "custom"}},
248-
{name: "kustomize", tool: "kubectl", host: "k8s-credential-provider.ate-system.svc:50051", roots: "/run/servicedns-ca/trust-bundle.pem",
249-
args: []string{"kustomize", "--load-restrictor=LoadRestrictionsNone", "../../../manifests/ate-install/agentgateway-egress"}},
250248
} {
251249
t.Run(tc.name, func(t *testing.T) {
252250
if _, err := exec.LookPath(tc.tool); err != nil {

0 commit comments

Comments
 (0)