# DO
variable "team" {default = "dia"}
variable "project" {default = "information-portal"}
variable "region" {default = "eu-central-1"}
variable "environment" {default = "qa"}
resource "aws_s3_bucket" "bucket" {
bucket = "${var.team}-${var.project}-my-bucket-${element(split("-", var.region), 1)}-${environment}"
}
# DON'T
resource "aws_s3_bucket" "bucket" {
bucket = "my-bucket"
}data "terraform_remote_state" "network" {
backend = "s3"
config {
bucket = "terraform-state"
key = "network/terraform.tfstate"
region = "eu-west-1"
}
}
resource "aws_instance" "web" {
# ...
subnet_id = "${data.terraform_remote_state.network.subnet_id}"
}provider "vault" {
address = "https://vault.service.consul:8200"
token = "5fe1466c-2c7c-cfd3-1222-5d32ea761e79"
}
data "vault_generic_secret" "rds" {
path = "secret/rds"
}
resource "aws_db_instance" "default" {
allocated_storage = 10
engine = "mysql"
engine_version = "5.6.17"
instance_class = "db.t1.micro"
name = "mydb"
username = "${data.vault_generic_secret.rds.data["username"]}"
password = "${data.vault_generic_secret.rds.data["password"]}"
db_subnet_group_name = "my_database_subnet_group"
parameter_group_name = "default.mysql5.6"
}data "aws_availability_zones" "available" {}
resource "aws_subnet" "public" {
count = "${length(data.aws_availability_zones.available.id)}"
availability_zone = "${data.aws_availability_zones.available.id[count.index]}"
}module "consul-cluster" {
source = "git::ssh://git@git.takeaway.com/bigdata/consul-cluster.git"
team = "${var.team}"
project = "${var.project}"
account_id = "${var.account_id}"
region = "${var.region}"
environment = "${var.environment}"
cluster_size = "3"
ssh_key_name = "${var.ssh_key_name}"
}
resource "null_resource" "consul-join" {
depends_on = ["module.consul-cluster"]
count = "3"
provisioner "remote-exec" {
connection {
type = "ssh"
user = "ubuntu"
host = "${element(module.consul-cluster.public_ips, count.index)}"
private_key = "${file(var.ssh_private_key_path)}"
}
inline = ["consul join ${element(module.consul-cluster.private_ips, count.index)}"]
}
}