-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhcloud.tf
131 lines (113 loc) · 3.74 KB
/
hcloud.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
locals {
variables_hcloud_dev = {
"HCLOUD_TOKEN" = {
value = var.hcloud_token_dev
category = "env"
description = "The token used to authenticate with Hetzner Cloud"
sensitive = true
}
}
variables_hcloud_stage = {
"HCLOUD_TOKEN" = {
value = var.hcloud_token_stage
category = "env"
description = "The token used to authenticate with Hetzner Cloud"
sensitive = true
}
}
variables_hcloud_prod = {
"HCLOUD_TOKEN" = {
value = var.hcloud_token_prod
category = "env"
description = "The token used to authenticate with Hetzner Cloud"
sensitive = true
}
}
workspaces_hcloud = {
"hcloud-dev" = {
allow_destroy_plan = true
terraform_version = null
tag_names = ["hcloud", "dev"]
identifier = null
branch = null
}
"hcloud-stage" = {
allow_destroy_plan = false
terraform_version = "~> 1.3.2"
tag_names = ["hcloud", "stage"]
identifier = "dhoppeIT/terraform-hcloud-config"
branch = "develop"
}
"hcloud-prod" = {
allow_destroy_plan = false
terraform_version = "1.3.2"
tag_names = ["hcloud", "prod"]
identifier = "dhoppeIT/terraform-hcloud-config"
branch = "main"
}
}
}
module "tfe_workspace_hcloud" {
source = "dhoppeIT/workspace/tfe"
version = "~> 0.2"
for_each = local.workspaces_hcloud
name = each.key
organization = module.tfe_organization.name
description = "Provision of Hetzner Cloud resources"
allow_destroy_plan = each.value["allow_destroy_plan"]
terraform_version = each.value["terraform_version"]
tag_names = each.value["tag_names"]
identifier = each.value["identifier"]
branch = each.value["branch"]
oauth_token_id = module.tfe_oauth_client.oauth_token_id
}
module "tfe_variable_hcloud_dev" {
source = "dhoppeIT/variable/tfe"
version = "~> 0.2"
for_each = local.variables_hcloud_dev
key = each.key
value = each.value["value"]
category = each.value["category"]
description = each.value["description"]
description_suffix = "(managed by Terraform)"
sensitive = each.value["sensitive"]
workspace_id = module.tfe_workspace_hcloud["hcloud-dev"].id
}
module "tfe_variable_hcloud_stage" {
source = "dhoppeIT/variable/tfe"
version = "~> 0.2"
for_each = local.variables_hcloud_stage
key = each.key
value = each.value["value"]
category = each.value["category"]
description = each.value["description"]
description_suffix = "(managed by Terraform)"
sensitive = each.value["sensitive"]
workspace_id = module.tfe_workspace_hcloud["hcloud-stage"].id
}
module "tfe_variable_hcloud_prod" {
source = "dhoppeIT/variable/tfe"
version = "~> 0.2"
for_each = local.variables_hcloud_prod
key = each.key
value = each.value["value"]
category = each.value["category"]
description = each.value["description"]
description_suffix = "(managed by Terraform)"
sensitive = each.value["sensitive"]
workspace_id = module.tfe_workspace_hcloud["hcloud-prod"].id
}
module "tfe_notification_hcloud" {
source = "dhoppeIT/notification/tfe"
version = "~> 0.1"
for_each = local.workspaces_hcloud
name = "slack"
enabled = each.key == "hcloud-dev" ? false : true
destination_type = "slack"
triggers = [
"run:needs_attention",
"run:errored"
]
url = var.slack_webhook_url
workspace_id = module.tfe_workspace_hcloud[each.key].id
}