terraform-nomad-base ========= Terraform module to deploy nomad jobs. Optionally, this module can deploy csi volumes, consul kv, and consul intentions associated to the job(s). ## Requirements No requirements. ## Providers | Name | Version | |------|---------| | [consul](#provider\_consul) | n/a | | [nomad](#provider\_nomad) | n/a | ## Modules No modules. ## Resources | Name | Type | |------|------| | [consul_intention.this](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/intention) | resource | | [consul_key_prefix.this](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/key_prefix) | resource | | [nomad_external_volume.this](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/external_volume) | resource | | [nomad_job.this](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource | | [nomad_volume.this](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/volume) | resource | ## Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [consul\_intentions](#input\_consul\_intentions) | List of intentions associated with the job(s) |
map(object({
source_name = string
destination_name = string
action = string
}))
| `{}` | no | | [consul\_kv](#input\_consul\_kv) | List key/value pairs to put at a specific prefix (mainly for traefik) | `map(any)` | `{}` | no | | [jobs](#input\_jobs) | The list of jobs to deploy | `map(string)` | `{}` | no | | [nfs\_volumes](#input\_nfs\_volumes) | List of nfs volumes associated to the job(s) |
map(object({
type = string
plugin_id = string
namespace = string
capability = map(string)
context = map(string)
mount_options = object({
fs_type = string
mount_flags = list(string)
})
}))
| `{}` | no | | [volumes](#input\_volumes) | List of volumes associated to the job(s) |
map(object({
type = string
plugin_id = string
namespace = string
capacity_min = string
capacity_max = string
capability = map(string)
parameters = map(string)
secrets = map(string)
}))
| `{}` | no | ## Outputs No outputs. ### Requirements No requirements. ### Providers | Name | Version | |------|---------| | [consul](#provider_consul) | n/a | | [nomad](#provider_nomad) | n/a | ### Modules No modules. ### Resources | Name | Type | |------|------| | [consul_intention.this](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/intention) | resource | | [consul_key_prefix.this](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/key_prefix) | resource | | [nomad_csi_volume.this](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) | resource | | [nomad_csi_volume_registration.this](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) | resource | | [nomad_job.this](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource | ### Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [consul_intentions](#input_consul_intentions) | List of intentions associated with the job(s) |
map(object({
source_name = string
destination_name = string
action = string
}))
| `{}` | no | | [consul_kv](#input_consul_kv) | List key/value pairs to put at a specific prefix (mainly for traefik) | `map(any)` | `{}` | no | | [jobs](#input_jobs) | The list of jobs to deploy | `map(string)` | `{}` | no | | [jobs_variables](#input_jobs_variables) | Map of object to pass variables to the nomad job(s). Key is the job's name, value is a map of variables and their values | `map(map(string))` | `{}` | no | | [nfs_volumes](#input_nfs_volumes) | List of nfs volumes associated to the job(s) |
map(object({
plugin_id = string
namespace = string
capability = map(string)
context = map(string)
mount_options = object({
fs_type = string
mount_flags = list(string)
})
}))
| `{}` | no | | [volumes](#input_volumes) | List of volumes associated to the job(s) |
map(object({
plugin_id = string
namespace = string
capacity_min = string
capacity_max = string
capability = map(string)
parameters = map(string)
secrets = map(string)
}))
| `{}` | no | ### Outputs No outputs.