Repository navigation
fix(controller): remove the NoAdoptableHistory warning event - #429
Merged
Merged
Conversation
A field report showed the warning firing on every ~5-minute reconcile (428+ aggregated count) for a healthy, ordinary state: a brand-new SnapshotPolicy sharing a repository with a retired app's Retain-kept snapshots. The event could not distinguish that from the DR identity mismatch it was built for (#380), self-silenced only on the policy's first successful backup (days on weekly crons), and in practice taught users to set `adoption: Ignore` — disabling the adoption it existed to protect. Kopia identity is a pure function of Git-authored inputs, so a post-DR mismatch only arises from a human manifest edit; the runtime speculation is replaced with neutral, checkable facts: - status.adoption.lastScanMatched / lastScanUnmatched record what each adoption pass actually saw (pre-own-filter, summed across a multi-repo policy's ready targets; absent = no pass yet) - `kubectl kopiur status` now shows each repository's discovered snapshot count as plain inventory - the DR runbook verifies adoption positively instead of watching for a warning; troubleshooting and identityDefaults docs absorb the event message's guidance; upgrade note says Ignore-as-silencer can be removed e2e regression guard: foreign_history_policy_stays_quiet_and_adopts_nothing reproduces the report's exact shape and asserts the operator stays quiet.
Greptile SummaryThe PR removes the noisy
|
| Filename | Overview |
|---|---|
| crates/api/src/snapshot_policy.rs | Adds optional, correctly serialized adoption scan counters and round-trip coverage for absent versus explicit-zero values. |
| crates/controller/src/adoption.rs | Replaces the warning predicate with pre-filter matched and unmatched candidate counts without changing candidate selection. |
| crates/controller/src/snapshot_policy.rs | Removes warning publication and safely aggregates and persists scan counters across participating ready targets. |
| crates/cli/src/cmd/status.rs | Adds repository discovered-snapshot counts to human-readable and serialized status output with focused tests. |
| crates/e2e/tests/adoption.rs | Adds an isolated shared-repository regression scenario covering warning absence, non-adoption, row preservation, and status counters. |
| deploy/crds/snapshotpolicies.yaml | Carries the additive status fields into the generated standalone CRD schema. |
| deploy/helm/kopiur/crds/snapshotpolicies.yaml | Keeps the Helm-packaged CRD aligned with the Rust API and standalone generated schema. |
| docs/scenarios/dr-with-replicated-repository.md | Updates disaster-recovery verification to use positive adoption evidence instead of warning-event absence. |
Reviews (1): Last reviewed commit: "fix(controller): remove the NoAdoptableH..." | Re-trigger Greptile
Merged
gabrielcosi
pushed a commit
to gabrielcosi/home-ops
that referenced
this pull request
Sep 1, 2026
….10.5 ➔ 0.10.6) (#609) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | patch | `0.10.5` → `0.10.6` | --- ### Release Notes <details> <summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary> ### [`v0.10.6`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0106-2026-09-01) [Compare Source](home-operations/kopiur@0.10.5...0.10.6) ##### Features - **errors:** clarify user-facing Kubernetes error/warning messages ([#​431](home-operations/kopiur#431)) ([099d0a1](home-operations/kopiur@099d0a1)) ##### Bug Fixes - **controller:** remove the NoAdoptableHistory warning event ([#​429](home-operations/kopiur#429)) ([a3dccb4](home-operations/kopiur@a3dccb4)) - kopia UI server never received the backend auth Secret — split-secret creds, per-secret mirrors, server identity ([#​416](home-operations/kopiur#416)) ([#​424](home-operations/kopiur#424)) ([ab1327a](home-operations/kopiur@ab1327a)) - **rust:** update crate rcgen (0.14.9 → 0.14.10) ([#​423](home-operations/kopiur#423)) ([48c10a3](home-operations/kopiur@48c10a3)) ##### Miscellaneous Chores - **github-action:** update action anchore/sbom-action (v0.24.0 → v0.24.1) ([#​427](home-operations/kopiur#427)) ([4aee76d](home-operations/kopiur@4aee76d)) - **github-action:** update action anchore/sbom-action (v0.24.1 → v0.24.2) ([#​432](home-operations/kopiur#432)) ([0d029d4](home-operations/kopiur@0d029d4)) - **mise:** update tool aqua:astral-sh/uv (0.12.5 → 0.12.6) ([#​422](home-operations/kopiur#422)) ([d06d57c](home-operations/kopiur@d06d57c)) - **mise:** update tool aqua:astral-sh/uv (0.12.6 → 0.12.7) ([#​428](home-operations/kopiur#428)) ([36f8f56](home-operations/kopiur@36f8f56)) - **mise:** update tool aqua:dadav/helm-schema (0.23.4 → 0.23.5) ([#​412](home-operations/kopiur#412)) ([c1ad2a1](home-operations/kopiur@c1ad2a1)) - **mise:** update tool kubectl (1.36.4 → 1.37.0) ([#​426](home-operations/kopiur#426)) ([08eb492](home-operations/kopiur@08eb492)) - **mise:** update tool lefthook (2.1.11 → 2.1.12) ([#​430](home-operations/kopiur#430)) ([21312e5](home-operations/kopiur@21312e5)) - **mise:** update tool node (24.19.0 → v24.20.0) ([#​425](home-operations/kopiur#425)) ([9e4ffb8](home-operations/kopiur@9e4ffb8)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC41MC4zIiwidXBkYXRlZEluVmVyIjoiNDQuNTAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==--> Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/609
doonga
pushed a commit
to greyrock-labs/home-ops
that referenced
this pull request
Sep 5, 2026
….10.4 ➔ 0.10.7) (#87) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | patch | `0.10.4` → `0.10.7` | --- ### Release Notes <details> <summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary> ### [`v0.10.7`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0107-2026-09-02) [Compare Source](home-operations/kopiur@0.10.6...0.10.7) ##### Features - per-repository mover-Job concurrency limits + jitter hardening ([#​437](home-operations/kopiur#437)) ([1529aa9](home-operations/kopiur@1529aa9)) ### [`v0.10.6`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0106-2026-09-01) [Compare Source](home-operations/kopiur@0.10.5...0.10.6) ##### Features - **errors:** clarify user-facing Kubernetes error/warning messages ([#​431](home-operations/kopiur#431)) ([099d0a1](home-operations/kopiur@099d0a1)) ##### Bug Fixes - **controller:** remove the NoAdoptableHistory warning event ([#​429](home-operations/kopiur#429)) ([a3dccb4](home-operations/kopiur@a3dccb4)) - kopia UI server never received the backend auth Secret — split-secret creds, per-secret mirrors, server identity ([#​416](home-operations/kopiur#416)) ([#​424](home-operations/kopiur#424)) ([ab1327a](home-operations/kopiur@ab1327a)) - **rust:** update crate rcgen (0.14.9 → 0.14.10) ([#​423](home-operations/kopiur#423)) ([48c10a3](home-operations/kopiur@48c10a3)) ##### Miscellaneous Chores - **github-action:** update action anchore/sbom-action (v0.24.0 → v0.24.1) ([#​427](home-operations/kopiur#427)) ([4aee76d](home-operations/kopiur@4aee76d)) - **github-action:** update action anchore/sbom-action (v0.24.1 → v0.24.2) ([#​432](home-operations/kopiur#432)) ([0d029d4](home-operations/kopiur@0d029d4)) - **mise:** update tool aqua:astral-sh/uv (0.12.5 → 0.12.6) ([#​422](home-operations/kopiur#422)) ([d06d57c](home-operations/kopiur@d06d57c)) - **mise:** update tool aqua:astral-sh/uv (0.12.6 → 0.12.7) ([#​428](home-operations/kopiur#428)) ([36f8f56](home-operations/kopiur@36f8f56)) - **mise:** update tool aqua:dadav/helm-schema (0.23.4 → 0.23.5) ([#​412](home-operations/kopiur#412)) ([c1ad2a1](home-operations/kopiur@c1ad2a1)) - **mise:** update tool kubectl (1.36.4 → 1.37.0) ([#​426](home-operations/kopiur#426)) ([08eb492](home-operations/kopiur@08eb492)) - **mise:** update tool lefthook (2.1.11 → 2.1.12) ([#​430](home-operations/kopiur#430)) ([21312e5](home-operations/kopiur@21312e5)) - **mise:** update tool node (24.19.0 → v24.20.0) ([#​425](home-operations/kopiur#425)) ([9e4ffb8](home-operations/kopiur@9e4ffb8)) ### [`v0.10.5`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0105-2026-08-28) [Compare Source](home-operations/kopiur@0.10.4...0.10.5) ##### Bug Fixes - deadline-killed bootstrap classification, maintenance gate exemption, relaunch backoff + self-healing escalation ([#​417](home-operations/kopiur#417)) ([ff8b396](home-operations/kopiur@ff8b396)) - manualRun explicit-null completedAt, tri-state Restore gate, throttle honored in every mover flow ([#​394](home-operations/kopiur#394), [#​393](home-operations/kopiur#393), [#​374](home-operations/kopiur#374)) ([#​411](home-operations/kopiur#411)) ([8f0399f](home-operations/kopiur@8f0399f)) ##### Miscellaneous Chores - **github-action:** update action jdx/mise-action (v4.2.5 → v4.3.0) ([#​419](home-operations/kopiur#419)) ([6234791](home-operations/kopiur@6234791)) </details> --- ### Configuration 📅 **Schedule**: (in timezone America/New_York) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC41Mi4xIiwidXBkYXRlZEluVmVyIjoiNDQuNTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==--> Reviewed-on: https://git.greyrock.io/todd/home-ops/pulls/87
GiorgioAresu
pushed a commit
to GiorgioAresu/home-ops
that referenced
this pull request
Sep 13, 2026
….10.0 ➔ 0.10.8) (#2042) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | patch | `0.10.0` → `0.10.8` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/6) for more information. --- ### Release Notes <details> <summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary> ### [`v0.10.8`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0108-2026-09-08) [Compare Source](home-operations/kopiur@0.10.7...0.10.8) ##### Bug Fixes - **container:** update image busybox ([`9532d8c`](home-operations/kopiur@9532d8c) → [`dc2d74b`](home-operations/kopiur@dc2d74b)) ([#​439](home-operations/kopiur#439)) ([0bad734](home-operations/kopiur@0bad734)) - re-initialize ack for wiped repositories ([#​435](home-operations/kopiur#435)), populator fan-out with per-PVC source paths ([#​443](home-operations/kopiur#443)), helm README ([#​436](home-operations/kopiur#436)) ([#​449](home-operations/kopiur#449)) ([fdfa9a6](home-operations/kopiur@fdfa9a6)) - **rust:** update crate rustls (0.23.43 → 0.23.44) ([#​448](home-operations/kopiur#448)) ([b9e10a6](home-operations/kopiur@b9e10a6)) ##### Miscellaneous Chores - **github-action:** update action actions/deploy-pages (v5.0.0 → v5.0.1) ([#​444](home-operations/kopiur#444)) ([f601ebd](home-operations/kopiur@f601ebd)) - **github-action:** update action helm/kind-action (v1.14.0 → v1.15.0) ([#​446](home-operations/kopiur#446)) ([94ab9de](home-operations/kopiur@94ab9de)) - **mise:** update mise tools ([#​399](home-operations/kopiur#399)) ([ffae98a](home-operations/kopiur@ffae98a)) - **mise:** update tool aqua:astral-sh/uv (0.12.7 → 0.12.8) ([#​442](home-operations/kopiur#442)) ([8954063](home-operations/kopiur@8954063)) - **mise:** update tool aqua:astral-sh/uv (0.12.8 → 0.12.9) ([#​445](home-operations/kopiur#445)) ([5a88ac6](home-operations/kopiur@5a88ac6)) - **mise:** update tool aqua:astral-sh/uv (0.12.9 → 0.12.10) ([#​450](home-operations/kopiur#450)) ([c32246a](home-operations/kopiur@c32246a)) - **mise:** update tool zizmor (1.29.0 → 1.30.0) ([#​441](home-operations/kopiur#441)) ([908a427](home-operations/kopiur@908a427)) ### [`v0.10.7`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0107-2026-09-02) [Compare Source](home-operations/kopiur@0.10.6...0.10.7) ##### Features - per-repository mover-Job concurrency limits + jitter hardening ([#​437](home-operations/kopiur#437)) ([1529aa9](home-operations/kopiur@1529aa9)) ### [`v0.10.6`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0106-2026-09-01) [Compare Source](home-operations/kopiur@0.10.5...0.10.6) ##### Features - **errors:** clarify user-facing Kubernetes error/warning messages ([#​431](home-operations/kopiur#431)) ([099d0a1](home-operations/kopiur@099d0a1)) ##### Bug Fixes - **controller:** remove the NoAdoptableHistory warning event ([#​429](home-operations/kopiur#429)) ([a3dccb4](home-operations/kopiur@a3dccb4)) - kopia UI server never received the backend auth Secret — split-secret creds, per-secret mirrors, server identity ([#​416](home-operations/kopiur#416)) ([#​424](home-operations/kopiur#424)) ([ab1327a](home-operations/kopiur@ab1327a)) - **rust:** update crate rcgen (0.14.9 → 0.14.10) ([#​423](home-operations/kopiur#423)) ([48c10a3](home-operations/kopiur@48c10a3)) ##### Miscellaneous Chores - **github-action:** update action anchore/sbom-action (v0.24.0 → v0.24.1) ([#​427](home-operations/kopiur#427)) ([4aee76d](home-operations/kopiur@4aee76d)) - **github-action:** update action anchore/sbom-action (v0.24.1 → v0.24.2) ([#​432](home-operations/kopiur#432)) ([0d029d4](home-operations/kopiur@0d029d4)) - **mise:** update tool aqua:astral-sh/uv (0.12.5 → 0.12.6) ([#​422](home-operations/kopiur#422)) ([d06d57c](home-operations/kopiur@d06d57c)) - **mise:** update tool aqua:astral-sh/uv (0.12.6 → 0.12.7) ([#​428](home-operations/kopiur#428)) ([36f8f56](home-operations/kopiur@36f8f56)) - **mise:** update tool aqua:dadav/helm-schema (0.23.4 → 0.23.5) ([#​412](home-operations/kopiur#412)) ([c1ad2a1](home-operations/kopiur@c1ad2a1)) - **mise:** update tool kubectl (1.36.4 → 1.37.0) ([#​426](home-operations/kopiur#426)) ([08eb492](home-operations/kopiur@08eb492)) - **mise:** update tool lefthook (2.1.11 → 2.1.12) ([#​430](home-operations/kopiur#430)) ([21312e5](home-operations/kopiur@21312e5)) - **mise:** update tool node (24.19.0 → v24.20.0) ([#​425](home-operations/kopiur#425)) ([9e4ffb8](home-operations/kopiur@9e4ffb8)) ### [`v0.10.5`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0105-2026-08-28) [Compare Source](home-operations/kopiur@0.10.4...0.10.5) ##### Bug Fixes - deadline-killed bootstrap classification, maintenance gate exemption, relaunch backoff + self-healing escalation ([#​417](home-operations/kopiur#417)) ([ff8b396](home-operations/kopiur@ff8b396)) - manualRun explicit-null completedAt, tri-state Restore gate, throttle honored in every mover flow ([#​394](home-operations/kopiur#394), [#​393](home-operations/kopiur#393), [#​374](home-operations/kopiur#374)) ([#​411](home-operations/kopiur#411)) ([8f0399f](home-operations/kopiur@8f0399f)) ##### Miscellaneous Chores - **github-action:** update action jdx/mise-action (v4.2.5 → v4.3.0) ([#​419](home-operations/kopiur#419)) ([6234791](home-operations/kopiur@6234791)) ### [`v0.10.4`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0104-2026-08-24) [Compare Source](home-operations/kopiur@0.10.3...0.10.4) ##### Bug Fixes - **chart:** give flowSchema its doc comment and timings a clean schema entry ([#​397](home-operations/kopiur#397)) ([7c8dd3f](home-operations/kopiur@7c8dd3f)) - **mover:** read status.resolved via the /status subresource ([#​408](home-operations/kopiur#408)) ([06fc2f9](home-operations/kopiur@06fc2f9)) ##### Miscellaneous Chores - **github-action:** update action docker/github-builder (v1.16.0 → v1.17.0) ([#​407](home-operations/kopiur#407)) ([b6d7d04](home-operations/kopiur@b6d7d04)) - **mise:** update mise tools ([#​400](home-operations/kopiur#400)) ([b1a83f8](home-operations/kopiur@b1a83f8)) - **mise:** update tool kubectl (1.36.3 → 1.36.4) ([#​405](home-operations/kopiur#405)) ([274e3d6](home-operations/kopiur@274e3d6)) - **mise:** update tool lefthook (2.1.10 → 2.1.11) ([#​406](home-operations/kopiur#406)) ([2ba700d](home-operations/kopiur@2ba700d)) - **mise:** update tool rust (1.97.1 → 1.98.0) ([#​403](home-operations/kopiur#403)) ([c655005](home-operations/kopiur@c655005)) - **mise:** update tool yq (4.53.3 → 4.53.4) ([#​402](home-operations/kopiur#402)) ([d1ed8a7](home-operations/kopiur@d1ed8a7)) - **mise:** update tool yq (4.53.4 → 4.53.6) ([#​404](home-operations/kopiur#404)) ([dd5878c](home-operations/kopiur@dd5878c)) ### [`v0.10.3`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0103-2026-08-18) [Compare Source](home-operations/kopiur@0.10.2...0.10.3) ##### Features - **repository:** seed a fresh repository from its replica — DR for replicated repositories ([#​380](home-operations/kopiur#380)) ([#​396](home-operations/kopiur#396)) ([74665dc](home-operations/kopiur@74665dc)) ##### Bug Fixes - **rust:** update crate cel (0.14.2 → 0.14.3) ([#​387](home-operations/kopiur#387)) ([bf9aa0c](home-operations/kopiur@bf9aa0c)) - **rust:** update crate http-body-util (0.1.4 → 0.1.5) ([#​381](home-operations/kopiur#381)) ([6354e17](home-operations/kopiur@6354e17)) ##### Miscellaneous Chores - **github-action:** update action jdx/mise-action (v4.2.4 → v4.2.5) ([#​388](home-operations/kopiur#388)) ([1040c9e](home-operations/kopiur@1040c9e)) - **mise:** update tool aqua:astral-sh/uv (0.12.3 → 0.12.4) ([#​390](home-operations/kopiur#390)) ([bf3916c](home-operations/kopiur@bf3916c)) - **mise:** update tool aqua:astral-sh/uv (0.12.4 → 0.12.5) ([#​395](home-operations/kopiur#395)) ([b919878](home-operations/kopiur@b919878)) - **mise:** update tool helm (4.2.3 → 4.2.4) ([#​389](home-operations/kopiur#389)) ([5b134fa](home-operations/kopiur@5b134fa)) - **mise:** Update tool oxfmt (0.62.0 → 0.63.0) ([#​386](home-operations/kopiur#386)) ([65db237](home-operations/kopiur@65db237)) ### [`v0.10.2`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0102-2026-08-13) [Compare Source](home-operations/kopiur@0.10.1...0.10.2) ##### Performance Improvements - **controller:** store-backed reads, LIST dedup, bounded PVC retries, client-side request metrics ([#​382](home-operations/kopiur#382)) ([#​383](home-operations/kopiur#383)) ([2b07022](home-operations/kopiur@2b07022)) ### [`v0.10.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0101-2026-08-11) [Compare Source](home-operations/kopiur@0.10.0...0.10.1) ##### Bug Fixes - **mise:** something about mise warnings ([#​373](home-operations/kopiur#373)) ([fde8073](home-operations/kopiur@fde8073)) - **rust:** update crate cel (0.14.1 → 0.14.2) ([#​379](home-operations/kopiur#379)) ([4a60221](home-operations/kopiur@4a60221)) - **rust:** update crate futures (0.3.33 → 0.3.34) ([#​378](home-operations/kopiur#378)) ([ff657b8](home-operations/kopiur@ff657b8)) - **rust:** update crate rcgen (0.14.8 → 0.14.9) ([#​377](home-operations/kopiur#377)) ([e3b3b3f](home-operations/kopiur@e3b3b3f)) ##### Miscellaneous Chores - **mise:** Update tool aqua:astral-sh/uv (0.12.2 → 0.12.3) ([#​375](home-operations/kopiur#375)) ([952af6d](home-operations/kopiur@952af6d)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Rome) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNy4xIiwidXBkYXRlZEluVmVyIjoiNDQuMTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==--> Reviewed-on: https://git.aresu.eu/GiorgioAresu/home-ops/pulls/2042
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A field report (HOPS Discord, 2026-08-29) showed a
SnapshotPolicyemitting theNoAdoptableHistoryWarning event on every reconcile — 428+ aggregated occurrences and climbing — on a completely healthy cluster. The trigger was the ordinary shared-repository lifecycle: retire app A (the deletion cascade's defaultRetainkeeps its kopia snapshots, which the catalog scan materializes as discovered rows), then add new app B against the sameClusterRepository. B, having no history of its own yet, matched none of A's rows and was accused of a disaster-recovery identity mismatch until its first successful backup — days to a week on typical crons. The user's fix wasadoption: Ignore, i.e. the warning taught them to disable the very adoption it was meant to protect.Why removal rather than tuning
The event (from #380) existed as a CREATE-time stand-in for the update-gated identity fork guard, targeting one DR case: a recovered policy whose identity no longer matches the history it should reclaim. But kopia identity in kopiur is a pure function of Git-authored inputs (
crates/api/src/identity.rs— name, namespace,spec.identity,identityDefaultsincl.cluster, labels/annotations, PVC name,sourcePathOverride; no live-environment inputs). A GitOps re-apply cannot drift an identity on its own — every mismatch begins as a human manifest edit. The operator cannot distinguish that rare case from the common shared-repo case, so the standing Warning had negative net value: it trained the suppression reflex that disarms it for the rare real case too.What replaces it (neutral facts, not judgment)
status.adoption.lastScanMatched/lastScanUnmatched— what each adoption pass actually saw: discovered rows matching this policy's identity (counted before the own-id/retention filters) vs. not. Multi-repo policies sum across ready targets; absent = no pass has run;0/0= empty catalog.kubectl kopiur statusnow renders each repository's discovered-snapshot count (status.catalog.discoveredBackupCount) as a plain inventory column — no warn/fail semantics.kubectl kopiur snapshots list --origin discovered --repository X+totalAdopted);identityDefaults/clusterdocs warn that edits strand history behind the old identity and that the fork guard cannot challenge CREATEs on a rebuilt cluster; troubleshooting absorbs the deleted event message's guidance;docs/upgrade.mdgets a "no action needed" note — if you setspec.adoption: Ignoresolely to silence this warning, you can remove it now.Regression guard
New e2e scenario
foreign_history_policy_stays_quiet_and_adopts_nothingreproduces the report's exact shape (policy A retired withRetain→ discovered rows; zero-history policy B on the same repo) and asserts through a 60s settle window: noNoAdoptableHistoryevent, no adoption, rows stayDiscovered, and the counters recordlastScanMatched: 0/lastScanUnmatched ≥ 1.Verification
mise run test— green (one unrelatedfake_shimETXTBSY flake reproduced identically on a clean main worktree; passes serially and on retry)mise run clippy/fmt-check/complexity-check(29/29, unchanged) /gen+gen-check— all greenKOPIUR_E2E_BINS="adoption cli"): 16/16 passed, including the new scenario (78s) andcli_doctor_and_statuswith the new columnRemoves a user-visible event reason (
NoAdoptableHistory) and itsCheckIdentityConfigurationaction — no schema removal, no RBAC change; the two status fields and the CRD regeneration are additive.