Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr-kubernetes-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:
# August 29, 2025: ~4 minutes
- cluster-name: 'agent-gateway-cluster'
go-test-args: '-v -timeout=25m'
go-test-run-regex: '^TestAgentGatewayIntegration'
go-test-run-regex: '^TestAgentgatewayIntegration'
agentgateway: 'true'
# August 29, 2025: ~3 minutes
- cluster-name: 'api-validation'
Expand Down
26 changes: 13 additions & 13 deletions api/applyconfiguration/api/v1alpha1/agentgateway.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions api/applyconfiguration/api/v1alpha1/kubernetesproxyconfig.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions api/applyconfiguration/internal/internal.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions api/applyconfiguration/utils.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 14 additions & 14 deletions api/v1alpha1/gateway_parameters_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ type KubernetesProxyConfig struct {
Deployment *ProxyDeployment `json:"deployment,omitempty"`

// Configuration for the container running Envoy.
// If AgentGateway is enabled, the EnvoyContainer values will be ignored.
// If agentgateway is enabled, the EnvoyContainer values will be ignored.
//
// +optional
EnvoyContainer *EnvoyContainer `json:"envoyContainer,omitempty"`
Expand Down Expand Up @@ -120,11 +120,11 @@ type KubernetesProxyConfig struct {
// +optional
AiExtension *AiExtension `json:"aiExtension,omitempty"`

// Configure the AgentGateway integration. If AgentGateway is disabled, the EnvoyContainer values will be used by
// Configure the agentgateway integration. If agentgateway is disabled, the EnvoyContainer values will be used by
// default to configure the data plane proxy.
//
// +optional
AgentGateway *AgentGateway `json:"agentGateway,omitempty"`
Agentgateway *Agentgateway `json:"agentgateway,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @artberger @Nadine2016 field name change


// Used to unset the `runAsUser` values in security contexts.
FloatingUserId *bool `json:"floatingUserId,omitempty"`
Expand Down Expand Up @@ -193,11 +193,11 @@ func (in *KubernetesProxyConfig) GetAiExtension() *AiExtension {
return in.AiExtension
}

func (in *KubernetesProxyConfig) GetAgentGateway() *AgentGateway {
func (in *KubernetesProxyConfig) GetAgentgateway() *Agentgateway {
if in == nil {
return nil
}
return in.AgentGateway
return in.Agentgateway
}

func (in *KubernetesProxyConfig) GetFloatingUserId() *bool {
Expand Down Expand Up @@ -996,8 +996,8 @@ func (otelTransportSecurityMode OTLPTransportSecurityMode) String() string {
}
}

// AgentGateway configures the AgentGateway integration. If AgentGateway is enabled, Envoy
type AgentGateway struct {
// Agentgateway configures the agentgateway dataplane integration to be enabled if the `agentgateway` GatewayClass is used.
type Agentgateway struct {
// Whether to enable the extension.
//
// +optional
Expand Down Expand Up @@ -1059,49 +1059,49 @@ type AgentGateway struct {
ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"`
}

func (in *AgentGateway) GetEnabled() *bool {
func (in *Agentgateway) GetEnabled() *bool {
if in == nil {
return nil
}
return in.Enabled
}

func (in *AgentGateway) GetLogLevel() *string {
func (in *Agentgateway) GetLogLevel() *string {
if in == nil {
return nil
}
return in.LogLevel
}

func (in *AgentGateway) GetImage() *Image {
func (in *Agentgateway) GetImage() *Image {
if in == nil {
return nil
}
return in.Image
}

func (in *AgentGateway) GetSecurityContext() *corev1.SecurityContext {
func (in *Agentgateway) GetSecurityContext() *corev1.SecurityContext {
if in == nil {
return nil
}
return in.SecurityContext
}

func (in *AgentGateway) GetResources() *corev1.ResourceRequirements {
func (in *Agentgateway) GetResources() *corev1.ResourceRequirements {
if in == nil {
return nil
}
return in.Resources
}

func (in *AgentGateway) GetEnv() []corev1.EnvVar {
func (in *Agentgateway) GetEnv() []corev1.EnvVar {
if in == nil {
return nil
}
return in.Env
}

func (in *AgentGateway) GetCustomConfigMapName() *string {
func (in *Agentgateway) GetCustomConfigMapName() *string {
if in == nil {
return nil
}
Expand Down
14 changes: 7 additions & 7 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ spec:
properties:
kube:
properties:
agentGateway:
agentgateway:
properties:
customConfigMapName:
type: string
Expand Down
4 changes: 2 additions & 2 deletions install/helm/kgateway/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ spec:
value: {{ $value | quote }}
{{- end }}
{{- end }}
{{- if .Values.agentGateway.enabled }}
- name: KGW_ENABLE_AGENT_GATEWAY
{{- if .Values.agentgateway.enabled }}
- name: KGW_ENABLE_AGENTGATEWAY
value: "true"
{{- end }}
# TODO: Remove this once the cleanup is done. Required as the gloo-system
Expand Down
2 changes: 1 addition & 1 deletion install/helm/kgateway/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ inferenceExtension:
discoveryNamespaceSelectors: []

# -- Enable the integration with Agent Gateway, which lets you use kgateway to help manage agent connectivity across MCP servers, A2A agents, and REST APIs.
agentGateway:
agentgateway:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cc @artberger @Nadine2016 Helm value change

enabled: false

# -- Policy merging settings. Currently, TrafficPolicy's extAuth, extProc, and transformation policies support deep merging.
Expand Down
16 changes: 8 additions & 8 deletions internal/kgateway/agentgatewaysyncer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This syncer configures xds updates for the [agentgateway](https://agentgateway.d

To use the agentgateway control plane with kgateway, you need to enable the integration in the helm chart:
```yaml
agentGateway:
agentgateway:
enabled: true # set this to true
```

Expand All @@ -17,7 +17,7 @@ metadata:
name: kgateway
spec:
kube:
agentGateway:
agentgateway:
enabled: true
logLevel: debug
image:
Expand Down Expand Up @@ -154,21 +154,21 @@ Policies are configurable rules that control traffic behavior, security, and tra

### Architecture

The agentgateway syncer only runs if `cfg.SetupOpts.GlobalSettings.EnableAgentGateway` is set. Otherwise,
The agentgateway syncer only runs if `cfg.SetupOpts.GlobalSettings.EnableAgentgateway` is set. Otherwise,
only the Envoy proxy syncer will run by default.

```mermaid
flowchart TD
subgraph "kgateway startup"
A1["start.go"] --> A2["NewControllerBuilder()"]
A2 --> A3{EnableAgentGateway?}
A2 --> A3{EnableAgentgateway?}
A3 -->|true| A4["Create AgentGwSyncer"]
A3 -->|false| A5["Skip AgentGateway"]
A3 -->|false| A5["Skip Agentgateway"]
end

subgraph "agentgateway Syncer Initialization"
A4 --> B1["agentgatewaysyncer.NewAgentGwSyncer()"]
B1 --> B2["Set Configuration<br/>• controllerName<br/>• agentGatewayClassName<br/>• domainSuffix<br/>• clusterID"]
B1 --> B2["Set Configuration<br/>• controllerName<br/>• agentgatewayClassName<br/>• domainSuffix<br/>• clusterID"]
B2 --> B3["syncer.Init()<br/>Build KRT Collections"]
end

Expand Down Expand Up @@ -207,7 +207,7 @@ flowchart TD
E1 --> E2["xdsCache.SetSnapshot()<br/>with resource name"]
E2 --> E3["XDS Server<br/>Serves via gRPC"]

E3 --> E4["AgentGateway Proxy<br/>Receives & applies config"]
E3 --> E4["Agentgateway Proxy<br/>Receives & applies config"]
end

subgraph "Status"
Expand Down Expand Up @@ -244,7 +244,7 @@ Set up a kind cluster and install kgateway with the kubernetes Gateway APIs:
```shell
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml
helm upgrade -i --create-namespace --namespace kgateway-system --version v2.1.0-main kgateway-crds oci://cr.kgateway.dev/kgateway-dev/charts/kgateway-crds
helm upgrade -i --namespace kgateway-system --version v2.1.0-main kgateway oci://cr.kgateway.dev/kgateway-dev/charts/kgateway --set agentGateway.enabled=true --set inferenceExtension.enabled=true
helm upgrade -i --namespace kgateway-system --version v2.1.0-main kgateway oci://cr.kgateway.dev/kgateway-dev/charts/kgateway --set agentgateway.enabled=true --set inferenceExtension.enabled=true
```

#### HTTPRoute
Expand Down
Loading