- Notifications
You must be signed in to change notification settings - Fork928
docs: describe air-gapped architecture#12897
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Uh oh!
There was an error while loading.Please reload this page.
Merged
Changes fromall commits
Commits
Show all changes
8 commits Select commitHold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
82 changes: 80 additions & 2 deletionsdocs/about/architecture.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -269,7 +269,85 @@ Coder on Kubernetes. | ||
- For GCP: | ||
[Google Cloud Identity Platform](https://cloud.google.com/architecture/identity/single-sign-on) | ||
### Air-gapped architecture | ||
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 include: | ||
- _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 | ||
access controls to safeguard sensitive information. | ||
Learn more about [offline deployments](../install/offline.md) of Coder. | ||
 | ||
#### Components | ||
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 | ||
**Workspace provisioner** | ||
- 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_. | ||
johnstcn marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
**Coder server** | ||
- 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 | ||
**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 | ||
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** | ||
- 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** | ||
- Manages and issues TLS certificates to facilitate secure communication | ||
channels within the infrastructure. | ||
### Dev Containers | ||
Note: _Dev containers_ are at early stage and considered experimental at the | ||
moment. | ||
@@ -302,7 +380,7 @@ models, in multiple regions, or across various cloud platforms. | ||
##### Workload resources | ||
**Coder workspace** | ||
- Docker and Kubernetes based templates are supported. | ||
- The `docker_container` resource uses `ghcr.io/coder/envbuilder` as the base | ||
Binary file addeddocs/images/architecture-air-gapped.png
Loading
Sorry, something went wrong.Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletionsdocs/manifest.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -230,9 +230,9 @@ | ||
"icon_path": "./images/icons/docker.svg" | ||
}, | ||
{ | ||
"title": "Dev Containers", | ||
"description": "UseDev Containers in workspaces", | ||
"path": "./templates/dev-containers.md", | ||
mtojek marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
"state": "alpha" | ||
}, | ||
{ | ||
File renamed without changes.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.