Skip to content

docs: file two k3s-cluster bugs found during worker recovery#114

Merged
astrojerms merged 1 commit into
mainfrom
docs/recovery-bug-findings
Jul 8, 2026
Merged

docs: file two k3s-cluster bugs found during worker recovery#114
astrojerms merged 1 commit into
mainfrom
docs/recovery-bug-findings

Conversation

@astrojerms

Copy link
Copy Markdown
Owner

Recovering a k3s worker whose VM had been deleted out-of-band surfaced two genuine reconciliation gaps. Filed as ROADMAP follow-ups with suggested fixes.

1. Cluster apply does not detect an out-of-band child-VM deletion

Cluster Get/apply reports Ready straight from its persisted children list without verifying the child VMs actually exist on the provider — so a deleted worker is not seen as drift. The verifying-trace cache compounds it: with the manifest unchanged, input+refs hashes match and the apply is a cache hit that returns Ready without reconciling (recovery required manually clearing the applied_manifests row).

2. Plan-based count-up breaks on legacy (pre-K3sNode) clusters

Existing-cluster converge now goes solely through the Plan/dispatcher path, which emits worker K3sNode children with $ref joins to K3sNode/<cp>. A cluster created via the old inline path has no K3sNode resources for its CPs, so ref resolution fails (K3sNode "dev-cp-0" not found) — the worker VM is created but never joins.

Docs-only.

Recovering a k3s worker whose VM was deleted out-of-band surfaced two
real reconciliation gaps:

1. Cluster apply does not detect an out-of-band child-VM deletion: it
   reports Ready from its persisted children list without verifying the
   VMs exist, and the verifying-trace cache short-circuits re-applies
   (input+refs hashes unchanged -> cache hit -> no reconcile). Recovery
   needed a manual applied_manifests cache clear.

2. Plan-based count-up breaks on legacy (pre-K3sNode) clusters: existing-
   cluster converge now goes solely through the Plan path, which emits
   worker K3sNode children with $ref joins to K3sNode/<cp>. A cluster
   created via the old inline path has no K3sNode resources for its CPs,
   so "resolve refs: K3sNode dev-cp-0 not found" -- the worker VM is
   created but never joins.

Both filed as ROADMAP follow-ups with suggested fixes. Docs-only.
@astrojerms astrojerms merged commit 148c647 into main Jul 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant