-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtemplates.tf
158 lines (127 loc) · 5.51 KB
/
templates.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#
# Manifest Templates
#
resource "template_file" "kube-apiserver" {
template = "${file("manifests/kube-apiserver.yaml")}"
vars = {
KUBERNETES_VERSION = "${var.kubernetes_version}"
ETCD_SERVERS = "http://${module.aws_elb_etcd.aws_elb_elb_dns_name}:2379"
SERVICE_CLUSTER_IP_RANGE = "${var.service_cluster_ip_range}"
}
}
resource "template_file" "kube-controller-manager" {
template = "${file("manifests/kube-controller-manager.yaml")}"
vars = {
KUBERNETES_VERSION = "${var.kubernetes_version}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
}
}
resource "template_file" "kube-podmaster" {
template = "${file("manifests/kube-podmaster.yaml")}"
vars = {
ETCD_SERVERS = "http://${module.aws_elb_etcd.aws_elb_elb_dns_name}:2379"
}
}
resource "template_file" "kube-proxy" {
template = "${file("manifests/kube-proxy.yaml")}"
vars = {
KUBERNETES_VERSION = "${var.kubernetes_version}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
}
}
resource "template_file" "kube-scheduler" {
template = "${file("manifests/kube-scheduler.yaml")}"
vars = {
KUBERNETES_VERSION = "${var.kubernetes_version}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
}
}
#
# Add-on Templates
#
resource "template_file" "skydns-rc" {
template = "${file("addons/kube-skydns-rc.yaml")}"
vars = {
DNS_REPLICAS = "${var.kubernetes_skydns_replica_count}"
DNS_DOMAIN = "${var.cluster_domain}" # same value with CLUSTER_DOMAIN, just here to keep compatibility with upstream
CLUSTER_DOMAIN = "${var.cluster_domain}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
}
}
resource "template_file" "skydns-svc" {
template = "${file("addons/kube-skydns-svc.yaml")}"
vars = {
CLUSTER_DNS_ENDPOINT = "${var.cluster_dns_endpoint}"
DNS_SERVER_IP = "${var.cluster_dns_endpoint}" # again, for upstream compatibility
}
}
#
# Unit Templates
#
resource "template_file" "instance-env-file" {
template = "${file("units/instance.env.tpl")}"
vars = {
INSTANCE_ROLE = "master"
ETCD_ELB_DNS_NAME = "${module.aws_elb_etcd.aws_elb_elb_dns_name}"
}
}
resource "template_file" "kubernetes-master-env-file" {
template = "${file("units/kubernetes.master.env.tpl")}"
vars = {
KUBERNETES_VERSION = "${var.kubernetes_version}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
CLUSTER_DNS_ENDPOINT = "${var.cluster_dns_endpoint}"
CLUSTER_DOMAIN = "${var.cluster_domain}"
}
}
resource "template_file" "kubernetes-node-env-file" {
template = "${file("units/kubernetes.node.env.tpl")}"
vars = {
KUBERNETES_VERSION = "${var.kubernetes_version}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
CLUSTER_DNS_ENDPOINT = "${var.cluster_dns_endpoint}"
CLUSTER_DOMAIN = "${var.cluster_domain}"
ETCD_ELB_DNS_NAME = "${module.aws_elb_etcd.aws_elb_elb_dns_name}"
KUBERNETES_PODS_IP_RANGE = "${var.kubernetes_pods_ip_range}"
KUBERNETES_FLANNEL_BACKEND = "${var.kubernetes_flannel_backend}"
}
}
#
# Main Templates
#
resource "template_file" "kube_master_cloud_init_file" {
template = "${file("cloud_init/kube_masters_coreos.yaml")}"
vars = {
REGION = "${var.region}"
KUBERNETES_VERSION = "${var.kubernetes_version}"
ETCD_ELB_DNS_NAME = "${module.aws_elb_etcd.aws_elb_elb_dns_name}"
KUBERNETES_PODS_IP_RANGE = "${var.kubernetes_pods_ip_range}"
KUBERNETES_FLANNEL_BACKEND = "${var.kubernetes_flannel_backend}"
KUBE_APISERVER_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kube-apiserver.rendered))}"
KUBE_CONTROLLER_MANAGER_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kube-controller-manager.rendered))}"
KUBE_PODMASTER_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kube-podmaster.rendered))}"
KUBE_PROXY_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kube-proxy.rendered))}"
KUBE_SCHEDULER_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kube-scheduler.rendered))}"
KUBE_SKYDNS_RC_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.skydns-rc.rendered))}"
KUBE_SKYDNS_SVC_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.skydns-svc.rendered))}"
KUBERNETES_ENV_FILE_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kubernetes-master-env-file.rendered))}"
INSTANCE_ENV_FILE_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.instance-env-file.rendered))}"
}
}
#
# Node Templates
#
resource "template_file" "kube_node_cloud_init_file" {
template = "${file("cloud_init/kube_nodes_coreos.yaml")}"
vars = {
REGION = "${var.region}"
KUBERNETES_VERSION = "${var.kubernetes_version}"
KUBE_API_SERVER_ENDPOINT = "http://${module.aws_elb_kube_masters.aws_elb_elb_dns_name}:8080"
KUBERNETES_PODS_IP_RANGE = "${var.kubernetes_pods_ip_range}"
KUBERNETES_FLANNEL_BACKEND = "${var.kubernetes_flannel_backend}"
CLUSTER_DNS_ENDPOINT = "${var.cluster_dns_endpoint}"
ETCD_ELB_DNS_NAME = "${module.aws_elb_etcd.aws_elb_elb_dns_name}"
KUBERNETES_ENV_FILE_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.kubernetes-node-env-file.rendered))}"
INSTANCE_ENV_FILE_TEMPLATE_CONTENT = "${base64encode(gzip(template_file.instance-env-file.rendered))}"
}
}