-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.tf
75 lines (66 loc) · 2.33 KB
/
main.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
# Create uhost instance
resource "ucloud_instance" "instances" {
image_id = var.image_id
availability_zone = var.availability_zone
instance_type = var.instance_type
root_password = var.password
name = var.instance_count < 2 ? var.instance_name : format(
"%s-%s",
var.instance_name,
format(var.count_format, count.index + 1),
)
charge_type = var.charge_type
duration = var.duration
tag = var.tag
security_group = var.security_group
vpc_id = var.vpc_id
subnet_id = var.subnet_id
isolation_group = var.isolation_group
data_disk_size = var.local_disk_size
data_disk_type = var.local_disk_type
boot_disk_type = var.boot_disk_type
count = var.instance_count
}
# Create eip
resource "ucloud_eip" "eips" {
bandwidth = var.eip_bandwidth
internet_type = var.eip_internet_type
charge_type = var.charge_type
charge_mode = var.eip_charge_mode
duration = var.duration
name = var.eip_count_per_instance < 2 ? var.eip_name : format(
"%s-%s",
var.eip_name,
format(var.count_format, count.index + 1),
)
tag = var.tag
count = var.eip_count_per_instance * var.instance_count
}
# Bind eip to instance
resource "ucloud_eip_association" "default" {
resource_id = ucloud_instance.instances[count.index % var.instance_count].id
eip_id = ucloud_eip.eips[count.index].id
count = var.instance_count > 0 && var.eip_count_per_instance > 0 ? var.eip_count_per_instance * var.instance_count : 0
}
# Create cloud disk
resource "ucloud_disk" "disks" {
availability_zone = var.availability_zone
name = var.disk_count_per_instance < 2 ? var.disk_name : format(
"%s-%s",
var.disk_name,
format(var.count_format, count.index + 1),
)
disk_size = var.disk_size
disk_type = var.disk_type
charge_type = var.charge_type
duration = var.duration
tag = var.tag
count = var.disk_count_per_instance * var.instance_count
}
# Attach disk to instance
resource "ucloud_disk_attachment" "default" {
availability_zone = var.availability_zone
instance_id = ucloud_instance.instances[count.index % var.instance_count].id
disk_id = ucloud_disk.disks[count.index].id
count = var.disk_count_per_instance > 0 && var.instance_count > 0 ? var.disk_count_per_instance * var.instance_count : 0
}