-
Notifications
You must be signed in to change notification settings - Fork 1
/
variables.tf
150 lines (138 loc) · 4.17 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
#------------------------------------------------------------------------------
# Copyright (c) 2022 Infiot Inc.
# All rights reserved.
#------------------------------------------------------------------------------
##################################
## Profile and Region Variables ##
##################################
variable "gcp_profile" {
description = "GCP Config Profile"
type = object({
project_id = string
region = optional(string, "us-west2")
ssh_key = optional(string, "")
})
}
###############################
## GCP VPC Network Variables ##
###############################
variable "gcp_network_config" {
description = "GCP VPC Details"
type = object({
ge1 = object({
vpc_cidr = optional(string)
vpc_name = optional(string)
overlay = optional(string, "public")
})
ge2 = optional(object({
vpc_cidr = optional(string)
vpc_name = optional(string)
overlay = optional(string)
}), null)
ge3 = optional(object({
vpc_cidr = optional(string)
vpc_name = optional(string)
overlay = optional(string)
}), null)
ge4 = optional(object({
vpc_cidr = optional(string)
vpc_name = optional(string)
overlay = optional(string)
}), null)
vpcs = optional(any)
subnets = optional(any)
})
}
###########################
## GCP Compute Variables ##
###########################
variable "gcp_compute" {
description = "GCP Instance Config"
type = object({
instance_type = string
image_id = optional(string, "projects/engineering-199721/global/images/infiot-edge")
primary_zone = optional(string)
secondary_zone = optional(string)
})
default = {
instance_type = "n1-standard-4"
}
}
variable "clients" {
description = "Optional Client / Host VPC configuration"
type = object({
create_clients = optional(bool, false) # Blob to deploy optional Client in a new VPC for end to end testing.
image_id = optional(string, "projects/ubuntu-os-pro-cloud/global/images/ubuntu-pro-1804-bionic-v20221018")
vpc_cidr = optional(string, "192.168.255.0/28")
instance_type = optional(string, "n1-standard-2")
password = optional(string, "infiot")
ports = optional(list(string), ["3389", "22"])
})
default = {
create_clients = false
}
}
#######################
## GCP NCC Variables ##
#######################
variable "gcp_ncc_config" {
description = "GCP NCC Details"
type = object({
create_cloud_router = optional(bool, true)
cloud_router_asn = string
cloud_rtr_custom_subnets = optional(list(string), [])
cloud_router_iface1_ip = optional(string, "")
cloud_router_iface2_ip = optional(string, "")
})
}
###########################
## Netskope GW Variables ##
###########################
variable "netskope_tenant" {
description = "Netskope Tenant Details"
type = object({
tenant_id = string
tenant_url = string
tenant_token = string
tenant_bgp_asn = optional(string, "400")
})
}
variable "netskope_gateway_config" {
description = "Netskope Gateway Details"
type = object({
ha_enabled = optional(bool, false)
gateway_password = optional(string, "infiot")
gateway_policy = optional(string, "Multicloud-GCP")
gateway_name = string
gateway_model = optional(string, "iXVirtual")
gateway_role = optional(string, "spoke")
dns_primary = optional(string, "8.8.8.8")
dns_secondary = optional(string, "8.8.4.4")
})
}
variable "primary_gw_data" { # This will be computed during run
type = object({
id = optional(string, "")
token = optional(string, "")
userdata = optional(string, "")
bgp_metric = optional(string, "")
public_ips = optional(any)
interfaces = optional(any)
})
default = {
bgp_metric = "10"
}
}
variable "secondary_gw_data" { # This will be computed during run
type = object({
id = optional(string, "")
token = optional(string, "")
userdata = optional(string, "")
bgp_metric = optional(string, "")
public_ips = optional(any)
interfaces = optional(any)
})
default = {
bgp_metric = "20"
}
}