Kubernetes License Setup
First, install the umbrella and set the license:
helm install xap xap/smart-cache --version 17.1.5 --set license="your-license-key"
If the license is not specified, a tryme license valid only for 24 hours will be used.
License Update Methods
This section lists the methods you can use to update the license from version 17.1.5.
The license is stored in a ConfigMap (gs-license-config) and mounted as a file in the PU
This is the unit of packaging and deployment in the GigaSpaces Data Grid, and is essentially the main GigaSpaces service. The Processing Unit (PU) itself is typically deployed onto the Service Grid. When a Processing Unit is deployed, a Processing Unit instance is the actual runtime entity. pods. When you update the ConfigMap, existing pods continue running with their current license. New pods (including those that restart naturally) will pick up the updated license.
Method 1: Update via Helm (Recommended)
Update the license value in your Helm values and upgrade the release:
# Update the license in your values file or via --set flag
helm upgrade xap-operator /path/to/xap-operator/chart \
--reuse-values \
--set license="your-new-license-key" \
--namespace your-namespace
This updates the ConfigMap without triggering pod restarts.
Method 2: Direct ConfigMap Update via kubectl
Edit the ConfigMap directly:
kubectl edit configmap gs-license-config -n your-namespace
Or use kubectl patch:
kubectl patch configmap gs-license-config -n your-namespace \
--type merge \
-p '{"data":{"license.txt":"your-new-license-key"}}'
Method 3: Update via kubectl apply
Create or update a YAML file:
apiVersion: v1
kind: ConfigMap
metadata:
name: gs-license-config
namespace: your-namespace
data:
license.txt: "your-new-license-key"
Apply it:
kubectl apply -f license-configmap.yaml
When Does the New License Take Effect?
-
Existing running pods will continue using their current license.
-
New pods automatically use the updated license.
-
Pods that restart will pick up the updated license on restart.
The license is read from the ConfigMap file at pod startup time, so updating the ConfigMap does not trigger automatic pod restarts.
Verifying the License Update
To check the ConfigMap was updated:
kubectl get configmap gs-license-config -n your-namespace -o yaml
To apply the new license to a specific StatefulSet, you can perform a rolling restart:
kubectl rollout restart statefulset <statefulset-name> -n your-namespace
Check the logs of a newly started pod to confirm it loaded the license:
kubectl logs <pod-name> -n your-namespace | grep -i license
Implementation Details
How It Works
-
ConfigMap Storage: License is stored in
gs-license-configConfigMap aslicense.txt. -
Volume Mount: ConfigMap is mounted at
/opt/gigaspaces/config/license/license.txtin each PU pod. -
Runtime Reading: License is read from the file at pod startup.
-
No Pod Restart: Updating ConfigMap doesn't change StatefulSet spec, so pods don't restart.
Backward Compatibility
The system maintains backward compatibility:
-
If
gs-license-configConfigMap doesn't exist, the system falls back to license property. -
If license file read fails, the system falls back to the license from the PU specification.
-
A default trial key (tryme) is used if no license is specified.
In-Memory Data Grid - achieve unparalleled speed, persistence, and accuracy.