Migrate from Gloo Gateway
Migrate Gloo Gateway 2.0 resources to Solo Enterprise for kgateway 2.1.
Starting in 2.1, Gloo Gateway is renamed to Solo Enterprise for kgateway, an enterprise version of the kgateway open source project version 2.2. The update standardizes Solo.io’s branding by removing Gloo from all resources, such as Kubernetes custom resource definitions (CRDs) and Helm charts.
Helm Installation Changes
Review the following table of Helm installation changes between the 2.0 and 2.1 versions.
| 2.0 | 2.1 | |
|---|---|---|
| CRDs chart | oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway-crds | oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway-crds |
| Main chart | oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway | oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway |
| CRDs release name | gloo-gateway-crds | enterprise-kgateway-crds |
| Main release name | gloo-gateway | enterprise-kgateway |
| Namespace | gloo-system | kgateway-system |
| License key Helm value | licensing.glooGatewayLicenseKey | licensing.licenseKey |
2.0 Helm installation
Review the following Helm installation commands for the 2.0 version.
helm upgrade -i gloo-gateway-crds \
oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway-crds \
--create-namespace --namespace gloo-system --version 2.0.2
helm upgrade -i gloo-gateway \
oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway \
-n gloo-system --version 2.0.2 \
--set-string licensing.glooGatewayLicenseKey=$GLOO_LICENSE_KEY2.1 Helm installation
Review the following Helm installation commands for the 2.1 version.
helm upgrade -i enterprise-kgateway-crds \
oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway-crds \
--create-namespace --namespace kgateway-system --version 2.1.5
helm upgrade -i enterprise-kgateway \
oci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway \
-n kgateway-system --version 2.1.5 \
--set-string licensing.licenseKey=$GLOO_LICENSE_KEYGatewayClass changes
Any Gateway resources referencing gatewayClassName: gloo-gateway-v2 must be updated to gatewayClassName: enterprise-kgateway.
| 2.0 | 2.1 | |
|---|---|---|
| GatewayClass name | gloo-gateway-v2 | enterprise-kgateway |
| Controller name | solo.io/gloo-gateway-v2 | solo.io/enterprise-kgateway |
CRD changes
Review the following CRD changes between the 2.0 and 2.1 versions.
Renamed Enterprise CRDs
The API group changed from gloo.solo.io to enterprisekgateway.solo.io.
| 2.0 CRD | 2.1 CRD |
|---|---|
glootrafficpolicies.gloo.solo.io | enterprisekgatewaytrafficpolicies.enterprisekgateway.solo.io |
gloogatewayparameters.gloo.solo.io | enterprisekgatewayparameters.enterprisekgateway.solo.io |
| 2.0 Kind | 2.1 Kind |
|---|---|
GlooTrafficPolicy | EnterpriseKgatewayTrafficPolicy |
GlooGatewayParameters | EnterpriseKgatewayParameters |
| 2.0 apiVersion | 2.1 apiVersion |
|---|---|
gloo.solo.io/v1alpha1 | enterprisekgateway.solo.io/v1alpha1 |
Unchanged kgateway OSS CRDs
These gateway.kgateway.dev CRDs exist in both versions with no changes.
| CRD | Kind |
|---|---|
backends.gateway.kgateway.dev | Backend |
backendconfigpolicies.gateway.kgateway.dev | BackendConfigPolicy |
directresponses.gateway.kgateway.dev | DirectResponse |
gatewayextensions.gateway.kgateway.dev | GatewayExtension |
gatewayparameters.gateway.kgateway.dev | GatewayParameters |
httplistenerpolicies.gateway.kgateway.dev | HTTPListenerPolicy |
trafficpolicies.gateway.kgateway.dev | TrafficPolicy |
Unchanged supporting CRDs
| CRD | Kind |
|---|---|
authconfigs.extauth.solo.io | AuthConfig |
ratelimitconfigs.ratelimit.solo.io | RateLimitConfig |
Unchanged Gateway API CRDs
Standard Kubernetes Gateway API v1.4.0 CRDs (gateway.networking.k8s.io) are the same in both versions.
BackendTLSPolicyGatewayClassGatewayGRPCRouteHTTPRouteReferenceGrant
New CRD in 2.1
| CRD | Kind | Group |
|---|---|---|
listenerpolicies.gateway.kgateway.dev | ListenerPolicy | gateway.kgateway.dev |
Enterprise traffic policy changes
The GlooTrafficPolicy (2.0) is now EnterpriseKgatewayTrafficPolicy (2.1). Beyond the rename, there are field-level changes within the spec.
Renamed fields
All enterprise-specific gloo-prefixed fields are now ent-prefixed:
| 2.0 Field | 2.1 Field | Sub-fields |
|---|---|---|
glooJWT | entJWT | afterExtAuth, beforeExtAuth |
glooExtAuth | entExtAuth | authConfigRef, disable, extensionRef |
glooRBAC | entRBAC | disable, policies |
glooRateLimit | entRateLimit | global |
glooTransformation | entTransformation | awsLambda, stages |
Unchanged fields
These fields exist in both versions with no changes:
autoHostRewritebuffercorscsrfextAuthextProcheaderModifiersrateLimitrbacretrytargetRefstargetSelectorstimeoutstransformation
New fields in 2.1
| Field | Description |
|---|---|
apiKeyAuth | API key authentication (clientIdHeader, keySources, secretRef, etc.) |
basicAuth | Basic authentication (secretRef, users) |
compression | Request decompression / response compression |
jwtAuth | JWT authentication at the OSS level (disable, extensionRef) |
oauth2 | OAuth2 authentication (extensionRef) |
urlRewrite | URL path rewriting (pathRegex) |
Removed Fields in 2.1
| Field | Notes |
|---|---|
ai | AI-related features (defaults, promptEnrichment, promptGuard, routeType) moved to the Solo Enterprise for agentgateway product |
Summary of traffic policy changes
Note the following differences between the 2.0 and 2.1 resources for traffic policy.
apiVersion:gloo.solo.io/v1alpha1->enterprisekgateway.solo.io/v1alpha1kind:GlooTrafficPolicy->EnterpriseKgatewayTrafficPolicynamespace:gloo-system->kgateway-systemglooExtAuth->entExtAuthglooRateLimit->entRateLimitglooTransformation->entTransformation- Namespace references within the spec also updated to
kgateway-system
2.0 GlooTrafficPolicy
apiVersion: gloo.solo.io/v1alpha1
kind: GlooTrafficPolicy
metadata:
name: my-policy
namespace: gloo-system
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: HTTPRoute
name: my-route
glooExtAuth:
authConfigRef:
name: my-auth
namespace: gloo-system
glooRateLimit:
global:
descriptors:
- key: generic_key
value: per-route
glooTransformation:
stages:
- requestTransformation:
transformationTemplate:
headers:
x-custom:
text: "hello"2.1 EnterpriseKgatewayTrafficPolicy
apiVersion: enterprisekgateway.solo.io/v1alpha1
kind: EnterpriseKgatewayTrafficPolicy
metadata:
name: my-policy
namespace: kgateway-system
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: HTTPRoute
name: my-route
entExtAuth:
authConfigRef:
name: my-auth
namespace: kgateway-system
entRateLimit:
global:
descriptors:
- key: generic_key
value: per-route
entTransformation:
stages:
early:
requests:
- transformationTemplate:
headers:
x-custom:
text: "hello"Example: Gateway
Note the namespace and gatewayClassName changes.
2.0 Gateway
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: my-gateway
namespace: gloo-system
spec:
gatewayClassName: gloo-gateway-v2
listeners:
- name: http
port: 8080
protocol: HTTP2.1 Gateway
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: my-gateway
namespace: kgateway-system
spec:
gatewayClassName: enterprise-kgateway
listeners:
- name: http
port: 8080
protocol: HTTPMigration checklist
Next steps
Review the rest of the release notes for any other changes that you want to prepare for before you upgrade.
Upgrade from Gloo Gateway 2.0 to Solo Enterprise for kgateway 2.1.