Getting started with STUNner premium tiers

Congratulations for subscribing to STUNner premium. You should have received a customer key during the subscription procedure; contact us if not. Make sure to save the customer key to a safe place, you will need it every time you (re)deploy STUNner.

The below guide will walk you through unlocking STUNner's premium features.

Table of Contents

  1. Installation
  2. License validation
  3. Checking license status

Installation

Start with a fresh Kubernetes cluster. Remove all previous STUNner installations, otherwise some premium features may not be available.

Use the below Helm chart to deploy the premium version of STUNner:

helm repo add stunner https://l7mp.io/stunner
helm repo update
helm install stunner stunner/stunner-premium --create-namespace --namespace=stunner-system --set stunnerGatewayOperator.customerKey="<YOUR_CUSTOMER_KEY>"

We recommend you deploy STUNner into the stunner-system namespace, this simplifies configuration later. See the installation guide for more info on customization options for the Helm chart.

Demo video

https://github.com/user-attachments/assets/6cbffc95-42f6-4f84-8d62-3a117c5118fc

License validation

In order to unlock the premium features, STUNner will need a valid customer key. You should have received one during the subscription procedure; if not, contact us.

STUNner will search for the customer key in the Kubernetes Secret named stunner-gateway-operator-customer-secret in the namespace where you deployed STUNner (usually stunner-system).

Note

If you install with no stunnerGatewayOperator.customerKey being set, the chart will not create this secret. Create an empty secret with the following command: kubectl -n stunner-system create secret generic stunner-gateway-operator-customer-secret --from-literal=CUSTOMER_KEY="<YOUR_CUSTOMER_KEY>"

  1. Set your customer key: The first step is to update the default Secret created by the Helm chart with your customer key. The simplest way is the manually edit the Secret:
EDITOR=nano kubectl -n stunner-system edit secret stunner-gateway-operator-customer-secret

You should see something like the below (with some additional lines that you can safely ignore):

apiVersion: v1
kind: Secret
metadata:
  name: stunner-gateway-operator-customer-secret
  namespace: stunner-system
type: Opaque
data:
  CUSTOMER_KEY: X1789iOhjJKJNWtwNms=

Rewrite data.CUSTOMER_KEY with your customer key. In order to prevent Kubernetes from base64-encoding the key, use the stringData field instead of data: stringData.CUSTOMER_KEY. Eventually you should see something like the below:

apiVersion: v1
kind: Secret
metadata:
  name: stunner-gateway-operator-customer-secret
  namespace: stunner-system
type: Opaque
stringData:
  CUSTOMER_KEY: <YOUR-CUSTOMER-KEY>

Don't forget to replace the placeholder <YOUR_CUSTOMER_KEY> with your own customer key. Save and exit. If all goes well, kubectl should report that the secret has been successfully modified:

secret/stunner-gateway-operator-customer-secret edited

Alternatively, you can use the below to patch the Secret with your customer key:

kubectl -n stunner-system patch secret stunner-gateway-operator-customer-secret --type='json' \
   -p='[{"op": "add" ,"path": "/stringData" ,"value": {}}, {"op": "replace" ,"path": "/stringData/CUSTOMER_KEY" ,"value": "<YOUR_CUSTOMER_KEY>"}]'
  1. Restart the operator: STUNner will read the customer key on startup so every time you update your customer key you have to restart the operator:
kubectl -n stunner-system rollout restart deployment stunner-gateway-operator-controller-manager

If all goes well, the operator will validate the license associated with your customer key and unlock the premium features available in your tier.

Checking license status

The simplest way to check your license status is via the handy stunnerctl command line tool:

stunnerctl license
License status:
   Subscription type: member
   Enabled features: DaemonSet, STUNServer, ...
   Last updated: ...

This command will connect to the STUNner gateway operator and report the license status. It will also report any errors encountered while validating your license.

It is also possible to check the license status of STUNners's dataplane pods. The below stunnerctl command will connect to each dataplane pod of the stunner/udp-gateway gateway and report the running licensing status.

stunnerctl -a status -o jsonpath='License status for dataplane node {.admin.Name}: {.admin.licensing_info}'
{tier=enterprise,unlocked-features=[TURNOffload,UserQuota,DaemonSet,STUNServer,RelayAddressDiscovery],valid-until=...}
...

You should see your subscription tier (e.g., free, member or enterprise) with all the available premium features in unlocked-features listed.

If something goes wrong, check the gateway operator logs for lines like the below that should help you debug the problem:

kubectl -n stunner-system logs $(kubectl -n stunner-system get pods -l \
    control-plane=stunner-gateway-operator-controller-manager -o jsonpath='{.items[0].metadata.name}')
...
license-mgr     license manager client created  {"server": "https://license.l7mp.io:443", "customer-key-status": "set"}
...
license-mgr     new license status      {"subscription-type": "enterprise", "enabled-features": ["DaemonSet", "UserQuota", "STUNServer", "TURNOffload"], "last-updated": "..."}
...

Demo video

https://github.com/user-attachments/assets/002ddb6c-2939-4981-af01-fa3949980e76

If unsure, contact us.