Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Use parameters to select a provisioner #5979

Closed
@bpmct

Description

@bpmct

We have a little-known feature that allows someone to run external provisioners outside of the coder server. However, there are some cases where a workspace owner wants to guarantee which "external provisioner/runner" their workspace is built on.

  • Runners in specific clouds/datacenters
  • Runners on a developer's local machine

Templates can tag which runners they are compatible with, but this isn't done done per-workspace (a workspace may be re-built on a different runner with the same tag, leading to data loss or a failed build).

With an immutable, dynamic, runner parameter on the “create workspace” page, we can do both! Instead of hardcoded values, Coder pulls the list of available runners and perhaps shows latency.

image

We could also consider this for our dogfood template, removing provisioning load from the Coder server and relying on runners on each bare metal instance to provision containers with their respective local docker sockets. This has an added advantage of builds not failing when we redeploy Coder (we constantly update our dogfood environment when a new commit is merged into main)

Note
In most (to all) cases, this parameter should be immutable. I'd actually argue we should not support it being mutable. Migrating a workspace to another datacenter / runtime is risky

Metadata

Metadata

Assignees

Labels

customer-requestedFeatures requested by enterprise customers. Only humans may set this.parametersArea: parametersroadmaphttps://coder.com/roadmap. Only humans may set this.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions