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

オープン
#454 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
go
領域
devops

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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

主要言語
Go
スター
5
フォーク
3
平均マージ
1時間 50分
マージ済み PR(30日)
160

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

coder/coder-k8s のほかの issue

coder/coder-k8s の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。