Skip to content

Commit 9fd29a6

Browse files
authored
Remove dependencies on terraform-aws-account-metadata. Use Terraform vars instead (#8)
1 parent 5014d49 commit 9fd29a6

25 files changed

+207
-90
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ This is a collection of reusable root modules for CloudPosse AWS accounts.
1111
Use the `terraform-root-modules` Docker image as the base image in the application `Dockerfile`, and copy the modules from `/aws` folder into `/conf` folder
1212

1313
```dockerfile
14-
FROM cloudposse/terraform-root-modules:0.1.4 as terraform-root-modules
14+
FROM cloudposse/terraform-root-modules:0.1.6 as terraform-root-modules
1515

1616
FROM cloudposse/geodesic:0.9.16
1717

aws/acm-cloudfront/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ provider "aws" {
2020
}
2121

2222
variable "domain_name" {
23-
description = "Domain name (E.g. staging.cloudposse.org)"
23+
description = "Domain name (E.g. staging.cloudposse.co)"
2424
}
2525

2626
module "certificate" {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
domain_name="staging.cloudposse.co"

aws/acm/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ provider "aws" {
1313
}
1414

1515
variable "domain_name" {
16-
description = "Domain name (E.g. staging.cloudposse.org)"
16+
description = "Domain name (E.g. staging.cloudposse.co)"
1717
}
1818

1919
module "certificate" {

aws/acm/terraform.tfvars.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
domain_name="foobar.domain.com"
1+
domain_name="staging.cloudposse.co"

aws/backing-services/aurora-postgres.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ variable "POSTGRES_CLUSTER_ENABLED" {
3939

4040
module "aurora_postgres" {
4141
source = "git::https://github.com/cloudposse/terraform-aws-rds-cluster.git?ref=tags/0.3.5"
42-
namespace = "${module.identity.namespace}"
43-
stage = "${module.identity.stage}"
42+
namespace = "${var.namespace}"
43+
stage = "${var.stage}"
4444
name = "postgres"
4545
engine = "aurora-postgresql"
4646
cluster_family = "aurora-postgresql9.6"
@@ -51,9 +51,9 @@ module "aurora_postgres" {
5151
db_name = "${var.POSTGRES_DB_NAME}"
5252
db_port = "5432"
5353
vpc_id = "${module.vpc.vpc_id}"
54-
availability_zones = ["${module.identity.availability_zones}"]
54+
availability_zones = ["${data.aws_availability_zones.available}"]
5555
subnets = ["${module.subnets.private_subnet_ids}"]
56-
zone_id = "${module.identity.zone_id}"
56+
zone_id = "${var.zone_id}"
5757
security_groups = ["${module.kops_metadata.nodes_security_group_id}"]
5858
enabled = "${var.POSTGRES_CLUSTER_ENABLED}"
5959
}

aws/backing-services/elasticache-redis.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ variable "REDIS_CLUSTER_ENABLED" {
1818

1919
module "elasticache_redis" {
2020
source = "git::https://github.com/cloudposse/terraform-aws-elasticache-redis.git?ref=tags/0.4.3"
21-
namespace = "${module.identity.namespace}"
22-
stage = "${module.identity.stage}"
21+
namespace = "${var.namespace}"
22+
stage = "${var.stage}"
2323
name = "redis"
24-
zone_id = "${module.identity.zone_id}"
24+
zone_id = "${var.zone_id}"
2525
security_groups = ["${module.kops_metadata.nodes_security_group_id}"]
2626
vpc_id = "${module.vpc.vpc_id}"
2727
subnets = ["${module.subnets.private_subnet_ids}"]
@@ -34,7 +34,7 @@ module "elasticache_redis" {
3434
alarm_cpu_threshold_percent = "75"
3535
alarm_memory_threshold_bytes = "10000000"
3636
apply_immediately = "true"
37-
availability_zones = ["${module.identity.availability_zones}"]
37+
availability_zones = ["${data.aws_availability_zones.available}"]
3838
automatic_failover = "false"
3939
enabled = "${var.REDIS_CLUSTER_ENABLED}"
4040
}

aws/backing-services/main.tf

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,44 @@ terraform {
44
backend "s3" {}
55
}
66

7-
variable "aws_assume_role_arn" {}
7+
variable "aws_assume_role_arn" {
8+
type = "string"
9+
}
10+
11+
variable "namespace" {
12+
type = "string"
13+
description = "Namespace (e.g. `cp` or `cloudposse`)"
14+
}
15+
16+
variable "stage" {
17+
type = "string"
18+
description = "Stage (e.g. `prod`, `dev`, `staging`)"
19+
}
20+
21+
variable "region" {
22+
type = "string"
23+
description = "AWS region"
24+
}
25+
26+
variable "zone_name" {
27+
type = "string"
28+
description = "DNS zone name"
29+
}
30+
31+
variable "zone_id" {
32+
type = "string"
33+
description = "DNS zone ID"
34+
}
35+
36+
data "aws_availability_zones" "available" {}
837

938
provider "aws" {
1039
assume_role {
1140
role_arn = "${var.aws_assume_role_arn}"
1241
}
1342
}
1443

15-
module "identity" {
16-
source = "git::[email protected]:cloudposse/terraform-aws-account-metadata.git?ref=init"
17-
}
18-
1944
module "kops_metadata" {
2045
source = "git::https://github.com/cloudposse/terraform-aws-kops-metadata.git?ref=tags/0.1.1"
21-
dns_zone = "${module.identity.aws_region}.${module.identity.zone_name}"
46+
dns_zone = "${var.region}.${var.zone_name}"
2247
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
namespace="cp"
2+
stage="staging"
3+
region="us-west-2"
4+
zone_name="us-west-2.cloudposse.co"
5+
zone_id="XXXXXXXXXXXX"

aws/backing-services/vpc.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ locals {
44

55
module "vpc" {
66
source = "git::https://github.com/cloudposse/terraform-aws-vpc.git?ref=tags/0.3.3"
7-
namespace = "${module.identity.namespace}"
8-
stage = "${module.identity.stage}"
7+
namespace = "${var.namespace}"
8+
stage = "${var.stage}"
99
name = "${local.name}"
1010
cidr_block = "10.0.0.0/16"
1111
}
1212

1313
module "subnets" {
1414
source = "git::https://github.com/cloudposse/terraform-aws-dynamic-subnets.git?ref=tags/0.3.4"
15-
availability_zones = ["${module.identity.availability_zones}"]
16-
namespace = "${module.identity.namespace}"
17-
stage = "${module.identity.stage}"
15+
availability_zones = ["${data.aws_availability_zones.available}"]
16+
namespace = "${var.namespace}"
17+
stage = "${var.stage}"
1818
name = "${local.name}"
19-
region = "${module.identity.aws_region}"
19+
region = "${var.region}"
2020
vpc_id = "${module.vpc.vpc_id}"
2121
igw_id = "${module.vpc.igw_id}"
2222
cidr_block = "${module.vpc.vpc_cidr_block}"

aws/chamber/chamber-kops.sh

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,36 @@ exit 1
1414
## Chart Museum
1515
chamber write kops CHARTMUSEUM_BASIC_AUTH_USER XXXXXXXXXXXX # e.g. server
1616
chamber write kops CHARTMUSEUM_BASIC_AUTH_PASS XXXXXXXXXXXX
17-
chamber write kops CHARTMUSEUM_HOSTNAME XXXXXXXXXXXX # e.g. charts.us-west-2.staging.cloudposse.org
18-
chamber write kops CHARTMUSEUM_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.org
17+
chamber write kops CHARTMUSEUM_HOSTNAME XXXXXXXXXXXX # e.g. charts.us-west-2.staging.cloudposse.co
18+
chamber write kops CHARTMUSEUM_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.co
1919

2020

2121
## Chart Repo
2222
chamber write kops CHART_REPO_STORAGE_AMAZON_BUCKET XXXXXXXXXXXX # e.g. cp-staging-chart-repo
2323
chamber write kops CHART_REPO_STORAGE_AMAZON_REGION XXXXXXXXXXXX # e.g. us-west-2
2424
chamber write kops CHART_REPO_STORAGE_AWS_IAM_ROLE XXXXXXXXXXXX # e.g. cp-staging-chart-repo
25-
chamber write kops CHART_REPO_GATEWAY_HOSTNAME XXXXXXXXXXXX # e.g. gateway.charts.us-west-2.staging.cloudposse.org
26-
chamber write kops CHART_REPO_GATEWAY_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.org
25+
chamber write kops CHART_REPO_GATEWAY_HOSTNAME XXXXXXXXXXXX # e.g. gateway.charts.us-west-2.staging.cloudposse.co
26+
chamber write kops CHART_REPO_GATEWAY_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.co
2727
chamber write kops CHART_REPO_GATEWAY_BASIC_AUTH_USER XXXXXXXXXXXX # e.g. gateway
2828
chamber write kops CHART_REPO_GATEWAY_BASIC_AUTH_PASS XXXXXXXXXXXX
29-
chamber write kops CHART_REPO_SERVER_HOSTNAME XXXXXXXXXXXX # e.g. charts.us-west-2.staging.cloudposse.org
30-
chamber write kops CHART_REPO_SERVER_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.org
29+
chamber write kops CHART_REPO_SERVER_HOSTNAME XXXXXXXXXXXX # e.g. charts.us-west-2.staging.cloudposse.co
30+
chamber write kops CHART_REPO_SERVER_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.co
3131
chamber write kops CHART_REPO_SERVER_BASIC_AUTH_USER XXXXXXXXXXXX # e.g. server
3232
chamber write kops CHART_REPO_SERVER_BASIC_AUTH_PASS XXXXXXXXXXXX
3333

3434

3535
## External DNS
36-
chamber write kops EXTERNAL_DNS_TXT_OWNER_ID XXXXXXXXXXXX # e.g. us-west-2.staging.cloudposse.org
36+
chamber write kops EXTERNAL_DNS_TXT_OWNER_ID XXXXXXXXXXXX # e.g. us-west-2.staging.cloudposse.co
3737
chamber write kops EXTERNAL_DNS_TXT_PREFIX XXXXXXXXXXXX # e.g. 184f3df5-53c6-4071-974b-2d8de32e82c7-
3838
chamber write kops EXTERNAL_DNS_IAM_ROLE XXXXXXXXXXXX # e.g. cp-staging-external-dns
3939

4040

4141
## Kube Lego - Automatic Let's Encrypt for Ingress
42-
chamber write kops KUBE_LEGO_EMAIL XXXXXXXXXXXX # e.g. awsadmin@cloudposse.org
42+
chamber write kops KUBE_LEGO_EMAIL XXXXXXXXXXXX # e.g. awsadmin@cloudposse.co
4343

4444

4545
## NGINX Ingress Controller
46-
chamber write kops NGINX_INGRESS_HOSTNAME XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.org
46+
chamber write kops NGINX_INGRESS_HOSTNAME XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.co
4747

4848

4949
## prometheus-operator
@@ -62,11 +62,11 @@ chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_REPLICA_COUNT XXXXXXXXXXXX #
6262
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_IMAGE_TAG XXXXXXXXXXXX # e.g. v0.14.0
6363
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_SLACK_WEBHOOK_URL XXXXXXXXXXXX
6464
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_SLACK_CHANNEL XXXXXXXXXXXX
65-
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_HOSTNAME XXXXXXXXXXXX # e.g. alerts.us-west-2.staging.cloudposse.org
66-
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.org
65+
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_HOSTNAME XXXXXXXXXXXX # e.g. alerts.us-west-2.staging.cloudposse.co
66+
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.co
6767
chamber write kops KUBE_PROMETHEUS_ALERT_MANAGER_SECRET_NAME XXXXXXXXXXXX # e.g. alertmanager-general-tls
6868
chamber write kops KUBE_PROMETHEUS_REPLICA_COUNT XXXXXXXXXXXX # e.g. 4
6969
chamber write kops KUBE_PROMETHEUS_IMAGE_TAG XXXXXXXXXXXX # e.g. v2.2.1
70-
chamber write kops KUBE_PROMETHEUS_HOSTNAME XXXXXXXXXXXX # e.g. prometheus.us-west-2.staging.cloudposse.org
71-
chamber write kops KUBE_PROMETHEUS_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.org
70+
chamber write kops KUBE_PROMETHEUS_HOSTNAME XXXXXXXXXXXX # e.g. prometheus.us-west-2.staging.cloudposse.co
71+
chamber write kops KUBE_PROMETHEUS_INGRESS XXXXXXXXXXXX # e.g. ingress.us-west-2.staging.cloudposse.co
7272
chamber write kops KUBE_PROMETHEUS_SECRET_NAME XXXXXXXXXXXX # e.g. prometheus-general-tls

aws/chamber/kms-key.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module "chamber_kms_key" {
22
source = "git::https://github.com/cloudposse/terraform-aws-kms-key.git?ref=tags/0.1.0"
3-
namespace = "${module.identity.namespace}"
4-
stage = "${module.identity.stage}"
3+
namespace = "${var.namespace}"
4+
stage = "${var.stage}"
55
name = "chamber"
66
description = "KMS key for chamber"
77
}

aws/chamber/main.tf

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,32 @@ terraform {
44
backend "s3" {}
55
}
66

7-
variable "aws_assume_role_arn" {}
7+
variable "aws_assume_role_arn" {
8+
type = "string"
9+
}
10+
11+
variable "namespace" {
12+
type = "string"
13+
description = "Namespace (e.g. `cp` or `cloudposse`)"
14+
}
15+
16+
variable "stage" {
17+
type = "string"
18+
description = "Stage (e.g. `prod`, `dev`, `staging`)"
19+
}
20+
21+
variable "region" {
22+
type = "string"
23+
description = "AWS region"
24+
}
25+
26+
variable "account_id" {
27+
type = "string"
28+
description = "AWS account ID"
29+
}
830

931
provider "aws" {
1032
assume_role {
1133
role_arn = "${var.aws_assume_role_arn}"
1234
}
1335
}
14-
15-
module "identity" {
16-
source = "git::[email protected]:cloudposse/terraform-aws-account-metadata.git?ref=init"
17-
}

aws/chamber/terraform.tfvars.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
namespace="cp"
2+
stage="staging"
3+
region="us-west-2"
4+
account_id="XXXXXXXXXXXX"

aws/chamber/user.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
# https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html
33
module "chamber_user" {
44
source = "git::https://github.com/cloudposse/terraform-aws-iam-chamber-user.git?ref=tags/0.1.4"
5-
namespace = "${module.identity.namespace}"
6-
stage = "${module.identity.stage}"
5+
namespace = "${var.namespace}"
6+
stage = "${var.stage}"
77
name = "chamber"
88
attributes = ["codefresh"]
99
kms_key_arn = "${module.chamber_kms_key.key_arn}"
10-
ssm_resources = ["${format("arn:aws:ssm:%s:%s:parameter/kops/*", module.identity.aws_region, module.identity.account_id)}"]
10+
ssm_resources = ["${format("arn:aws:ssm:%s:%s:parameter/kops/*", var.region, var.account_id)}"]
1111
}
1212

1313
output "chamber_user_name" {

aws/dns/terraform.tfvars.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
domain_name="staging.cloudposse.org"
1+
domain_name="staging.cloudposse.co"

aws/docs/main.tf

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,26 @@ variable "domain_name" {
1212
type = "string"
1313
}
1414

15+
variable "namespace" {
16+
type = "string"
17+
description = "Namespace (e.g. `cp` or `cloudposse`)"
18+
}
19+
20+
variable "stage" {
21+
type = "string"
22+
description = "Stage (e.g. `prod`, `dev`, `staging`)"
23+
}
24+
25+
variable "region" {
26+
type = "string"
27+
description = "AWS region"
28+
}
29+
30+
variable "account_id" {
31+
type = "string"
32+
description = "AWS account ID"
33+
}
34+
1535
provider "aws" {
1636
assume_role {
1737
role_arn = "${var.aws_assume_role_arn}"
@@ -38,28 +58,24 @@ data "aws_acm_certificate" "acm_cloudfront_certificate" {
3858
locals {
3959
name = "docs"
4060
cdn_domain = "docs.${var.domain_name}"
41-
docs_user_arn = "arn:aws:iam::${module.identity.account_id}:user/${module.identity.namespace}-${module.identity.stage}-${local.name}"
42-
}
43-
44-
module "identity" {
45-
source = "git::[email protected]:cloudposse/terraform-aws-account-metadata.git?ref=init"
61+
docs_user_arn = "arn:aws:iam::${var.account_id}:user/${var.namespace}-${var.stage}-${local.name}"
4662
}
4763

4864
module "docs_user" {
4965
source = "git::https://github.com/cloudposse/terraform-aws-iam-system-user.git?ref=tags/0.2.2"
50-
namespace = "${module.identity.namespace}"
51-
stage = "${module.identity.stage}"
66+
namespace = "${var.namespace}"
67+
stage = "${var.stage}"
5268
name = "${local.name}"
5369
}
5470

5571
module "origin" {
5672
source = "git::https://github.com/cloudposse/terraform-aws-s3-website.git?ref=tags/0.5.2"
57-
namespace = "${module.identity.namespace}"
58-
stage = "${module.identity.stage}"
73+
namespace = "${var.namespace}"
74+
stage = "${var.stage}"
5975
name = "${local.name}"
6076
hostname = "${local.cdn_domain}"
6177
parent_zone_name = "${var.domain_name}"
62-
region = "${module.identity.aws_region}"
78+
region = "${var.region}"
6379
cors_allowed_headers = ["*"]
6480
cors_allowed_methods = ["GET"]
6581
cors_allowed_origins = ["*"]
@@ -84,8 +100,8 @@ module "origin" {
84100
# CloudFront CDN fronting origin
85101
module "cdn" {
86102
source = "git::https://github.com/cloudposse/terraform-aws-cloudfront-cdn.git?ref=tags/0.4.0"
87-
namespace = "${module.identity.namespace}"
88-
stage = "${module.identity.stage}"
103+
namespace = "${var.namespace}"
104+
stage = "${var.stage}"
89105
name = "${local.name}"
90106
aliases = ["${local.cdn_domain}", "docs.cloudposse.com"]
91107
origin_domain_name = "${module.origin.s3_bucket_website_endpoint}"

aws/docs/terraform.tfvars.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
namespace="cp"
2+
stage="staging"
3+
region="us-west-2"
4+
account_id="XXXXXXXXXXXX"

aws/kops-aws-platform/chart-repo.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
module "kops_chart_repo" {
22
source = "git::https://github.com/cloudposse/terraform-aws-kops-chart-repo.git?ref=tags/0.1.1"
3-
namespace = "${module.identity.namespace}"
4-
stage = "${module.identity.stage}"
3+
namespace = "${var.namespace}"
4+
stage = "${var.stage}"
55
name = "chart-repo"
6-
cluster_name = "${module.identity.aws_region}.${module.identity.zone_name}"
6+
cluster_name = "${var.region}.${var.zone_name}"
77

88
tags = {
9-
Cluster = "${module.identity.aws_region}.${module.identity.zone_name}"
9+
Cluster = "${var.region}.${var.zone_name}"
1010
}
1111
}
1212

0 commit comments

Comments
 (0)