-
Notifications
You must be signed in to change notification settings - Fork 240
atenet: add agentgateway egress support #909
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -67,7 +67,7 @@ function usage() { | |
| echo " --delete-ate-system Delete core system" | ||
| echo " --delete-all Delete core system and all registered demos" | ||
| echo " --ateapi-client-auth=cert|token Select how in-cluster clients authenticate to ateapi for --deploy-ate-system (default: cert; the server always accepts both)" | ||
| echo " --atenet-router=envoy|agentgateway Select the atenet router dataplane (default: envoy)" | ||
| echo " --atenet-router=envoy|agentgateway Select the ingress and egress dataplane (default: envoy)" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. hmmm dont we want separate flags for that..?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would prefer to keep one flag initially. We do not currently have a use case for mixing Envoy ingress with agentgateway egress or vice versa, and separate flags add configuration combinations we would need to support and test. We can split it later if that need appears. |
||
| echo " --store-backend=redis|postgres Configure the ateapi store backend (default: redis)" | ||
| echo " --otlp-endpoint URL Send all control plane telemetry to URL, not to the cluster default (see benchmarking/telemetry/README.md)" | ||
| echo "" | ||
|
|
@@ -267,6 +267,15 @@ atenet_egress_manifest() { | |
| fi | ||
| } | ||
|
|
||
| render_atenet_egress_manifest() { | ||
| if [[ "$(atenet_router)" == "agentgateway" ]]; then | ||
| kubectl kustomize manifests/ate-install/agentgateway-egress \ | ||
| --load-restrictor LoadRestrictionsNone | run_ko resolve -f - | ||
| else | ||
| run_ko resolve -f "$(atenet_egress_manifest)" | ||
| fi | ||
| } | ||
|
|
||
| # Apply the ate-otel-config ConfigMap that every control plane component reads | ||
| # via envFrom. The full install gets it through render_ate_system_manifests, but | ||
| # the targeted single-component redeploys below apply raw manifests with no | ||
|
|
@@ -452,6 +461,7 @@ create_egress_mitm_ca_pool_secret() { | |
|
|
||
| # Only the sdsmint egress variant mounts this pool. | ||
| ensure_egress_mitm_ca_pool_secret() { | ||
| [[ "$(atenet_router)" != "agentgateway" ]] || return 0 | ||
| [[ "${ATE_EXPERIMENTAL_USE_SDSMINT:-false}" == "true" ]] || return 0 | ||
| run_kubectl get secret -n ate-system egress-mitm-ca-pool >/dev/null 2>&1 \ | ||
| || create_egress_mitm_ca_pool_secret | ||
|
|
@@ -628,7 +638,9 @@ deploy_ate_system() { | |
| # --experimental-use-sdsmint composes with every overlay instead of needing a | ||
| # variant of each. | ||
| ensure_egress_mitm_ca_pool_secret | ||
| run_ko apply -f "$(atenet_egress_manifest)" | ||
| local egress_manifests="" | ||
| egress_manifests="$(render_atenet_egress_manifest)" | ||
| echo "${egress_manifests}" | run_kubectl apply -f - | ||
|
|
||
| log_step "Waiting for ATE system components to be ready..." | ||
| case "$(store_backend)" in | ||
|
|
@@ -726,7 +738,9 @@ deploy_atenet() { | |
| echo "${router_manifest}" | run_kubectl apply -f - | ||
|
|
||
| ensure_egress_mitm_ca_pool_secret | ||
| run_ko apply -f "$(atenet_egress_manifest)" | ||
| local egress_manifests="" | ||
| egress_manifests="$(render_atenet_egress_manifest)" | ||
| echo "${egress_manifests}" | run_kubectl apply -f - | ||
| run_ko apply -f manifests/ate-install/atenet-dns.yaml | ||
| run_kubectl rollout status deployment/atenet-router -n ate-system --timeout=120s | ||
| run_kubectl rollout status deployment/atenet-egress -n ate-system --timeout=120s | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| # Copyright 2026 Google LLC | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||
| kind: Kustomization | ||
|
|
||
| resources: | ||
| - ../atenet-egress.yaml | ||
|
|
||
| components: | ||
| - ../components/agentgateway |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
who sets this request attribute, agw? Also I think we probably want some more specific namespace like ate.calllout(maybe a better key name?).direction
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, agentgateway sets this through the extProc
requestAttributesconfig. I renamed the key to the more specificate.extproc.direction.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I cant see the rename, did you commit it?