-
Notifications
You must be signed in to change notification settings - Fork 2
/
variables.tf
145 lines (138 loc) · 4.42 KB
/
variables.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
## Launchspec Variables ##
variable "name" {
type = string
description = "The Ocean Launch Specification name."
}
variable "ocean_id" {
type = string
description = "The Ocean cluster ID"
}
variable "user_data" {
type = string
default = null
description = "Base64-encoded MIME user data to make available to the instances."
}
variable "image_id" {
type = string
default = null
description = "ID of the image used to launch the instances."
}
variable "iam_instance_profile" {
type = string
default = null
description = "The ARN or name of an IAM instance profile to associate with launched instances."
}
variable "security_group_ids" {
type = list(string)
default = null
description = "One or more security group ids"
}
variable "tags" {
type = map(string)
default = null
description = "Optionally adds tags to instances launched in an Ocean cluster."
}
variable "instance_types" {
type = list(string)
default = null
description = "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster."
}
variable "restrict_scale_down" {
type = bool
default = null
description = "When set to “True”, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty."
}
variable "subnet_ids" {
type = list(string)
default = null
description = "One or more security group ids"
}
variable "http_tokens" {
type = string
default = null
description = "Determines if a signed token is required or not. Valid values: optional or required."
}
variable "http_put_response_hop_limit" {
type = number
default = null
description = "An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel."
}
###################
## Block Device Mappings ##
variable "block_device_mappings" {
type = object({
device_name = string
delete_on_termination = bool
encrypted = bool
iops = number
kms_key_id = string
snapshot_id = string
volume_type = string
volume_size = number
throughput = number
no_device = string
})
default = null
description = "Block Device Mapping Object"
}
variable "dynamic_volume_size" {
type = object({
base_size = number
resource = string
size_per_resource_unit = number
})
default = null
description = "dynamic_volume_size Object"
}
##################
## Attributes ##
variable "attributes" {
type = map(string)
default = null
description = "Optionally adds labels to instances launched in an Ocean cluster."
}
## Headroom ##
variable "cpu_per_unit" {
type = number
default = null
description = "Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU."
}
variable "memory_per_unit" {
type = number
default = null
description = "Optionally configure the amount of memory (MiB) to allocate for each headroom unit."
}
variable "num_of_units" {
type = number
default = 0
description = "The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU."
}
##################
## Scheduled Task ##
variable "scheduling_task" {
type = object({
is_enabled = bool
cron_expression = list(string)
task_type = string
num_of_units = number
cpu_per_unit = number
memory_per_unit = number
})
default = null
description = "Scheduled Task Block"
}
##################
## Strategy ##
variable "spot_percentage" {
type = number
default = null
description = "(Optional- if not using spot_percentege under ocean strategy) When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances."
}
## Images ##
variable "images" {
type = list(object({
image_id = string
}))
default = null
description = "Array of objects (Image object, containing the id of the image used to launch instances.)"
}