/ 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  }