Skip to main content
This page summarizes the high-impact Helm values for FalkorDB Enterprise.
The source of truth is the chart’s own values.yaml. Extract it with helm pull oci://registry.falkordb.cloud/falkordb/falkordb-enterprise --untar and verify against the chart version you are installing.
For every key the chart accepts, not just the ones below, see All Helm values. That page is generated from values.yaml, so its defaults are always the shipped ones.

Platform dependencies

When using install.sh, the installer detects the default StorageClass provisioner and configures snapshot values automatically:
  • CSI-backed cloud StorageClasses, such as ebs.csi.aws.com, pd.csi.storage.gke.io, and disk.csi.azure.com, get a matching chart-managed VolumeSnapshotClass unless a default one already exists for that driver.
  • Local non-CSI StorageClasses, such as rancher.io/local-path, enable the optional csi-hostpath-driver and make csi-hostpath-sc the default for new PVCs. Existing PVCs are not migrated.
  • Unknown or non-CSI provisioners disable the chart-managed VolumeSnapshotClass; pass --set volumeSnapshotClass.driver=<csi-driver> when the storage platform supports snapshots but cannot be detected.
Explicit --set and --set-string values passed to the installer override the detected snapshot configuration. On upgrades, the installer reuses existing Helm release values before applying new detected values. This preserves deployment-specific image tags, image pull secrets, ingress hosts, TLS settings, and immutable PVC settings while still adding the correct snapshot configuration. FalkorDB Enterprise is intentionally limited to one installation per Kubernetes cluster. The chart renders a fixed cluster-scoped ClusterRole install lock and also checks for an existing Helm-owned ClusterDefinition/falkordb from older chart versions. Upgrades of the owning Helm release are allowed; installs from a different release or namespace fail during Helm rendering.

Registry credentials

registry.falkordb.cloud serves the FalkorDB images anonymously, so a default install needs no credentials. Configure this block only when pulling from a registry that requires authentication. Kubernetes has no cluster-scoped image pull Secret — imagePullSecrets always resolves in the pod’s own namespace. The Admin Server therefore copies the Secrets named in global.imageCredentials.name and global.imagePullSecrets from its own namespace into every namespace it provisions a database into, refreshing the copy on each cluster operation so a rotated credential propagates. Nothing outside this block needs to know the credentials, and operators do not have to seed namespaces by hand. install.sh creates the Secret from GITEA_USERNAME and GITEA_TOKEN (or --registry-username / --registry-password) and sets all of the values above for you.
Setting global.imageCredentials.create=true on an existing release hands ownership of the Secret to Helm. Helm refuses to adopt an object it does not own, so this fails with invalid ownership metadata unless the existing Secret carries the app.kubernetes.io/managed-by=Helm label and the meta.helm.sh/release-name and meta.helm.sh/release-namespace annotations. Secrets created by install.sh are stamped with them and are adoptable; hand-made ones must be labeled or deleted first.

API server address

The kubelet injects KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT into every container, pointing at the API server’s in-cluster ClusterIP. Every in-cluster client — the Admin Server’s Kubernetes client, kubectl in the hook Jobs, controller-runtime inside KubeBlocks — builds its API URL from those two variables. Leave both values empty unless the ClusterIP route does not work; nothing is rendered when they are unset. Set them when either failure mode applies:
  • The ClusterIP’s only endpoint is a managed or public API endpoint that requires SNI. A client connecting by IP sends no SNI, so the endpoint cannot select a certificate and TLS fails mid-handshake.
  • A firewall rejects traffic to the ClusterIP outright.
A container’s own environment entry takes precedence over the kubelet-injected one, so setting these moves every client onto a DNS name.
The host must be covered by a Subject Alternative Name on the API server’s serving certificate, or clients will fail certificate verification instead of connecting. kubernetes.default.svc.cluster.local is always covered and is the right first choice.
KubeBlocks does not read global. Use install.sh --kubernetes-service-host, which fans the value out to the standalone KubeBlocks release it installs, or examples/values-apiserver-dns.yaml, which sets kubeblocks.extraEnvs and kubeblocks.dataProtection.extraEnvs alongside the global keys. FalkorDB database pods need no extra configuration. The falkordb-addon subchart reads the same two values and emits them through ComponentDefinition.spec.vars, which KubeBlocks injects into every container of a database pod, including the kbagent sidecar it adds itself.

Gateway and public URLs

Admin Server

Admin Server license

Leave adminServer.license unset to start on a 14-day free trial with no configured limits — no license value or Secret is required. Activate or replace the license later from the Admin UI’s License page; the values below only matter if you want to provide a license at install time.
Set a license directly in values for development or one-off installs:
For production, store the signed license in an existing Secret in the release namespace and reference it from values:
The admin server reads the Secret through FALKORDB_LICENSE, validates the signature, and persists the license state at adminServer.license.statePath. If the license expires, is invalid, or any configured limit is exceeded, the server and UI enter read-only mode until a valid license within limits is active. The signed license key payload includes a version field so future payload formats can be introduced explicitly. The current supported payload version is 1. To bind a license to one Kubernetes cluster, include k8sClusterId in the signed payload. By default the admin server compares this value to the UID of the kube-system namespace. You can retrieve it with:
If your environment needs a different cluster identity source, set K8S_CLUSTER_ID on the admin server and issue licenses with the same value. Licenses without k8sClusterId remain unbound.

Bootstrap Admin resources

Admin UI

Browser encryption

Observability