Commit Graph

298 Commits

Author SHA1 Message Date
Kyle Carberry ccd061652b feat: Add built-in PostgreSQL for simple production setup (#2345)
* feat: Add built-in PostgreSQL for simple production setup

Fixes #2321.

* Use fork of embedded-postgres for cache path
2022-06-15 16:02:18 -05:00
Ben Potter 0ec1e8f89b example: aws-linux: resize and use non-root user (#2186) 2022-06-09 18:10:01 +00:00
Mathias Fredriksson 567e4afdfc example: Re-enable Digital Ocean project assignment (#2196)
The issue tracked in #1750 was fixed by #2187, we can now re-enable the
project resource.
2022-06-09 12:17:44 +03:00
Ben Potter 42c6b0849d example: add and document dotfiles usage (#2046) 2022-06-08 21:23:54 +00:00
Spike Curtis a86c957871 feat: set /Users/spike for coder agent in gcp-linux template (#2147)
Signed-off-by: Spike Curtis <spike@coder.com>
2022-06-08 11:22:18 -07:00
Spike Curtis 85821568a9 feat: set $HOME for coder agent in aws-linux template (#2150)
Signed-off-by: Spike Curtis <spike@coder.com>
2022-06-08 09:51:33 -07:00
Spike Curtis a7a7e7561d K8s template uses an authenticated environment (#2104)
* feat: K8s template uses authenticated environment

Signed-off-by: Spike Curtis <spike@coder.com>

* fmt

Signed-off-by: Spike Curtis <spike@coder.com>
2022-06-06 14:39:23 -07:00
Katie Horne 318e9792ad expand README files for examples (#1946) 2022-06-06 13:03:07 -05:00
Spike Curtis 3f3ecbf8b3 feat: Authenticate Digital Ocean via environment variable (#2051)
* Digital Ocean example uses environment variable auth

Signed-off-by: Spike Curtis <spike@coder.com>
2022-06-06 07:05:16 -05:00
Kyle Carberry 013f028e55 feat: Add workspace application support (#1773)
* feat: Add app support

This adds apps as a property to a workspace agent.

The resource is added to the Terraform provider here:
https://github.com/coder/terraform-provider-coder/pull/17

Apps will be opened in the dashboard or via the CLI
with `coder open <name>`. If `command` is specified, a
terminal will appear locally and in the web. If `target`
is specified, the browser will open to an exposed instance
of that target.

* Compare fields in apps test

* Update Terraform provider to use relative path

* Add some basic structure for routing

* chore: Remove interface from coderd and lift API surface

Abstracting coderd into an interface added misdirection because
the interface was never intended to be fulfilled outside of a single
implementation.

This lifts the abstraction, and attaches all handlers to a root struct
named `*coderd.API`.

* Add basic proxy logic

* Add proxying based on path

* Add app proxying for wildcards

* Add wsconncache

* fix: Race when writing to a closed pipe

This is such an intermittent race it's difficult to track,
but regardless this is an improvement to the code.

* fix: Race when writing to a closed pipe

This is such an intermittent race it's difficult to track,
but regardless this is an improvement to the code.

* fix: Race when writing to a closed pipe

This is such an intermittent race it's difficult to track,
but regardless this is an improvement to the code.

* fix: Race when writing to a closed pipe

This is such an intermittent race it's difficult to track,
but regardless this is an improvement to the code.

* Add workspace route proxying endpoint

- Makes the workspace conn cache concurrency-safe
- Reduces unnecessary open checks in `peer.Channel`
- Fixes the use of a temporary context when dialing a workspace agent

* Add embed errors

* chore: Refactor site to improve testing

It was difficult to develop this package due to the
embed build tag being mandatory on the tests. The logic
to test doesn't require any embedded files.

* Add test for error handler

* Remove unused access url

* Add RBAC tests

* Fix dial agent syntax

* Fix linting errors

* Fix gen

* Fix icon required

* Adjust migration number

* Fix proxy error status code

* Fix empty db lookup
2022-06-04 15:13:37 -05:00
Spike Curtis 847e2b18da Don't use parameters to pass secrets to GCP or AWS (#2039)
* Don't use parameters to pass secrets to GCP or AWS

Signed-off-by: Spike Curtis <spike@coder.com>

* Fix fmt

Signed-off-by: Spike Curtis <spike@coder.com>
2022-06-03 14:29:22 -07:00
Cian Johnston dcf03d8ba3 chore: refactor time.Duration -> int64 milliseconds for FE consumption (#1944)
* Changes all public-facing codersdk types to use a plain int64 (milliseconds) instead of time.Duration.
* Makes autostart_schedule a *string as it may not be present.
* Adds a utils/ptr package with some useful methods.
2022-06-02 11:23:34 +01:00
Cian Johnston 1c5d94ed5b fix: add all regions to aws examples (#1934) 2022-06-01 11:20:14 +01:00
Ben Potter 7ad68ca36b example: docker: support Windows hosts (#1880) 2022-05-28 01:09:29 +00:00
Ben Potter 5000edbfe0 example: docker warning on Coder host (#1842) 2022-05-27 13:02:59 -05:00
Mathias Fredriksson 1a70298b5c feat: Add examples/templates/do-linux for Digital Ocean Droplets (#1749)
Co-authored-by: Cian Johnston <cian@coder.com>
2022-05-27 20:04:43 +03:00
Joe Previte d01a687caa fix: typo in docker terraform template (#1811) 2022-05-26 21:28:17 +00:00
Ben Potter 47ef03fea4 example: fix: properly tag aws-windows workspaces (#1744) 2022-05-25 22:11:29 +01:00
David Wahler f8410dee3a fix: include subdirectories in example templates (#1715) 2022-05-25 10:34:28 -05:00
Ben Potter 4afc66faf5 chore: remove docker host from docker-compose (#1596) 2022-05-19 20:38:07 +00:00
Ben Potter c47b6f0381 chore: use docker host in docker-compose (#1592) 2022-05-19 11:49:22 -05:00
LG 0438430c7c fix: missing spacing added; typo fix (#1586)
Co-authored-by: Ben <ben@coder.com>
2022-05-19 15:51:49 +00:00
Ben Potter 37cf3bb491 example: add docker-image-builds + docker docs (#1526)
Co-authored-by: Katie Horne <katie@23spoons.com>
2022-05-18 16:03:20 -05:00
Cian Johnston 13571b0393 examples/docker-local: add explanatory comment (#1545) 2022-05-18 17:10:23 +01:00
Ben Potter 6bed620d6c example: ec2: document "minimal" policy (#1536)
* example: ec2: document "minimal" policy

* move DescribeInstances

* move ModifyInstanceCreditSpecification
2022-05-18 08:17:05 -05:00
Cian Johnston 75dc8f59f6 fix: example: update docker-local to use host-gateway (#1507)
* fix: example: update docker-local to use host-gateway
* docker-compose.yaml: Add POSTGRES_ environment variables to CODER_PG_CONNECTION_URL

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2022-05-17 14:40:13 +00:00
Ben Potter 1ed69b95fc example(k8s): clarify kubeconfig location (#1494) 2022-05-16 22:29:15 +00:00
G r e y 7bb7c6c295 example: use codercom/enterprise-intellij:ubuntu in docker-local (#1454)
Resolves: #1113
2022-05-14 13:58:12 -04:00
Ben Potter 982769f0dc fix: uses "projects" instead of "templates" in examples docs 2022-05-11 13:42:47 -05:00
Kyle Carberry 3024e25c09 example: Add Kubernetes multi-service (#1092)
* example: Add Kubernetes multi-service

* fix: change to CODER_AGENT_TOKEN

* example: use ServiceAccount for cluster authentication (#1096)

Co-authored-by: Ben <ben@coder.com>
2022-05-11 18:27:31 +00:00
Ben Potter 568574c118 fix: use CODER_AGENT_TOKEN for docker example (#1295) 2022-05-04 22:42:58 +00:00
Ben Potter aaf6aee979 fix: clarify AWS access key ID vs secret (#1231) 2022-05-02 10:28:58 -05:00
Kyle Carberry b948f2dab5 fix: Use environment variables for agent authentication (#1238)
* fix: Update GIT_COMMITTER_NAME to use username

This was a mistake when adding the committer fields 🤦.

* fix: Use environment variables for agent authentication

Using files led to situations where running "coder server --dev" would
break `gitssh`. This is applicable in a production environment too. Users
should be able to log into another Coder deployment from their workspace.

Users can still set "CODER_URL" if they'd like with agent env vars!
2022-04-30 16:40:30 +00:00
Kyle Carberry 65d77383d0 fix: Allow nested Terraform resources (#1093)
This fixes the dependency tree by adding recursion. It
now finds indirect connections and associates it with
an agent.

An example is attached which surfaced this issue.
2022-04-20 12:28:48 -05:00
Bruno Quaresma 301451be40 refactor: remove index files from components (#1086) 2022-04-19 13:20:28 -05:00
Timo 9faa39aa23 example: added docker local workspace (#1025) 2022-04-18 10:20:45 -05:00
Kyle Carberry 19b4323512 feat: Allow workspace resources to attach multiple agents (#942)
This enables a "kubernetes_pod" to attach multiple agents that
could be for multiple services. Each agent is required to have
a unique name, so SSH syntax is:

`coder ssh <workspace>.<agent>`

A resource can have zero agents too, they aren't required.
2022-04-11 16:06:15 -05:00
Colin Adler 2b1a0ee126 chore: update v1 schema (#643) 2022-04-01 14:42:36 -05:00
Ben Potter e759b4a492 feat: Add aws-windows and aws-linux examples (#730)
* add readme for samples

* add sample of importing from repo

* add aws-linux and aws-windows examples

* cleanup

* cleanup

* sign

* fix grammar and comments from feedback

* use descript workspace name

* use TF version

* Fix requested changes on README

Co-authored-by: Kyle Carberry <kyle@coder.com>
2022-03-31 10:41:36 -05:00
Kyle Carberry 6612e3c9c7 feat: Add config-ssh command (#735)
* feat: Add config-ssh command

Closes #254 and #499.

* Fix Windows support
2022-03-30 17:59:54 -05:00
Colin Adler 6ab1a681c4 chore: specify google provider versions in example terraform projects (#740) 2022-03-30 13:12:11 -05:00
Kyle Carberry 82dfd6c72f feat: Add UI for awaiting agent connections (#578)
* feat: Add stage to build logs

This adds a stage property to logs, and refactors the job logs
cliui.

It also adds tests to the cliui for build logs!

* feat: Add stage to build logs

This adds a stage property to logs, and refactors the job logs
cliui.

It also adds tests to the cliui for build logs!

* feat: Add config-ssh and tests for resiliency

* Rename "Echo" test to "ImmediateExit"

* Fix Terraform resource agent association

* Fix logs post-cancel

* Fix select on Windows

* Remove terraform init logs

* Move timer into it's own loop

* Fix race condition in provisioner jobs

* Fix requested changes
2022-03-28 19:19:28 -05:00
Kyle Carberry a06821c103 feat: Update Coder Terraform Provider to v0.2.1 (#563)
This update exposes the workspace name and owner, and changes
authentication methods to be explicit. Implicit authentication
added unnecessary complexity and introduced inconsistency.
2022-03-25 16:34:45 +00:00
Kyle Carberry 8c0f403546 fix: Build site in release (#561)
The static site wasn't being built before, resulting
in a directory listing!
2022-03-24 20:16:30 -05:00
Kyle Carberry c451f4e685 feat: Add templates to create working release (#422)
* Add templates

* Move API structs to codersdk

* Back to green tests!

* It all works, but now with tea! 🧋

* It works!

* Add cancellation to provisionerd

* Tests pass!

* Add deletion of workspaces and projects

* Fix agent lock

* Add clog

* Fix linting errors

* Remove unused CLI tests

* Rename daemon to start

* Fix leaking command

* Fix promptui test

* Update agent connection frequency

* Skip login tests on Windows

* Increase tunnel connect timeout

* Fix templater

* Lower test requirements

* Fix embed

* Disable promptui tests for Windows

* Fix write newline

* Fix PTY write newline

* Fix CloseReader

* Fix compilation on Windows

* Fix linting error

* Remove bubbletea

* Cleanup readwriter

* Use embedded templates instead of serving over API

* Move templates to examples

* Improve workspace create flow

* Fix Windows build

* Fix tests

* Fix linting errors

* Fix untar with extracting max size

* Fix newline char
2022-03-22 13:17:50 -06:00
Bryan 2e12cb92e5 refactor: Add example of project with resource (#346)
This just adds the most minimal terraform script to provision a resource (the [`null_resource`](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource)) that doesn't require a cloud provider.

With this, we can test creating projects that have an associated resource:
<img width="464" alt="Screen Shot 2022-02-21 at 2 31 54 PM" src="https://user-images.githubusercontent.com/88213859/155033757-372cafbf-b35f-4988-8fbe-af276e22421c.png">
2022-02-22 18:55:45 -08:00
Bryan 59ee22d368 refactor: Add a minimal example of a project with parameters (#331)
Thought it'd be helpful to show a bare-bones example of a project with a parameter, along with references to the Terraform docs so developers can learn about more interesting variable types (and ways to leverage them in expressions).

With this project, we can go through the `projects create` flow of setting a parameter:
<img width="677" alt="Screen Shot 2022-02-18 at 7 53 07 PM" src="https://user-images.githubusercontent.com/88213859/154785203-ab626268-0e51-48c3-b374-3d49d541042b.png">
2022-02-21 09:36:30 -08:00
Bryan 4c71ff93eb refactor: Add minimal terraform project (#308)
I was thinking it might be nice to have some example projects (especially as we on-board new developers) to make it easy to create new projects.

This adds the most basic possible terraform module... just an output block. However, it's enough to run `coder projects create` and go through the whole lifecycle of creating a project and workspace (although, it's really boring since there are no parameters).
2022-02-17 21:11:48 -08:00