Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion addons/falkordb/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "FalkorDB is an in-memory graph database based on Redis."

type: application

version: 1.2.0-alpha.0
version: 1.2.0-alpha.1

appVersion: "4.12.5"

Expand Down
38 changes: 38 additions & 0 deletions addons/falkordb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,44 @@ FalkorDB is an open source (SSPL licensed) in-memory graph database based on Red

## Examples

### Upgrade an existing Cluster to the bounded switchover definition

FalkorDB addon `1.2.0-alpha.1` publishes the standalone and replication
FalkorDB component as `falkordb-4-1.2.0-alpha.1`. This new definition disables
kbagent's 30-second default action timeout while the switchover script enforces
its own bounded deadline.

Upgrading the addon definitions does not change an existing Cluster's resolved
ComponentDefinition or restart its Pods. After upgrading the addon, edit the
namespace, Cluster name, OpsRequest name, and `serviceVersion` in
`examples/upgrade-switchover-timeout.yaml`, then run the bounded migration
verifier. The example pins `4.12.5`; the value must exactly equal the live
FalkorDB Component's current `spec.serviceVersion`.

```bash
./examples/upgrade-switchover-timeout.sh
```

The OpsRequest changes only the `falkordb` component definition. The new main
definition uses the stable `falkordb-sent-4` prefix for all Sentinel references,
so an existing replication Cluster keeps its authoritative Sentinel sibling
without recreating it. Do not patch the resolved Component directly or add
`force: true`.

The verifier does not trust the OpsRequest phase by itself. Before creation it
rejects a manifest whose explicit `serviceVersion` differs from the live
Component. It returns success only after the OpsRequest is `Succeed`, the
Component references the new definition and the same service version, every
original Pod UID is gone, every replacement Pod is `Ready`, Pod image names and
image IDs are unchanged, and every replacement kbagent has the serialized
switchover timeout `-1`. For replication, the old main Pods must agree on all
six Sentinel variables, exactly one non-terminating Sentinel sibling must match
that contract, the same sibling name and UID must remain after the upgrade, and
every replacement main Pod must preserve the six variables exactly. Standalone
Pods must have neither that environment contract nor a Sentinel sibling. It
fails after 10 minutes unless `UPGRADE_VERIFY_TIMEOUT_SECONDS` overrides the
bounded deadline. Request a switchover only after this verification succeeds.

### Create

Create a FalkorDB replication cluster with two components, one for FalkorDB, and one for Sentinel[^1].
Expand Down
Loading
Loading