-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.tf
93 lines (85 loc) · 3.18 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
resource "time_sleep" "destroy_sks_nodepool" {
depends_on = [module.exoscale_security_group]
destroy_duration = "60s"
}
module "exoscale_security_group" {
source = "./exoscale/security_group"
description = var.description
external_sources = var.external_sources
name = local.name
}
module "security_group_rule" {
source = "./exoscale/security_group_rule"
security_group_id = module.exoscale_security_group.id
}
module "exoscale_sks_nodepool" {
source = "./exoscale/sks_nodepool"
depends_on = [time_sleep.destroy_sks_nodepool]
cluster_id = var.cluster_id
zone = var.zone
name = local.name
size = var.size
instance_type = var.instance_type
description = var.description
deploy_target_id = var.deploy_target_id
instance_prefix = var.instance_prefix
disk_size = var.disk_size
labels = var.labels
taints = var.taints
anti_affinity_group_ids = var.anti_affinity_group_ids
private_network_ids = var.private_network_ids
security_group_ids = [module.exoscale_security_group.id]
}
module "exoscale_nlb" {
source = "./exoscale/nlb"
zone = var.zone
name = local.nlb_name
description = var.nlb_description
labels = var.nlb_labels
}
module "tls_self_signed_cert" {
source = "./tls"
common_name = var.common_name
dns_names = var.dns_names
organization = var.organization
}
module "kubernetes_secret" {
source = "./kubernetes/secret"
name = var.ssl_certificate
data = {
"tls.crt" = module.tls_self_signed_cert.cert_pem
"tls.key" = module.tls_self_signed_cert.private_key_pem
}
type = "kubernetes.io/tls"
}
module "kubectl_manifest" {
source = "./kubectl/manifest"
exoscale_loadbalancer_id = module.exoscale_nlb.id
exoscale_loadbalancer_service_instancepool_id = module.exoscale_sks_nodepool.instance_pool_id
ssl_certificate = var.ssl_certificate
email = var.email
}
/* Currently not in use, handled by ingress controller
module "exoscale_nlb_service" {
depends_on = [module.exoscale_nlb.id, module.exoscale_sks_nodepool.instance_pool_id]
source = "./exoscale/nlb_service"
nlb_id = module.exoscale_nlb.id
zone = var.zone
name = var.name
instance_pool_id = module.exoscale_sks_nodepool.instance_pool_id
port = var.nlb_service_port
target_port = var.nlb_service_target_port
description = var.nlb_service_description
protocol = var.nlb_service_protocol
strategy = var.nlb_service_strategy
healthcheck = {
port = var.nlb_service_healthcheck_port
interval = var.nlb_service_healthcheck_interval
mode = var.nlb_service_healthcheck_mode
retries = var.nlb_service_healthcheck_retries
timeout = var.nlb_service_healthcheck_timeout
tls_sni = var.nlb_service_healthcheck_tls_sni
uri = var.nlb_service_healthcheck_uri
}
}
*/