-
Notifications
You must be signed in to change notification settings - Fork 6
/
variables.tf
220 lines (184 loc) · 6.46 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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
variable "subscriptionId" {
type = string
description = "The ID of the Azure subscription to be used."
}
variable "environment" {
type = string
default = "public"
description = "The Azure environment to be used."
}
variable "location" {
type = string
description = "The Azure location to be used."
}
variable "infrastructurename" {
type = string
description = "The name of the infrastructure. e.g. simphera-infra"
}
variable "tags" {
type = map(any)
description = "The tags to be added to all resources."
default = {}
}
variable "linuxNodeSize" {
type = string
description = "The machine size of the Linux nodes for the regular services"
default = "Standard_D4s_v4"
}
variable "linuxNodeDiskSize" {
type = number
description = "The disk size in GiB of the nodes for the regular services"
default = 200
}
variable "linuxNodeCountMin" {
type = number
description = "The minimum number of Linux nodes for the regular services"
default = 1
}
variable "linuxNodeCountMax" {
type = number
description = "The maximum number of Linux nodes for the regular services"
default = 12
}
variable "linuxExecutionNodeSize" {
type = string
description = "The machine size of the Linux nodes for the job execution"
default = "Standard_D16s_v4"
}
variable "linuxExecutionNodeDiskSize" {
type = number
description = "The disk size in GiB of the nodes for the job execution"
default = 200
}
variable "linuxExecutionNodeCountMin" {
type = number
description = "The minimum number of Linux nodes for the job execution"
default = 0
}
variable "linuxExecutionNodeCountMax" {
type = number
description = "The maximum number of Linux nodes for the job execution"
default = 10
}
variable "linuxExecutionNodeDeallocate" {
type = bool
description = "Configures whether the Linux nodes for the job execution are 'Deallocated (Stopped)' by the cluster auto scaler or 'Deleted'."
default = true
}
variable "gpuNodePool" {
type = bool
description = "Specifies whether an additional node pool for gpu job execution is added to the kubernetes cluster"
default = false
}
variable "gpuNodeCountMin" {
type = number
description = "The minimum number of nodes for gpu job execution"
default = 0
}
variable "gpuNodeCountMax" {
type = number
description = "The maximum number of nodes for gpu job execution"
default = 12
}
variable "gpuNodeSize" {
type = string
description = "The machine size of the nodes for the gpu job execution"
default = "Standard_NC16as_T4_v3"
}
variable "gpuNodeDiskSize" {
type = number
description = "The disk size in GiB of the gpu nodes"
default = 200
}
variable "gpuNodeDeallocate" {
type = bool
description = "Configures whether the nodes for the gpu job execution are 'Deallocated (Stopped)' by the cluster auto scaler or 'Deleted'."
default = true
}
variable "ssh_public_key_path" {
type = string
description = "Path to the public SSH key to be used for the kubernetes nodes."
default = "shared-ssh-key/ssh.pub"
}
variable "licenseServer" {
type = bool
description = "Specifies whether a VM for the dSPACE Installation Manager will be deployed."
default = false
}
variable "licenseServerIaaSAntimalware" {
type = bool
description = "Specifies whether a IaaSAntimalware extension will be installed on license server VM. Depends on licenseServer variable."
default = true
}
variable "licenseServerMicrosoftMonitoringAgent" {
type = bool
description = "Specifies whether a MicrosoftMonitoringAgent extension will be installed on license server VM. Depends on licenseServer, logAnalyticsWorkspaceName and logAnalyticsWorkspaceResourceGroupName variables."
default = true
}
variable "licenseServerMicrosoftGuestConfiguration" {
type = bool
description = "Specifies whether a Microsoft Guest configuration extension will be installed on license server VM. Depends on licenseServer variable."
default = true
}
variable "logAnalyticsWorkspaceName" {
type = string
description = "The name of the Log Analytics Workspace to be used. Use empty string to disable usage of Log Analytics."
default = ""
}
variable "logAnalyticsWorkspaceResourceGroupName" {
type = string
description = "The name of the resource group of the Log Analytics Workspace to be used."
default = ""
}
variable "kubernetesVersion" {
type = string
description = "The version of the AKS cluster."
default = "1.30.4"
}
variable "kubernetesTier" {
type = string
description = "The SKU Tier that should be used for this Kubernetes Cluster."
default = "Free"
}
variable "keyVaultPurgeProtection" {
type = bool
description = "Specifies whether the Key vault purge protection is enabled."
default = true
}
variable "keyVaultAuthorizedIpRanges" {
type = set(string)
description = "List of authorized IP address ranges that are granted access to the Key Vault, e.g. [\"198.51.100.0/24\"]"
default = []
}
variable "simpheraInstances" {
type = map(object({
name = string
minioAccountReplicationType = string
postgresqlVersion = string
postgresqlSkuName = string
postgresqlKeycloakDbEnable = bool
postgresqlStorage = number
postgresqlGeoBackup = bool
backupRetention = number
}))
description = "A list containing the individual SIMPHERA instances, such as 'staging' and 'production'."
}
variable "apiServerAuthorizedIpRanges" {
type = set(string)
description = "List of authorized IP address ranges that are granted access to the Kubernetes API server, e.g. [\"198.51.100.0/24\"]"
default = null
}
variable "automaticChannelUpgrade" {
type = string
description = "The upgrade channel for the k8s cluster. POssible values are patch, rapid, node-image and stable"
default = null
}
variable "nodeOsChannelUpgrade" {
type = string
description = "The upgrade channel for the k8s cluster's nodes os iamges."
default = "None"
validation {
condition = contains(["Unmanaged", "SecurityPatch", "NodeImage", "None"], var.nodeOsChannelUpgrade)
error_message = "Valid values for var: automaticChannelUpgrade are (Unmanaged, SecurityPatch, NodeImage,None)."
}
}