Where images come from
By default the chart pulls every image fromregistry.falkordb.cloud, so a standard install only needs to reach that one host. Two different things live there:
Mirrored images keep their original repository path and drop only the source host, so
docker.io/apecloud/kubeblocks becomes registry.falkordb.cloud/falkordb/apecloud/kubeblocks. Because upstream images always carry an organization prefix, they can never collide with the FalkorDB images sitting directly under the namespace.
These are the upstream registries the mirror pulls from. A default install does not contact them.
Registry credentials are required either way, since the FalkorDB Enterprise images are private. The same credentials authenticate the mirrored third-party images, because they share the registry host.
Pull from upstream instead
To bypass the mirror, clearglobal.imageRegistry so the chart-owned images fall back to their original registries:
.Values.global — KubeBlocks, the CSI drivers, snapshot-controller, and Browser — have their own image keys and stay wherever the chart’s defaults point them.
Mirror into your own registry
Two scripts do the work:collect-images.sh builds the manifest of every image the chart can pull, and mirror-images.sh copies them. You need helm and skopeo locally, and push access to the target registry.
1
Download the chart and the scripts
The scripts read the chart to discover images, so fetch both.
helm pull --untar gives you the chart with every subchart and example already bundled — there is nothing else to build.Keep the three scripts in the same directory.
verify-mirror-overlay.sh invokes collect-images.sh from alongside itself.2
Collect the image manifest
Point This renders the chart with every optional subchart enabled, so the manifest covers the CSI drivers and snapshot-controller even if you do not plan to use them. It also picks up images KubeBlocks resolves at runtime from
CHART_DIR at the chart you just unpacked:ComponentDefinition and ActionSet resources, and from *_IMAGE environment variables — those never appear as an image: key and would otherwise be missing from an air-gapped mirror.The run also prints the FalkorDB Enterprise images and the exact tags this chart version expects. Note them down for the step after next:3
Copy the third-party images
--target-namespace defaults to falkordb, so omitting it still nests everything under my-registry.example.com/falkordb/. Each image keeps its upstream repository path and drops only the source host:--dry-run to print the copy plan without pushing. If two source images would map onto the same target path the script fails rather than letting one overwrite the other. Pass --digests-out digests.txt to record the pushed digests for an audit trail.4
Copy the FalkorDB Enterprise images
The manifest deliberately omits the first-party images, because FalkorDB CI publishes them directly rather than mirroring them, and their tags come from the build rather than the manifest. Copy each one at the tags reported above, into the namespace root so the paths match what the chart renders — Mirror every database tag you intend to offer, not just the default one — each must match a
my-registry.example.com/falkordb/falkordb-enterprise-server:0.4.1, not a doubled .../falkordb/falkordb/...:falkordb-addon.falkordbVersions[].tag entry.5
Write the values overlay
global.imageRegistry covers only the images the chart itself owns, plus the FalkorDB addon. The other subcharts do not read .Values.global and each structures its image values differently, so they need explicit keys. Start from the worked example bundled with the chart and replace registry.falkordb.cloud/falkordb throughout with your own registry and namespace:6
Verify the overlay covers everything
mirror-images.sh produced.The check compares the render against what
mirror-images.sh would push, never against the live registry. It passes even when the mirror is empty, so it is not proof that the copy step succeeded.7
Mirror the chart itself
The Helm chart is an OCI artifact, not a container image, so it is not part of the manifest. Push it across if the cluster cannot reach
registry.falkordb.cloud:8
Install with the overlay
Installer-managed Secret
The installer can create or update a Docker registry Secret in the FalkorDB Enterprise namespace and wire it into the Admin Server and Admin UI deployments.--image-pull-secret is omitted, the installer uses falkordb-registry-pull-secret against registry.falkordb.cloud by default. GHCR_USERNAME/GHCR_TOKEN remain supported as aliases for GITEA_USERNAME/GITEA_TOKEN.
Existing Secret
If the Secret already exists, pass only its name:Manual Helm values
If you install the chart manually, name the pull Secret once underglobal and repeat it for the addon:
imagePullSecrets in the pod’s own namespace and has no cluster-scoped equivalent.
Both keys default to empty, so an install that pulls from a registry allowing anonymous access references no pull Secret at all. See Helm values for the full list.
The Browser subchart has its own image settings. Configure those through the corresponding dependency values if that image is also private.
Rotate credentials
Update the Secret in place:create secret command against each database namespace.