feat: initial docs pages (#1107)

* docs structure and edits to getting started

* draft for about page

* skeleton for concepts page

* attempt at explaining templates

* left-align tables

* add best practices and variables

* update structrure

* update structure

* templates are shared

* workspaces docs

* remove coming soon

* fix typos

* docs structure and edits to getting started

* draft for about page

* skeleton for concepts page

* attempt at explaining templates

* left-align tables

* add best practices and variables

* update structrure

* update structure

* templates are shared

* workspaces docs

* remove coming soon

* fix typos

* fix typos

* Update docs/about.md

Co-authored-by: Joe Previte <jjprevite@gmail.com>

* remove line breaks between bullets

* rename variables to parameters

* reduce limits

* chore: edit text

* revert some changes, fix footnotes

Co-authored-by: Katie Horne <katie@coder.com>
Co-authored-by: Joe Previte <jjprevite@gmail.com>
This commit is contained in:
Ben Potter
2022-04-26 12:10:50 -05:00
committed by GitHub
co-authored by Joe Previte Katie Horne
parent 603b7da413
commit 22668c388c
6 changed files with 302 additions and 55 deletions
+58
View File
@@ -0,0 +1,58 @@
# Templates
Templates define the infrastructure underlying workspaces. Each Coder deployment
can have multiple templates for different workloads, such as ones for front-end
development, Windows development, and so on.
Coder manage templates, including sharing them and rolling out updates
to everybody. Users can also manually update their workspaces.
## Manage templates
Coder provides production-ready [sample template](../examples/), but you can
modify the templates with Terraform.
```sh
# start from an example
coder templates init
# optional: modify the template
vim <template-name>/main.tf
# add the template to Coder deployment
coder templates <create/update> <template-name>
```
> We recommend source controlling your templates.
## Persistent and ephemeral resources
Coder supports both ephemeral and persistent resources in workspaces. Ephemeral
resources are destroyed when a workspace is not in use (e.g., when it is
stopped). Persistent resources remain. See how this works for a sample front-end
template:
| Resource | Type |
| :--------------------------- | :--------- |
| google_compute_disk.home_dir | persistent |
| kubernetes_pod.dev | ephemeral |
| └─ nodejs (linux, amd64) | |
| api_token.backend | ephemeral |
When a workspace is deleted, all resources are destroyed.
## Parameters
Templates often contain *parameters*. In Coder, there are two types of parameters:
- **Admin parameters** are set when a template is created/updated. These values
are often cloud secrets, such as a `ServiceAccount` token, and are annotated
with `sensitive = true` in the template code.
**User parameters** are set when a user creates a workspace. They are unique to
each workspace, often personalization settings such as "preferred
region" or "workspace image".
---
Next: [Workspaces](./workspaces.md)