mirror of
https://github.com/coder/coder.git
synced 2026-11-02 21:50:08 +08:00
Add 6 new base templates to the template builder, covering all major cloud providers and platforms: - **scratch**: Minimal starter template with only `coder_agent` and metadata - **aws-windows**: AWS EC2 Windows instances with PowerShell user_data - **azure-linux**: Azure VMs with cloud-init and managed disk persistence - **gcp-linux**: Google Compute Engine Linux instances with persistent disk - **gcp-windows**: Google Compute Engine Windows instances - **digitalocean-linux**: DigitalOcean Linux droplets with persistent volumes Each base includes `base.json`, `main.tf.tmpl`, `README.md` (with prerequisite markers), and any static files (cloud-init configs). Tests verify all 9 bases load, render without error, and produce valid single-agent declarations. `azure-windows` is deferred; it needs to be registered in the `examples` package first. Depends on #26633 > [!NOTE] > This PR was authored by Coder Agents on behalf of @jeremyruppel. --- NB: This is very much an agent-generated PR and draws completely from base templates that exist in `examples/templates/`. The base.json files are new, so review those, but don't spend any brain tokens on the correctness of the terraform and supporting files: any issues there are issues with the upstream example template
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
---
|
|
display_name: Azure VM (Linux)
|
|
description: Provision Azure VMs as Coder workspaces
|
|
icon: ../../../site/static/icon/azure.png
|
|
maintainer_github: coder
|
|
verified: true
|
|
tags: [vm, linux, azure]
|
|
---
|
|
|
|
# Remote Development on Azure VMs (Linux)
|
|
|
|
Provision Azure Linux VMs as [Coder workspaces](https://coder.com/docs/user-guides/workspace-management) with this example template.
|
|
|
|
<!-- prerequisites:start -->
|
|
|
|
## Prerequisites
|
|
|
|
### Authentication
|
|
|
|
This template assumes that coderd is run in an environment that is authenticated
|
|
with Azure. For example, run `az login` then `az account set --subscription=<id>`
|
|
to import credentials on the system and user running coderd. For other ways to
|
|
authenticate, [consult the Terraform docs](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs#authenticating-to-azure).
|
|
|
|
<!-- prerequisites:end -->
|
|
|
|
## Architecture
|
|
|
|
This template provisions the following resources:
|
|
|
|
- Azure VM (ephemeral, deleted on stop)
|
|
- Managed disk (persistent, mounted to `/home/coder`)
|
|
- Resource group, virtual network, subnet, and network interface (persistent, required by the managed disk and VM)
|
|
|
|
### What happens on stop
|
|
|
|
When a workspace is **stopped**, only the VM is destroyed. The managed disk, resource group, virtual network, subnet, and network interface all persist. This is by design. The managed disk retains your `/home/coder` data across workspace restarts, and the other resources remain because the disk depends on them.
|
|
|
|
This means you will see these Azure resources in your subscription even when a workspace is stopped. This is expected behavior.
|
|
|
|
### What happens on delete
|
|
|
|
When a workspace is **deleted**, all resources are destroyed, including the resource group, networking resources, and managed disk.
|
|
|
|
### Workspace restarts
|
|
|
|
Since the VM is ephemeral, any tools or files outside of the home directory are not persisted across restarts. To pre-bake tools into the workspace (e.g. `python3`), modify the VM image, or use a [startup script](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/script). Alternatively, individual developers can [personalize](https://coder.com/docs/user-guides/workspace-dotfiles) their workspaces with dotfiles.
|
|
|
|
> [!NOTE]
|
|
> This template is designed to be a starting point! Edit the Terraform to extend the template to support your use case.
|