forked from hassenius/terraform-icp-openstack
-
Notifications
You must be signed in to change notification settings - Fork 3
/
instances.tf
121 lines (105 loc) · 3.34 KB
/
instances.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
##################################
## Create Master VM
##################################
resource "openstack_compute_instance_v2" "icpmaster" {
count = "${var.master["nodes"]}"
name = "${format("${lower(var.instance_name)}-master%01d", count.index + 1) }"
image_id = "${var.image_id}"
image_name = "${var.image_name}"
flavor_name = "${var.master["flavor_name"]}"
key_pair = "${var.keypair_name}"
# In this template the Master performs both the functions of Bastion and ICP Boot.
security_groups = ["default", "icpmaster", "icpbastion", "icpboot"]
network {
name = "${var.network_name}"
}
user_data = <<EOF
#cloud-config
users:
- default
- name: icpdeploy
groups: [ wheel ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
shell: /bin/bash
ssh-authorized-keys:
- ${tls_private_key.deploykey.public_key_openssh}
EOF
}
##################################
## Create Proxy VM
##################################
resource "openstack_compute_instance_v2" "icpproxy" {
count = "${var.master["nodes"]}"
name = "${format("${lower(var.instance_name)}-proxy%01d", count.index + 1) }"
image_id = "${var.image_id}"
image_name = "${var.image_name}"
flavor_name = "${var.proxy["flavor_name"]}"
key_pair = "${var.keypair_name}"
security_groups = ["default", "icpproxy", "icpprovisioning"]
network {
name = "${var.network_name}"
}
user_data = <<EOF
#cloud-config
users:
- default
- name: icpdeploy
groups: [ wheel ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
shell: /bin/bash
ssh-authorized-keys:
- ${tls_private_key.deploykey.public_key_openssh}
EOF
}
##################################
## Create Management VM
##################################
resource "openstack_compute_instance_v2" "icpmanagement" {
count = "${var.management["nodes"]}"
name = "${format("${lower(var.instance_name)}-management%01d", count.index + 1) }"
image_id = "${var.image_id}"
image_name = "${var.image_name}"
flavor_name = "${var.management["flavor_name"]}"
key_pair = "${var.keypair_name}"
security_groups = ["default", "icpmanagement", "icpprovisioning"]
network {
name = "${var.network_name}"
}
user_data = <<EOF
#cloud-config
users:
- default
- name: icpdeploy
groups: [ wheel ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
shell: /bin/bash
ssh-authorized-keys:
- ${tls_private_key.deploykey.public_key_openssh}
EOF
}
##################################
## Create Worker VM
##################################
resource "openstack_compute_instance_v2" "icpworker" {
count = "${var.worker["nodes"]}"
name = "${format("${lower(var.instance_name)}-worker%01d", count.index + 1) }"
image_id = "${var.image_id}"
image_name = "${var.image_name}"
flavor_name = "${var.worker["flavor_name"]}"
key_pair = "${var.keypair_name}"
security_groups = ["default", "icpworker", "icpprovisioning"]
network {
name = "${var.network_name}"
}
user_data = <<EOF
#cloud-config
users:
- default
- name: icpdeploy
groups: [ wheel ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
shell: /bin/bash
ssh-authorized-keys:
- ${tls_private_key.deploykey.public_key_openssh}
EOF
}