No description
  • Go 97.8%
  • HTML 0.9%
  • Shell 0.6%
  • HCL 0.5%
  • Makefile 0.2%
Find a file
Vishnu U c4dcfdc18e
add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594)
* Add muxed framework provider

- introduce a protocol v6 mux server combining the current SDKv2 provider
  with a new framework provider
- keep existing SDKv2 resources/data sources unchanged
- reuse SDKv2 provider metadata from the framework provider so the framework
  resource can use the already-configured Nomad client instead of duplicating
  provider configuration logic
- align provider schema sensitivity between SDKv2 and framework definitions
  for secret-bearing fields
- add focused mux tests for merged metadata/schema and an SDK data source
  through the muxed provider

* test: migrate SDKv2 testing helper packages to terraform-plugin-testing and add intro token acceptance test

* fix nomad_job drift handling

* fix quota import verify and scheduler refresh behaviour

* fix plugin-testing semantics in quota and scheduler tests

* use t.context() for test scoped context passing

* refactor: keep mux scaffolding without intro token feature

* remove check for node_intro_token in mux_test

* update changelog entry
2026-04-01 15:36:49 +05:30
.github func: remove darwin_arm from the build matrix 2025-09-16 18:27:48 +02:00
.release ci: Update Slack release channel with new ID. (#563) 2025-10-13 10:25:05 +01:00
internal add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594) 2026-04-01 15:36:49 +05:30
nomad add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594) 2026-04-01 15:36:49 +05:30
scripts resource/nomad_quota_specification: add support for all QuotaResources fields (#584) 2026-03-12 19:57:30 +05:30
version Release v2.5.2 2025-11-13 11:56:50 +00:00
website remove secretsMB as it's not a quota field (#593) 2026-03-27 13:59:11 -04:00
.copywrite.hcl [COMPLIANCE] Update Copyright and License Headers (Batch 1 of 1) (#571) 2025-12-05 13:13:05 -05:00
.gitignore remove vendor references 2020-05-17 12:05:14 -05:00
.go-version build: Update Nomad to v1.11.0 and Go to v1.25.4 (#566) 2025-11-12 08:55:31 +00:00
CHANGELOG.md add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594) 2026-04-01 15:36:49 +05:30
CODEOWNERS add codeowner file (#488) 2024-11-20 14:16:42 +00:00
GNUmakefile test: use fixed ACL bootstrap token and update product versions 2023-06-02 23:55:32 -04:00
go.mod add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594) 2026-04-01 15:36:49 +05:30
go.sum add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594) 2026-04-01 15:36:49 +05:30
LICENSE [COMPLIANCE] Update MPL 2.0 LICENSE 2022-10-12 20:38:47 +00:00
main.go add muxed framework provider scaffolding and migrate acceptance tests to terraform-plugin-testing (#594) 2026-04-01 15:36:49 +05:30
README.md build: Update Go to v1.24.0 (#512) 2025-03-03 14:19:43 +00:00
terraform-registry-manifest.json Migrate Provider Releases from TeamCity to GitHub Actions 2022-04-08 16:03:44 -04:00

Nomad Terraform Provider

Maintainers

This provider plugin is maintained by the Nomad team at HashiCorp.

Requirements

  • Terraform 1.0.x
  • Go 1.24 (to build the provider plugin)

Building The Provider

Clone repository to: $GOPATH/src/github.com/hashicorp/terraform-provider-nomad

$ mkdir -p $GOPATH/src/github.com/hashicorp; cd $GOPATH/src/github.com/hashicorp
$ git clone git@github.com:hashicorp/terraform-provider-nomad

Enter the provider directory and build the provider

$ cd $GOPATH/src/github.com/hashicorp/terraform-provider-nomad
$ make build

Using the provider

To use a released provider in your Terraform environment, run terraform init and Terraform will automatically install the provider. To specify a particular provider version when installing released providers, see the Terraform documentation on provider versioning.

Refer to the section below for instructions on how to to use a custom-built version of the provider.

For either installation method, documentation about the provider specific configuration options can be found on the provider's website.

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.20+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.

To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.

$ make build
...
$ $GOPATH/bin/terraform-provider-nomad
...

To use the provider binary in a local configuration, create a file called .terraformrc in your home directory and specify a development override for the nomad provider.

provider_installation {
  dev_overrides {
    "hashicorp/nomad" = "<ABSOLUTE PATH TO YOUR GOPATH>/bin/"
  }
}

In order to test the provider, you can simply run make test.

$ make test

In order to run the full suite of Acceptance tests:

  1. setup test environment
nomad agent -dev -acl-enabled
  1. obtain a management token
nomad acl bootstrap
  1. set nomad agent address (if differs from http://localhost:4646) and token secret ID and run tests
NOMAD_TOKEN=<output of nomad acl bootstrap's Secret ID> NOMAD_ADDR=http://<host>:<port> make testacc

Acceptance tests expect fresh instance of nomad agent, so all steps must be performed every time tests are executed.

Note: Acceptance tests create real resources, and may cost money to run.