fix(falkordb): map backup image by service version - #3191
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3191 +/- ##
=====================================
Coverage 0.00% 0.00%
=====================================
Files 147 148 +1
Lines 23282 23343 +61
=====================================
- Misses 23282 23343 +61 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Focused review of corrected exact head Independent evidence:
Fail-closed boundary: on current KB main, an empty/unmatched XP contract walk: current head/scope/API-runtime writer pass; class 1 has no old-image fallback; class 2 maps every advertised mirror version and all consumers; class 3 uses the target component serviceVersion through BackupPolicy resolution; class 4 is fail-closed but late as noted; classes 5/6/7/8 introduce no cleanup/NotFound/terminating/precedence path. Runtime boundary remains separate: this PASS does not prove registry publication parity and does not authorize reuse/mutation of the preserved failed backup scene. Validate only on a correctly published fresh 4.14.12 install after the normal owner/test handoff. |
leon-ape
left a comment
There was a problem hiding this comment.
- This mutates the existing
falkordb-physical-br,falkordb-cluster-br, andfalkordb-for-pitrActionSet image contracts to requireFALKORDB_IMAGE. Backups created before this change persist the same ActionSet names but noFALKORDB_IMAGEinstatus.backupMethod.env; restore resolves the current ActionSet by that persisted name, so those backups now produce unresolved restore image references after addon upgrade. - The current head has no successful fresh 4.14.12 provision, backup/restore, and service-connectivity result. The supplied verification covers only rendering and explicitly leaves runtime validation at N=0.
|
Addressed the persisted-name compatibility blocker at exact head
Local checks are green: focused 4/4, full bash 5.3 210/210, full bash 3.2 42 examples with 0 failures and 4 existing skips, Helm lint/render, ShellCheck, and diff check. Current substantive GitHub checks are green; an earlier label-check failure is superseded by the later successful run. Scoped runtime acceptance is now closed for one clean fixed-4.14.12 backup/restore cycle. The live contract uses the three Direct evidence from the clean run (raw SHA256
Scope boundary: this is N=1 current-candidate runtime support, not repeated/full-suite/release-readiness or cryptographic publication proof. Earlier The remaining PR gate is formal maintainer review/approval; runtime restore and post-restore data validation are no longer marked environment-blocked. |
|
Focused re-review of exact head Independent evidence:
Contract anchors: XP contract walk: class 1 clean (v2 has no fixed-image fallback); class 2 clean for the two advertised serviceVersions and all three consumers; class 3 clean because old persisted names and new policy names are disjoint; class 4/4a clean because missing/unmatched mapping leaves the literal image unresolved rather than silently selecting legacy; classes 5-7 add no cleanup/NotFound/terminating flow; class 8 has no complex condition. Remaining gate: per |
leon-ape
left a comment
There was a problem hiding this comment.
Current head still has no 4.14.12 provision, backup, restore, and post-restore connectivity/data validation. Static/render checks do not validate the version-mapped ActionSets at runtime.
|
Accepted. I rechecked the current PR identity: head is still The earlier 2026-07-14 N=1 packet was produced from this exact head and directly covered clean-slate 4.14.12 source provisioning, A fresh exact-head cycle is now assigned to the test owner with the following required terminal evidence: clean-slate 4.14.12 provision; completed backup with the v2 ActionSet and mapped image; completed restore; and credentialed Until that fresh packet is posted, I am not claiming runtime or merge readiness. |
|
Fresh exact-head runtime follow-up for the missing Service-endpoint gate: PASS for one scoped PR acceptance sample ( Identity binding:
Fresh
Canonical raw packet: SHA256 A preceding attempt stopped at an independently classified MinIO environment failure (Service existed but ready endpoints and Pods were zero) and is not counted in this PASS. Its cleanup-order recovery is also tracked separately and is not product evidence. Scope boundary: this closes the requested fresh 4.14.12 provision + backup + restore + post-restore Cluster Service connectivity/data gate for |
Closes #3192
Problem
FalkorDB ActionSets rendered the chart-default engine image into every backup and restore job, so new backups did not follow the target Cluster service version. A direct replacement of the existing ActionSet image fields would introduce a second failure: old Backup objects persist the legacy ActionSet names, but do not persist
FALKORDB_IMAGE, so their restores must continue to resolve the original fixed-image ActionSets.This PR preserves both contracts:
Change
falkordb-physical-br,falkordb-cluster-br, andfalkordb-for-pitras legacy fixed-image ActionSets for existing Backup restore compatibility;falkordb-physical-br-v2,falkordb-cluster-br-v2, andfalkordb-for-pitr-v2for new backups;-v2ActionSets;FALKORDB_IMAGEversionMappingentries for standalonedatafile, standaloneaof, and clusterdatafilemethods;Evidence
TDD causal check: applying the current spec to base
b55707f0produced 3 failing examples: the-v2template was absent and both BackupPolicyTemplates still selected legacy ActionSets.Current-head checks at
e0e51ace56f20b43e6a8083a06fea44619670b32:helm lint addons/falkordb: pass;-v2with no legacy policy reference;git diff --check: pass.No Kubernetes environment was mutated by this code change. Runtime validation remains required for a fresh 4.14.12 provision, backup/restore, and service connectivity.