Skip to content

Commit 878f367

Browse files
mbarrienczimergebot
authored andcommitted
[breaking] Terraform 0.12 compatibility (breaks 0.11 compatibility) (#105)
[breaking] Terraform 0.12 compatibility (breaks 0.11 compatibility)### Summary This PR adds the changes over and above #104 to make cztack compatible with 0.12. Specifically: * Removing brackets around arguments that are already supposed to be lists. In some rare cases (involving calculated fields), this doesn't work properly in 0.11, so considering it breaking. * Removes use of terraform-docs; terraform-docs is incompatible with Terraform 0.12 (see terraform-docs/terraform-docs#62) * Uses the new dynamic block syntax to be able to pass dynamically generated blocks that coincidentally worked in 0.11 but are incompatible with 0.12. ### Test Plan Testing via corresponding shared-infra PR successfully passing.
1 parent f6e470b commit 878f367

File tree

583 files changed

+247232
-65661
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

583 files changed

+247232
-65661
lines changed

.travis.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
language: go
22
go:
3-
- 1.10.3
3+
- 1.12.5
44
sudo: false
55
dist: trusty
66
cache: pip
77
install:
88
# terraform
9-
- wget -t 10 -O terraform.zip https://releases.hashicorp.com/terraform/0.11.8/terraform_0.11.8_linux_amd64.zip
9+
- wget -t 10 -O terraform.zip https://releases.hashicorp.com/terraform/0.12.5/terraform_0.12.5_linux_amd64.zip
1010
- unzip terraform.zip
1111
- mv terraform ~/bin/
1212
- chmod +x ~/bin/terraform
1313
# terraform-provider-bless
14-
- wget -t 10 -O terraform-provider-bless.tar https://github.com/chanzuckerberg/terraform-provider-bless/releases/download/v0.2.5/terraform-provider-bless_0.2.5_linux_amd64.tar.gz
14+
- wget -t 10 -O terraform-provider-bless.tar https://github.com/chanzuckerberg/terraform-provider-bless/releases/download/v0.2.8/terraform-provider-bless_0.2.8_linux_amd64.tar.gz
1515
- tar -C ~/bin -xzf terraform-provider-bless.tar
1616
# terraform-docs
1717
- wget -t 10 -O terraform-docs https://github.com/segmentio/terraform-docs/releases/download/v0.6.0/terraform-docs-v0.6.0-linux-amd64
@@ -27,8 +27,9 @@ jobs:
2727
include:
2828
- stage: check
2929
script: make lint
30-
- stage: check
31-
script: make check-docs
30+
# terraform-docs is incompatible with 0.12 for now
31+
# - stage: check
32+
# script: make check-docs
3233
- stage: check
3334
before_script:
3435
- aws configure set aws_access_key_id $CI1_AWS_ACCESS_KEY_ID --profile

Gopkg.lock

-211
This file was deleted.

Gopkg.toml

-7
This file was deleted.

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
Cztack (pronounced "stack") is CZI's collection of Terraform modules. We use these as way to scale our infrastructure work.
44

5+
These modules are compatible with Terraform 0.12 and up.
6+
57
## Design Principles
68

79
More TODO here

aws-acm-cert/main.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ locals {
1212

1313
resource "aws_acm_certificate" "cert" {
1414
domain_name = "${var.cert_domain_name}"
15-
subject_alternative_names = ["${keys(var.cert_subject_alternative_names)}"]
15+
subject_alternative_names = "${keys(var.cert_subject_alternative_names)}"
1616
validation_method = "DNS"
1717
tags = "${local.tags}"
1818

@@ -36,5 +36,5 @@ resource "aws_route53_record" "cert_validation" {
3636

3737
resource "aws_acm_certificate_validation" "cert" {
3838
certificate_arn = "${aws_acm_certificate.cert.arn}"
39-
validation_record_fqdns = ["${aws_route53_record.cert_validation.*.fqdn}"]
39+
validation_record_fqdns = "${aws_route53_record.cert_validation.*.fqdn}"
4040
}

aws-aurora-postgres/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ module "aurora" {
2323
port = 5432
2424
instance_class = "${var.instance_class}"
2525
instance_count = "${var.instance_count}"
26-
backtrack_window = 0 # not supported yet
26+
27+
# backtrack_window not supported yet
28+
backtrack_window = 0
2729
skip_final_snapshot = "${var.skip_final_snapshot}"
2830
kms_key_id = "${var.kms_key_id}"
2931
apply_immediately = "${var.apply_immediately}"

aws-aurora/main.tf

+17-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ resource "aws_security_group" "rds" {
2121
from_port = "${var.port}"
2222
to_port = "${var.port}"
2323
protocol = "tcp"
24-
cidr_blocks = ["${var.ingress_cidr_blocks}"]
24+
cidr_blocks = "${var.ingress_cidr_blocks}"
2525
}
2626

2727
lifecycle {
@@ -81,7 +81,14 @@ resource "aws_rds_cluster_parameter_group" "db" {
8181
family = "${var.engine}${var.engine_version}"
8282
description = "RDS default cluster parameter group"
8383

84-
parameter = ["${var.rds_cluster_parameters}"]
84+
dynamic "parameter" {
85+
for_each = var.rds_cluster_parameters
86+
content {
87+
name = parameter.value.name
88+
value = parameter.value.value
89+
apply_method = parameter.value.apply_method
90+
}
91+
}
8592

8693
lifecycle {
8794
ignore_changes = ["family"]
@@ -94,7 +101,14 @@ resource "aws_db_parameter_group" "db" {
94101
name = "${local.name}"
95102
family = "${var.engine}${var.engine_version}"
96103

97-
parameter = ["${var.db_parameters}"]
104+
dynamic "parameter" {
105+
for_each = var.db_parameters
106+
content {
107+
name = parameter.value.name
108+
value = parameter.value.value
109+
apply_method = parameter.value.apply_method
110+
}
111+
}
98112

99113
lifecycle {
100114
ignore_changes = ["family"]

aws-cloudwatch-log-group/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ locals {
55
resource "aws_cloudwatch_log_group" "group" {
66
name = "${local.log_group_name}"
77

8-
tags {
8+
tags = {
99
project = "${var.project}"
1010
env = "${var.env}"
1111
service = "${var.service}"

aws-default-vpc-security/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module "default-vpc" {
2727
2828
default_sg_lockdown = true
2929
30-
providers {
30+
providers = {
3131
"aws" = "aws.us-west-1"
3232
}
3333
}

0 commit comments

Comments
 (0)