Skip to content

RFC: template.yaml #2987

Closed as not planned
Closed as not planned
@ammario

Description

@ammario

As a template admin, I want to subject my whole template to version control to simplify change management. If/when #2958 is implemented, this becomes even more true. Let's also remember that our product is built around an IaaC tool, so our users probably prefer this method of configuration.

As a template admin, I sometimes forget what I've named my template. If I thoughtlessly run coder templates update and my directory happens to correspond with the wrong template I just disrupted developers. In a world without #2958, it's possible that the last template doesn't exist anymore and users are offline for days while it is reconstructed.

As a template admin, I forget that there are distinct coder templates update and coder templates edit commands. I'm also confused that coder templates update is the compliment to coder templates pull. I expect push/pull like git, or doors.

Proposal

coder templates edit and coder templates update are unified as coder templates push.

All the configuration in edit is now in a template.yml file that looks like:

version: 1
name: dogfood
description: "Our standard dogfood image"
schedule:
  max_ttl: 12h
  min_autostart_interval: 24h
# Some future knobs
deprecated_for: "dogfood-ts"
allow:
   - all
deny:
   - dean@coder.com

Why not HCL?
Our provisioner layer is abstract, and this template config sits above provisioning instead of within it. For example, we may have Docker, Pulumi and Kubernetes provisioners in the near future.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions