Skip to content

Commit 55e7f34

Browse files
authored
🤖 docs: update the Terminating namespace step after the #209 fix (#219)
## Summary The troubleshooting step "A namespace stays `Terminating`" still said that #209 makes a namespace without an eligible control plane hang forever. #214 fixed that for a namespace that has no `CoderControlPlane` at all: the aggregated API now answers its list with an empty list. ## What Step 2 of the section is now three short sentences and two commands, with no list of cases: 1. If `NamespaceDeletionContentFailure` is `True`, read its message. It contains the error that the aggregated API returned for the namespace controller's list, for example a `503` or a `400`. 2. For what each error means, it links [Namespaces without a Coder backend](https://github.com/coder/coder-k8s/blob/main/docs/reference/aggregated-api-behavior.md#namespaces-without-a-coder-backend) and the existing "Aggregated reads return `ServiceUnavailable`" entry. 3. If a `CoderControlPlane` is still in the namespace, check its finalizers (for example `coder.com/workspace-rbac-cleanup`) and the controller logs. The note that #214 added under "Aggregated reads return `ServiceUnavailable`" stays as it is. This change does not repeat it. ## Review rounds 1. Round 1 found four gaps in a list of cases. The second commit fixed them. 2. Round 2 found three more gaps in that list. Instead of a longer list, cfc8e16 simplifies the step so that it no longer lists cases. ## Validation On the pushed tree: `make docs-check` (strict build), `markdownlint-cli2` 0.18.1, and `cspell` 8.19.4, each with exit 0. The built page contains both new links. Refs #209 Refs #215 --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
1 parent bf8019f commit 55e7f34

1 file changed

Lines changed: 2 additions & 3 deletions

File tree

‎docs/how-to/troubleshooting.md‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,10 +280,9 @@ CAUTION: Delete the workspace in Coder before you remove the finalizer. Otherwis
280280
## A namespace stays `Terminating`
281281
282282
1. Tests in the namespace wait for their cleanup. List them with `kubectl get codertemplatetests -n <namespace>`, then see [A `CoderTemplateTest` does not finish deleting](#a-codertemplatetest-does-not-finish-deleting).
283-
2. With the aggregated API server installed, a namespace without an eligible `CoderControlPlane` never finishes deleting ([#209](https://github.com/coder/coder-k8s/issues/209)). Its condition `NamespaceDeletionContentFailure` is `True` with the message `no eligible CoderControlPlane instances found in namespace "<namespace>"`. The aggregated API answers the namespace controller's LIST with `503`. Read the conditions:
283+
2. If the namespace condition `NamespaceDeletionContentFailure` is `True`, read its message. It contains the error that the aggregated API returned when the namespace controller listed its resources, for example a `503` or a `400`. For what each error means, see [Namespaces without a Coder backend](../reference/aggregated-api-behavior.md#namespaces-without-a-coder-backend) and [Aggregated reads return `ServiceUnavailable`](#aggregated-reads-return-serviceunavailable). If a `CoderControlPlane` is still in the namespace, check its finalizers, for example `coder.com/workspace-rbac-cleanup`, and the controller logs.
284284
285285
```bash
286286
kubectl get namespace <namespace> -o jsonpath='{range .status.conditions[*]}{.type}={.status} {.message}{"\n"}{end}'
287+
kubectl get codercontrolplanes -n <namespace> -o jsonpath='{range .items[*]}{.metadata.name}: {.metadata.finalizers}{"\n"}{end}'
287288
```
288-
289-
If `NamespaceContentRemaining` and `NamespaceFinalizersRemaining` are `False`, nothing is left in the namespace, and only #209 holds it.

0 commit comments

Comments
 (0)