Add an Enterprise Edition License to Redpanda in Kubernetes
To enable enterprise features for Redpanda Self-Managed, you must have an Enterprise Edition license. This guide outlines how to apply or update an Enterprise Edition license for Redpanda Self-Managed 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>
bashThis command creates a Kubernetes Secret named
redpanda-license
in the specified namespace, containing the license file. -
Reference the Secret:
-
Operator
-
Helm
redpanda-cluster.yaml
apiVersion: cluster.redpanda.com/v1alpha2 kind: Redpanda metadata: name: redpanda spec: chartRef: {} clusterSpec: enterprise: licenseSecretRef: name: redpanda-license key: license
yamlkubectl apply -f redpanda-cluster.yaml --namespace <namespace>
bash-
--values
-
--set
redpanda-license.yaml
enterprise: licenseSecretRef: name: redpanda-license key: license
yamlhelm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \ --values redpanda-license.yaml --reuse-values
bashhelm upgrade --install redpanda redpanda/redpanda \ --namespace <namespace> \ --create-namespace \ --set enterprise.licenseSecretRef.name=redpanda-license \ --set enterprise.licenseSecretRef.key=license
bash -
Provide the license inline
If you prefer to provide the license string directly, you can do so as follows:
-
Operator
-
Helm
redpanda-cluster.yaml
apiVersion: 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.yaml
enterprise:
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 Self-Managed 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.license
file. -
Delete the existing Secret:
kubectl delete secret redpanda-license --namespace <namespace>
bash -
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>
bash -
Update the Redpanda CRD to use the new Secret.
redpanda-cluster.yaml
apiVersion: cluster.redpanda.com/v1alpha2 kind: Redpanda metadata: name: redpanda spec: chartRef: {} clusterSpec: enterprise: licenseSecretRef: name: redpanda-license-updated key: license
yaml -
Apply the changes to the Redpanda CRD:
kubectl apply -f redpanda-cluster.yaml --namespace <namespace>
bashThe 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 info
bashThe 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>
bash
Update the license inline
If you applied the license inline, follow these steps to update it:
-
Modify the
enterprise.license
value with the new license string:-
Operator
-
Helm
redpanda-cluster.yaml
apiVersion: cluster.redpanda.com/v1alpha2 kind: Redpanda metadata: name: redpanda spec: chartRef: {} clusterSpec: enterprise: license: <license-key>
yamlkubectl apply -f redpanda-cluster.yaml --namespace <namespace>
bash-
--values
-
--set
redpanda-license.yaml
enterprise: license: <license-key>
yamlhelm upgrade --install redpanda redpanda/redpanda --namespace <namespace> --create-namespace \ --values redpanda-license.yaml --reuse-values
bashhelm upgrade --install redpanda redpanda/redpanda \ --namespace <namespace> \ --create-namespace \ --set enterprise.license=<license-key>
bash -
-
Check the status of new license to make sure it was successfully applied:
rpk cluster license info
bashThe 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>
bash