From 273a1268877344bdec5a6d7fc2e97a04819aa1d4 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 20 Apr 2022 14:26:13 -0500 Subject: [PATCH 01/23] chore: add 1.30.0 release branch and changelog template --- changelog/1.30.0.md | 31 +++++++++++++++++++++++++++++++ manifest.json | 3 +++ 2 files changed, 34 insertions(+) create mode 100644 changelog/1.30.0.md diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md new file mode 100644 index 000000000..a47f5f0d8 --- /dev/null +++ b/changelog/1.30.0.md @@ -0,0 +1,31 @@ +--- +title: "1.30.0" +description: "Released on 04/27/2022" +--- + +### Breaking changes โ— + +There are no breaking changes in 1.30.0. + +### Features โœจ + +There are no new features in 1.30.0 + +### Bug fixes ๐Ÿ› + +There are no bug fixes in 1.30.0. + +### Security updates ๐Ÿ” + +There are no security updates in 1.30.0. + +### Known issues ๐Ÿ”ง + +- web: the service banner (if enabled) reappears for all users, even if they've + previously dismissed it. +- web: using the web terminal in Coder can occasionally result in the connection + being reset and needing to be restarted. +- web: the **Switch workspace** drop-down menu shows a workspace's status as + **Building** even though the build process is completed. +- web: users installing v1.24 (or later) into an air-gapped environment cannot + upload their license when prompted. diff --git a/manifest.json b/manifest.json index 17b6567cf..2bdcf31aa 100644 --- a/manifest.json +++ b/manifest.json @@ -559,6 +559,9 @@ { "path": "./changelog/index.md", "children": [ + { + "path": "./changelog/1.30.0.md" + }, { "path": "./changelog/1.29.0.md", "children": [ From 2dc238a99ca3fec0cb991a00ea58613b56c0aa93 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 20 Apr 2022 14:28:27 -0500 Subject: [PATCH 02/23] chore: update K8s support chart --- setup/kubernetes/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/setup/kubernetes/index.md b/setup/kubernetes/index.md index 85bb4bdfc..d013030a8 100644 --- a/setup/kubernetes/index.md +++ b/setup/kubernetes/index.md @@ -31,6 +31,7 @@ deprecated features before they are removed from new versions of Kubernetes. | | Kubernetes `1.23` | Kubernetes `1.22` | Kubernetes `1.21` | Kubernetes `1.20` | Kubernetes `1.19` | Kubernetes `1.18` | | ------------ | ----------------- | ----------------- | ----------------- | ----------------- | ----------------- | ----------------- | +| Coder `1.30` | โœ… | โœ… | โœ… | | | | | Coder `1.29` | โœ… | โœ… | โœ… | | | | | Coder `1.28` | โœ… | โœ… | โœ… | | | | | Coder `1.27` | โœ… | โœ… | โœ… | | | | From aa0443a2d82fb087a403acfbae78c5c81b219115 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 20 Apr 2022 14:30:27 -0500 Subject: [PATCH 03/23] chore: update cert-manager version --- guides/tls-certificates/azureDNS.md | 2 +- guides/tls-certificates/cloudDNS.md | 2 +- guides/tls-certificates/cloudflare.md | 2 +- guides/tls-certificates/route53.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/guides/tls-certificates/azureDNS.md b/guides/tls-certificates/azureDNS.md index e83c348ee..202f39e4a 100644 --- a/guides/tls-certificates/azureDNS.md +++ b/guides/tls-certificates/azureDNS.md @@ -84,7 +84,7 @@ the domain you're using for your Coder deployment. cert-manager: ```console - kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.yaml + kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml ``` 1. Check that cert-manager installs correctly by running diff --git a/guides/tls-certificates/cloudDNS.md b/guides/tls-certificates/cloudDNS.md index b8d32d41a..4575d9644 100644 --- a/guides/tls-certificates/cloudDNS.md +++ b/guides/tls-certificates/cloudDNS.md @@ -45,7 +45,7 @@ Add cert-manager to your cluster running: ```console -kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.yaml +kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml ``` ## Option 2: Helm diff --git a/guides/tls-certificates/cloudflare.md b/guides/tls-certificates/cloudflare.md index a163b9914..7832f85e1 100644 --- a/guides/tls-certificates/cloudflare.md +++ b/guides/tls-certificates/cloudflare.md @@ -34,7 +34,7 @@ You must have: ## Step 1: Add cert-manager to your Kubernetes cluster ```console -kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.yaml +kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml ``` More specifics can be found in the diff --git a/guides/tls-certificates/route53.md b/guides/tls-certificates/route53.md index d17200549..7ace78985 100644 --- a/guides/tls-certificates/route53.md +++ b/guides/tls-certificates/route53.md @@ -42,7 +42,7 @@ You should also: cert-manager: ```console - kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.yaml + kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.yaml ``` 1. Check that cert-manager installs correctly by running From 336eabc2853808a7f49da367cd4fa0b74511e4e6 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Thu, 21 Apr 2022 10:48:58 -0500 Subject: [PATCH 04/23] chore: archive 1.26.x changelogs --- changelog/{ => archive}/1.26.0.md | 0 changelog/{ => archive}/1.26.1.md | 0 changelog/{ => archive}/1.26.2.md | 0 changelog/{ => archive}/1.26.3.md | 0 changelog/{ => archive}/1.26.4.md | 0 manifest.json | 33 ++++++++++++++++++------------- 6 files changed, 19 insertions(+), 14 deletions(-) rename changelog/{ => archive}/1.26.0.md (100%) rename changelog/{ => archive}/1.26.1.md (100%) rename changelog/{ => archive}/1.26.2.md (100%) rename changelog/{ => archive}/1.26.3.md (100%) rename changelog/{ => archive}/1.26.4.md (100%) diff --git a/changelog/1.26.0.md b/changelog/archive/1.26.0.md similarity index 100% rename from changelog/1.26.0.md rename to changelog/archive/1.26.0.md diff --git a/changelog/1.26.1.md b/changelog/archive/1.26.1.md similarity index 100% rename from changelog/1.26.1.md rename to changelog/archive/1.26.1.md diff --git a/changelog/1.26.2.md b/changelog/archive/1.26.2.md similarity index 100% rename from changelog/1.26.2.md rename to changelog/archive/1.26.2.md diff --git a/changelog/1.26.3.md b/changelog/archive/1.26.3.md similarity index 100% rename from changelog/1.26.3.md rename to changelog/archive/1.26.3.md diff --git a/changelog/1.26.4.md b/changelog/archive/1.26.4.md similarity index 100% rename from changelog/1.26.4.md rename to changelog/archive/1.26.4.md diff --git a/manifest.json b/manifest.json index 2bdcf31aa..705d8183d 100644 --- a/manifest.json +++ b/manifest.json @@ -605,31 +605,36 @@ ] }, { - "path": "./changelog/1.26.0.md", + "path": "./changelog/archive/index.md", + "navigable": false, "children": [ { - "path": "./changelog/1.26.4.md" + "path": "./changelog/archive/1.26.4.md", + "navigable": false }, { - "path": "./changelog/1.26.3.md" + "path": "./changelog/archive/1.26.3.md", + "navigable": false }, { - "path": "./changelog/1.26.2.md" + "path": "./changelog/archive/1.26.2.md", + "navigable": false }, { - "path": "./changelog/1.26.1.md" - } - ] - }, - { - "path": "./changelog/archive/index.md", - "navigable": false, - "children": [ + "path": "./changelog/archive/1.26.1.md", + "navigable": false + }, { - "path": "./changelog/archive/1.25.0.md" + "path": "./changelog/archive/1.26.0.md", + "navigable": false }, { - "path": "./changelog/archive/1.24.0.md" + "path": "./changelog/archive/1.25.0.md", + "navigable": false + }, + { + "path": "./changelog/archive/1.24.0.md", + "navigable": false }, { "path": "./changelog/archive/1.23.1.md", From 569857ac5f83d2aef00a1770cd990e9b10ada3cb Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Thu, 21 Apr 2022 12:38:46 -0500 Subject: [PATCH 05/23] chore: update docs re: default CVMS --- admin/workspace-management/cvms/management.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/admin/workspace-management/cvms/management.md b/admin/workspace-management/cvms/management.md index 5aab64d23..55536b9c6 100644 --- a/admin/workspace-management/cvms/management.md +++ b/admin/workspace-management/cvms/management.md @@ -9,13 +9,27 @@ a site manager must enable CVMs. To do so: 1. Go to **Manage > Admin > Infrastructure**. 1. Toggle the **Enable Container-Based Virtual Machines** option to **Enable**. -This section also describes the customization features that Coder offers for -CVMs: +## Customization + +Once you've enabled CVMs, you can customize the behavior of your deployment and +workspaces. ![CVM Settings](../../../assets/admin/cvm-settings.png) These settings will apply to workspaces **after** they have been rebuilt. +## Default workspaces to CVMs + +Once you've enabled CVMs, you can set whether all new workspaces should have +CVMs enabled or not. + +If you would like all newly created workspaces to be CVMs, toggle **Default to +container-based virtual machines** to **On**. + +> While this toggle changes the default workspace creation setting, users can +> still modify this setting. For example, if you enable CVMS and set them as the +> default, a user can still create non-CVM workspaces (and vice versa). + ## Caching > Cached CVMs are currently an **alpha** feature. From 79f2d5a3be0e135e9b20ec0a99219b5b2a2af902 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 09:59:11 -0500 Subject: [PATCH 06/23] chore: document OIDC token logging --- admin/access-control/manage.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/admin/access-control/manage.md b/admin/access-control/manage.md index a54198144..a575d8eeb 100644 --- a/admin/access-control/manage.md +++ b/admin/access-control/manage.md @@ -16,7 +16,8 @@ article. ## Coder's OIDC claims -Coder expects the following [OIDC claims](https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#whats-a-claim) +Coder expects the following +[OIDC claims](https://developer.okta.com/blog/2017/07/25/oidc-primer-part-1#whats-a-claim) from your OIDC provider: - `email` (required) @@ -65,6 +66,20 @@ you: to log in with an email/password option when you've enabled OIDC authentication +### Logging + +If you're having issues with your OIDC configuration, you can enable additional +logging of OIDC tokens to aid in troubleshooting. + +To do so, [update your Helm chart](../../guides/admin/helm-charts.md) and set +the `OIDC_DEBUG` environment variable to `true`: + +```yaml +coderd: + extraEnvs: + - "OIDC_DEBUG=true" +``` + ### Disable built-in authentication You can disable built-in authentication as an option for accessing Coder if you From a0960e44da0cfa213d7a279853338b211035fd3b Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 10:10:36 -0500 Subject: [PATCH 07/23] chore: add info on limiting max number of workspaces --- manifest.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/manifest.json b/manifest.json index 705d8183d..c4e49b0ce 100644 --- a/manifest.json +++ b/manifest.json @@ -328,6 +328,9 @@ { "path": "./admin/workspace-management/ssh-access.md" }, + { + "path": "./admin/workspace-management/limits.md" + }, { "path": "./admin/workspace-management/process-logging.md" } From bcc276fe3a8aa238b9c977e61b9f07f3befc0bb7 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 10:11:13 -0500 Subject: [PATCH 08/23] chore: add limits doc --- admin/workspace-management/limits.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 admin/workspace-management/limits.md diff --git a/admin/workspace-management/limits.md b/admin/workspace-management/limits.md new file mode 100644 index 000000000..246b164e4 --- /dev/null +++ b/admin/workspace-management/limits.md @@ -0,0 +1,16 @@ +--- +title: "Workspace limits" +description: Learn how to limit the number of workspaces users can create. +--- + +You can set the maximum number of workspaces that each user can create. To do +so, [update your Helm chart](../../guides/admin/helm-charts.md) and set the +`CODER_MAX_WORKSPACES_PER_USER` parameter to the maximum allowable number: + +```yaml +# Allow each user to create no more than 100 workspaces +coderd: + extraEnvs: + - name: CODER_MAX_WORKSPACES_PER_USER + value: 100 +``` From cc11b7fc951275a9d0d6eb7e9b7ac9598bd33260 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 10:33:30 -0500 Subject: [PATCH 09/23] chore: document multiple Git OAuth apps --- admin/git.md | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/admin/git.md b/admin/git.md index 11c363a83..75753c281 100644 --- a/admin/git.md +++ b/admin/git.md @@ -26,8 +26,8 @@ Coder integrates with the following service providers for authentication and Linking your Coder account with a git service provider is _not_ required. Instead, you can use Visual Studio Code with git, the command-line tool, and we -expect that this combination will work with most hosting software or services. -However, Coder doesn't test these and cannot provide recommendations or support. +expect this combination to work with most hosting software or services. However, +Coder doesn't test these and cannot provide recommendations or support. > Ensure that your Git provider supports the keygen algorithm that Coder uses; > you can choose the algorithm in **Manage** > **Admin** > **Security** > @@ -38,8 +38,16 @@ However, Coder doesn't test these and cannot provide recommendations or support. ## Configuring OAuth Before developers can link their accounts, you (or another site manager) must -create an OAuth application with the appropriate providers. When registering, -you'll be asked for the following details related to your Coder deployment. +create an OAuth application with the appropriate providers. You can create as +many OAuth applications as necessary. + +1. Log into Coder as a site manager, and go to **Manage** > **Admin** > **Git + OAuth**. +1. Click **Add provider**. +1. Select your **Provider** (e.g., GitHub, GitLab, or Bitbucket Server). +1. Create an OAuth application with your Git provider and provide Coder with the + requested details (the parameters required vary based on your Git provider). + See the following sections for additional guidance. ### GitHub @@ -54,7 +62,9 @@ ask you for the following Coder parameters: `[your-coder-domain]/oauth/callback` (e.g. `https://coder.domain.com/oauth/callback`) -Then, provide your **Client ID** and **Client Secret** to Coder. +Then, in Coder, provide a **Name** for your app, your **URL**, **Client ID**, +and **Client Secret** to Coder. You can also provide an optional +**Description**. When done, click **Save**. @@ -73,7 +83,9 @@ enabled the following: - **Confidential**: Check this option - **API** (scope): Check this option -Then, provide your **Client ID** and **Client Secret** to Coder. +Then, in Coder, provide a **Name** for your app, your **URL**, **Application +ID**, and **Client Secret** to Coder. You can also provide an optional +**Description**. When done, click **Save**. @@ -93,4 +105,7 @@ For your newly created Application Link, provide the following values as your - **Public Key**: Your public key (available from the Coder Admin Configuration page) +Then, in Coder, provide a **Name** for your app, your **URL**, and, optionally, +a **Description**. + When done, click **Save**. From 0024bdbd6ce424efb5ccd0bf1c20a34683ab530a Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 12:36:02 -0500 Subject: [PATCH 10/23] chore: update docs on self-contained workspace builds --- .../self-contained-builds.md | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/admin/workspace-management/self-contained-builds.md b/admin/workspace-management/self-contained-builds.md index ab9d8d1f1..56e3fc82b 100644 --- a/admin/workspace-management/self-contained-builds.md +++ b/admin/workspace-management/self-contained-builds.md @@ -1,27 +1,34 @@ --- title: "Self-contained workspace builds" -description: Learn how to enable self-contained workspace builds. -state: alpha +description: Learn how to toggle self-contained workspace builds. --- -By default the Coder workspace boot sequence occurs remotely -- Coder uploads -assets (including the Coder agent, code-server, and JetBrains Projector) from -`coderd` to a workspace. +Currently, there are two ways in which the workspace boot sequence can occur: -However, Coder offers the option of using **self-contained workspace builds**. -Enabling this option changes the Coder deployment so that workspaces control the -boot sequence internally, with the workspace downloading assets from `coderd`. +1. Remotely: Coder uploads assets (including the Coder agent, code-server, and + JetBrains Projector) from `coderd` to a workspace. +1. Self-contained: workspaces control the boot sequence internally; the + workspace downloads assets from `coderd` -> At this time, Coder does not support certificate injection with -> self-contained workspace builds. +Beginning with v1.30.0, the default is **self-contained workspace builds**, +though site managers can toggle this feature off and opt for remote builds +instead. -To enable self-contained workspace builds: +> Coder plans to deprecate remote workspace builds in the future. + +To toggle self-contained workspace builds: 1. Log into Coder. 1. Go to Manage > Admin. 1. On the Infrastructure page, scroll down to **Workspace container runtime**. -1. Under **Enable self-contained workspace builds**, flip the toggle to **On**. +1. Under **Enable self-contained workspace builds**, flip the toggle to **On** + on **Off**. 1. Click **Save workspaces**. > Build errors are typically more verbose for remote builds than with > self-contained builds. + +## Known issues + +At this time, Coder does not support certificate injection with self-contained +workspace builds. From e007bafe99d2e4085675db2305b86c21d6321ddd Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 12:51:07 -0500 Subject: [PATCH 11/23] chore: add info on disabling file downloads --- assets/guides/admin/file-download.png | Bin 0 -> 115901 bytes guides/admin/disable-downloads.md | 22 ++++++++++++++++++++++ manifest.json | 3 +++ 3 files changed, 25 insertions(+) create mode 100644 assets/guides/admin/file-download.png create mode 100644 guides/admin/disable-downloads.md diff --git a/assets/guides/admin/file-download.png b/assets/guides/admin/file-download.png new file mode 100644 index 0000000000000000000000000000000000000000..143b9caff93f1e0e7b228792764f2eb8424359e3 GIT binary patch literal 115901 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 z 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 literal 0 HcmV?d00001 diff --git a/guides/admin/disable-downloads.md b/guides/admin/disable-downloads.md new file mode 100644 index 000000000..56306e0c4 --- /dev/null +++ b/guides/admin/disable-downloads.md @@ -0,0 +1,22 @@ +--- +title: File download disabling +description: Learn how to disable file downloading in Coder. +--- + +For security and compliance purposes, Coder site managers may choose to disable +the downloading of files from Coder's built-in IDEs: + +![File actions download option](../../assets/guides/admin/file-download.png) + +To do so, +[update your deployment's workspace template policy](../../admin/templates.md) +to include the following definition: + +```yaml +kubernetes: + env: + policy: append + value: + - key: "CS_DISABLE_FILE_DOWNLOADS" + value: "1" +``` diff --git a/manifest.json b/manifest.json index c4e49b0ce..a7c0a2f39 100644 --- a/manifest.json +++ b/manifest.json @@ -412,6 +412,9 @@ { "path": "./guides/admin/timescale-migration.md" }, + { + "path": "./guides/admin/disable-downloads.md" + }, { "path": "./guides/admin/helm-charts.md" }, From 6a5eb276cc40aa5680ad7117e6423d20a8781834 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 12:59:15 -0500 Subject: [PATCH 12/23] chore: remove notifications info --- workspaces/preferences.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/workspaces/preferences.md b/workspaces/preferences.md index 5fde9d4e7..65955e6d1 100644 --- a/workspaces/preferences.md +++ b/workspaces/preferences.md @@ -62,17 +62,6 @@ changes). Your administrator must configure OAuth for this feature to work. > onboarding. Future Git actions within Coder will operate within the Coder > deployment's network, _not_ the local machine. -## Notifications - -Coder issues desktop notifications when you create a new workspace or rebuild an -workspace. - -Please note that: - -- You may not receive native notifications when using your browser's private - browsing mode -- You must enable native notifications for each browser on which you run Coder - ## Auto-start Auto-start allows you to set the time when Coder automatically starts and builds From a82a2d5b3869912f6e6492a52d00ae098bbece63 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 13:08:11 -0500 Subject: [PATCH 13/23] chore: begin adding info re: networking options --- workspaces/preferences.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/workspaces/preferences.md b/workspaces/preferences.md index 65955e6d1..046c47d27 100644 --- a/workspaces/preferences.md +++ b/workspaces/preferences.md @@ -62,6 +62,15 @@ changes). Your administrator must configure OAuth for this feature to work. > onboarding. Future Git actions within Coder will operate within the Coder > deployment's network, _not_ the local machine. +## Networking + +You can choose the WebRTC protocol used when connecting to your workspace from +the Coder CLI: + +- Auto (this is the default option) +- TURN +- STUN + ## Auto-start Auto-start allows you to set the time when Coder automatically starts and builds From 6ac5efd2fa1371d4c75e1380a9b73a3774274ca0 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 13:13:36 -0500 Subject: [PATCH 14/23] chore: update changelog --- changelog/1.30.0.md | 49 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md index a47f5f0d8..6576d037f 100644 --- a/changelog/1.30.0.md +++ b/changelog/1.30.0.md @@ -9,15 +9,58 @@ There are no breaking changes in 1.30.0. ### Features โœจ -There are no new features in 1.30.0 +- web: added admin toggle that sets whether new workspaces are CVMs or not (if + CVMs are enabled for the deployment). +- web: added support for the use of multiple Git OAuth providers. +- web: added admin ability to choose webRTC mode. +- infra: upgraded code-server to v4.3.0 (featuring VS Code v1.65.2). +- infra: added ability for an admin to disable the download files function from + the tree view. +- infra: added ability to toggle logging of OIDC tokens. +- infra: mounted additional NVIDIA GPU libraries (specifically the GL/GLX + libraries) from the host into CVMs if users request GPUs. +- infra: added `CODER_MAX_WORKSPACES_PER_USER` environment variable to `coderd` + that controls the maximum number of workspaces allowed to each user. +- infra: improved Bitbucket server account linking error messages to help debug + integration issues. +- infra: updated Coder so that self-contained builds are now the default. ### Bug fixes ๐Ÿ› -There are no bug fixes in 1.30.0. +- web: fixed issue where dev URLs created via configure scripts do not show in + the UI without a manual refresh. +- web: fixed issue with Projector navbar occasionally displaying. +- web: fixed issue where JetBrains 2022.1 IDE versions would not open in + Projector. +- web: fixed issue with EC2 provider workspaces unable to mount after + auto-stopping, resulting in the workspace build to hang. +- web: fixed issue where creating/editing an audit log results in two audit log + entries. +- web: fixed issue where changes to the Git URL in dotfiles arenโ€™t included in + the audit log. +- web: fixed issue where air-gapped deployments wouldnโ€™t render โ€œOpen in Coderโ€ + buttons. +- web: fixed issue where users could create new workspaces even when there were + no workspace providers configured for the organization. +- web: fixed metrics to track connections via SSH. +- infra: fixed scan error on metrics table caused by float being scanned as int. +- infra: fixed issue where the built-in provider respawns when `coderd` + restarts. +- infra: fixed issue where the Coder front-end pings dev URLs even when the + workspace is offline. +- infra: updated Coder to return a 404 error instead of a 5xx error if `coderd` + cannot reach a workspace. +- infra: fixed issue where air-gapped deployments were unable to update admin + configuration settings. ### Security updates ๐Ÿ” -There are no security updates in 1.30.0. +- infra: fixed issue with authorization controls that allowed unauthorized + editing of shells and dotfiles. +- infra: fixed issue where site managers could change a userโ€™s login type to + built-in, even when built-in authentication is disabled in favor of OIDC + login. +- infra: added validation to URIs used in dotfiles. ### Known issues ๐Ÿ”ง From f7dd5adc0420bf4a7ac7219ecb5cfd42d156852a Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 13:16:42 -0500 Subject: [PATCH 15/23] chore: add networking definitions --- workspaces/preferences.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/workspaces/preferences.md b/workspaces/preferences.md index 046c47d27..8c4d564cc 100644 --- a/workspaces/preferences.md +++ b/workspaces/preferences.md @@ -67,9 +67,10 @@ changes). Your administrator must configure OAuth for this feature to work. You can choose the WebRTC protocol used when connecting to your workspace from the Coder CLI: -- Auto (this is the default option) -- TURN -- STUN +- **Auto** (default): uses STUN and falls back to TURN if it's unable to + establish a peer-to-peer connection +- **TURN**: establishes a peer-to-peer connection +- **STUN**: establishes a connection using an intermediary relay server ## Auto-start From 78747bbe3f50b1216dbcd2bc466ed18f95e6c9fa Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 13:22:51 -0500 Subject: [PATCH 16/23] chore: update Docker versions --- setup/coder-for-docker/local.md | 6 +++--- setup/coder-for-docker/upgrade.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/setup/coder-for-docker/local.md b/setup/coder-for-docker/local.md index 55e350728..0d1302950 100644 --- a/setup/coder-for-docker/local.md +++ b/setup/coder-for-docker/local.md @@ -52,7 +52,7 @@ Coder for Docker works with the following platforms: -p 7080:7080 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v ~/.coder:/var/run/coder \ - codercom/coder:1.29.0 + codercom/coder:1.30.0 ``` When this process is complete, Coder will print the URL you can use to access @@ -103,7 +103,7 @@ DEVURL_HOST="*.mycompany.com" For example: ```console -docker run --rm -it -p 7080:7080 -v /var/run/docker.sock:/var/run/docker.sock -v ~/.coder:/var/run/coder -e DEVURL_HOST="*.mycompany.com" codercom/coder:1.29.0 +docker run --rm -it -p 7080:7080 -v /var/run/docker.sock:/var/run/docker.sock -v ~/.coder:/var/run/coder -e DEVURL_HOST="*.mycompany.com" codercom/coder:1.30.0 ``` ## Use an external PostgreSQL database @@ -140,7 +140,7 @@ To do so: version: "3.5" services: coder: - image: docker.io/codercom/coder:1.29.0 + image: docker.io/codercom/coder:1.30.0 container_name: coderd restart: unless-stopped ports: diff --git a/setup/coder-for-docker/upgrade.md b/setup/coder-for-docker/upgrade.md index 353085834..9dba85e2b 100644 --- a/setup/coder-for-docker/upgrade.md +++ b/setup/coder-for-docker/upgrade.md @@ -7,7 +7,7 @@ This guide will show you how to upgrade your Coder for Docker deployment. To upgrade, run the following command to download the resources you need, including the latest images (ensure that you're providing the correct version -number in the command, e.g., `1.29.0`): +number in the command, e.g., `1.30.0`): ```console docker run --rm -it \ @@ -27,7 +27,7 @@ If you use Docker Compose to run Coder, here's how to upgrade your deployment: # ... services: coder: - image: docker.io/codercom/coder:1.29.0 + image: docker.io/codercom/coder:1.30.0 # ... ``` From 13fc8e2f52c83f627472d1793f5ca741f2ec4ddd Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 26 Apr 2022 13:28:41 -0500 Subject: [PATCH 17/23] chore: add links to changelog --- changelog/1.30.0.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md index 6576d037f..3469936a7 100644 --- a/changelog/1.30.0.md +++ b/changelog/1.30.0.md @@ -9,21 +9,29 @@ There are no breaking changes in 1.30.0. ### Features โœจ -- web: added admin toggle that sets whether new workspaces are CVMs or not (if - CVMs are enabled for the deployment). -- web: added support for the use of multiple Git OAuth providers. -- web: added admin ability to choose webRTC mode. +- web: added + [admin toggle that sets whether new workspaces are CVMs or not](../admin/workspace-management/cvms/management.md#default-workspaces-to-cvms) + (if CVMs are enabled for the deployment). +- web: added support for the use of + [multiple Git OAuth providers](../admin/git.md). +- web: added ability to + [choose webRTC mode](../workspaces/preferences.md#networking). - infra: upgraded code-server to v4.3.0 (featuring VS Code v1.65.2). -- infra: added ability for an admin to disable the download files function from - the tree view. -- infra: added ability to toggle logging of OIDC tokens. +- infra: added ability for an admin to + [disable the download files function](../guides/admin/disable-downloads.md) + from the web IDE's tree view. +- infra: added ability to toggle + [logging of OIDC tokens](../admin/access-control/manage.md#logging). - infra: mounted additional NVIDIA GPU libraries (specifically the GL/GLX libraries) from the host into CVMs if users request GPUs. - infra: added `CODER_MAX_WORKSPACES_PER_USER` environment variable to `coderd` - that controls the maximum number of workspaces allowed to each user. + that + [controls the maximum number of workspaces allowed to each user](../admin/workspace-management/limits.md). - infra: improved Bitbucket server account linking error messages to help debug integration issues. -- infra: updated Coder so that self-contained builds are now the default. +- infra: updated Coder so that + [self-contained builds](../admin/workspace-management/self-contained-builds.md) + are now the default. ### Bug fixes ๐Ÿ› From a975efd5aaaf65bb6e9389e402cddf90b8c65599 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 27 Apr 2022 10:15:38 -0500 Subject: [PATCH 18/23] Apply suggestions from code review Co-authored-by: Cian Johnston --- admin/access-control/manage.md | 3 ++- admin/workspace-management/cvms/management.md | 8 ++++---- admin/workspace-management/self-contained-builds.md | 5 +++-- changelog/1.30.0.md | 12 ++++++++---- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/admin/access-control/manage.md b/admin/access-control/manage.md index a575d8eeb..ee9cd585d 100644 --- a/admin/access-control/manage.md +++ b/admin/access-control/manage.md @@ -77,7 +77,8 @@ the `OIDC_DEBUG` environment variable to `true`: ```yaml coderd: extraEnvs: - - "OIDC_DEBUG=true" + - name: "OIDC_DEBUG" + value: "true" ``` ### Disable built-in authentication diff --git a/admin/workspace-management/cvms/management.md b/admin/workspace-management/cvms/management.md index 55536b9c6..4c6bcdcaf 100644 --- a/admin/workspace-management/cvms/management.md +++ b/admin/workspace-management/cvms/management.md @@ -20,14 +20,14 @@ These settings will apply to workspaces **after** they have been rebuilt. ## Default workspaces to CVMs -Once you've enabled CVMs, you can set whether all new workspaces should have -CVMs enabled or not. +Once you've enabled CVMs, you can control whether all new workspaces should be +built as a CVM or not. If you would like all newly created workspaces to be CVMs, toggle **Default to container-based virtual machines** to **On**. -> While this toggle changes the default workspace creation setting, users can -> still modify this setting. For example, if you enable CVMS and set them as the +> While this toggle changes the default workspace creation setting, users can still +> override this setting. For example, if you enable CVMS and set them as the > default, a user can still create non-CVM workspaces (and vice versa). ## Caching diff --git a/admin/workspace-management/self-contained-builds.md b/admin/workspace-management/self-contained-builds.md index 56e3fc82b..f8565dd8d 100644 --- a/admin/workspace-management/self-contained-builds.md +++ b/admin/workspace-management/self-contained-builds.md @@ -8,7 +8,8 @@ Currently, there are two ways in which the workspace boot sequence can occur: 1. Remotely: Coder uploads assets (including the Coder agent, code-server, and JetBrains Projector) from `coderd` to a workspace. 1. Self-contained: workspaces control the boot sequence internally; the - workspace downloads assets from `coderd` + workspace downloads assets from `coderd`. This requires `curl` to be + available in the image. Beginning with v1.30.0, the default is **self-contained workspace builds**, though site managers can toggle this feature off and opt for remote builds @@ -22,7 +23,7 @@ To toggle self-contained workspace builds: 1. Go to Manage > Admin. 1. On the Infrastructure page, scroll down to **Workspace container runtime**. 1. Under **Enable self-contained workspace builds**, flip the toggle to **On** - on **Off**. + or **Off** as required. 1. Click **Save workspaces**. > Build errors are typically more verbose for remote builds than with diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md index 3469936a7..c5e51421d 100644 --- a/changelog/1.30.0.md +++ b/changelog/1.30.0.md @@ -40,8 +40,8 @@ There are no breaking changes in 1.30.0. - web: fixed issue with Projector navbar occasionally displaying. - web: fixed issue where JetBrains 2022.1 IDE versions would not open in Projector. -- web: fixed issue with EC2 provider workspaces unable to mount after - auto-stopping, resulting in the workspace build to hang. +- web: fixed issue with EC2 provider workspaces hanging on build + if a filesystem issue prevented mounting user volumes. - web: fixed issue where creating/editing an audit log results in two audit log entries. - web: fixed issue where changes to the Git URL in dotfiles arenโ€™t included in @@ -54,8 +54,8 @@ There are no breaking changes in 1.30.0. - infra: fixed scan error on metrics table caused by float being scanned as int. - infra: fixed issue where the built-in provider respawns when `coderd` restarts. -- infra: fixed issue where the Coder front-end pings dev URLs even when the - workspace is offline. +- infra: fixed issue where the Coder front-end attempts to reconnect to a + workspace even when it is offline. - infra: updated Coder to return a 404 error instead of a 5xx error if `coderd` cannot reach a workspace. - infra: fixed issue where air-gapped deployments were unable to update admin @@ -80,3 +80,7 @@ There are no breaking changes in 1.30.0. **Building** even though the build process is completed. - web: users installing v1.24 (or later) into an air-gapped environment cannot upload their license when prompted. +- infra: on new installations with **Self-contained workspace builds** enabled, + workspaces using images without `curl` available (for example, `ubuntu:latest`) + will fail to build. **Workaround:** use a base image with `curl` available. + For example: `codercom/enterprise-base:ubuntu` From 3b27408d7c433e580639e0cca7a7104d03ff51bf Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 27 Apr 2022 10:24:35 -0500 Subject: [PATCH 19/23] chore: edit text --- changelog/1.30.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md index c5e51421d..2ee2c1a3b 100644 --- a/changelog/1.30.0.md +++ b/changelog/1.30.0.md @@ -40,8 +40,8 @@ There are no breaking changes in 1.30.0. - web: fixed issue with Projector navbar occasionally displaying. - web: fixed issue where JetBrains 2022.1 IDE versions would not open in Projector. -- web: fixed issue with EC2 provider workspaces hanging on build - if a filesystem issue prevented mounting user volumes. +- web: fixed issue with EC2 provider workspaces hanging on build if a filesystem + issue prevented mounting user volumes. - web: fixed issue where creating/editing an audit log results in two audit log entries. - web: fixed issue where changes to the Git URL in dotfiles arenโ€™t included in @@ -80,7 +80,7 @@ There are no breaking changes in 1.30.0. **Building** even though the build process is completed. - web: users installing v1.24 (or later) into an air-gapped environment cannot upload their license when prompted. -- infra: on new installations with **Self-contained workspace builds** enabled, - workspaces using images without `curl` available (for example, `ubuntu:latest`) - will fail to build. **Workaround:** use a base image with `curl` available. - For example: `codercom/enterprise-base:ubuntu` +- infra: workspaces using images without `curl` available (e.g., + `ubuntu:latest`) will fail to build on new Coder deployments with + self-contained workspace builds enabled. The workaround is to use a base image + with `curl` available (e.g., `codercom/enterprise-base:ubuntu`). From c00a70990586a92d3fe8950905519ce7feef4fa0 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 27 Apr 2022 10:26:47 -0500 Subject: [PATCH 20/23] chore: fix lint --- admin/workspace-management/self-contained-builds.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/workspace-management/self-contained-builds.md b/admin/workspace-management/self-contained-builds.md index f8565dd8d..80cd29855 100644 --- a/admin/workspace-management/self-contained-builds.md +++ b/admin/workspace-management/self-contained-builds.md @@ -8,7 +8,7 @@ Currently, there are two ways in which the workspace boot sequence can occur: 1. Remotely: Coder uploads assets (including the Coder agent, code-server, and JetBrains Projector) from `coderd` to a workspace. 1. Self-contained: workspaces control the boot sequence internally; the - workspace downloads assets from `coderd`. This requires `curl` to be + workspace downloads assets from `coderd`. This requires `curl` to be available in the image. Beginning with v1.30.0, the default is **self-contained workspace builds**, From 8d3b170712668cc66c2891923113c305203d70ef Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 27 Apr 2022 10:50:27 -0500 Subject: [PATCH 21/23] chore: update manifest w/ versioning --- manifest.json | 1 + 1 file changed, 1 insertion(+) diff --git a/manifest.json b/manifest.json index a7c0a2f39..cdb20ae35 100644 --- a/manifest.json +++ b/manifest.json @@ -1,5 +1,6 @@ { "versions": [ + "v1.30", "v1.29", "v1.28", "v1.27", From 0d407901a4a3149309d4a28a31e8dc0a28096269 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 27 Apr 2022 17:47:31 +0100 Subject: [PATCH 22/23] changelog: add note about sysbox update --- changelog/1.30.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md index 2ee2c1a3b..7b8160ea8 100644 --- a/changelog/1.30.0.md +++ b/changelog/1.30.0.md @@ -32,6 +32,7 @@ There are no breaking changes in 1.30.0. - infra: updated Coder so that [self-contained builds](../admin/workspace-management/self-contained-builds.md) are now the default. +- infra: updated Sysbox to version 0.5.0 ### Bug fixes ๐Ÿ› From df5f3ff8a6827f9c716f41b510f78d5760638db4 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Wed, 27 Apr 2022 11:55:13 -0500 Subject: [PATCH 23/23] chore: minor edits --- changelog/1.30.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/1.30.0.md b/changelog/1.30.0.md index 7b8160ea8..20a4c3ae7 100644 --- a/changelog/1.30.0.md +++ b/changelog/1.30.0.md @@ -32,7 +32,7 @@ There are no breaking changes in 1.30.0. - infra: updated Coder so that [self-contained builds](../admin/workspace-management/self-contained-builds.md) are now the default. -- infra: updated Sysbox to version 0.5.0 +- infra: updated Sysbox to version 0.5.0. ### Bug fixes ๐Ÿ›