feat(agent/agentcontainers): recreate devcontainers concurrently (#18042)

This change introduces a refactor of the devcontainers recreation logic
which is now handled asynchronously rather than being request scoped.
The response was consequently changed from "No Content" to "Accepted" to
reflect this.

A new `Status` field was introduced to the devcontainer struct which
replaces `Running` (bool). This reflects that the devcontainer can now
be in various states (starting, running, stopped or errored).

The status field also protects against multiple concurrent recrations,
as long as they are initiated via the API.

Updates #16424
This commit is contained in:
Mathias Fredriksson
2025-05-26 18:30:52 +03:00
committed by GitHub
parent 60fd03dca6
commit 0731304905
10 changed files with 416 additions and 159 deletions

10
coderd/apidoc/docs.go generated
View File

@ -8613,6 +8613,9 @@ const docTemplate = `{
"CoderSessionToken": []
}
],
"produces": [
"application/json"
],
"tags": [
"Agents"
],
@ -8636,8 +8639,11 @@ const docTemplate = `{
}
],
"responses": {
"204": {
"description": "No Content"
"202": {
"description": "Accepted",
"schema": {
"$ref": "#/definitions/codersdk.Response"
}
}
}
}