mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
fix: exclude prebuilt workspaces from lifecycle executor (#18762)
## Description This PR updates the lifecycle executor to explicitly exclude prebuilt workspaces from being considered for lifecycle operations such as `autostart`, `autostop`, `dormancy`, `default TTL` and `failure TTL`. Prebuilt workspaces (i.e., those owned by the prebuild system user) are handled separately by the prebuild reconciliation loop. Including them in the lifecycle executor could lead to unintended behavior such as incorrect scheduling or state transitions. ## Changes * Updated the lifecycle executor query `GetWorkspacesEligibleForTransition` to exclude workspaces with `owner_id = 'c42fdf75-3097-471c-8c33-fb52454d81c0'` (prebuilds). * Added tests to verify prebuilt workspaces are not considered in: * Autostop * Autostart * Default TTL * Dormancy * Failure TTL Fixes: https://github.com/coder/coder/issues/18740 Related to: https://github.com/coder/coder/issues/18658
This commit is contained in:
@@ -37,15 +37,18 @@ const (
|
||||
type BuildReason string
|
||||
|
||||
const (
|
||||
// "initiator" is used when a workspace build is triggered by a user.
|
||||
// BuildReasonInitiator "initiator" is used when a workspace build is triggered by a user.
|
||||
// Combined with the initiator id/username, it indicates which user initiated the build.
|
||||
BuildReasonInitiator BuildReason = "initiator"
|
||||
// "autostart" is used when a build to start a workspace is triggered by Autostart.
|
||||
// BuildReasonAutostart "autostart" is used when a build to start a workspace is triggered by Autostart.
|
||||
// The initiator id/username in this case is the workspace owner and can be ignored.
|
||||
BuildReasonAutostart BuildReason = "autostart"
|
||||
// "autostop" is used when a build to stop a workspace is triggered by Autostop.
|
||||
// BuildReasonAutostop "autostop" is used when a build to stop a workspace is triggered by Autostop.
|
||||
// The initiator id/username in this case is the workspace owner and can be ignored.
|
||||
BuildReasonAutostop BuildReason = "autostop"
|
||||
// BuildReasonDormancy "dormancy" is used when a build to stop a workspace is triggered due to inactivity (dormancy).
|
||||
// The initiator id/username in this case is the workspace owner and can be ignored.
|
||||
BuildReasonDormancy BuildReason = "dormancy"
|
||||
)
|
||||
|
||||
// WorkspaceBuild is an at-point representation of a workspace state.
|
||||
|
||||
Reference in New Issue
Block a user