| ami |
Amazon Machine Image (AMI) ID used for deploying Nomad clients |
string |
n/a |
yes |
| autoscale_metrics |
List of autoscaling metrics to monitor for Auto Scaling Group (ASG) instances |
list(string) |
[ "GroupMinSize", "GroupMaxSize", "GroupDesiredCapacity", "GroupInServiceInstances", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances" ] |
no |
| aws_region |
AWS region to deploy the cluster in |
string |
"ap-south-1" |
no |
| client_name |
Name of the Auto Scaling Group (ASG) nodes deployed as Nomad clients |
string |
n/a |
yes |
| client_security_groups |
List of security groups to attach to the Nomad client nodes |
list(string) |
[] |
no |
| client_type |
Type of client to deploy: 'ec2' or 'asg' |
string |
"asg" |
no |
| cluster_name |
Identifier used for naming all resources associated with the cluster |
string |
n/a |
yes |
| cluster_tags |
Key-value pairs of tags to assign to the EC2 instances spawned by the ASG |
map(string) |
n/a |
yes |
| default_iam_policies |
List of IAM policies to assign to the Nomad clients |
list(string) |
[] |
no |
| ebs_encryption |
Enable EBS encryption |
bool |
true |
no |
| ebs_iops |
The amount of provisioned IOPS for the EBS volume (only valid for gp3, io1, io2) |
number |
3000 |
no |
| ebs_tags |
A map of custom tags to be assigned to the EBS volumes |
map(string) |
{} |
no |
| ebs_volume_size |
The size of the EBS volume in gigabytes |
number |
100 |
no |
| ebs_volume_type |
The type of EBS volume (gp2, gp3, io1, io2, sc1, st1) |
string |
"gp3" |
no |
| ec2_count |
Number of Nomad client EC2 instances to run |
number |
1 |
no |
| ec2_tags |
A map of custom tags to be assigned to the EC2 instances |
map(string) |
{} |
no |
| enable_docker_plugin |
Whether to enable the Docker plugin on the client nodes |
bool |
true |
no |
| enable_tls |
Whether to enable TLS on client nodes |
bool |
false |
no |
| extra_script |
Path to custom script to be run as part of cloud-init |
string |
"" |
no |
| health_check_grace_period |
The time (in seconds) to allow instances in the Auto Scaling group to warm up before beginning health checks. |
number |
180 |
no |
| healthcheck_type |
Health check type for the ASG, either 'EC2' or 'ELB' |
string |
"EC2" |
no |
| http_put_response_hop_limit |
The hop limit for HTTP PUT response for the EC2 instance metadata service |
number |
2 |
no |
| http_tokens |
Whether the metadata service requires session tokens, also referred to as Instance Metadata Service Version 2 (IMDSv2). Can be 'optional', 'required', or 'no-preference'. |
string |
"optional" |
no |
| iam_instance_profile |
Name of the existing IAM Instance Profile to use |
string |
"" |
no |
| iam_tags |
A map of custom tags to be assigned to the IAM role |
map(string) |
{} |
no |
| instance_desired_count |
Desired number of Nomad clients to run |
number |
1 |
no |
| instance_max_count |
Maximum number of Nomad clients to run |
number |
3 |
no |
| instance_min_count |
Minimum number of Nomad clients to run |
number |
0 |
no |
| instance_type |
Instance type to use for the Nomad clients |
string |
"c5a.large" |
no |
| nomad_acl_enable |
Whether to enable ACLs on the Nomad cluster or not |
bool |
true |
no |
| nomad_client_exec_host_volumes |
A map of host volumes to configure for the Nomad client |
map(object({ path = string read_only = bool })) |
{} |
no |
| nomad_file_limit |
Value for LimitNOFILE in nomad systemd config |
number |
900000 |
no |
| nomad_gc_disk_usage_threshold |
Disk usage percent threshold at which the GC will mark allocations as eligible for collection |
number |
80 |
no |
| nomad_gc_inode_usage_threshold |
Inode usage percent threshold at which the GC will mark allocations as eligible for collection |
number |
70 |
no |
| nomad_gc_interval |
Interval between garbage collections for Nomad client allocations |
string |
"1m" |
no |
| nomad_gc_max_allocs |
Maximum number of terminal allocations that the GC will keep before forcing collection |
number |
50 |
no |
| nomad_gc_parallel_destroys |
Number of parallel allocation destroys during garbage collection |
number |
2 |
no |
| nomad_join_tag_value |
The value of the tag used for Nomad server auto-join |
string |
n/a |
yes |
| override_instance_types |
List of instance types to define in the mixed_instances_policy block |
list(string) |
[] |
no |
| route_53_resolver_address |
Route53 resolver address for querying DNS inside exec tasks |
string |
n/a |
yes |
| ssh_public_keys |
List of SSH public keys to add to authorized_keys |
list(string) |
[] |
no |
| ssh_user |
The system user to add SSH keys for |
string |
"ubuntu" |
no |
| subnets |
List of subnets to assign for deploying instances |
list(string) |
[] |
no |
| target_group_arns |
List of target groups assigned in the ALB to connect to the ASG |
list(string) |
[] |
no |
| tls_certificates |
Base64 encoded certificate files to use for Nomad Client TLS |
object({ ca_file = string cert_file = string key_file = string }) |
{ "ca_file": "", "cert_file": "", "key_file": "" } |
no |
| tls_http_enable |
Enable TLS over HTTP for Nomad Client. Setting this option requires the end-user to set NOMAD_TLS* variables while accessing the CLI |
bool |
false |
no |
| tls_rpc_enable |
Enable TLS over RPC for Nomad Clients. This is required for intra-client mTLS. |
bool |
true |
no |
| vpc |
AWS Virtual Private Cloud (VPC) to deploy all resources in |
string |
n/a |
yes |
| wait_for_capacity_timeout |
Time for which Terraform waits after ASG creation to see if instances are running. |
string |
"10m" |
no |