Open
Conversation
There was a problem hiding this comment.
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> | |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.