Skip to content
agentgateway has joined the Agentic AI FoundationLearn more

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

agentgateway

Page as Markdown

Review Helm values for the agentgateway Helm chart.

Review Helm values for the agentgateway Helm chart.

For more information about using this Helm chart, see the Helm installation guide.

Values

KeyTypeDescription
affinityobjectSet affinity rules for pod scheduling, such as ’nodeAffinity:’.

The default value is {}.
agentgatewayModelsobjectConfigure the experimental AgentgatewayModel API.

The default value is {"enabled":false}.
agentgatewayModels.enabledboolEnable AgentgatewayModel support in the agentgateway controller.

The default value is false.
commonLabelsobjectAdditional labels to add to all resources created by the Helm chart.

The default value is {}.
controllerobjectConfigure the agentgateway control plane deployment.

The default value is {"extraContainers":[],"extraEnv":{},"extraVolumeMounts":[],"extraVolumes":[],"horizontalPodAutoscaler":{},"image":{"pullPolicy":"","registry":"","repository":"controller","tag":""},"logLevel":"info","podDisruptionBudget":{},"priorityClassName":"","replicaCount":1,"revisionHistoryLimit":null,"service":{"allocateLoadBalancerNodePorts":null,"annotations":{},"clusterIP":"","clusterIPs":[],"enabled":true,"externalIPs":[],"externalName":"","externalTrafficPolicy":"","extraLabels":{},"healthCheckNodePort":null,"internalTrafficPolicy":"","ipFamilies":[],"ipFamilyPolicy":"","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"ports":{"agwGrpc":9978,"health":9093,"metrics":9092},"publishNotReadyAddresses":false,"sessionAffinity":"","sessionAffinityConfig":{},"trafficDistribution":"","type":"ClusterIP"},"strategy":{},"verticalPodAutoscaler":{},"xds":{"mode":"tls"}}.
controller.extraContainerslistAdd extra sidecar containers to the controller pod.

The default value is [].
controller.extraEnvobjectAdd extra environment variables to the controller container. Supports either a direct scalar value: extraEnv: LOG_FORMAT: json Or Kubernetes valueFrom sources: extraEnv: API_TOKEN: valueFrom: secretKeyRef: name: agentgateway-secrets key: apiToken.

The default value is {}.
controller.extraVolumeMountslistAdd extra volume mounts to the controller container.

The default value is [].
controller.extraVolumeslistAdd extra volumes to the controller pod.

The default value is [].
controller.horizontalPodAutoscalerobjectSet horizontal pod autoscaler for the controller. Note that this does not affect the data plane. The scaleTargetRef is automatically configured to target the controller deployment. E.g.: horizontalPodAutoscaler: minReplicas: 1 maxReplicas: 5 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 80.

The default value is {}.
controller.imageobjectConfigure the controller container image.

The default value is {"pullPolicy":"","registry":"","repository":"controller","tag":""}.
controller.image.pullPolicystringSet the image pull policy for the controller.

The default value is "".
controller.image.registrystringSet the image registry for the controller.

The default value is "".
controller.image.repositorystringSet the image repository for the controller.

The default value is "controller".
controller.image.tagstringSet the image tag for the controller.

The default value is "".
controller.logLevelstringSet the log level for the controller.

The default value is "info".
controller.podDisruptionBudgetobjectSet pod disruption budget for the controller. Note that this does not affect the data plane. E.g.: podDisruptionBudget: minAvailable: 100%.

The default value is {}.
controller.priorityClassNamestringSet the priority class name for the controller pod.

The default value is "".
controller.replicaCountintSet the number of controller pod replicas.

The default value is 1.
controller.revisionHistoryLimitstringSet the number of old ReplicaSets the controller deployment retains for rollback. Leave unset to use the Kubernetes default of 10. ‘0’ is honored and keeps no history.

The default value is nil.
controller.serviceobjectConfigure the controller service.

The default value is {"allocateLoadBalancerNodePorts":null,"annotations":{},"clusterIP":"","clusterIPs":[],"enabled":true,"externalIPs":[],"externalName":"","externalTrafficPolicy":"","extraLabels":{},"healthCheckNodePort":null,"internalTrafficPolicy":"","ipFamilies":[],"ipFamilyPolicy":"","loadBalancerClass":"","loadBalancerIP":"","loadBalancerSourceRanges":[],"ports":{"agwGrpc":9978,"health":9093,"metrics":9092},"publishNotReadyAddresses":false,"sessionAffinity":"","sessionAffinityConfig":{},"trafficDistribution":"","type":"ClusterIP"}.
controller.service.allocateLoadBalancerNodePortsstringAllocate load balancer node ports.

The default value is nil.
controller.service.annotationsobjectService annotations.

The default value is {}.
controller.service.clusterIPstringCluster IP address.

The default value is "".
controller.service.clusterIPslistCluster IPs for dual-stack.

The default value is [].
controller.service.enabledboolCreate the controller Service.

The default value is true.
controller.service.externalIPslistExternal IP addresses.

The default value is [].
controller.service.externalNamestringExternal name for ExternalName services.

The default value is "".
controller.service.externalTrafficPolicystringExternal traffic policy.

The default value is "".
controller.service.extraLabelsobjectExtra labels for the Service.

The default value is {}.
controller.service.healthCheckNodePortstringHealth check node port.

The default value is nil.
controller.service.internalTrafficPolicystringInternal traffic policy.

The default value is "".
controller.service.ipFamilieslistIP families.

The default value is [].
controller.service.ipFamilyPolicystringIP family policy.

The default value is "".
controller.service.loadBalancerClassstringLoad balancer class.

The default value is "".
controller.service.loadBalancerIPstringLoad balancer IP address.

The default value is "".
controller.service.loadBalancerSourceRangeslistAllowed source ranges for load balancer.

The default value is [].
controller.service.portsobjectService ports.

The default value is {"agwGrpc":9978,"health":9093,"metrics":9092}.
controller.service.publishNotReadyAddressesboolPublish not ready addresses.

The default value is false.
controller.service.sessionAffinitystringSession affinity.

The default value is "".
controller.service.sessionAffinityConfigobjectSession affinity configuration.

The default value is {}.
controller.service.trafficDistributionstringTraffic distribution.

The default value is "".
controller.service.typestringService type.

The default value is "ClusterIP".
controller.strategyobjectChange the rollout strategy from the Kubernetes default of a RollingUpdate with 25% maxUnavailable, 25% maxSurge. E.g., to recreate pods, minimizing resources for the rollout but causing downtime: strategy: type: Recreate E.g., to roll out as a RollingUpdate but with non-default parameters: strategy: type: RollingUpdate rollingUpdate: maxSurge: 100%.

The default value is {}.
controller.verticalPodAutoscalerobjectSet vertical pod autoscaler for the controller. Note that this does not affect the data plane. The targetRef is automatically configured to target the controller deployment. E.g.: verticalPodAutoscaler: updatePolicy: updateMode: Auto resourcePolicy: containerPolicies: - containerName: “*” minAllowed: cpu: 100m memory: 128Mi.

The default value is {}.
controller.xdsobjectConfigure xDS transport mode for the gRPC servers.

The default value is {"mode":"tls"}.
controller.xds.modestringOne of: plaintext, tls, either.

The default value is "tls".
controllerNamestringValue written to GatewayClass.spec.controllerName that this controller reconciles. Leave empty to use the built-in default (“agentgateway.dev/agentgateway”). Sets AGW_CONTROLLER_NAME. Change this together with gatewayClassName when running multiple agentgateway controllers.

The default value is "".
deploymentAnnotationsobjectAdd annotations to the agentgateway deployment.

The default value is {}.
discoveryNamespaceSelectorslistList of namespace selectors (OR’ed): each entry can use ‘matchLabels’ or ‘matchExpressions’ (AND’ed within each entry if used together). Agentgateway includes the selected namespaces in config discovery. For more information, see the docs https://agentgateway.dev/docs/kubernetes/latest/install/advanced/#namespace-discovery.

The default value is [].
dnsConfigobjectSet the pod DNS configuration, such as ‘options: [{name: ndots, value: “3”}]’. Merged with the DNS settings the kubelet derives from the pod’s dnsPolicy.

The default value is {}.
fullnameOverridestringOverride the full name of resources created by the Helm chart, which is ‘agentgateway’. If you set ‘fullnameOverride: “foo”, the full name of the resources that the Helm release creates become ‘foo’, such as the deployment, service, and service account for the agentgateway control plane in the agentgateway-system namespace.

The default value is "".
gatewayClassNamestringName of the primary GatewayClass the controller creates and manages. Leave empty to use the built-in default (“agentgateway”). Sets AGW_AGENTGATEWAY_CLASS_NAME.

The default value is "".
gatewayClassParametersRefsobjectMap of GatewayClass names to GatewayParameters references that will be set on the default GatewayClasses managed by kgateway. Each entry must define both the name and namespace of the GatewayParameters resource. The default GatewayClasses managed by kgateway are: - agentgateway Example: gatewayClassParametersRefs: agentgateway: name: shared-gwp namespace: kgateway-system.

The default value is {}.
imageobjectConfigure the default container image for the components that Helm deploys. You can override these settings for each particular component in that component’s section, such as ‘controller.image’ for the agentgateway control plane. If you use your own private registry, make sure to include the imagePullSecrets.

The default value is {"pullPolicy":"IfNotPresent","registry":"cr.agentgateway.dev","tag":""}.
image.pullPolicystringSet the default image pull policy.

The default value is "IfNotPresent".
image.registrystringSet the default image registry.

The default value is "cr.agentgateway.dev".
image.tagstringSet the default image tag.

The default value is "".
imagePullSecretslistSet a list of image pull secrets for Kubernetes to use when pulling container images from your own private registry instead of the default agentgateway registry.

The default value is [].
inferenceExtensionobjectConfigure the integration with the Gateway API Inference Extension project, which lets you use agentgateway to route to AI inference workloads like LLMs that run locally in your Kubernetes cluster. Documentation for Inference Extension can be found here: https://agentgateway.dev/docs/kubernetes/latest/inference/.

The default value is {"enabled":false}.
inferenceExtension.enabledboolEnable Inference Extension support in the agentgateway controller.

The default value is false.
istioobjectControl-plane-wide Istio mesh defaults.

The default value is {"autoEnabled":false,"caAddress":"","clusterId":"","namespace":"","network":"","revision":""}.
istio.autoEnabledboolEnable Istio integration by default on all built-in-class gateways. When false (default), gateways opt in via AgentgatewayParameters spec.istio; when true, individual gateways can opt out via spec.istio.enabled=false.

The default value is false.
istio.caAddressstringIstio CA address override; Defaults to “https://istiod.istio-system.svc:15012”.

The default value is "".
istio.clusterIdstringIstio cluster ID (the istiod multiCluster clusterName) for mesh-integrated gateways.

The default value is "".
istio.namespacestringNamespace where the Istio control plane the controller integrates with is installed. Defaults to “istio-system”.

The default value is "".
istio.networkstringIstio network for mesh-integrated gateways.

The default value is "".
istio.revisionstringRevision of the Istio control plane the controller integrates with. If unset, the default revision is used.

The default value is "".
monitoringobjectConfigure Prometheus and Grafana monitoring resources.

The default value is {"enabled":false,"grafanaDashboard":{"enabled":true,"labels":{"grafana_dashboard":"1"}},"proxy":{"gatewayClassNames":["agentgateway"],"namespaceSelector":{},"podMonitor":{"enabled":true}},"serviceMonitor":{"enabled":true,"extraLabels":{},"interval":"15s"}}.
monitoring.enabledboolCreate monitoring resources (ServiceMonitors and Grafana dashboard ConfigMap). Requires the Prometheus Operator CRDs to be installed in the cluster.

The default value is false.
monitoring.grafanaDashboard.enabledboolCreate the Grafana dashboard ConfigMap.

The default value is true.
monitoring.grafanaDashboard.labelsobjectLabels that the Grafana sidecar uses to discover dashboards.

The default value is {"grafana_dashboard":"1"}.
monitoring.proxy.gatewayClassNameslistGatewayClass names whose proxy pods are selected by the proxy PodMonitor.

The default value is ["agentgateway"].
monitoring.proxy.namespaceSelectorobjectNamespace selector used by the proxy PodMonitor. Defaults to the release namespace only.

The default value is {}.
monitoring.proxy.podMonitor.enabledboolCreate a PodMonitor that scrapes provisioned proxy pods on the pod’s metrics port (15020) directly, without requiring a metrics port on the provisioned Service.

The default value is true.
monitoring.serviceMonitor.enabledboolCreate the controller ServiceMonitor.

The default value is true.
monitoring.serviceMonitor.extraLabelsobjectAdditional labels to add to the controller ServiceMonitor and the proxy PodMonitor (e.g. release: prometheus).

The default value is {}.
monitoring.serviceMonitor.intervalstringScrape interval for the controller ServiceMonitor and the proxy PodMonitor.

The default value is "15s".
nameOverridestringAdd a name to the default Helm base release, which is ‘agentgateway’. If you set ’nameOverride: “foo”, the name of the resources that the Helm release creates become ‘agentgateway-foo’, such as the deployment, service, and service account for the agentgateway control plane in the agentgateway-system namespace.

The default value is "".
nodeSelectorobjectSet node selector labels for pod scheduling, such as ‘kubernetes.io/arch: amd64’.

The default value is {}.
podAnnotationsobjectAdd annotations to the agentgateway pods.

The default value is {"prometheus.io/scrape":"true"}.
podLabelsobjectAdd labels to the agentgateway pods. Useful for NetworkPolicy selectors (e.g. opt-in egress labels on Cilium-based clusters).

The default value is {}.
podSecurityContextobjectSet the pod-level security context. For example, ‘fsGroup: 2000’ sets the filesystem group to 2000.

The default value is {}.
proxyobjectConfigure the agentgateway data plane deployment.

The default value is {"image":{"registry":"","repository":"agentgateway","tag":""}}.
proxy.image.registrystringSet the default image registry. Set to override the global value.

The default value is "".
proxy.image.repositorystringSet the default image repository.

The default value is "agentgateway".
proxy.image.tagstringSet the default image tag.

The default value is "".
rbacobjectConfigure the RBAC permissions created for the controller.

The default value is {"gatewayNamespaces":[]}.
rbac.gatewayNamespaceslistRestrict namespaced write permissions to these namespaces. The namespaces must already exist. An empty list preserves the default cluster-wide write access. Cluster-wide read permissions and writes to cluster-scoped resources are unaffected. Restricting this list means only Gateways in these namespaces can be used.

The default value is [].
resourcesobjectConfigure resource requests and limits for the container, such as ’limits.cpu: 100m’ or ‘requests.memory: 128Mi’.

The default value is {"requests":{"cpu":"100m","memory":"128Mi"}}.
securityContextobjectSet the container-level security context, such as ‘runAsNonRoot: true’.

The default value is {}.
serviceAccountobjectConfigure the service account for the deployment.

The default value is {"annotations":{},"create":true,"name":""}.
serviceAccount.annotationsobjectAdd annotations to the service account.

The default value is {}.
serviceAccount.createboolSpecify whether a service account should be created.

The default value is true.
serviceAccount.namestringSet the name of the service account to use. If not set and create is true, a name is generated using the fullname template.

The default value is "".
tolerationslistSet tolerations for pod scheduling, such as ‘key: “nvidia.com/gpu”’.

The default value is [].
Was this page helpful?
Agentgateway assistant

Ask me anything about agentgateway configuration, features, or usage.

Note: AI-generated content might contain errors; please verify and test all returned information.

Tip: one topic per conversation gives the best results. Use the + button in the chat header to start a new conversation.

Switching topics? Starting a new conversation improves accuracy.
↑↓ navigate select esc dismiss

What could be improved?

Your feedback helps us improve assistant answers and identify docs gaps we should fix.

Need more help? Join us on Discord: https://discord.gg/y9efgEmppm

Want to use your own agent? Add the Solo MCP server to query our docs directly. Get started here: https://search.solo.io/.