Skip to content

Conversation

@Roemer
Copy link
Member

@Roemer Roemer commented Jan 22, 2026

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new terraform devcontainer feature that installs the Terraform CLI, wired into the existing build, test, and publish pipeline. It also integrates Terraform into the global override mechanism and CI matrix so it behaves consistently with other features like vault-cli and zig.

Changes:

  • Added a Terraform feature implementation (features/src/terraform) with Go-based installer, shell entrypoint, devcontainer feature metadata, and README.
  • Added tests for Terraform (features/test/terraform) and registered the feature in the build system (build/build.go) and CI workflow (.github/workflows/ci.yml).
  • Extended the global override configuration (override-all.env) and top-level documentation (README.md) to include Terraform-specific overrides and feature listing.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
override-all.env Adds Terraform-specific override keys so download and versions URLs can be globally overridden like other features.
features/test/terraform/test-images.json Defines the base images matrix (Debian, Ubuntu, Alpine) for Terraform feature testing, consistent with other features.
features/test/terraform/scenarios.json Adds an install scenario wiring the local ./terraform feature with a pinned Terraform version for tests.
features/test/terraform/install.sh Verifies Terraform is installed and matches the expected version in the test containers.
features/src/terraform/installer.go Implements the Terraform installer component: resolves versions from HashiCorp index, downloads the appropriate archive for the current architecture, and installs the terraform binary.
features/src/terraform/install.sh Shell entrypoint that selects the correct architecture-specific installer binary and forwards version / URL parameters.
features/src/terraform/devcontainer-feature.json Declares the Terraform devcontainer feature metadata and options (version, downloadUrl, versionsUrl) for use in devcontainer.json.
features/src/terraform/README.md Documents the Terraform feature usage and options (note: currently missing the standard Notes/System Compatibility/Accessed Urls sections).
build/build.go Registers package/test/publish tasks for the new terraform feature in the Go build task runner.
README.md Adds Terraform to the list of available features in the root documentation.
.github/workflows/ci.yml Adds terraform to the CI feature matrix so it is built, tested, and published along with other features.
Comments suppressed due to low confidence (1)

features/src/terraform/README.md:24

  • This README only documents the options table, but unlike other feature READMEs (for example features/src/vault-cli/README.md and features/src/zig/README.md) it is missing the standard "Notes" section with "System Compatibility" and "Accessed Urls" subsections that describe supported distros and the HashiCorp endpoints this feature needs. For consistency and to document Terraform's operational requirements, please add a NOTES.md for this feature and regenerate the README so it includes the Notes/System Compatibility/Accessed Urls sections like the other features.
## Options

| Option | Description | Type | Default Value | Proposals |
|-----|-----|-----|-----|-----|
| version | The version of Terraform CLI to install. | string | latest | latest, 1.14.3, 1 |
| downloadUrl | The download URL to use for Terraform CLI binaries. | string | <empty> | https://mycompany.com/artifactory/hashicorp-releases-generic-remote/terraform |
| versionsUrl | The URL to fetch the available Terraform CLI versions from. | string | <empty> |  |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants