Skip to content

feat: Maintain a first-class air-gapped control plane image #6522

@sharkymark

Description

@sharkymark

Version: v0.18.1+e3a4861

We see struggle with prospects wanting to install the Coder control plane in an air-gapped fashion, because of the manual steps required to create a custom Coder image.

As an aside, Coder v2 installs the Terraform binary as our workspace provisioner. Running air-gapped (aka no Internet), we cannot contact the terraform.io website to download Terraform and the providers to interact with infrastructure resources.

Therefore, we require Terraform and the providers get bundled into the Coder control plane image before installation.

While specific Terraform providers may vary, we should create an image we maintain on DockerHub like our workspace images that includes:

  1. Terraform binary
  2. Coder Terraform provider
  3. Kubernetes Terraform provider
  4. kreuzwerker Docker Terraform provider
  5. filesystem-mirror-example.tfrc

See attached Dockerfile with the most recent providers and Terraform 1.3.4 (maximum release that Coder supports)
Dockerfile.txt

The goal is to reduce friction of prospects evaluating Coder to make a purchase decision.

Coder will generate this air-gapped image as part of its release CI, so people get the latest. It will pull the latest providers as well but honor the Terraform binary release restrictions.

In its existing form, we document the manual custom image build steps, but the majority of evaluators may not have:

  1. Access to container infrastructure to do a Docker image build
  2. Technical skills to figure out this custom image build step

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleThis issue is like stale bread.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions