Skip to content

Licensing

Page as Markdown

Decide on the type of license that you want to use for Solo Enterprise for kgateway.

License types

ModeRequired licenseDescription
EnterpriseSolo Enterprise for kgatewayUse all functionality that is supported for the data plane proxy.
TrialTrialUse all functionality that is supported for the data plane proxy for a limited time.

Get a license key

To get a Solo Enterprise for kgateway license key, contact an account representative.

You can also request a trial license key instead. Note that each trial license key is typically valid for 30 days. When the license key expires, you can request a new license key by contacting your account representative.

Provide the license key during installation

To use Solo Enterprise for kgateway, you must provide a license key during the installation process.

Provide key directly

When you install Solo Enterprise for kgateway in your management cluster, you can provide your license keys as follows:

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 licensing.licenseKey=$LICENSE_KEY 
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 licensing.licenseKey=$TRIAL_LICENSE_KEY 

After installation completes, the Kubernetes secret enterprise-kgateway-license is created for you to store the license keys.

Provide key in a secret

You can specify your license key by creating a secret before you install Solo Enterprise for kgateway.

  1. Create a secret with your license key in the kgateway-system namespace of your cluster. Note that the secret must be created in the same namespace as you plan to install Solo Enterprise for kgateway.
    cat << EOF | kubectl apply -f -
    apiVersion: v1
    kind: Secret
    type: Opaque
    metadata:
      name: enterprise-kgateway-license
      namespace: kgateway-system
    stringData:
      enterprise-kgateway-license-key: "${LICENSE_KEY}"
    EOF
  2. When you install Solo Enterprise for kgateway, specify the secret name and disable default secret generation in your Helm values file.
    
    licensing: 
      secretName: license-key
      createSecret: false

Check the license values

Get your license key value. The following command gets and decodes the license key value from the license secret in the kgateway-system namespace by using jq.

kubectl get secret enterprise-kgateway-license   \
-n kgateway-system \
-o jsonpath="{.data.enterprise-kgateway-license-key}" | base64 --decode | cut -d '.' -f1,2 | tr '.' '\n' | base64 --decode | jq

Example output: The following Solo Enterprise for kgateway license was issued on March 1, 2025 and expires on March 1, 2026. The license has no add-ons.

{
  "addOns": [
    {
      "Addon": 0,
      "ExpiresAt": 1753969356,
      "LicenseType": "ent"
    }
  ],
  "exp": 1772323200,
  "iat": 1740787200,
  "k": "zsclAQ",
  "lt": "ent",
  "product": "kgateway"
}

Update the license

Before your Solo Enterprise for kgateway license expires, you can update the license by patching the license key secret.

Confirm license expiration

The license keys are stored as a Kubernetes secret in the cluster. When the keys expire, the pods that mount the secret might crash. For example, if you notice that your control plane deployment has new warnings, your licenses might be expired. You can check the logs for control plane to look for an error message similar to the following:

kubectl logs deploy/enterprise-kgateway -n kgateway-system
{"level":"warn","ts":"2024-03-23T18:36:16.282Z","caller":"setup/setup.go:85",
"msg":"LICENSE WARNING: License expired, please contact support to renew."}

You can confirm that the license key is expired by copying and pasting your current license key into the JWT Debugger, and checking the expiration date indicated by the exp header.

Replace the expired license

Trial license: If you’re a new user whose trial license has expired, contact your Solo.io account representative to get a new license key.

Enterprise license: To update the license key, patch the secret and restart the Solo Enterprise for kgateway control plane deployment. During the upgrade, the data plane continues to run, but you might not be able to modify the configurations for Solo Enterprise for kgateway custom resources through the control plane.

  1. Save the new license key in an environment variable.

    export LICENSE_KEY=<new-key-string>
  2. Update the license secret with the new key.

    kubectl create secret generic --save-config \
    -n kgateway-system enterprise-kgateway-license \ 
    --from-literal=enterprise-kgateway-license-key=$LICENSE_KEY \
    --dry-run=client -o yaml | kubectl apply -f - 
  3. Restart the control plane deployment to pick up the license secret changes.

    kubectl -n kgateway-system rollout restart deploy/enterprise-kgateway
  4. Verify that the deployment is restarted and no longer in a crashed state.

    kubectl logs deploy/enterprise-kgateway -n kgateway-system