{"id":19232709,"url":"https://github.com/makeomatic/tf_consul","last_synced_at":"2026-03-02T13:05:44.750Z","repository":{"id":142912456,"uuid":"73844331","full_name":"makeomatic/tf_consul","owner":"makeomatic","description":"Terraform module for consul","archived":false,"fork":false,"pushed_at":"2016-11-15T18:44:05.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-05T00:24:16.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makeomatic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-15T18:43:29.000Z","updated_at":"2021-06-10T16:53:48.000Z","dependencies_parsed_at":"2023-04-09T14:32:01.087Z","dependency_job_id":null,"html_url":"https://github.com/makeomatic/tf_consul","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makeomatic%2Ftf_consul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makeomatic%2Ftf_consul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makeomatic%2Ftf_consul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makeomatic%2Ftf_consul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makeomatic","download_url":"https://codeload.github.com/makeomatic/tf_consul/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240310872,"owners_count":19781341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T16:07:16.292Z","updated_at":"2026-03-02T13:05:39.714Z","avatar_url":"https://github.com/makeomatic.png","language":"HCL","readme":"# Consul Terraform module\n\nConsul Terraform module is used to bring up a consul cluster in a cloud provider.\n\n - *Supported cloud providers*: **AWS, GCE**\n - *Terraform version supported* **\u003e= 0.7**\n\n## Module configuration\n\nThe correct list of configuration variables is available in `variables.tf`, down here only the most important configuration variables are described.\n\n### General\n\n|Variable|Description|Default|\n|---|---|---|\n|**servers**|Number of consul servers to bootstrap.|3|\n|**key_name**|Specifies cloud provider key name (**required**).|`\"\"`|\n|**key_path**|Specifies local path to the private ssh key used to connect to a cloud provider (**required**).|`\"\"`|\n\n### Consul\n\n|Variable|Description|Default|\n|---|---|---|\n|**consul_image**|Docker container used to bootstrap consul server.|*stackfeed/consul:0.6-server*|\n|**consul_args**|Arguments passed to consul server agent, can be used to override default configuration (ex. specifying atlas options).|`\"\"`|\n|**consul_dnsport**|Sets port (tcp/udp) where consul will listen for DNS queries.|8600|\n\n### Nomad\n\n|Variable|Description|Default|\n|---|---|---|\n|**nomad_enabled**|Specifies whether to start nomad or not.|`true`|\n|**nomad_image**|Specifies image used for nomad.|*makeomatic/nomad:0.4*|\n|**nomad_region**|Specifies nomad region.|*global*|\n|**nomad_datacenter**|Specifies nomad datacenter.|*dc1*|\n|**nomad_sgname**|Specifies nomad security group name.|*nomad*|\n\n### Swarm (docker swarm)\n\n|Variable|Description|Default|\n|---|---|---|\n|**swarm_enabled**|Specifies whether to start nomad or not.|`false`|\n|**swarm_image**|Specifies image used for nomad.|*swarm*|\n\n### AWS variables\n\n|Variable|Description|Default|\n|---|---|---|\n|**SGAllow_ConsulAPInDNS**|List of security groups allowed to access consul API and DNS.|`[]`|\n|**SGAllow_NomadAPI**|List of security groups allowed to access nomad REST API.|`[]`|\n|**SGAllow_SwarmAPI**|List of security groups allowed to access swarm REST API.|`[]`|\n\nFor the list of variables configuring deployment on AWS please refer to  [aws defaults](https://github.com/stackfeed/tf_default_compute#aws).\n\n### GCE\n\nFor the list of variables configuring deployment on GCE please refer to  [gce defaults](https://github.com/stackfeed/tf_default_compute#gce).\n\n## Usage\n\n### AWS usage\n\nFirst we need to set the AWS credentials via environment.\n```\nexport AWS_ACCESS_KEY_ID=\"AKIxxxZUT\"\nexport AWS_SECRET_ACCESS_KEY=\"HAVxxxbNL\"\n```\n\nNext define the module configuration:\n\n```\nprovider \"aws\" {\n    ...\n}\n\nmodule \"consul\" {\n    source = \"github.com/stackfeed/tf_consul//aws\"\n    servers = 3\n    key_name = \"aws_key_name\"\n    key_path = \"~/.ssh/some_pkey_path\"\n}\n```\n\nNote that `consul_args` is optional and can be omitted in this case a consul cluster will be brought up with `-bootstrap-expect 3` and perform automated cluster setup.\n\n### GCE usage\n\nInclude module:\n\n```\nprovider \"google\" {\n    ...\n}\n\nmodule \"consul\" {\n    source = \"github.com/stackfeed/tf_consul//gce\"\n    servers = 3\n\n    region = \"set gce region\"\n    zone = \"set gce availability zone\"\n}\n```\n\nNote that `consul_args` is optional and can be omitted in this case a consul cluster will be brought up with `-bootstrap-expect 3` and perform automated cluster setup.\nAlso it's worth emphasizing that default private and public key paths for GCE are `~/.ssh/google_compute_engine` and `~/.ssh/google_compute_engine.pub` which are generated by `gcloud` CLI. However to use the module you will have to **decrypt the private key otherwise terraform won't be able to operate**.\n\n# Authors\n\n- Denis Baryshev (\u003cdennybaa@gmail.com\u003e)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakeomatic%2Ftf_consul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakeomatic%2Ftf_consul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakeomatic%2Ftf_consul/lists"}