Skip to content
You are viewing the latest documentation for Solo Enterprise for kgateway, formerly known as Gloo Gateway. To access the documentation for older Gloo Gateway versions, such as 2.0 and 1.x, use the version switcher.

Solo Enterprise for kgateway

Page as Markdown

Review Helm values for the enterprise-kgateway Helm chart.

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

KeyTypeDescriptionDefault
affinityobjectSet affinity rules for pod scheduling, such as ’nodeAffinity:'.{}
controllerobjectConfigure the kgateway control plane deployment.{"extraEnv":{},"extraVolumeMounts":[],"extraVolumes":[],"image":{"pullPolicy":"","registry":"","repository":"enterprise-kgateway-controller","tag":""},"logLevel":"info","podDisruptionBudget":{},"replicaCount":1,"service":{"ports":{"grpc":9977,"health":9093,"metrics":9092},"type":"ClusterIP"},"strategy":{},"xds":{"tls":{"enabled":false}}}
controller.extraEnvobjectAdd extra environment variables to the controller container.{}
controller.extraVolumeMountslistAdditional volume mounts to add to the controller container. Useful for mounting license keys from external secret stores.[]
controller.extraVolumeslistAdditional volumes to add to the controller pod. Useful for mounting license keys from external secret stores.[]
controller.imageobjectConfigure the controller container image.{"pullPolicy":"","registry":"","repository":"enterprise-kgateway-controller","tag":""}
controller.image.pullPolicystringSet the image pull policy for the controller.""
controller.image.registrystringSet the image registry for the controller.""
controller.image.repositorystringSet the image repository for the controller."enterprise-kgateway-controller"
controller.image.tagstringSet the image tag for the controller.""
controller.logLevelstringSet the log level for the controller."info"
controller.podDisruptionBudgetobjectSet pod disruption budget for the controller. Note that this does not affect the data plane. E.g.: podDisruptionBudget: minAvailable: 100%{}
controller.replicaCountintSet the number of controller pod replicas.1
controller.serviceobjectConfigure the controller service.{"ports":{"grpc":9977,"health":9093,"metrics":9092},"type":"ClusterIP"}
controller.service.portsobjectSet the service ports for gRPC and health endpoints.{"grpc":9977,"health":9093,"metrics":9092}
controller.service.typestringSet the service type for the controller."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%{}
controller.xdsobjectConfigure TLS settings for the xDS gRPC servers.{"tls":{"enabled":false}}
controller.xds.tls.enabledboolEnable TLS encryption for xDS communication. When enabled, both the main xDS server (port 9977) and agent gateway xDS server (port 9978) will use TLS. When TLS is enabled, you must create a Secret named ‘kgateway-xds-cert’ in the kgateway installation namespace. The Secret must be of type ‘kubernetes.io/tls’ with ’tls.crt’, ’tls.key’, and ‘ca.crt’ data fields present.false
deploymentAnnotationsobjectAdd annotations to the kgateway deployment.{}
discoveryNamespaceSelectorslistList of namespace selectors (OR’ed): each entry can use ‘matchLabels’ or ‘matchExpressions’ (AND’ed within each entry if used together). Kgateway includes the selected namespaces in config discovery. For more information, see the docs https://kgateway.dev/docs/envoy/latest/install/advanced/#namespace-discovery.[]
fullnameOverridestringOverride the full name of resources created by the Helm chart, which is ‘kgateway’. 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 kgateway control plane in the kgateway-system namespace."enterprise-kgateway"
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: - enterprise-kgateway Example: gatewayClassParametersRefs: enterprise-kgateway: name: shared-gwp namespace: kgateway-system{}
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 kgateway control plane. If you use your own private registry, make sure to include the imagePullSecrets.{"pullPolicy":"IfNotPresent","registry":"us-docker.pkg.dev/developers-369321/gloo-gateway","tag":"2.0.0-local"}
image.pullPolicystringSet the default image pull policy."IfNotPresent"
image.registrystringSet the default image registry."us-docker.pkg.dev/developers-369321/gloo-gateway"
image.tagstringSet the default image tag."2.0.0-local"
imagePullSecretslistSet a list of image pull secrets for Kubernetes to use when pulling container images from your own private registry instead of the default kgateway registry.[]
licensing.createSecretboolIf you use your own Secret, changing the Secret will only take effect when you restart the deployment: kubectl -n kgateway-system rollout restart deployment/enterprise-kgatewaytrue
licensing.licenseKeystringContact Sales if you do not have an Solo Enterprise for kgateway license keynil
licensing.secretNamestringName of the Secret containing the Solo Enterprise for kgateway license key"enterprise-kgateway-license"
licensing.volumestringPath to a file containing the Solo Enterprise for kgateway license key. Use this when providing the license via a mounted volume (e.g. CSI driver reading from Google Secret Manager). When set, the controller reads the license key from this file path instead of the Kubernetes Secret. You must configure the volume and volumeMount separately (see controller.extraVolumes and controller.extraVolumeMounts). Example: /etc/kgateway/license-keynil
nameOverridestringAdd a name to the default Helm base release, which is ‘kgateway’. If you set ’nameOverride: “foo”, the name of the resources that the Helm release creates become ‘kgateway-foo’, such as the deployment, service, and service account for the kgateway control plane in the kgateway-system namespace.""
nodeSelectorobjectSet node selector labels for pod scheduling, such as ‘kubernetes.io/arch: amd64’.{}
podAnnotationsobjectAdd annotations to the kgateway pods.{"prometheus.io/scrape":"true"}
podSecurityContextobjectSet the pod-level security context. For example, ‘fsGroup: 2000’ sets the filesystem group to 2000.{}
policyMergeobjectPolicy merging settings. Currently, TrafficPolicy’s extAuth, extProc, and transformation policies support deep merging. E.g., to enable deep merging of extProc policy in TrafficPolicy: policyMerge: trafficPolicy: extProc: DeepMerge{}
resourcesobjectConfigure resource requests and limits for the container, such as ’limits.cpu: 100m’ or ‘requests.memory: 128Mi’.{}
securityContextobjectSet the container-level security context, such as ‘runAsNonRoot: true’.{}
serviceAccountobjectConfigure the service account for the deployment.{"annotations":{},"create":true,"name":""}
serviceAccount.annotationsobjectAdd annotations to the service account.{}
serviceAccount.createboolSpecify whether a service account should be created.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.""
tolerationslistSet tolerations for pod scheduling, such as ‘key: “nvidia.com/gpu”’.[]
validationobjectConfigure validation behavior for route and policy safety checks in the control plane. This setting determines how invalid configuration is handled to prevent security bypasses and to maintain multi-tenant isolation.{"level":"standard"}
validation.levelstringValidation level. Accepted values: “standard” or “strict” (case-insensitive). Standard replaces invalid routes with a direct 500 response and continues applying valid configuration. Strict adds xDS preflight validation and blocks snapshots that would NACK in Envoy. Default is “standard”."standard"
waypointobjectEnable the waypoint integration. This enables kgateway to translate istio waypoints and use kgateway as a waypoint in an Istio Ambient service mesh setup.{"enabled":true}