From 3830aa3eede987d326b57fbd4c13c71d8a807c9d Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 13:10:38 +0200 Subject: [PATCH 1/8] docs: describe air-gapped architecture --- docs/about/architecture.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 15af701c9afb5..6775cfb85aab2 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -269,7 +269,41 @@ Coder on Kubernetes. - For GCP: [Google Cloud Identity Platform](https://cloud.google.com/architecture/identity/single-sign-on) -### Dev Container +### Air-gapped architecture + +TODO + + + +#### Components + +TODO + +##### Workload resources + +**Workspace provisioner** + +TODO embedded terraform binaries TODO terraformrc pointing to registry + +**Workspace image** + +TODO External container + +##### Workload supporting resources + +**Container Registry (optional)** + +TODO external registry + +**Terraform Registry** + +TODO + +**Certificate Authority** + +TODO + +### Dev Containers Note: _Dev containers_ are at early stage and considered experimental at the moment. From 520e61942077eab113b209a1b2799455dd6e2524 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 13:32:51 +0200 Subject: [PATCH 2/8] Intro --- docs/about/architecture.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 6775cfb85aab2..a66711647d898 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -271,7 +271,22 @@ Coder on Kubernetes. ### Air-gapped architecture -TODO +An air-gapped deployment model refers to the setup of Coder's development +environment within a restricted network environment that lacks internet +connectivity. This deployment model is often required for organizations with +strict security policies or those operating in isolated environments, such as +government agencies or certain enterprise setups. + +The key features of the air-gapped architecture: + +- _Offline installation_: Deploy workspaces without relying on external Internet + connection. +- _Isolated package/plugin repositories_: Depend on local repositories for + software installation, updates, and security patches. +- _Secure data transfer_: Enable encrypted communication channels and robust + access controls to safeguard sensitive information. + +Learn more about [offline deployments](../install/offline.md) of Coder. @@ -291,13 +306,15 @@ TODO External container ##### Workload supporting resources -**Container Registry (optional)** +**Container Registry** TODO external registry **Terraform Registry** -TODO +TODO These repositories store all necessary dependencies, ensuring that +development environments can be provisioned and maintained without internet +access. **Certificate Authority** From 41b131d4ccdbb564e4bcd58ba481117836e8582c Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 13:34:09 +0200 Subject: [PATCH 3/8] FIX --- docs/about/architecture.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index a66711647d898..00da0f62ce212 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -271,16 +271,16 @@ Coder on Kubernetes. ### Air-gapped architecture -An air-gapped deployment model refers to the setup of Coder's development +The air-gapped deployment model refers to the setup of Coder's development environment within a restricted network environment that lacks internet connectivity. This deployment model is often required for organizations with strict security policies or those operating in isolated environments, such as government agencies or certain enterprise setups. -The key features of the air-gapped architecture: +The key features of the air-gapped architecture include: -- _Offline installation_: Deploy workspaces without relying on external Internet - connection. +- _Offline installation_: Deploy workspaces without relying on an external + internet connection. - _Isolated package/plugin repositories_: Depend on local repositories for software installation, updates, and security patches. - _Secure data transfer_: Enable encrypted communication channels and robust From bac2aea0033f097a2eaac7e3d85f282c52db29dc Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 13:45:46 +0200 Subject: [PATCH 4/8] Components --- docs/about/architecture.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 00da0f62ce212..90b60fbe76cbf 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -292,7 +292,16 @@ Learn more about [offline deployments](../install/offline.md) of Coder. #### Components -TODO +The deployment model includes: + +- _Workspace provisioners_ with direct access to self-hosted package and plugin + repositories and restricted internet access. +- _Mirror of Terraform Registry_ with multiple versions of Terraform plugins. +- _Certificate Authority_ with all TLS certificates to build secure + communication channels. + +The model is compatible with various infrastructure models, enabling deployment +across multiple regions and diverse cloud platforms. ##### Workload resources @@ -310,7 +319,7 @@ TODO External container TODO external registry -**Terraform Registry** +**Mirror of Terraform Registry** TODO These repositories store all necessary dependencies, ensuring that development environments can be provisioned and maintained without internet From 9d1c379277057b89beb3bebc560fb4b2c77102a1 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 14:29:11 +0200 Subject: [PATCH 5/8] More --- docs/about/architecture.md | 28 +++++++++++++------ docs/manifest.json | 6 ++-- .../{devcontainers.md => dev-containers.md} | 0 3 files changed, 23 insertions(+), 11 deletions(-) rename docs/templates/{devcontainers.md => dev-containers.md} (100%) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 90b60fbe76cbf..85256871a23e9 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -307,23 +307,35 @@ across multiple regions and diverse cloud platforms. **Workspace provisioner** -TODO embedded terraform binaries TODO terraformrc pointing to registry +- Includes Terraform binary in the container or system image. +- Checks out Terraform plugins from self-hosted _Registry_ mirror. +- Deploys workspace images stored in the self-hosted _Container Registry_. -**Workspace image** +**Coderd instance** -TODO External container +- Update checks are disabled. +- Telemetry data is not collected. +- Direct connections are not supported, workspace traffic is relayed through + control plane's DERP proxy. ##### Workload supporting resources **Container Registry** -TODO external registry +- Since the _Registry_ is isolated from the internet, platform engineers are + responsible for maintaining Workspace container images and conducting periodic + updates of base Docker images. +- It is recommended to keep [Dev Containers](../templates/devcontainers.md) up + to date with the latest released + [Envbuilder](https://github.com/coder/envbuilder) runtime. **Mirror of Terraform Registry** -TODO These repositories store all necessary dependencies, ensuring that -development environments can be provisioned and maintained without internet -access. +- Stores all necessary Terraform plugin dependencies, ensuring successful + workspace provisioning and maintenance without internet access. +- Platform engineers are responsible for periodically updating the mirrored + Terraform plugins, including + [terraform-provider-coder](https://github.com/coder/terraform-provider-coder). **Certificate Authority** @@ -362,7 +374,7 @@ models, in multiple regions, or across various cloud platforms. ##### Workload resources -**Workspace** +**Coder workspace** - Docker and Kubernetes based templates are supported. - The `docker_container` resource uses `ghcr.io/coder/envbuilder` as the base diff --git a/docs/manifest.json b/docs/manifest.json index 6620160b0ff3e..a7896946fe761 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -230,9 +230,9 @@ "icon_path": "./images/icons/docker.svg" }, { - "title": "Devcontainers", - "description": "Use devcontainers in workspaces", - "path": "./templates/devcontainers.md", + "title": "Dev Containers", + "description": "Use Dev Containers in workspaces", + "path": "./templates/dev-containers.md", "state": "alpha" }, { diff --git a/docs/templates/devcontainers.md b/docs/templates/dev-containers.md similarity index 100% rename from docs/templates/devcontainers.md rename to docs/templates/dev-containers.md From c6e6949dcb26b5ebca57f3eeb364b831b69671c0 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 14:35:36 +0200 Subject: [PATCH 6/8] CA --- docs/about/architecture.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 85256871a23e9..9f62817c47289 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -320,6 +320,11 @@ across multiple regions and diverse cloud platforms. ##### Workload supporting resources +**Self-hosted Database** + +- In the air-gapped deployment model, _Coderd_ instance is unable to download + Postgres binaries from the internet, so external database must be provided. + **Container Registry** - Since the _Registry_ is isolated from the internet, platform engineers are @@ -339,7 +344,8 @@ across multiple regions and diverse cloud platforms. **Certificate Authority** -TODO +- Manages and issues TLS certificates to facilitate secure communication + channels within the infrastructure. ### Dev Containers From 78aee4f1c147335292aeccb04aed62f80379471f Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Mon, 8 Apr 2024 15:31:32 +0200 Subject: [PATCH 7/8] Architecture --- docs/about/architecture.md | 2 +- docs/images/architecture-air-gapped.png | Bin 0 -> 94057 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/architecture-air-gapped.png diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 9f62817c47289..717b698ab412d 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -288,7 +288,7 @@ The key features of the air-gapped architecture include: Learn more about [offline deployments](../install/offline.md) of Coder. - +![Architecture Diagram](../images/architecture-air-gapped.png) #### Components diff --git a/docs/images/architecture-air-gapped.png b/docs/images/architecture-air-gapped.png new file mode 100644 index 0000000000000000000000000000000000000000..b907eae15044d306db6dd26e7cb343ce2a34bfa5 GIT binary patch literal 94057 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 literal 0 HcmV?d00001 From 5a315d1df65e9b43e1415822148a03b856d2dcc1 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 9 Apr 2024 12:02:21 +0200 Subject: [PATCH 8/8] Cian's feedback --- docs/about/architecture.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/about/architecture.md b/docs/about/architecture.md index 717b698ab412d..61b06d68d4f9f 100644 --- a/docs/about/architecture.md +++ b/docs/about/architecture.md @@ -311,11 +311,11 @@ across multiple regions and diverse cloud platforms. - Checks out Terraform plugins from self-hosted _Registry_ mirror. - Deploys workspace images stored in the self-hosted _Container Registry_. -**Coderd instance** +**Coder server** -- Update checks are disabled. -- Telemetry data is not collected. -- Direct connections are not supported, workspace traffic is relayed through +- Update checks are disabled (`CODER_UPDATE_CHECK=false`). +- Telemetry data is not collected (`CODER_TELEMETRY_ENABLE=false`). +- Direct connections are not possible, workspace traffic is relayed through control plane's DERP proxy. ##### Workload supporting resources