Problem
After #116, creating a CoderTemplate with spec.files returns only after Coder finishes importing the template. The server-side limit is CODER_K8S_TEMPLATE_VERSION_BUILD_WAIT_TIMEOUT (default 25 minutes), capped by the request deadline. Requests reach the aggregated API server through kube-apiserver, whose default --request-timeout is 60 seconds, and clients can set shorter deadlines.
If an import takes longer than the effective deadline:
- the client receives a timeout;
- the server creates no template, so nothing half-created is exposed;
- the uploaded file and template version remain in Coder;
- a retry uploads and imports again and can leave additional versions.
The maintained E2E imports a trivial template in seconds, so this path has not been exercised on a real backend. It has not been verified whether kube-apiserver's timeout applies to proxied aggregated requests in every configuration.
Options to evaluate
- Keep the synchronous Create and document the limit (current state; documented in the aggregated API server how-to).
- Return early for slow imports and expose import progress through status or conditions, so clients can wait instead of retrying.
- Make retries idempotent for identical source (for example, reuse a pending or succeeded version with the same content hash).
Trigger and owner
Owner: maintainer desk. Revisit when a user reports a slow-import timeout, when a supported quickstart path is restored, or before advertising large templates as supported.
Follow-up from #105 and #116.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
Problem
After #116, creating a
CoderTemplatewithspec.filesreturns only after Coder finishes importing the template. The server-side limit isCODER_K8S_TEMPLATE_VERSION_BUILD_WAIT_TIMEOUT(default 25 minutes), capped by the request deadline. Requests reach the aggregated API server through kube-apiserver, whose default--request-timeoutis 60 seconds, and clients can set shorter deadlines.If an import takes longer than the effective deadline:
The maintained E2E imports a trivial template in seconds, so this path has not been exercised on a real backend. It has not been verified whether kube-apiserver's timeout applies to proxied aggregated requests in every configuration.
Options to evaluate
Trigger and owner
Owner: maintainer desk. Revisit when a user reports a slow-import timeout, when a supported quickstart path is restored, or before advertising large templates as supported.
Follow-up from #105 and #116.
Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:xhigh