/ main.tf
main.tf
1 /* DERIVED --------------------------------------*/ 2 3 provider "aws" { 4 version = "~> 2.0" 5 region = var.aws_region 6 access_key = var.aws_access_key 7 secret_key = var.aws_secret_key 8 } 9 10 provider "cloudflare" { 11 email = var.cloudflare_email 12 api_key = var.cloudflare_token 13 account_id = var.cloudflare_account 14 } 15 16 /* DATA -----------------------------------------*/ 17 18 terraform { 19 backend "consul" { 20 address = "https://consul.statusim.net:8400" 21 /* Lock to avoid syncing issues */ 22 lock = true 23 /* KV store has a limit of 512KB */ 24 gzip = true 25 /* WARNING This needs to be changed for every repo. */ 26 path = "terraform/webiny/" 27 ca_file = "ansible/files/consul-ca.crt" 28 cert_file = "ansible/files/consul-client.crt" 29 key_file = "ansible/files/consul-client.key" 30 } 31 } 32 33 /* ACCESS KEY ------------------------------------------------------*/ 34 35 resource "aws_key_pair" "jakub" { 36 key_name = "jakubgs" 37 public_key = file("files/jakub@status.im.rsa") 38 } 39 40 /* CF Zones ------------------------------------*/ 41 42 /* CloudFlare Zone IDs required for records */ 43 data "cloudflare_zones" "active" { 44 filter { status = "active" } 45 } 46 47 /* For easier access to zone ID by domain name */ 48 locals { 49 zones = { 50 for zone in data.cloudflare_zones.active.zones: 51 zone.name => zone.id 52 } 53 }