XAP

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 PUClosed 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

  1. ConfigMap Storage: License is stored in gs-license-config ConfigMap as license.txt.

  2. Volume Mount: ConfigMap is mounted at /opt/gigaspaces/config/license/license.txt in each PU pod.

  3. Runtime Reading: License is read from the file at pod startup.

  4. 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-config ConfigMap 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.