8000 Template Update Policies · Issue #7468 · coder/coder · GitHub
[go: up one dir, main page]

Skip to content
Template Update Policies #7468
Closed
Closed
@spikecurtis

Description

@spikecurtis

Template Update Policies meta-issue

Background

Currently, developers have to opt-in to workspace updates. Many organizations want to enforce workspace updates to keep all developers on the latest version of a template. There are several benefits to this approach:

  • Avoid "it works on my machine workspace" scenarios
  • Ensure security patches are rolled out across all workspaces

There are also use cases for developers to "roll back" or "opt in" to non-promoted workspace versions:

  • Try an experimental template before it is rolled out to all users (e.g. "upgrade to golang 20")
  • Work on an older/legacy version of the codebase or branch, which relied on an older template

Solution

We are going to add the following:

  • Template-level setting whether users can change version

  • Workspace-level setting whether workspace should “automatically update”

    • By default, this would be checked
    • This setting can only be modified if users can change version
  • Add note in “change version”

    Selecting this version will disable auto-updates for your workspace

  • We could potentially show whether auto-updates are enabled/disabled here or under the “version” tab

  • Autostart behavior:

    • If user cannot change version, then attempt to autostart with new version
      • If variables are compatible, start
      • Otherwise, autostart fails, user has to manually start and enter new variables
    • If user can change version and has auto-updates enabled
      • If variables are compatible, start with new version
      • Otherwise, autostart fails, user has to manually start and enter new variables
    • If user can change version and auto-updates are disabled
      • Start with the existing workspace version

These notes were taken from our internal RFC

  • Start behavior
    • If user cannot change version, always start with new version
    • Otherwise, start with the new version if automatic updates are enabled

Task breakdown

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0