Add an Enterprise Edition License to Redpanda in Kubernetes
To enable enterprise features for Redpanda Streaming, you must have an Enterprise Edition license. This guide outlines how to apply or update an Enterprise Edition license for Redpanda Streaming in a Kubernetes environment.
Prerequisites
You must have an Enterprise Edition license. To get a trial license key or extend your trial period, generate a new trial license key. To purchase a license, contact Redpanda Sales.
Add a new license
Redpanda supports the following ways to apply a new license:
Use a Kubernetes Secret
You can store the license in a Kubernetes Secret and reference it in your Helm values or manifest file.
-
Download your license file (
redpanda.license) and create a Kubernetes Secret:kubectl create secret generic redpanda-license --from-file=license=./redpanda.license --namespace <namespace>This command creates a Kubernetes Secret named
redpanda-licensein the specified namespace, containing the license file. -
Reference the Secret:
-
Operator
-
Helm
redpanda-cluster.yamlapiVersion: cluster.redpanda.com/v1alpha2 kind: Redpanda metadata: name: redpanda spec: chartRef: {} clusterSpec: enterprise: licenseSecretRef: name: redpanda-license key: licensekubectl apply -f redpanda-cluster.yaml --namespace <namespace>-
--values
-
--set
redpanda-license.yamlenterprise: licenseSecretRef: name: redpanda-license key: licensehelm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \ --values redpanda-license.yaml --reuse-valueshelm upgrade --install redpanda redpanda/redpanda \ --namespace <namespace> \ --create-namespace \ --set enterprise.licenseSecretRef.name=redpanda-license \ --set enterprise.licenseSecretRef.key=license -
Provide the license inline
If you prefer to provide the license string directly, you can do so as follows:
-
Operator
-
Helm
redpanda-cluster.yamlapiVersion: cluster.redpanda.com/v1alpha2
kind: Redpanda
metadata:
name: redpanda
spec:
chartRef: {}
clusterSpec:
enterprise:
license: <license-key>
kubectl apply -f redpanda-cluster.yaml --namespace <namespace>
-
--values
-
--set
redpanda-license.yamlenterprise:
license: <license-key>
helm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \
--values redpanda-license.yaml --reuse-values
helm upgrade --install redpanda redpanda/redpanda \
--namespace <namespace> \
--create-namespace \
--set enterprise.license=<license-key>
Verify a license
After adding or updating a license, you can use rpk to verify that the license was set.
kubectl exec <pod-name> --namespace <namespace> -c redpanda -- \
rpk cluster license info
This command will display the current license details, including the expiration date and whether any enterprise features are active. For example:
LICENSE INFORMATION =================== Organization: redpanda Type: enterprise Expires: Oct 24 2027
|
Redpanda blocks upgrades to new feature releases if enterprise features are active without a valid license. Ensure compliance by obtaining a license to maintain access to the latest features and updates. |
Update an existing license
The process for updating a license depends on how it was originally applied:
When a new license is uploaded, enterprise features in Redpanda Streaming are unlocked immediately without requiring a cluster restart. However, to unlock enterprise features in Redpanda Console, you must restart the Redpanda Console instance.
Update the Kubernetes Secret
If the license is provided through a Kubernetes Secret, follow these steps to update it:
-
Download the updated license file and overwrite the existing
redpanda.licensefile. -
Delete the existing Secret:
kubectl delete secret redpanda-license --namespace <namespace> -
Create a new Secret with a new name that contains the contents of the updated license:
kubectl create secret generic redpanda-license-updated \ --from-file=license=./redpanda.license \ --namespace <namespace> -
Update the Redpanda CRD to use the new Secret.
redpanda-cluster.yamlapiVersion: cluster.redpanda.com/v1alpha2 kind: Redpanda metadata: name: redpanda spec: chartRef: {} clusterSpec: enterprise: licenseSecretRef: name: redpanda-license-updated key: license -
Apply the changes to the Redpanda CRD:
kubectl apply -f redpanda-cluster.yaml --namespace <namespace>The Redpanda Operator updates the license without restarting the Repanda broker.
-
Check the status of the new license to make sure it was successfully applied:
rpk cluster license infoThe output displays the following details:
Organization: Organization the license was generated for. Type: Type of license. Expires: Expiration date of the license. Version: License schema version.
-
If you use Redpanda Console, delete the Redpanda Console Pods to force Redpanda Console to reload the updated license:
kubectl delete pod $(kubectl get pod --namespace <namespace> | grep redpanda-console | awk '{print $1}') --namespace <namespace>
Update the license inline
If you applied the license inline, follow these steps to update it:
-
Modify the
enterprise.licensevalue with the new license string:-
Operator
-
Helm
redpanda-cluster.yamlapiVersion: cluster.redpanda.com/v1alpha2 kind: Redpanda metadata: name: redpanda spec: chartRef: {} clusterSpec: enterprise: license: <license-key>kubectl apply -f redpanda-cluster.yaml --namespace <namespace>-
--values
-
--set
redpanda-license.yamlenterprise: license: <license-key>helm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \ --values redpanda-license.yaml --reuse-valueshelm upgrade --install redpanda redpanda/redpanda \ --namespace <namespace> \ --create-namespace \ --set enterprise.license=<license-key> -
-
Check the status of new license to make sure it was successfully applied:
rpk cluster license infoThe output displays the following details:
Organization: Organization the license was generated for. Type: Type of license:. Expires: Expiration date of the license. Version: License schema version.
-
If you use Redpanda Console, delete the Redpanda Console Pods to force a reload of the updated license:
kubectl delete pod $(kubectl get pod --namespace <namespace> | grep redpanda-console | awk '{print $1}') --namespace <namespace>