Licensing
Datastrato Enterprise requires a license key. The sections below cover obtaining one, supplying it, replacing it, and what happens when one expires.
Obtain a key
Trial keys are issued at the Datastrato trial page and are time limited. Production keys come from your account team and are tied to the entitlement in your agreement.
A key is a single opaque string. Treat it as a credential: it belongs in a secret rather than in a values file committed to a repository.
Supply the key
The key is passed to the Datastrato Enterprise Helm chart at install time, as the
value gravitino.license.key. The chart stores it in a Secret and hands it to the server. The
commands use the variables and files from step 1 of Install.
helm upgrade --install "$RELEASE" "./enterprise-helm-$VERSION.tgz" -n "$NAMESPACE" -f my-values.yaml \
--set-string gravitino.license.key="$(tr -d '\n' < "$LICENSE_FILE")" \
--timeout 15m 2>&1 | tee helm-install.log
Use --set-string rather than --set. A license key can contain characters Helm's type inference
will mangle, and the failure appears later as an invalid key rather than as a parse error. The tr
strips the key file's trailing newline; a key with a newline in it is rejected as malformed.
Use a secret
To keep the key out of the command line and the Helm release record, put it in a Secret you manage and point the chart at it. The chart then creates no Secret of its own.
kubectl -n "$NAMESPACE" create secret generic datastrato-license \
--from-literal=license-key="$(tr -d '\n' < "$LICENSE_FILE")"
gravitino:
license:
existingSecret: datastrato-license
secretKey: license-key
secretKey names the entry in the Secret that holds the key, license-key by default. Install
without the --set-string gravitino.license.key argument.
Verify activation
The server checks the key at startup and logs the result, including who the key is issued to, its expiry date and its node limit. A missing, malformed or fully expired key stops the server at startup, so a server pod that restarts repeatedly is the first thing to check against its license.
kubectl -n "$NAMESPACE" logs deployment/"$RELEASE"-gravitino | grep -i license
Replace a key
Renewal, an entitlement change, or a trial converting to production all mean a new key. With the key on the command line, run the install command again with the new key file. With your own Secret, update the Secret and restart the server, which reads the key only at startup.
kubectl -n "$NAMESPACE" create secret generic datastrato-license \
--from-literal=license-key="$(tr -d '\n' < {new_license_file})" \
--dry-run=client -o yaml | kubectl apply -f -
kubectl -n "$NAMESPACE" rollout restart deployment/"$RELEASE"-gravitino
Expiry
An expired license does not delete anything. Your metalakes, catalogs, tags, policies, and grants remain in the metadata database, and the underlying sources are untouched, since Gravitino never held your data in the first place.
What stops is service. From 30 days before the expiry date the server logs a warning. After the expiry date it keeps running through the grace period set in the key, logging how many days remain, and at the end of the grace period it shuts down with exit code 78. Applying a valid key and restarting restores the deployment to where it was.
Plan renewal ahead of the expiry date rather than relying on the grace period.
A key can also limit how many server replicas run at once. A replica started beyond that limit shuts down with the same exit code 78.