🤖 CoderWorkspaceClaim: a bound claim whose member failed stays Reconciling, so GitOps waits only time out

Ouverte
#454 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
go
Domaine
devops

Piste de recherche

Start with writeClaimStatuses in internal/controller/coderworkspacepool_claim.go, which sets Stalled only for Lost or a Share stall, and with readPoolMemberWorkspace in internal/controller/coderworkspacepoolmember_ready.go. The issue leaves open whether to set Stalled=True on a bound claim whose member is Failed, or to keep the current delete-and-recreate behavior documented in docs/how-to/gitops.md, so confirm the choice with maintainers first. Done means a bound claim with a failed member reports a terminal state that the GitOps health rules can read.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Problem

A bound CoderWorkspaceClaim whose member fails stays Reconciling=True forever, so the GitOps health rules from #453 show it Progressing (Argo CD) or InProgress (Flux) and never Degraded/Failed. A sync wave or a Flux wait: true that waits on such a claim ends only at its timeout.

Reachable member failures after a bind:

  • OwnershipUnknown: someone renamed the kwp- workspace, or it has another owner or template (readPoolMemberWorkspace, internal/controller/coderworkspacepoolmember_ready.go), on every poll of a bound member.
  • ChangedExternally: someone started a build before the bind extension finished (poolMemberStartBuildStep, reached from watchReady while status.bindExtended is false).

writeClaimStatuses (internal/controller/coderworkspacepool_claim.go) copies the member's reason, but sets Stalled only for Lost or a Share stall. The pool deletes only unclaimed failed members, so the claim stays Bound, not ready, and Reconciling=True.

Options

  1. Set Stalled=True on a bound claim whose member phase is Failed (the claim is not Lost, because the workspace can still exist). The health rules need no change.
  2. Keep the behavior, which #453 documents in docs/how-to/gitops.md: delete the claim and let GitOps create it again.

Found by the independent readiness review of #453 (plan PR 16a of #153).


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh

Langage dominant
Go
Étoiles
5
Forks
3
Merge moyen
1 h 50 min
PR mergées (30 j)
160

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de coder/coder-k8s

Toutes les issues de coder/coder-k8s

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.