Skip to content

Migrate from Gloo Gateway

Page as Markdown

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.02.1
CRDs chartoci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway-crdsoci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway-crds
Main chartoci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gatewayoci://us-docker.pkg.dev/solo-public/enterprise-kgateway/charts/enterprise-kgateway
CRDs release namegloo-gateway-crdsenterprise-kgateway-crds
Main release namegloo-gatewayenterprise-kgateway
Namespacegloo-systemkgateway-system
License key Helm valuelicensing.glooGatewayLicenseKeylicensing.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_KEY

2.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_KEY

GatewayClass changes

Any Gateway resources referencing gatewayClassName: gloo-gateway-v2 must be updated to gatewayClassName: enterprise-kgateway.

2.02.1
GatewayClass namegloo-gateway-v2enterprise-kgateway
Controller namesolo.io/gloo-gateway-v2solo.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 CRD2.1 CRD
glootrafficpolicies.gloo.solo.ioenterprisekgatewaytrafficpolicies.enterprisekgateway.solo.io
gloogatewayparameters.gloo.solo.ioenterprisekgatewayparameters.enterprisekgateway.solo.io
2.0 Kind2.1 Kind
GlooTrafficPolicyEnterpriseKgatewayTrafficPolicy
GlooGatewayParametersEnterpriseKgatewayParameters
2.0 apiVersion2.1 apiVersion
gloo.solo.io/v1alpha1enterprisekgateway.solo.io/v1alpha1

Unchanged kgateway OSS CRDs

These gateway.kgateway.dev CRDs exist in both versions with no changes.

CRDKind
backends.gateway.kgateway.devBackend
backendconfigpolicies.gateway.kgateway.devBackendConfigPolicy
directresponses.gateway.kgateway.devDirectResponse
gatewayextensions.gateway.kgateway.devGatewayExtension
gatewayparameters.gateway.kgateway.devGatewayParameters
httplistenerpolicies.gateway.kgateway.devHTTPListenerPolicy
trafficpolicies.gateway.kgateway.devTrafficPolicy

Unchanged supporting CRDs

CRDKind
authconfigs.extauth.solo.ioAuthConfig
ratelimitconfigs.ratelimit.solo.ioRateLimitConfig

Unchanged Gateway API CRDs

Standard Kubernetes Gateway API v1.4.0 CRDs (gateway.networking.k8s.io) are the same in both versions.

  • BackendTLSPolicy
  • GatewayClass
  • Gateway
  • GRPCRoute
  • HTTPRoute
  • ReferenceGrant

New CRD in 2.1

CRDKindGroup
listenerpolicies.gateway.kgateway.devListenerPolicygateway.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 Field2.1 FieldSub-fields
glooJWTentJWTafterExtAuth, beforeExtAuth
glooExtAuthentExtAuthauthConfigRef, disable, extensionRef
glooRBACentRBACdisable, policies
glooRateLimitentRateLimitglobal
glooTransformationentTransformationawsLambda, stages

Unchanged fields

These fields exist in both versions with no changes:

  • autoHostRewrite
  • buffer
  • cors
  • csrf
  • extAuth
  • extProc
  • headerModifiers
  • rateLimit
  • rbac
  • retry
  • targetRefs
  • targetSelectors
  • timeouts
  • transformation

New fields in 2.1

FieldDescription
apiKeyAuthAPI key authentication (clientIdHeader, keySources, secretRef, etc.)
basicAuthBasic authentication (secretRef, users)
compressionRequest decompression / response compression
jwtAuthJWT authentication at the OSS level (disable, extensionRef)
oauth2OAuth2 authentication (extensionRef)
urlRewriteURL path rewriting (pathRegex)

Removed Fields in 2.1

FieldNotes
aiAI-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.

  1. apiVersion: gloo.solo.io/v1alpha1 -> enterprisekgateway.solo.io/v1alpha1
  2. kind: GlooTrafficPolicy -> EnterpriseKgatewayTrafficPolicy
  3. namespace: gloo-system -> kgateway-system
  4. glooExtAuth -> entExtAuth
  5. glooRateLimit -> entRateLimit
  6. glooTransformation -> entTransformation
  7. 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: HTTP

2.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: HTTP

Migration checklist

Next steps

  1. Review the rest of the release notes for any other changes that you want to prepare for before you upgrade.

  2. Upgrade from Gloo Gateway 2.0 to Solo Enterprise for kgateway 2.1.