diff --git a/.cspell.json b/.cspell.json index 993f3b694..e1c202ec4 100644 --- a/.cspell.json +++ b/.cspell.json @@ -19,6 +19,7 @@ "rolebinding", "subresource", "subresources", + "finalizers", "configmap", "healthcheck", "ipairs", diff --git a/README.md b/README.md index 9da1622bd..067428cbe 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Use native Kubernetes APIs to run and manage [Coder](https://coder.com). | Component | Manages | API group | | --- | --- | --- | -| Operator | `CoderControlPlane`, `CoderProvisioner`, `CoderWorkspaceProxy` (custom resources) | `coder.com/v1alpha1` | +| Operator | `CoderControlPlane`, `CoderProvisioner`, `CoderTemplateTest`, `CoderWorkspaceProxy` (custom resources) | `coder.com/v1alpha1` | | Aggregated API server | `CoderWorkspace`, `CoderTemplate`, `CoderTemplateVersion` (served from a live Coder instance) | `aggregation.coder.com/v1alpha1` | | MCP server | Tools that inspect and operate these resources over HTTP | — | diff --git a/config/samples/coder_v1alpha1_codertemplatetest.yaml b/config/samples/coder_v1alpha1_codertemplatetest.yaml new file mode 100644 index 000000000..b4624f7da --- /dev/null +++ b/config/samples/coder_v1alpha1_codertemplatetest.yaml @@ -0,0 +1,26 @@ +# Tests one Coder template version: the controller creates a workspace from +# it, waits until every top-level agent is ready, records the result, and +# deletes the workspace. See docs/how-to/test-templates.md. +# +# Prerequisites: +# - CoderControlPlane codercontrolplane-sample with status.operatorAccessReady +# true and spec.templateTests.ownerUserID set to the tester's Coder user ID. +# - The template below exists in Coder. +# +# The spec is immutable. To test again, delete this object or use a new name. +apiVersion: coder.com/v1alpha1 +kind: CoderTemplateTest +metadata: + name: codertemplatetest-sample + namespace: coder +spec: + controlPlaneRef: + name: codercontrolplane-sample + # .