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

未关闭
#454 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
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 分钟
30 天内合并 PR
160

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

coder/coder-k8s 的其他 Issue

查看 coder/coder-k8s 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。