Merge branch 'main' into kasmVNC

pull/250/head
Muhammad Atif Ali 1 year ago committed by GitHub
commit eda0e5d094
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -14,7 +14,7 @@ Automatically install [code-server](https://github.com/coder/code-server) in a w
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```
@ -28,7 +28,7 @@ module "code-server" {
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
install_version = "4.8.3" install_version = "4.8.3"
} }
@ -41,7 +41,7 @@ Install the Dracula theme from [OpenVSX](https://open-vsx.org/):
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
extensions = [ extensions = [
"dracula-theme.theme-dracula" "dracula-theme.theme-dracula"
@ -58,7 +58,7 @@ Configure VS Code's [settings.json](https://code.visualstudio.com/docs/getstarte
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
extensions = ["dracula-theme.theme-dracula"] extensions = ["dracula-theme.theme-dracula"]
settings = { settings = {
@ -74,7 +74,7 @@ Just run code-server in the background, don't fetch it from GitHub:
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
extensions = ["dracula-theme.theme-dracula", "ms-azuretools.vscode-docker"] extensions = ["dracula-theme.theme-dracula", "ms-azuretools.vscode-docker"]
} }
@ -89,7 +89,7 @@ Run an existing copy of code-server if found, otherwise download from GitHub:
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
use_cached = true use_cached = true
extensions = ["dracula-theme.theme-dracula", "ms-azuretools.vscode-docker"] extensions = ["dracula-theme.theme-dracula", "ms-azuretools.vscode-docker"]
@ -101,7 +101,7 @@ Just run code-server in the background, don't fetch it from GitHub:
```tf ```tf
module "code-server" { module "code-server" {
source = "registry.coder.com/modules/code-server/coder" source = "registry.coder.com/modules/code-server/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
offline = true offline = true
} }

@ -95,6 +95,12 @@ variable "use_cached" {
default = false default = false
} }
variable "use_cached_extensions" {
type = bool
description = "Uses cached copy of extensions, otherwise do a forced upgrade"
default = false
}
variable "extensions_dir" { variable "extensions_dir" {
type = string type = string
description = "Override the directory to store extensions in." description = "Override the directory to store extensions in."
@ -122,6 +128,7 @@ resource "coder_script" "code-server" {
SETTINGS : replace(jsonencode(var.settings), "\"", "\\\""), SETTINGS : replace(jsonencode(var.settings), "\"", "\\\""),
OFFLINE : var.offline, OFFLINE : var.offline,
USE_CACHED : var.use_cached, USE_CACHED : var.use_cached,
USE_CACHED_EXTENSIONS : var.use_cached_extensions,
EXTENSIONS_DIR : var.extensions_dir, EXTENSIONS_DIR : var.extensions_dir,
FOLDER : var.folder, FOLDER : var.folder,
AUTO_INSTALL_EXTENSIONS : var.auto_install_extensions, AUTO_INSTALL_EXTENSIONS : var.auto_install_extensions,

@ -25,20 +25,20 @@ if [ ! -f ~/.local/share/code-server/User/settings.json ]; then
echo "${SETTINGS}" > ~/.local/share/code-server/User/settings.json echo "${SETTINGS}" > ~/.local/share/code-server/User/settings.json
fi fi
# Check if code-server is already installed for offline or cached mode # Check if code-server is already installed for offline
if [ "${OFFLINE}" = true ]; then
if [ -f "$CODE_SERVER" ]; then if [ -f "$CODE_SERVER" ]; then
if [ "${OFFLINE}" = true ] || [ "${USE_CACHED}" = true ]; then
echo "🥳 Found a copy of code-server" echo "🥳 Found a copy of code-server"
run_code_server run_code_server
exit 0 exit 0
fi fi
fi
# Offline mode always expects a copy of code-server to be present # Offline mode always expects a copy of code-server to be present
if [ "${OFFLINE}" = true ]; then
echo "Failed to find a copy of code-server" echo "Failed to find a copy of code-server"
exit 1 exit 1
fi fi
# If there is no cached install OR we don't want to use a cached install
if [ ! -f "$CODE_SERVER" ] || [ "${USE_CACHED}" != true ]; then
printf "$${BOLD}Installing code-server!\n" printf "$${BOLD}Installing code-server!\n"
ARGS=( ARGS=(
@ -55,6 +55,23 @@ if [ $? -ne 0 ]; then
exit 1 exit 1
fi fi
printf "🥳 code-server has been installed in ${INSTALL_PREFIX}\n\n" printf "🥳 code-server has been installed in ${INSTALL_PREFIX}\n\n"
fi
# Get the list of installed extensions...
LIST_EXTENSIONS=$($CODE_SERVER --list-extensions $EXTENSION_ARG)
readarray -t EXTENSIONS_ARRAY <<< "$LIST_EXTENSIONS"
function extension_installed() {
if [ "${USE_CACHED_EXTENSIONS}" != true ]; then
return 1
fi
for _extension in "$${EXTENSIONS_ARRAY[@]}"; do
if [ "$_extension" == "$1" ]; then
echo "Extension $1 was already installed."
return 0
fi
done
return 1
}
# Install each extension... # Install each extension...
IFS=',' read -r -a EXTENSIONLIST <<< "$${EXTENSIONS}" IFS=',' read -r -a EXTENSIONLIST <<< "$${EXTENSIONS}"
@ -62,8 +79,11 @@ for extension in "$${EXTENSIONLIST[@]}"; do
if [ -z "$extension" ]; then if [ -z "$extension" ]; then
continue continue
fi fi
if extension_installed "$extension"; then
continue
fi
printf "🧩 Installing extension $${CODE}$extension$${RESET}...\n" printf "🧩 Installing extension $${CODE}$extension$${RESET}...\n"
output=$($CODE_SERVER "$EXTENSION_ARG" --install-extension "$extension") output=$($CODE_SERVER "$EXTENSION_ARG" --force --install-extension "$extension")
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Failed to install extension: $extension: $output" echo "Failed to install extension: $extension: $output"
exit 1 exit 1
@ -85,7 +105,10 @@ if [ "${AUTO_INSTALL_EXTENSIONS}" = true ]; then
printf "🧩 Installing extensions from %s/.vscode/extensions.json...\n" "$WORKSPACE_DIR" printf "🧩 Installing extensions from %s/.vscode/extensions.json...\n" "$WORKSPACE_DIR"
extensions=$(jq -r '.recommendations[]' "$WORKSPACE_DIR"/.vscode/extensions.json) extensions=$(jq -r '.recommendations[]' "$WORKSPACE_DIR"/.vscode/extensions.json)
for extension in $extensions; do for extension in $extensions; do
$CODE_SERVER "$EXTENSION_ARG" --install-extension "$extension" if extension_installed "$extension"; then
continue
fi
$CODE_SERVER "$EXTENSION_ARG" --force --install-extension "$extension"
done done
fi fi
fi fi

@ -14,7 +14,7 @@ Automatically logs the user into Coder when creating their workspace.
```tf ```tf
module "coder-login" { module "coder-login" {
source = "registry.coder.com/modules/coder-login/coder" source = "registry.coder.com/modules/coder-login/coder"
version = "1.0.2" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```

@ -18,7 +18,7 @@ Under the hood, this module uses the [coder dotfiles](https://coder.com/docs/v2/
```tf ```tf
module "dotfiles" { module "dotfiles" {
source = "registry.coder.com/modules/dotfiles/coder" source = "registry.coder.com/modules/dotfiles/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```
@ -30,7 +30,7 @@ module "dotfiles" {
```tf ```tf
module "dotfiles" { module "dotfiles" {
source = "registry.coder.com/modules/dotfiles/coder" source = "registry.coder.com/modules/dotfiles/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```
@ -40,7 +40,7 @@ module "dotfiles" {
```tf ```tf
module "dotfiles" { module "dotfiles" {
source = "registry.coder.com/modules/dotfiles/coder" source = "registry.coder.com/modules/dotfiles/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
user = "root" user = "root"
} }
@ -51,13 +51,13 @@ module "dotfiles" {
```tf ```tf
module "dotfiles" { module "dotfiles" {
source = "registry.coder.com/modules/dotfiles/coder" source = "registry.coder.com/modules/dotfiles/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
module "dotfiles-root" { module "dotfiles-root" {
source = "registry.coder.com/modules/dotfiles/coder" source = "registry.coder.com/modules/dotfiles/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
user = "root" user = "root"
dotfiles_uri = module.dotfiles.dotfiles_uri dotfiles_uri = module.dotfiles.dotfiles_uri
@ -71,7 +71,7 @@ You can set a default dotfiles repository for all users by setting the `default_
```tf ```tf
module "dotfiles" { module "dotfiles" {
source = "registry.coder.com/modules/dotfiles/coder" source = "registry.coder.com/modules/dotfiles/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
default_dotfiles_uri = "https://github.com/coder/dotfiles" default_dotfiles_uri = "https://github.com/coder/dotfiles"
} }

@ -14,7 +14,7 @@ Runs a script that updates git credentials in the workspace to match the user's
```tf ```tf
module "git-config" { module "git-config" {
source = "registry.coder.com/modules/git-config/coder" source = "registry.coder.com/modules/git-config/coder"
version = "1.0.12" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```
@ -28,7 +28,7 @@ TODO: Add screenshot
```tf ```tf
module "git-config" { module "git-config" {
source = "registry.coder.com/modules/git-config/coder" source = "registry.coder.com/modules/git-config/coder"
version = "1.0.12" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
allow_email_change = true allow_email_change = true
} }
@ -41,7 +41,7 @@ TODO: Add screenshot
```tf ```tf
module "git-config" { module "git-config" {
source = "registry.coder.com/modules/git-config/coder" source = "registry.coder.com/modules/git-config/coder"
version = "1.0.12" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
allow_username_change = false allow_username_change = false
allow_email_change = false allow_email_change = false

@ -14,7 +14,7 @@ Templates that utilize Github External Auth can automatically ensure that the Co
```tf ```tf
module "github-upload-public-key" { module "github-upload-public-key" {
source = "registry.coder.com/modules/github-upload-public-key/coder" source = "registry.coder.com/modules/github-upload-public-key/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```
@ -46,7 +46,7 @@ data "coder_external_auth" "github" {
module "github-upload-public-key" { module "github-upload-public-key" {
source = "registry.coder.com/modules/github-upload-public-key/coder" source = "registry.coder.com/modules/github-upload-public-key/coder"
version = "1.0.14" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
external_auth_id = data.coder_external_auth.github.id external_auth_id = data.coder_external_auth.github.id
} }

@ -17,7 +17,7 @@ Install the JF CLI and authenticate package managers with Artifactory using OAut
```tf ```tf
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-oauth/coder" source = "registry.coder.com/modules/jfrog-oauth/coder"
version = "1.0.5" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://example.jfrog.io" jfrog_url = "https://example.jfrog.io"
username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username" username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username"
@ -44,7 +44,7 @@ Configure the Python pip package manager to fetch packages from Artifactory whil
```tf ```tf
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-oauth/coder" source = "registry.coder.com/modules/jfrog-oauth/coder"
version = "1.0.5" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://example.jfrog.io" jfrog_url = "https://example.jfrog.io"
username_field = "email" username_field = "email"
@ -72,7 +72,7 @@ The [JFrog extension](https://open-vsx.org/extension/JFrog/jfrog-vscode-extensio
```tf ```tf
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-oauth/coder" source = "registry.coder.com/modules/jfrog-oauth/coder"
version = "1.0.5" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://example.jfrog.io" jfrog_url = "https://example.jfrog.io"
username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username" username_field = "username" # If you are using GitHub to login to both Coder and Artifactory, use username_field = "username"

@ -15,7 +15,7 @@ Install the JF CLI and authenticate package managers with Artifactory using Arti
```tf ```tf
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-token/coder" source = "registry.coder.com/modules/jfrog-token/coder"
version = "1.0.10" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://XXXX.jfrog.io" jfrog_url = "https://XXXX.jfrog.io"
artifactory_access_token = var.artifactory_access_token artifactory_access_token = var.artifactory_access_token
@ -41,7 +41,7 @@ For detailed instructions, please see this [guide](https://coder.com/docs/v2/lat
```tf ```tf
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-token/coder" source = "registry.coder.com/modules/jfrog-token/coder"
version = "1.0.10" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://YYYY.jfrog.io" jfrog_url = "https://YYYY.jfrog.io"
artifactory_access_token = var.artifactory_access_token # An admin access token artifactory_access_token = var.artifactory_access_token # An admin access token
@ -74,7 +74,7 @@ The [JFrog extension](https://open-vsx.org/extension/JFrog/jfrog-vscode-extensio
```tf ```tf
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-token/coder" source = "registry.coder.com/modules/jfrog-token/coder"
version = "1.0.10" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://XXXX.jfrog.io" jfrog_url = "https://XXXX.jfrog.io"
artifactory_access_token = var.artifactory_access_token artifactory_access_token = var.artifactory_access_token
@ -94,7 +94,7 @@ data "coder_workspace" "me" {}
module "jfrog" { module "jfrog" {
source = "registry.coder.com/modules/jfrog-token/coder" source = "registry.coder.com/modules/jfrog-token/coder"
version = "1.0.10" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
jfrog_url = "https://XXXX.jfrog.io" jfrog_url = "https://XXXX.jfrog.io"
artifactory_access_token = var.artifactory_access_token artifactory_access_token = var.artifactory_access_token

@ -16,7 +16,7 @@ Uses the [Coder Remote VS Code Extension](https://github.com/coder/vscode-coder)
```tf ```tf
module "vscode" { module "vscode" {
source = "registry.coder.com/modules/vscode-desktop/coder" source = "registry.coder.com/modules/vscode-desktop/coder"
version = "1.0.8" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
} }
``` ```
@ -28,7 +28,7 @@ module "vscode" {
```tf ```tf
module "vscode" { module "vscode" {
source = "registry.coder.com/modules/vscode-desktop/coder" source = "registry.coder.com/modules/vscode-desktop/coder"
version = "1.0.8" version = "1.0.15"
agent_id = coder_agent.example.id agent_id = coder_agent.example.id
folder = "/home/coder/project" folder = "/home/coder/project"
} }

Loading…
Cancel
Save