Skip to content

Commit ed2462d

Browse files
authored
Merge pull request #61 from kbst/tf012
Upgrade to Terraform 0.12
2 parents 1935aee + 57e3f1d commit ed2462d

Some content is hidden

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

90 files changed

+672
-536
lines changed
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
resource "kubernetes_config_map" "current" {
2-
provider = "kubernetes.eks"
2+
provider = kubernetes.eks
33

44
metadata {
55
name = "aws-auth"
66
namespace = "kube-system"
77
}
88

9-
data {
9+
data = {
1010
mapRoles = <<MAPROLES
1111
- rolearn: ${aws_iam_role.node.arn}
1212
username: system:node:{{EC2PrivateDNSName}}
1313
groups:
1414
- system:bootstrappers
1515
- system:nodes
1616
MAPROLES
17+
1718
}
1819

19-
depends_on = ["aws_eks_cluster.current"]
20+
depends_on = [aws_eks_cluster.current]
2021
}
22+

aws/_modules/eks/cluster_services.tf

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ module "cluster_services" {
33

44
cluster_type = "eks"
55

6-
metadata_labels = "${var.metadata_labels}"
6+
metadata_labels = var.metadata_labels
77

8-
template_string = "${file("${path.module}/templates/kubeconfig.tpl")}"
8+
template_string = file("${path.module}/templates/kubeconfig.tpl")
99

1010
template_vars = {
11-
cluster_name = "${aws_eks_cluster.current.name}"
12-
cluster_endpoint = "${aws_eks_cluster.current.endpoint}"
13-
cluster_ca = "${aws_eks_cluster.current.certificate_authority.0.data}"
14-
caller_id_arn = "${local.caller_id_arn}"
15-
caller_id_arn_type = "${local.caller_id_arn_type}"
16-
11+
cluster_name = aws_eks_cluster.current.name
12+
cluster_endpoint = aws_eks_cluster.current.endpoint
13+
cluster_ca = aws_eks_cluster.current.certificate_authority[0].data
14+
caller_id_arn = local.caller_id_arn
15+
caller_id_arn_type = local.caller_id_arn_type
1716
# hack, because modules can't have depends_on
1817
# prevent a race between kubernetes provider and cluster services/kustomize
1918
# creating the namespace and the provider erroring out during apply
20-
not_used = "${kubernetes_namespace.current.metadata.0.name}"
19+
not_used = kubernetes_namespace.current.metadata[0].name
2120
}
2221
}
22+

aws/_modules/eks/ingress.tf

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "kubernetes_namespace" "current" {
2-
provider = "kubernetes.eks"
2+
provider = kubernetes.eks
33

44
metadata {
55
name = "ingress-kbst-default"
@@ -8,24 +8,24 @@ resource "kubernetes_namespace" "current" {
88
# namespace metadata may change through the manifests
99
# hence ignoring this for the terraform lifecycle
1010
lifecycle {
11-
ignore_changes = ["metadata"]
11+
ignore_changes = [metadata]
1212
}
1313

14-
depends_on = ["aws_eks_cluster.current"]
14+
depends_on = [aws_eks_cluster.current]
1515
}
1616

1717
resource "kubernetes_service" "current" {
18-
provider = "kubernetes.eks"
18+
provider = kubernetes.eks
1919

2020
metadata {
2121
name = "ingress-kbst-default"
22-
namespace = "${kubernetes_namespace.current.metadata.0.name}"
22+
namespace = kubernetes_namespace.current.metadata[0].name
2323
}
2424

2525
spec {
2626
type = "LoadBalancer"
2727

28-
selector {
28+
selector = {
2929
"kubestack.com/ingress-default" = "true"
3030
}
3131

@@ -48,31 +48,33 @@ resource "aws_route53_zone" "current" {
4848
}
4949

5050
locals {
51-
elb_hostname = "${kubernetes_service.current.load_balancer_ingress.0.hostname}"
51+
elb_hostname = kubernetes_service.current.load_balancer_ingress[0].hostname
5252
}
5353

54-
data "aws_elb_hosted_zone_id" "current" {}
54+
data "aws_elb_hosted_zone_id" "current" {
55+
}
5556

5657
resource "aws_route53_record" "host" {
57-
zone_id = "${aws_route53_zone.current.zone_id}"
58-
name = "${var.metadata_fqdn}"
58+
zone_id = aws_route53_zone.current.zone_id
59+
name = var.metadata_fqdn
5960
type = "A"
6061

6162
alias {
62-
name = "${local.elb_hostname}"
63-
zone_id = "${data.aws_elb_hosted_zone_id.current.id}"
63+
name = local.elb_hostname
64+
zone_id = data.aws_elb_hosted_zone_id.current.id
6465
evaluate_target_health = true
6566
}
6667
}
6768

6869
resource "aws_route53_record" "wildcard" {
69-
zone_id = "${aws_route53_zone.current.zone_id}"
70+
zone_id = aws_route53_zone.current.zone_id
7071
name = "*.${var.metadata_fqdn}"
7172
type = "A"
7273

7374
alias {
74-
name = "${local.elb_hostname}"
75-
zone_id = "${data.aws_elb_hosted_zone_id.current.id}"
75+
name = local.elb_hostname
76+
zone_id = data.aws_elb_hosted_zone_id.current.id
7677
evaluate_target_health = true
7778
}
7879
}
80+

aws/_modules/eks/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ locals {
77
"kubernetes.io/cluster/${var.metadata_name}" = "shared"
88
}
99

10-
eks_metadata_tags = "${merge(var.metadata_labels, local.eks_tags)}"
10+
eks_metadata_tags = merge(var.metadata_labels, local.eks_tags)
1111
}
12+

aws/_modules/eks/master.tf

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
resource "aws_eks_cluster" "current" {
2-
name = "${var.metadata_name}"
3-
role_arn = "${aws_iam_role.master.arn}"
2+
name = var.metadata_name
3+
role_arn = aws_iam_role.master.arn
44

55
vpc_config {
6-
security_group_ids = ["${aws_security_group.masters.id}"]
7-
subnet_ids = ["${aws_subnet.current.*.id}"]
6+
security_group_ids = [aws_security_group.masters.id]
7+
subnet_ids = aws_subnet.current.*.id
88
}
99

1010
depends_on = [
11-
"aws_iam_role_policy_attachment.master_cluster_policy",
12-
"aws_iam_role_policy_attachment.master_service_policy",
11+
aws_iam_role_policy_attachment.master_cluster_policy,
12+
aws_iam_role_policy_attachment.master_service_policy,
1313
]
1414
}
15+

aws/_modules/eks/node_pool.tf

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
module "node_pool" {
22
source = "./node_pool"
33

4-
metadata_name = "${var.metadata_name}"
4+
metadata_name = var.metadata_name
55

6-
cluster_name = "${aws_eks_cluster.current.name}"
7-
cluster_endpoint = "${aws_eks_cluster.current.endpoint}"
8-
cluster_version = "${aws_eks_cluster.current.version}"
9-
cluster_ca = "${aws_eks_cluster.current.certificate_authority.0.data}"
6+
cluster_name = aws_eks_cluster.current.name
7+
cluster_endpoint = aws_eks_cluster.current.endpoint
8+
cluster_version = aws_eks_cluster.current.version
9+
cluster_ca = aws_eks_cluster.current.certificate_authority[0].data
1010

11-
iam_instance_profile_name = "${aws_iam_instance_profile.nodes.name}"
11+
iam_instance_profile_name = aws_iam_instance_profile.nodes.name
1212

13-
security_groups = ["${aws_security_group.nodes.id}"]
13+
security_groups = [aws_security_group.nodes.id]
1414

15-
instance_type = "${var.instance_type}"
16-
desired_capacity = "${var.desired_capacity}"
17-
max_size = "${var.max_size}"
18-
min_size = "${var.min_size}"
15+
instance_type = var.instance_type
16+
desired_capacity = var.desired_capacity
17+
max_size = var.max_size
18+
min_size = var.min_size
1919

20-
vpc_zone_identifiers = ["${aws_subnet.current.*.id}"]
20+
vpc_zone_identifiers = aws_subnet.current.*.id
2121
}

aws/_modules/eks/node_pool/main.tf

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,41 @@ locals {
1414
set -o xtrace
1515
/etc/eks/bootstrap.sh --apiserver-endpoint '${var.cluster_endpoint}' --b64-cluster-ca '${var.cluster_ca}' '${var.cluster_name}'
1616
USERDATA
17+
1718
}
1819

1920
resource "aws_launch_configuration" "nodes" {
2021
associate_public_ip_address = true
21-
iam_instance_profile = "${var.iam_instance_profile_name}"
22-
image_id = "${data.aws_ami.eks_node.id}"
23-
instance_type = "${var.instance_type}"
24-
name_prefix = "${var.metadata_name}"
25-
security_groups = ["${var.security_groups}"]
26-
user_data_base64 = "${base64encode(local.node_userdata)}"
22+
iam_instance_profile = var.iam_instance_profile_name
23+
image_id = data.aws_ami.eks_node.id
24+
instance_type = var.instance_type
25+
name_prefix = var.metadata_name
26+
security_groups = var.security_groups
27+
user_data_base64 = base64encode(local.node_userdata)
2728

2829
lifecycle {
2930
create_before_destroy = true
3031
}
3132
}
3233

3334
resource "aws_autoscaling_group" "nodes" {
34-
desired_capacity = "${var.desired_capacity}"
35-
launch_configuration = "${aws_launch_configuration.nodes.id}"
36-
max_size = "${var.max_size}"
37-
min_size = "${var.min_size}"
38-
name = "${var.metadata_name}"
39-
vpc_zone_identifier = ["${var.vpc_zone_identifiers}"]
35+
desired_capacity = var.desired_capacity
36+
launch_configuration = aws_launch_configuration.nodes.id
37+
max_size = var.max_size
38+
min_size = var.min_size
39+
name = var.metadata_name
40+
vpc_zone_identifier = var.vpc_zone_identifiers
4041

4142
tag {
42-
key = "Name"
43-
value = "${var.metadata_name}"
43+
key = "Name"
44+
value = var.metadata_name
4445
propagate_at_launch = true
4546
}
4647

4748
tag {
48-
key = "kubernetes.io/cluster/${var.metadata_name}"
49-
value = "owned"
49+
key = "kubernetes.io/cluster/${var.metadata_name}"
50+
value = "owned"
5051
propagate_at_launch = true
5152
}
5253
}
54+
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,60 @@
11
variable "metadata_name" {
2-
type = "string"
2+
type = string
33
description = "Metadata name to use."
44
}
55

66
variable "cluster_version" {
7-
type = "string"
7+
type = string
88
description = "Kubernetes version of the EKS cluster."
99
}
1010

1111
variable "cluster_endpoint" {
12-
type = "string"
12+
type = string
1313
description = "Kubernetes API endpoint of the EKS cluster."
1414
}
1515

1616
variable "cluster_ca" {
17-
type = "string"
17+
type = string
1818
description = "Certificate authority of the EKS cluster."
1919
}
2020

2121
variable "cluster_name" {
22-
type = "string"
22+
type = string
2323
description = "Cluster name of the EKS cluster."
2424
}
2525

2626
variable "iam_instance_profile_name" {
27-
type = "string"
27+
type = string
2828
description = "IAM instance profile to use for nodes."
2929
}
3030

3131
variable "instance_type" {
32-
type = "string"
32+
type = string
3333
description = "AWS instance type to use for nodes."
3434
}
3535

3636
variable "security_groups" {
37-
type = "list"
37+
type = list(string)
3838
description = "List of security group IDs to use for nodes."
3939
}
4040

4141
variable "desired_capacity" {
42-
type = "string"
42+
type = string
4343
description = "Desired number of worker nodes."
4444
}
4545

4646
variable "max_size" {
47-
type = "string"
47+
type = string
4848
description = "Maximum number of worker nodes."
4949
}
5050

5151
variable "min_size" {
52-
type = "string"
52+
type = string
5353
description = "Minimum number of worker nodes."
5454
}
5555

5656
variable "vpc_zone_identifiers" {
57-
type = "list"
57+
type = list(string)
5858
description = "List of VPC subnet IDs to use for nodes."
5959
}
60+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
terraform {
3+
required_version = ">= 0.12"
4+
}

aws/_modules/eks/outputs.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
output "ingress_zone_name_servers" {
2-
value = "${aws_route53_zone.current.name_servers}"
2+
value = aws_route53_zone.current.name_servers
33
description = "Nameservers of the cluster's managed zone."
44
}
5+

aws/_modules/eks/provider.tf

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
1-
data "aws_caller_identity" "current" {}
1+
data "aws_caller_identity" "current" {
2+
}
23

34
data "aws_arn" "current" {
4-
arn = "${data.aws_caller_identity.current.arn}"
5+
arn = data.aws_caller_identity.current.arn
56
}
67

78
locals {
8-
resource_split = "${split("/", data.aws_arn.current.resource)}"
9-
caller_id_arn_type = "${replace(element(local.resource_split, 0), "assumed-role", "role")}"
10-
caller_id_name = "${element(local.resource_split, 1)}"
9+
resource_split = split("/", data.aws_arn.current.resource)
10+
caller_id_arn_type = replace(element(local.resource_split, 0), "assumed-role", "role")
11+
caller_id_name = element(local.resource_split, 1)
1112

1213
caller_id_arn = "arn:aws:iam::${data.aws_arn.current.account}:${local.caller_id_arn_type}/${local.caller_id_name}"
1314
}
1415

1516
data "external" "aws_iam_authenticator" {
1617
program = ["sh", "${path.module}/provider_authenticator.sh"]
1718

18-
query {
19-
cluster_name = "${aws_eks_cluster.current.name}"
20-
caller_id_arn = "${local.caller_id_arn}"
21-
caller_id_arn_type = "${local.caller_id_arn_type}"
19+
query = {
20+
cluster_name = aws_eks_cluster.current.name
21+
caller_id_arn = local.caller_id_arn
22+
caller_id_arn_type = local.caller_id_arn_type
2223
}
2324
}
2425

@@ -27,8 +28,9 @@ provider "kubernetes" {
2728

2829
load_config_file = false
2930

30-
host = "${aws_eks_cluster.current.endpoint}"
31-
cluster_ca_certificate = "${base64decode(aws_eks_cluster.current.certificate_authority.0.data)}"
31+
host = aws_eks_cluster.current.endpoint
32+
cluster_ca_certificate = base64decode(aws_eks_cluster.current.certificate_authority[0].data)
3233

33-
token = "${data.external.aws_iam_authenticator.result["token"]}"
34+
token = data.external.aws_iam_authenticator.result["token"]
3435
}
36+

0 commit comments

Comments
 (0)