Skip to content
This repository was archived by the owner on Jun 20, 2026. It is now read-only.

Commit 83a7cb1

Browse files
committed
Add agentgateway gateway support
Split chart provider selection from GatewayClass naming, route kgateway compatibility through the agentgateway class, and add AgentgatewayParameters rendering. Refresh generated chart docs and schema, deprecate kgateway in favor of standalone agentgateway, and update CI workflow pins and provider handling. Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
1 parent 397a7d3 commit 83a7cb1

18 files changed

Lines changed: 443 additions & 155 deletions

.github/workflows/lint.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
- name: Set up Helm
3636
uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # renovate: tag=v3.5
3737
with:
38-
version: v3.10.0
38+
version: v3.18.6
3939

4040
- name: Helm add bitnami chart
4141
run: |
@@ -48,7 +48,7 @@ jobs:
4848
python-version: 3.13
4949

5050
- name: Set up chart-testing
51-
uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0
51+
uses: helm/chart-testing-action@6ec842c01de15ebb84c8627d2744a0c2f2755c9f # v2.8.0
5252

5353
- name: Run chart-testing (list-changed)
5454
id: list-changed

.github/workflows/test.yaml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ jobs:
2626
# Aligning job name with the OpenShift CI config: https://github.com/openshift/release/blob/master/core-services/prow/02_config/redhat-developer/rhdh-chart/_prowconfig.yaml#L18
2727
name: Test Latest Release
2828
runs-on: ubuntu-latest
29+
# TODO: Switch this job to a provider matrix once the upstream prerequisite
30+
# helmfiles are ready for agentgateway and other CI-supported providers:
31+
# https://github.com/llm-d/llm-d/issues/399
32+
env:
33+
GATEWAY_PROVIDER: istio
2934
steps:
3035
- name: Checkout PR HEAD (handles forks)
3136
if: github.event_name == 'pull_request'
@@ -47,14 +52,14 @@ jobs:
4752
- name: Set up Helm
4853
uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # renovate: tag=v3.5
4954
with:
50-
version: v3.10.0
55+
version: v3.18.6
5156

5257
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5
5358
with:
5459
python-version: 3.13
5560

5661
- name: Set up chart-testing
57-
uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0
62+
uses: helm/chart-testing-action@6ec842c01de15ebb84c8627d2744a0c2f2755c9f # v2.8.0
5863

5964
- name: Run chart-testing (list-changed)
6065
id: list-changed
@@ -75,9 +80,11 @@ jobs:
7580
7681
- name: Create KIND Cluster
7782
if: steps.list-changed.outputs.changed == 'true'
78-
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0
83+
uses: helm/kind-action@f5f117a566cacf2b7e54d9ddbfa40584fdf3b127 # v1.14.0
7984
with:
8085
config: helpers/kind-testing/kind-config.yaml
86+
version: v0.31.0
87+
kubectl_version: v1.35.0
8188

8289
- name: Create custom storage class
8390
if: steps.list-changed.outputs.changed == 'true'
@@ -127,8 +134,8 @@ jobs:
127134
cd "${dir}"
128135
curl -LsSf https://raw.githubusercontent.com/llm-d/llm-d/refs/heads/main/guides/prereq/client-setup/install-deps.sh | /bin/bash
129136
curl -LsSf https://raw.githubusercontent.com/llm-d/llm-d/refs/heads/main/guides/prereq/gateway-provider/install-gateway-provider-dependencies.sh | /bin/bash
130-
curl -sLO https://raw.githubusercontent.com/llm-d/llm-d/refs/heads/main/guides/prereq/gateway-provider/istio.helmfile.yaml
131-
helmfile apply -f istio.helmfile.yaml
137+
curl -sLO https://raw.githubusercontent.com/llm-d/llm-d/refs/heads/main/guides/prereq/gateway-provider/${GATEWAY_PROVIDER}.helmfile.yaml
138+
helmfile apply -f "${GATEWAY_PROVIDER}.helmfile.yaml"
132139
cd -
133140
rm -rf "${dir}"
134141
@@ -140,4 +147,5 @@ jobs:
140147
ct install \
141148
--debug \
142149
--config ct-install.yaml \
143-
--target-branch "$TARGET_BRANCH"
150+
--target-branch "$TARGET_BRANCH" \
151+
--helm-extra-set-args "--set gateway.provider=${GATEWAY_PROVIDER}"

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ This repository provides the Kubernetes infrastructure components, Helm charts,
88
**Infrastructure Components:**
99

1010
- Helm charts for deploying llm-d gateway infrastructure
11-
- Kubernetes Gateway API configurations with support for Istio, Kgateway
12-
(both Envoy and [agentgateway](https://agentgateway.dev/) data planes), and GKE
11+
- Kubernetes Gateway API configurations with support for Istio,
12+
[agentgateway](https://agentgateway.dev/), and GKE
13+
- `kgateway` compatibility mode for inference, deprecated in favor of
14+
standalone `agentgateway` and scheduled for removal in the next llm-d release
1315
- Service mesh integration and traffic management policies
1416

1517
**Operational Tooling:**
@@ -25,7 +27,10 @@ This repository provides the Kubernetes infrastructure components, Helm charts,
2527
- Kubernetes 1.28+ cluster
2628
- Helm 3.10+
2729
- Gateway API v1.4.0+ installed
28-
- Gateway controller (Istio, Kgateway, AgentGateway or GKE) deployed in your cluster
30+
- Gateway controller (Istio, agentgateway, or GKE) deployed in your cluster
31+
- `kgateway` remains supported as a deprecated compatibility mode and install
32+
path and will be removed in the next llm-d release in favor of standalone
33+
`agentgateway`
2934

3035
### Install llm-d Infrastructure
3136

charts/llm-d-infra/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
name: llm-d-infra
33
type: application
4-
version: v1.3.10
4+
version: v1.4.0
55
appVersion: v0.3.0
66
icon: data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iODBtbSIKICAgaGVpZ2h0PSI4MG1tIgogICB2aWV3Qm94PSIwIDAgODAuMDAwMDA0IDgwLjAwMDAwMSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICAgIGlkPSJkZWZzMSIgLz48cGF0aAogICAgIHN0eWxlPSJmaWxsOiM0ZDRkNGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiM0ZDRkNGQ7c3Ryb2tlLXdpZHRoOjIuMzQyOTk7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgIGQ9Im0gNTEuNjI5Nyw0My4wNzY3IGMgLTAuODI1NCwwIC0xLjY1MDgsMC4yMTI4IC0yLjM4ODEsMC42Mzg0IGwgLTEwLjcyNjksNi4xOTI2IGMgLTEuNDc2MywwLjg1MjIgLTIuMzg3MywyLjQzNDUgLTIuMzg3Myw0LjEzNTQgdiAxMi4zODQ3IGMgMCwxLjcwNDEgMC45MTI4LDMuMjg1NCAyLjM4ODUsNC4xMzU4IGwgMTAuNzI1Nyw2LjE5MTggYyAxLjQ3NDcsMC44NTEzIDMuMzAxNSwwLjg1MTMgNC43NzYyLDAgTCA2NC43NDQ3LDcwLjU2MzIgQyA2Ni4yMjEsNjkuNzExIDY3LjEzMiw2OC4xMjg4IDY3LjEzMiw2Ni40Mjc4IFYgNTQuMDQzMSBjIDAsLTEuNzAzNiAtMC45MTIzLC0zLjI4NDggLTIuMzg3MywtNC4xMzU0IGwgLThlLTQsLTRlLTQgLTEwLjcyNjEsLTYuMTkyMiBjIC0wLjczNzQsLTAuNDI1NiAtMS41NjI3LC0wLjYzODQgLTIuMzg4MSwtMC42Mzg0IHogbSAwLDMuNzM5NyBjIDAuMTc3NCwwIDAuMzU0NiwwLjA0NyAwLjUxNjcsMC4xNDA2IGwgMTAuNzI3Niw2LjE5MjUgNGUtNCw0ZS00IGMgMC4zMTkzLDAuMTg0IDAuNTE0MywwLjUyMDMgMC41MTQzLDAuODkzMiB2IDEyLjM4NDcgYyAwLDAuMzcyMSAtMC4xOTI3LDAuNzA3MyAtMC41MTU1LDAuODkzNiBsIC0xMC43MjY4LDYuMTkyMiBjIC0wLjMyNDMsMC4xODcyIC0wLjcwOTEsMC4xODcyIC0xLjAzMzQsMCBsIC0xMC43MjcyLC02LjE5MjYgLThlLTQsLTRlLTQgQyA0MC4wNjU3LDY3LjEzNjcgMzkuODcwNyw2Ni44MDA3IDM5Ljg3MDcsNjYuNDI3OCBWIDU0LjA0MzEgYyAwLC0wLjM3MiAwLjE5MjcsLTAuNzA3NyAwLjUxNTUsLTAuODk0IEwgNTEuMTEzLDQ2Ljk1NyBjIDAuMTYyMSwtMC4wOTQgMC4zMzkzLC0wLjE0MDYgMC41MTY3LC0wLjE0MDYgeiIKICAgICBpZD0icGF0aDEyMiIgLz48cGF0aAogICAgIGlkPSJwYXRoMTI0IgogICAgIHN0eWxlPSJmaWxsOiM0ZDRkNGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiM0ZDRkNGQ7c3Ryb2tlLXdpZHRoOjIuMzQyOTk7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgIGQ9Im0gNjMuMzg5MDE4LDM0LjgxOTk1OCB2IDIyLjM0NDE3NSBhIDEuODcxNTQzLDEuODcxNTQzIDAgMCAwIDEuODcxNTQxLDEuODcxNTQxIDEuODcxNTQzLDEuODcxNTQzIDAgMCAwIDEuODcxNTQxLC0xLjg3MTU0MSBWIDMyLjY1ODY0NyBaIiAvPjxwYXRoCiAgICAgc3R5bGU9ImZpbGw6IzdmMzE3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzdmMzE3ZjtzdHJva2Utd2lkdGg6Mi4yNDM7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0ibSAzNi43MzQyLDI4LjIzNDggYyAwLjQwOTcsMC43MTY1IDEuMDA0MiwxLjMyNzMgMS43Mzk4LDEuNzU2MSBsIDEwLjcwMSw2LjIzNzIgYyAxLjQ3MjcsMC44NTg0IDMuMjk4NCwwLjg2MzcgNC43NzUsMC4wMTkgbCAxMC43NTA2LC02LjE0ODUgYyAxLjQ3OTMsLTAuODQ2IDIuMzk4NywtMi40MjM0IDIuNDA0NCwtNC4xMjY3IGwgMC4wNSwtMTIuMzg0NCBjIDAuMDEsLTEuNzAyOSAtMC45LC0zLjI4ODYgLTIuMzcxMiwtNC4xNDYxIEwgNTQuMDgzMiwzLjIwNCBDIDUyLjYxMDUsMi4zNDU1IDUwLjc4NDcsMi4zNDAyIDQ5LjMwODIsMy4xODUgTCAzOC41NTc1LDkuMzMzNSBjIC0xLjQ3ODksMC44NDU4IC0yLjM5ODQsMi40MjI3IC0yLjQwNDYsNC4xMjU0IGwgMTBlLTUsOGUtNCAtMC4wNSwxMi4zODUgYyAwLDAuODUxNSAwLjIyMTYsMS42NzM1IDAuNjMxNCwyLjM5IHogbSAzLjI0NjMsLTEuODU2NiBjIC0wLjA4OCwtMC4xNTQgLTAuMTM1MywtMC4zMzExIC0wLjEzNDUsLTAuNTE4MyBsIDAuMDUsLTEyLjM4NjYgMmUtNCwtNmUtNCBjIDAsLTAuMzY4NCAwLjE5NjMsLTAuNzA0NyAwLjUyLC0wLjg4OTkgTCA1MS4xNjY5LDYuNDM0MyBjIDAuMzIyOSwtMC4xODQ3IDAuNzA5NywtMC4xODM4IDEuMDMxNiwwIGwgMTAuNzAwNiw2LjIzNzQgYyAwLjMyMzUsMC4xODg1IDAuNTE0NSwwLjUyMjYgMC41MTMsMC44OTcgbCAtMC4wNSwxMi4zODYyIHYgOWUtNCBjIDAsMC4zNjg0IC0wLjE5NiwwLjcwNDUgLTAuNTE5NywwLjg4OTYgbCAtMTAuNzUwNiw2LjE0ODUgYyAtMC4zMjMsMC4xODQ3IC0wLjcxMDEsMC4xODQgLTEuMDMyLDAgTCA0MC4zNTkyLDI2Ljc1NjcgYyAtMC4xNjE3LC0wLjA5NCAtMC4yOTA1LC0wLjIyNDggLTAuMzc4NSwtMC4zNzg4IHoiCiAgICAgaWQ9InBhdGgxMjYiIC8+PHBhdGgKICAgICBpZD0icGF0aDEyOSIKICAgICBzdHlsZT0iZmlsbDojN2YzMTdmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojN2YzMTdmO3N0cm9rZS13aWR0aDoyLjI0MztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJNIDIzLjcyODgzNSwyMi4xMjYxODUgNDMuMTI0OTI0LDExLjAzMzIyIEEgMS44NzE1NDMsMS44NzE1NDMgMCAwIDAgNDMuODIwMzkxLDguNDc5NDY2NiAxLjg3MTU0MywxLjg3MTU0MyAwIDAgMCA0MS4yNjY2MzcsNy43ODM5OTk4IEwgMTkuOTk0NDAxLDE5Ljk0OTk2NyBaIiAvPjxwYXRoCiAgICAgc3R5bGU9ImZpbGw6IzdmMzE3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzdmMzE3ZjtzdHJva2Utd2lkdGg6Mi4yNDM7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0ibSAzMS40NzY2LDQ4LjQ1MDQgYyAwLjQxNDUsLTAuNzEzOCAwLjY0NSwtMS41MzQ0IDAuNjQ3MiwtMi4zODU4IGwgMC4wMzIsLTEyLjM4NiBjIDAsLTEuNzA0NiAtMC45MDY0LC0zLjI4NyAtMi4zNzczLC00LjE0MTIgTCAxOS4wNjg4LDIzLjMxOCBjIC0xLjQ3MzcsLTAuODU1OCAtMy4yOTk1LC0wLjg2MDUgLTQuNzc2LC0wLjAxMSBMIDMuNTUyMSwyOS40NzI3IGMgLTEuNDc2OCwwLjg0NzggLTIuMzk0MiwyLjQyNzUgLTIuMzk4Niw0LjEzMDQgbCAtMC4wMzIsMTIuMzg1NyBjIDAsMS43MDQ3IDAuOTA2MywzLjI4NzEgMi4zNzcyLDQuMTQxMiBsIDEwLjcwOTgsNi4yMTk1IGMgMS40NzMyLDAuODU1NSAzLjI5ODcsMC44NjA2IDQuNzc1LDAuMDEyIGwgNmUtNCwtNGUtNCAxMC43NDEyLC02LjE2NTggYyAwLjczODUsLTAuNDIzOSAxLjMzNjksLTEuMDMwOCAxLjc1MTUsLTEuNzQ0NSB6IG0gLTMuMjM0LC0xLjg3ODEgYyAtMC4wODksMC4xNTM0IC0wLjIxODYsMC4yODMxIC0wLjM4MSwwLjM3NjMgbCAtMTAuNzQyMyw2LjE2NyAtNmUtNCwyZS00IGMgLTAuMzE5NCwwLjE4MzYgLTAuNzA4MiwwLjE4MzQgLTEuMDMwNywwIEwgNS4zNzgyLDQ2Ljg5NjQgQyA1LjA1NjUsNDYuNzA5NiA0Ljg2MzMsNDYuMzc0NSA0Ljg2NDMsNDYuMDAxOSBsIDAuMDMyLC0xMi4zODU4IGMgMCwtMC4zNzQ0IDAuMTk0MiwtMC43MDcyIDAuNTE4OSwtMC44OTM2IGwgMTAuNzQyMiwtNi4xNjY3IDZlLTQsLTRlLTQgYyAwLjMxOTQsLTAuMTgzNyAwLjcwNzgsLTAuMTgzNyAxLjAzMDMsMCBsIDEwLjcwOTgsNi4yMTk0IGMgMC4zMjE3LDAuMTg2OSAwLjUxNTIsMC41MjIxIDAuNTE0MiwwLjg5NDggbCAtMC4wMzIsMTIuMzg1NiBjIC00ZS00LDAuMTg3MiAtMC4wNDksMC4zNjQxIC0wLjEzNzksMC41MTc0IHoiCiAgICAgaWQ9InBhdGgxMzkiIC8+PHBhdGgKICAgICBpZD0icGF0aDE0MSIKICAgICBzdHlsZT0iZmlsbDojN2YzMTdmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojN2YzMTdmO3N0cm9rZS13aWR0aDoyLjI0MztzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJNIDMyLjcxMTI5OSw2Mi43NjU3NDYgMTMuMzg4OTY5LDUxLjU0NDc5OCBhIDEuODcxNTQzLDEuODcxNTQzIDAgMCAwIC0yLjU1ODI5NSwwLjY3ODU2OCAxLjg3MTU0MywxLjg3MTU0MyAwIDAgMCAwLjY3ODU2OSwyLjU1ODI5NiBsIDIxLjE5MTM0NCwxMi4zMDYzMyB6IiAvPjwvc3ZnPgo=
77
description: llm-d-infra are the infrastructure components surrounding the llm-d system - a Kubernetes-native high-performance distributed LLM inference framework

charts/llm-d-infra/README.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# llm-d-infra Helm Chart
33

4-
![Version: v1.3.10](https://img.shields.io/badge/Version-v1.3.10-informational?style=flat-square)
4+
![Version: v1.4.0](https://img.shields.io/badge/Version-v1.4.0-informational?style=flat-square)
55
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
66

77
llm-d-infra are the infrastructure components surrounding the llm-d system - a Kubernetes-native high-performance distributed LLM inference framework
@@ -41,7 +41,8 @@ sudo mv kubectl /usr/local/bin/
4141
- Kubernetes 1.30+ (OpenShift 4.17+)
4242
- Helm 3.10+ or [latest release](https://github.com/helm/helm/releases)
4343
- [Gateway API v1.3.0](https://gateway-api.sigs.k8s.io/guides/) or [latest release](https://github.com/kubernetes-sigs/gateway-api/releases)
44-
- [Kgateway](https://kgateway.dev/) (or [Istio](http://istio.io/)) installed in the cluster (see for [examples](https://github.com/llm-d-incubation/llm-d-infra/blob/main/chart-dependencies/kgateway/install.sh) we use in our CI)
44+
- [agentgateway](https://agentgateway.dev/) or [Istio](http://istio.io/) installed in the cluster
45+
- `kgateway` remains supported as a deprecated compatibility mode and install path and will be removed in the next llm-d release in favor of standalone `agentgateway`
4546

4647
## Usage
4748

@@ -106,16 +107,21 @@ Kubernetes: `>= 1.28.0-0`
106107
| extraDeploy | Array of extra objects to deploy with the release | list | `[]` |
107108
| fullnameOverride | String to fully override common.names.fullname | string | `""` |
108109
| gateway | Gateway configuration | object | See below |
110+
| gateway.agentgateway | Shared AgentgatewayParameters for standalone "agentgateway" and the deprecated "kgateway" compatibility mode. | object | `{"env":[],"istio":{},"rawConfig":{},"shutdown":{}}` |
111+
| gateway.agentgateway.env | Additional environment variables for the agentgateway proxy | list | `[]` |
112+
| gateway.agentgateway.istio | Optional Istio integration settings for the agentgateway proxy | object | `{}` |
113+
| gateway.agentgateway.rawConfig | Raw agentgateway config merged into the generated configuration | object | `{}` |
114+
| gateway.agentgateway.shutdown | Optional shutdown behavior for the agentgateway proxy | object | `{}` |
109115
| gateway.annotations | Additional annotations provided to the Gateway resource | object | `{}` |
110116
| gateway.destinationRule | see: https://istio.io/latest/docs/reference/config/networking/destination-rule/ | object | `{"enabled":false,"exportTo":[],"host":"localhost","subsets":[],"trafficPolicy":{},"workloadSelector":{}}` |
111117
| gateway.enabled | Deploy resources related to Gateway | bool | `true` |
112118
| gateway.fullnameOverride | String to fully override gateway.fullname | string | `""` |
113-
| gateway.gatewayClassName | Gateway class that determines the backend used Currently supported values: "kgateway" or "agentgateway-v2" for kgateway, "istio", "data-science-gateway-class", or "gke-l7-regional-external-managed" | string | `"istio"` |
114-
| gateway.gatewayParameters.floatingUserId | Enable floating user ID for OpenShift compatibility When true, allows OpenShift to assign user IDs from its allowed range instead of using a hardcoded user ID | bool | `false` |
119+
| gateway.gatewayClassName | Deprecated: "kgateway" and "agentgateway-v2" are compatibility aliases and are rendered as "agentgateway". | string | `""` |
115120
| gateway.gatewayParameters.resources | Resource requests/limits <br /> Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container | object | `{"limits":{"cpu":"2","memory":"1Gi"},"requests":{"cpu":"100m","memory":"128Mi"}}` |
116121
| gateway.labels | Additional labels provided to the Gateway resource | object | `{}` |
117122
| gateway.listeners | Set of listeners exposed via the Gateway, also propagated to the Ingress if enabled | list | `[{"allowedRoutes":{"namespaces":{"from":"All"}},"name":"default","port":80,"protocol":"HTTP"}]` |
118123
| gateway.nameOverride | String to partially override gateway.fullname | string | `""` |
124+
| gateway.provider | Deprecated: "kgateway" selects the deprecated kgateway compatibility mode and install path and will be removed in the next llm-d release. | string | `"istio"` |
119125
| gateway.tls | TLS configuration for gateway | object | See below |
120126
| gateway.tls.referenceGrant | ReferenceGrant configuration for cross-namespace TLS certificate access | object | See below |
121127
| gateway.tls.referenceGrant.enabled | Enable ReferenceGrant creation (disabled by default) | bool | `false` |
@@ -125,10 +131,10 @@ Kubernetes: `>= 1.28.0-0`
125131
| gateway.tls.servingCertSecretName | Name of the secret for serving certificates (used by data-science-gateway-class) | string | `"data-science-gateway-service-tls"` |
126132
| ingress | Ingress configuration | object | See below |
127133
| ingress.annotations | Additional annotations for the Ingress resource | object | `{}` |
128-
| ingress.enabled | Deploy Ingress (service type must also be ClusterIP) | bool | `false` |
134+
| ingress.enabled | Deploy Ingress (effective gateway service type must be ClusterIP) | bool | `false` |
129135
| ingress.extraHosts | List of additional hostnames to be covered with this ingress record (e.g. a CNAME) <!-- E.g. extraHosts: - name: llm-d.env.example.com path: / (Optional) pathType: Prefix (Optional) port: 7007 (Optional) --> | list | `[]` |
130136
| ingress.extraTls | The TLS configuration for additional hostnames to be covered with this ingress record. <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls <!-- E.g. extraTls: - hosts: - llm-d.env.example.com secretName: llm-d-env --> | list | `[]` |
131-
| ingress.host | Hostname to be used to expose the ClusterIP service to the inferencing gateway | string | `""` |
137+
| ingress.host | Hostname used to expose the gateway when the effective service type is ClusterIP | string | `""` |
132138
| ingress.ingressClassName | Name of the IngressClass cluster resource which defines which controller will implement the resource (e.g nginx) | string | `""` |
133139
| ingress.path | Path to be used to expose the full route to access the inferencing gateway | string | `"/"` |
134140
| ingress.tls | Ingress TLS parameters | object | `{"enabled":false,"secretName":""}` |
@@ -142,5 +148,5 @@ Kubernetes: `>= 1.28.0-0`
142148
This chart deploys all infrastructure required to run the [llm-d](https://llm-d.ai/) project. It includes:
143149

144150
- A Gateway
145-
- Gateway Parameters if Kgateway is chosen as a provider
151+
- AgentgatewayParameters for standalone agentgateway and the deprecated kgateway compatibility mode
146152
- An optional ingress to sit in front of the gateway

charts/llm-d-infra/README.md.gotmpl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ sudo mv kubectl /usr/local/bin/
3838
- Kubernetes 1.30+ (OpenShift 4.17+)
3939
- Helm 3.10+ or [latest release](https://github.com/helm/helm/releases)
4040
- [Gateway API v1.3.0](https://gateway-api.sigs.k8s.io/guides/) or [latest release](https://github.com/kubernetes-sigs/gateway-api/releases)
41-
- [Kgateway](https://kgateway.dev/) (or [Istio](http://istio.io/)) installed in the cluster (see for [examples](https://github.com/llm-d-incubation/llm-d-infra/blob/main/chart-dependencies/kgateway/install.sh) we use in our CI)
41+
- [agentgateway](https://agentgateway.dev/) or [Istio](http://istio.io/) installed in the cluster
42+
- `kgateway` remains supported as a deprecated compatibility mode and install path and will be removed in the next llm-d release in favor of standalone `agentgateway`
4243

4344
## Usage
4445

@@ -96,5 +97,5 @@ The command removes all the Kubernetes components associated with the chart and
9697
This chart deploys all infrastructure required to run the [llm-d](https://llm-d.ai/) project. It includes:
9798

9899
- A Gateway
99-
- Gateway Parameters if Kgateway is chosen as a provider
100+
- AgentgatewayParameters for standalone agentgateway and the deprecated kgateway compatibility mode
100101
- An optional ingress to sit in front of the gateway

charts/llm-d-infra/templates/NOTES.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,12 @@ To learn more about the release, try:
88
$ helm status {{ .Release.Name }} -n {{ .Release.Namespace }}
99
$ helm get all {{ .Release.Name }} -n {{ .Release.Namespace }}
1010
```
11+
12+
{{- if or (eq .Values.gateway.provider "kgateway") (eq .Values.gateway.gatewayClassName "kgateway") (eq .Values.gateway.gatewayClassName "agentgateway-v2") }}
13+
14+
`gateway.provider=kgateway`, `gateway.gatewayClassName=kgateway`, and `gateway.gatewayClassName=agentgateway-v2` are deprecated.
15+
`gateway.provider=kgateway` enables the deprecated kgateway compatibility mode and install path.
16+
`gateway.gatewayClassName=kgateway` and `gateway.gatewayClassName=agentgateway-v2` are compatibility aliases and are rendered as `agentgateway`.
17+
Use standalone `agentgateway` instead. The kgateway compatibility mode will be removed in the next llm-d release.
18+
Set `gateway.provider=agentgateway` and leave `gateway.gatewayClassName` empty, or set it explicitly to `agentgateway`.
19+
{{- end }}

0 commit comments

Comments
 (0)