archlinux.tf 41.6 KB
Newer Older
1
terraform {
2
  backend "pg" {
3
    schema_name = "terraform_remote_state_stage1"
4
  }
5
6
}

7
8
9
10
11
12
13
data "external" "vault_hetzner" {
  program = [
    "${path.module}/../misc/get_key.py", "misc/vault_hetzner.yml",
    "hetzner_cloud_api_key",
    "hetzner_dns_api_key",
    "--format", "json"
  ]
14
}
15

16
17
data "hcloud_image" "archlinux" {
  with_selector = "custom_image=archlinux"
18
19
  most_recent   = true
  with_status   = ["available"]
20
21
22
}

provider "hcloud" {
23
24
25
26
27
28
29
  token = data.external.vault_hetzner.result.hetzner_cloud_api_key
}

provider "hetznerdns" {
  apitoken = data.external.vault_hetzner.result.hetzner_dns_api_key
}

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
variable "archlinux_org_cname" {
  type = map(any)
  default = {
    archive                  = { value = "gemini", ttl = null }
    dev                      = { value = "www", ttl = 600 }
    g2kjxsblac7x             = { value = "gv-i5y6mnrelvpfiu.dv.googlehosted.com.", ttl = null }
    git                      = { value = "luna", ttl = null }
    grafana                  = { value = "apollo", ttl = null }
    ipxe                     = { value = "www", ttl = 600 }
    "luna2._domainkey.aur"   = { value = "luna2._domainkey", ttl = null }
    "luna2._domainkey.lists" = { value = "luna2._domainkey", ttl = null }
    mailman                  = { value = "apollo", ttl = null }
    packages                 = { value = "www", ttl = 600 }
    planet                   = { value = "www", ttl = 600 }
    projects                 = { value = "luna", ttl = null }
    repos                    = { value = "gemini", ttl = null }
    rsync                    = { value = "gemini", ttl = null }
    sources                  = { value = "gemini", ttl = null }
    "static.conf"            = { value = "apollo", ttl = null }
    static                   = { value = "apollo", ttl = null }
    status                   = { value = "stats.uptimerobot.com.", ttl = null }
    svn                      = { value = "gemini", ttl = null }
  }
}

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
variable "archlinux_org_gitlab_pages" {
  type = list(object({
    name              = string
    verification_code = string
  }))
  default = [
    {
      name              = "conf"
      verification_code = "60a06a1c02e42b36c3b4919f4d6de6bf"
    },
    {
      name              = "whatcanwedofor",
      verification_code = "b5f8011047c1610ace52e754b568c834"
    }
  ]
}

72
73
resource "hetznerdns_zone" "archlinux" {
  name = "archlinux.org"
74
  ttl  = 86400
75
76
77
78
}

resource "hetznerdns_zone" "pkgbuild" {
  name = "pkgbuild.com"
79
  ttl  = 86400
80
81
82
83
}

resource "hetznerdns_record" "pkgbuild_com_origin_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
84
85
86
  name    = "@"
  value   = "78.46.178.133"
  type    = "A"
87
88
89
90
}

resource "hetznerdns_record" "pkgbuild_com_origin_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
91
92
93
  name    = "@"
  value   = "2a01:4f8:c2c:51e2::1"
  type    = "AAAA"
94
95
96
97
}

resource "hetznerdns_record" "pkgbuild_com_origin_caa" {
  zone_id = hetznerdns_zone.pkgbuild.id
98
99
100
  name    = "@"
  value   = "0 issue \"letsencrypt.org\""
  type    = "CAA"
101
102
103
104
}

resource "hetznerdns_record" "pkgbuild_com_origin_mx" {
  zone_id = hetznerdns_zone.pkgbuild.id
105
106
107
  name    = "@"
  value   = "0 ."
  type    = "MX"
108
109
110
111
}

resource "hetznerdns_record" "pkgbuild_com_origin_ns3" {
  zone_id = hetznerdns_zone.pkgbuild.id
112
113
114
  name    = "@"
  value   = "robotns3.second-ns.com."
  type    = "NS"
115
116
117
118
}

resource "hetznerdns_record" "pkgbuild_com_origin_ns2" {
  zone_id = hetznerdns_zone.pkgbuild.id
119
120
121
  name    = "@"
  value   = "robotns2.second-ns.de."
  type    = "NS"
122
123
124
125
}

resource "hetznerdns_record" "pkgbuild_com_origin_ns1" {
  zone_id = hetznerdns_zone.pkgbuild.id
126
127
128
  name    = "@"
  value   = "ns1.first-ns.de."
  type    = "NS"
129
130
}

131
132
133
134
135
136
137
138
139
# TODO: Commented currently as we have no idea how to handle SOA stuff with Terraform:
# https://github.com/timohirt/terraform-provider-hetznerdns/issues/20
# https://gitlab.archlinux.org/archlinux/infrastructure/-/merge_requests/62#note_4040
# resource "hetznerdns_record" "pkgbuild_com_origin_soa" {
#   zone_id = hetznerdns_zone.pkgbuild.id
#   name = "@"
#   value = "ns1.first-ns.de. dns.hetzner.com. 2020090604 14400 1800 604800 86400"
#   type = "SOA"
# }
140
141
142

resource "hetznerdns_record" "pkgbuild_com_origin_txt" {
  zone_id = hetznerdns_zone.pkgbuild.id
143
144
145
  name    = "@"
  value   = "\"v=spf1 -all\""
  type    = "TXT"
146
147
148
149
}

resource "hetznerdns_record" "pkgbuild_com_wildcard_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
150
151
152
  name    = "*"
  value   = "78.46.178.133"
  type    = "A"
153
154
155
156
}

resource "hetznerdns_record" "pkgbuild_com_wildcard_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
157
158
159
  name    = "*"
  value   = "2a01:4f8:c2c:51e2::1"
  type    = "AAAA"
160
161
162
163
}

resource "hetznerdns_record" "pkgbuild_com_mirror_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
164
165
166
  name    = "mirror"
  value   = "78.46.209.220"
  type    = "A"
167
168
169
170
}

resource "hetznerdns_record" "pkgbuild_com_mirror_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
171
172
173
  name    = "mirror"
  value   = "2a01:4f8:c2c:c62f::1"
  type    = "AAAA"
174
175
}

Jelle van der Waa's avatar
Jelle van der Waa committed
176
177
178
179
180
181
182
resource "hetznerdns_record" "pkgbuild_com_america_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "america.mirror"
  value   = "143.244.34.62"
  type    = "A"
}

183
184
185
186
187
188
189
resource "hetznerdns_record" "pkgbuild_com_america_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "america.mirror"
  value   = "2a02:6ea0:cc0e::2"
  type    = "AAAA"
}

190
191
192
193
194
195
196
197
198
199
200
201
202
203
resource "hetznerdns_record" "pkgbuild_com_america_archive_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "america.archive"
  value   = "143.244.34.62"
  type    = "A"
}

resource "hetznerdns_record" "pkgbuild_com_america_archive_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "america.archive"
  value   = "2a02:6ea0:cc0e::2"
  type    = "AAAA"
}

Jelle van der Waa's avatar
Jelle van der Waa committed
204
205
206
207
208
209
210
resource "hetznerdns_record" "pkgbuild_com_asia_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "asia.mirror"
  value   = "84.17.57.98"
  type    = "A"
}

211
212
213
214
215
216
217
resource "hetznerdns_record" "pkgbuild_com_asia_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "asia.mirror"
  value   = "2a02:6ea0:d605::2"
  type    = "AAAA"
}

218
219
220
221
222
223
224
225
226
227
228
229
230
231
resource "hetznerdns_record" "pkgbuild_com_asia_archive_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "asia.archive"
  value   = "84.17.57.98"
  type    = "A"
}

resource "hetznerdns_record" "pkgbuild_com_asia_archive_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "asia.archive"
  value   = "2a02:6ea0:d605::2"
  type    = "AAAA"
}

Jelle van der Waa's avatar
Jelle van der Waa committed
232
233
234
235
236
237
238
resource "hetznerdns_record" "pkgbuild_com_europe_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "europe.mirror"
  value   = "89.187.191.12"
  type    = "A"
}

239
240
241
242
243
244
245
resource "hetznerdns_record" "pkgbuild_com_europe_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "europe.mirror"
  value   = "2a02:6ea0:c237::2"
  type    = "AAAA"
}

246
247
248
249
250
251
252
253
254
resource "hetznerdns_record" "pkgbuild_com_europe_archive_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "europe.archive"
  value   = "89.187.191.12"
  type    = "A"
}

resource "hetznerdns_record" "pkgbuild_com_europe_archive_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
255
  name    = "europe.archive"
256
257
258
259
  value   = "2a02:6ea0:c237::2"
  type    = "AAAA"
}

260
resource "hetznerdns_record" "pkgbuild_com_repro1_a" {
261
  zone_id = hetznerdns_zone.pkgbuild.id
262
  name    = "repro1"
263
264
  value   = "147.75.81.79"
  type    = "A"
265
266
}

267
resource "hetznerdns_record" "pkgbuild_com_repro1_aaaa" {
268
  zone_id = hetznerdns_zone.pkgbuild.id
269
  name    = "repro1"
270
271
  value   = "2604:1380:2001:4500::1"
  type    = "AAAA"
272
273
}

Jelle van der Waa's avatar
Jelle van der Waa committed
274
275
276
277
278
279
280
resource "hetznerdns_record" "pkgbuild_com_repro2_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "repro2"
  value   = "212.102.38.209"
  type    = "A"
}

281
282
283
284
285
286
287
resource "hetznerdns_record" "pkgbuild_com_repro2_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
  name    = "repro2"
  value   = "2a02:6ea0:c238::2"
  type    = "AAAA"
}

288
289
resource "hetznerdns_record" "pkgbuild_com_www_a" {
  zone_id = hetznerdns_zone.pkgbuild.id
290
291
292
  name    = "www"
  value   = "78.46.178.133"
  type    = "A"
293
294
295
296
}

resource "hetznerdns_record" "pkgbuild_com_www_aaaa" {
  zone_id = hetznerdns_zone.pkgbuild.id
297
298
299
  name    = "www"
  value   = "2a01:4f8:c2c:51e2::1"
  type    = "AAAA"
300
301
}

302
303
304
305
306
307
308
309
310
311
312
resource "hetznerdns_record" "archlinux_org_cname" {
  for_each = var.archlinux_org_cname

  zone_id = hetznerdns_zone.archlinux.id
  name    = each.key
  ttl     = each.value.ttl
  value   = each.value.value
  type    = "CNAME"
}


313
314
resource "hetznerdns_record" "archlinux_org_origin_a" {
  zone_id = hetznerdns_zone.archlinux.id
315
  name    = "@"
316
  ttl     = 600
317
  value   = hcloud_server.archlinux.ipv4_address
318
  type    = "A"
319
320
321
322
}

resource "hetznerdns_record" "archlinux_org_origin_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
323
  name    = "@"
324
  ttl     = 600
325
  value   = hcloud_server.archlinux.ipv6_address
326
  type    = "AAAA"
327
328
329
330
}

resource "hetznerdns_record" "archlinux_org_origin_caa" {
  zone_id = hetznerdns_zone.archlinux.id
331
332
333
  name    = "@"
  value   = "0 issue \"letsencrypt.org\""
  type    = "CAA"
334
335
336
337
}

resource "hetznerdns_record" "archlinux_org_origin_ns3" {
  zone_id = hetznerdns_zone.archlinux.id
338
339
340
  name    = "@"
  value   = "robotns3.second-ns.com."
  type    = "NS"
341
342
343
344
}

resource "hetznerdns_record" "archlinux_org_origin_ns2" {
  zone_id = hetznerdns_zone.archlinux.id
345
346
347
  name    = "@"
  value   = "robotns2.second-ns.de."
  type    = "NS"
348
349
350
351
}

resource "hetznerdns_record" "archlinux_org_origin_ns1" {
  zone_id = hetznerdns_zone.archlinux.id
352
353
354
  name    = "@"
  value   = "ns1.first-ns.de."
  type    = "NS"
355
356
}

357
358
359
360
361
362
363
364
365
# TODO: Commented currently as we have no idea how to handle SOA stuff with Terraform:
# https://github.com/timohirt/terraform-provider-hetznerdns/issues/20
# https://gitlab.archlinux.org/archlinux/infrastructure/-/merge_requests/62#note_4040
#; resource "hetznerdns_record" "archlinux_org_origin_soa" {
#   zone_id = hetznerdns_zone.archlinux.id
#   name = "@"
#   value = "ns1.first-ns.de. ibiru.archlinux.org. 2020072502 7200 900 1209600 86400"
#   type = "SOA"
# }
366
367
368

resource "hetznerdns_record" "archlinux_org_origin_apollo_domainkey_txt" {
  zone_id = hetznerdns_zone.archlinux.id
369
  name    = "apollo._domainkey"
370
  ttl     = 600
Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
371
  value   = "\"v=DKIM1; k=rsa; s=email; \" \"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvZIf8SbjC53RDCbMjTEpo0FCuMSShlKWdwWjY1J+RpT3CL/21z4nXqVBYF1orkUScH8Nlabocraqk8lmpNBlKCUV77lk9mRsLkWhg+XjhvQXL1xfH8zAg1CntEZuaIMLUQ+5Gkw6BlO1qDRkmXS9UtV8Jt1rhjRtSrgN5lhztOCbQLRAtzKty/nMeClqsfT3nL2hbDeh+b/rYc\" \"l2veZAqiGcR2/0bnKlt+Nb5lOBY3oZiYLmZ5g+l9UXVjGUq9jGAooIWpQvuRPmin3RX31kXfr1A+mDBEexiOL1dDST2Zx7i9puXbqYH0u0IxBpweHCO5UqWx52mdXBuhs+DCo/JoZAHU/6eRzK+Sps50LgLFSzJJNfGXk5PUKdww2GHbkK3mCYfoFCpB0SADzl42+1w6YZk1yXoPdOHtChfQpCgjtddf1W8Q09pYO1/bn4l0erdFQsWb1K\" \"4wEVOCn+hHWbV42V+J3TyGxQ4AM8KQ1OPvUEabyTyqcO4evBaH7/S2wA91Z9QDjTbKmlNovs5zoxuOM/mPGPUuQMvhjoAP+rg4AwJ3Xwd3GgUcqQflcokayUYdp7F3aKp1NWAR9ibseU/XBYsSF8Ucjqzf4DJFUfrgjHUr97st7g4HUCyXrQO4tyE0ytiX8OFjjIszWLmF+B7Vup9O7k+dNz2Vj2Vyzkq1UCAwEAAQ==\" "
372
  type    = "TXT"
373
374
375
376
}

resource "hetznerdns_record" "archlinux_org_accounts_a" {
  zone_id = hetznerdns_zone.archlinux.id
377
378
379
  name    = "accounts"
  value   = hcloud_server.accounts.ipv4_address
  type    = "A"
380
381
382
383
}

resource "hetznerdns_record" "archlinux_org_accounts_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
384
385
386
  name    = "accounts"
  value   = hcloud_server.accounts.ipv6_address
  type    = "AAAA"
387
388
389
390
}

resource "hetznerdns_record" "archlinux_org_apollo_a" {
  zone_id = hetznerdns_zone.archlinux.id
391
  name    = "apollo"
392
  ttl     = 600
393
394
  value   = "138.201.81.199"
  type    = "A"
395
396
397
398
}

resource "hetznerdns_record" "archlinux_org_apollo_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
399
  name    = "apollo"
400
  ttl     = 600
401
402
  value   = "2a01:4f8:172:1d86::1"
  type    = "AAAA"
403
404
405
406
}

resource "hetznerdns_record" "archlinux_org_aur_a" {
  zone_id = hetznerdns_zone.archlinux.id
407
408
409
  name    = "aur"
  value   = hcloud_server.aur.ipv4_address
  type    = "A"
410
411
412
413
}

resource "hetznerdns_record" "archlinux_org_aur_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
414
415
416
  name    = "aur"
  value   = hcloud_server.aur.ipv6_address
  type    = "AAAA"
417
418
419
420
}

resource "hetznerdns_record" "archlinux_org_aur_dev_a" {
  zone_id = hetznerdns_zone.archlinux.id
421
422
423
  name    = "aur-dev"
  value   = hcloud_server.aur-dev.ipv4_address
  type    = "A"
424
425
426
427
}

resource "hetznerdns_record" "archlinux_org_aur_dev_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
428
429
430
  name    = "aur-dev"
  value   = hcloud_server.aur-dev.ipv6_address
  type    = "AAAA"
431
432
433
434
}

resource "hetznerdns_record" "archlinux_org_aur4_a" {
  zone_id = hetznerdns_zone.archlinux.id
435
436
437
  name    = "aur4"
  value   = "5.9.250.164"
  type    = "A"
438
439
440
441
}

resource "hetznerdns_record" "archlinux_org_aur4_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
442
443
444
  name    = "aur4"
  value   = "2a01:4f8:160:3033::2"
  type    = "AAAA"
445
446
447
448
}

resource "hetznerdns_record" "archlinux_org_bbs_a" {
  zone_id = hetznerdns_zone.archlinux.id
449
450
451
  name    = "bbs"
  value   = hcloud_server.bbs.ipv4_address
  type    = "A"
452
453
454
455
}

resource "hetznerdns_record" "archlinux_org_bbs_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
456
457
458
  name    = "bbs"
  value   = hcloud_server.bbs.ipv6_address
  type    = "AAAA"
459
460
461
462
}

resource "hetznerdns_record" "archlinux_org_bugs_a" {
  zone_id = hetznerdns_zone.archlinux.id
463
464
465
  name    = "bugs"
  value   = hcloud_server.bugs.ipv4_address
  type    = "A"
466
467
468
469
}

resource "hetznerdns_record" "archlinux_org_bugs_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
470
471
472
  name    = "bugs"
  value   = hcloud_server.bugs.ipv6_address
  type    = "AAAA"
473
474
475
476
}

resource "hetznerdns_record" "archlinux_org_dragon_a" {
  zone_id = hetznerdns_zone.archlinux.id
477
478
479
  name    = "dragon"
  value   = "195.201.167.210"
  type    = "A"
480
481
482
483
}

resource "hetznerdns_record" "archlinux_org_dragon_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
484
485
486
  name    = "dragon"
  value   = "2a01:4f8:13a:102a::2"
  type    = "AAAA"
487
488
489
490
}

resource "hetznerdns_record" "archlinux_org_gemini_a" {
  zone_id = hetznerdns_zone.archlinux.id
491
492
493
  name    = "gemini"
  value   = "49.12.124.107"
  type    = "A"
494
495
496
497
}

resource "hetznerdns_record" "archlinux_org_gemini_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
498
499
500
  name    = "gemini"
  value   = "2a01:4f8:242:5614::2"
  type    = "AAAA"
501
502
503
504
}

resource "hetznerdns_record" "archlinux_org_gitlab_a" {
  zone_id = hetznerdns_zone.archlinux.id
505
506
507
  name    = "gitlab"
  value   = hcloud_server.gitlab.ipv4_address
  type    = "A"
508
509
510
511
}

resource "hetznerdns_record" "archlinux_org_gitlab_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
512
513
514
  name    = "gitlab"
  value   = hcloud_server.gitlab.ipv6_address
  type    = "AAAA"
515
516
517
518
}

resource "hetznerdns_record" "archlinux_org_homedir_a" {
  zone_id = hetznerdns_zone.archlinux.id
519
520
521
  name    = "homedir"
  value   = hcloud_server.homedir.ipv4_address
  type    = "A"
522
523
524
525
}

resource "hetznerdns_record" "archlinux_org_homedir_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
526
527
528
  name    = "homedir"
  value   = hcloud_server.homedir.ipv6_address
  type    = "AAAA"
529
530
531
532
}

resource "hetznerdns_record" "archlinux_org_lists_a" {
  zone_id = hetznerdns_zone.archlinux.id
533
534
535
  name    = "lists"
  value   = "5.9.250.164"
  type    = "A"
536
537
538
539
}

resource "hetznerdns_record" "archlinux_org_lists_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
540
541
542
  name    = "lists"
  value   = "2a01:4f8:160:3033::2"
  type    = "AAAA"
543
544
545
546
}

resource "hetznerdns_record" "archlinux_org_lists_mx" {
  zone_id = hetznerdns_zone.archlinux.id
547
  name    = "lists"
548
  ttl     = 600
549
550
  value   = "10 luna"
  type    = "MX"
551
552
}

553
554
555
556
557
558
559
560
561
resource "hetznerdns_record" "archlinux_org_lists_txt" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "lists"
  ttl     = 600
  # lists.archlinux.org
  value = "\"v=spf1 ip4:5.9.250.164 ip6:2a01:4f8:160:3033::2 ~all\""
  type  = "TXT"
}

562
563
resource "hetznerdns_record" "archlinux_org_luna_a" {
  zone_id = hetznerdns_zone.archlinux.id
564
  name    = "luna"
565
  ttl     = 600
566
567
  value   = "5.9.250.164"
  type    = "A"
568
569
570
571
}

resource "hetznerdns_record" "archlinux_org_luna_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
572
  name    = "luna"
573
  ttl     = 600
574
575
  value   = "2a01:4f8:160:3033::2"
  type    = "AAAA"
576
577
578
579
}

resource "hetznerdns_record" "archlinux_org_luna_txt" {
  zone_id = hetznerdns_zone.archlinux.id
580
  name    = "luna._domainkey"
581
  ttl     = 600
Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
582
  value   = "\"v=DKIM1; k=rsa; s=email; \" \"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvXrAPvtdX8Jrk4zmyk8w9T2zdAJGe7z0+4XHWWiuzH8Zse6S7oXiS9CVaPOsu0TZqHqhuclASU7qh0NXFwWyi2xRPyJOqH2Clu7vHS3j5F4TjURFOp4/EbA0iQu4rbItl4AU11z2pGSEj5SykUsrH+jjdqzNqAG9d4lNvkTs6RRzPF3KhhY+XljaeysEyDSS4ap4E0DYcduSIX\" \"oD1exFv4SEbXThD9PC1u81w4xusnmwmfHtR7aazeqPDP+S+FqDRy2woCaQb/VMbqMYVuWTVKJ2RxFyTKredOOV2c5kzih7GViwoetll/rTqO4aVbeir9K4f6YZg85dSQtVwEat7LV+zBnQwp3ivWkrIk8VEdSsCSaJlgattBiPHsfFFv1xw4qi3h+UvfCGgz35dtlnzd/noGhNARg0Z+kaMSTjy75V1mKx5sCH0o8nAX2XU8akJfLz58Vg\" \"kTx/sfealtwNA0gTy1t1jV8q0OF5RA0IeMRgCzeH2USOZI98W+EAUsGG5653Vzmp3FJRWp1tWJwRJ0M/aZ3ka/G1iTx3rNNcadVk+4q3gz3KnlAlun+m58y8pNWKjYuxmu9xkDRwM/33rv98j0R8HZO7HFL+1vjKkxSEuzmnTQ2O9F76/OsQoDPZ1Z6nJRvK8ts8PQr4ASKohby62+1F1M8U2Xn7u84dYLUCAwEAAQ==\" "
583
  type    = "TXT"
584
585
586
587
}

resource "hetznerdns_record" "archlinux_org_luna2_txt" {
  zone_id = hetznerdns_zone.archlinux.id
588
  name    = "luna2._domainkey"
589
  ttl     = 600
Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
590
  value   = "\"v=DKIM1; k=rsa; s=email; \" \"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvXrAPvtdX8Jrk4zmyk8w9T2zdAJGe7z0+4XHWWiuzH8Zse6S7oXiS9CVaPOsu0TZqHqhuclASU7qh0NXFwWyi2xRPyJOqH2Clu7vHS3j5F4TjURFOp4/EbA0iQu4rbItl4AU11z2pGSEj5SykUsrH+jjdqzNqAG9d4lNvkTs6RRzPF3KhhY+XljaeysEyDSS4ap4E0DYcduSIX\" \"oD1exFv4SEbXThD9PC1u81w4xusnmwmfHtR7aazeqPDP+S+FqDRy2woCaQb/VMbqMYVuWTVKJ2RxFyTKredOOV2c5kzih7GViwoetll/rTqO4aVbeir9K4f6YZg85dSQtVwEat7LV+zBnQwp3ivWkrIk8VEdSsCSaJlgattBiPHsfFFv1xw4qi3h+UvfCGgz35dtlnzd/noGhNARg0Z+kaMSTjy75V1mKx5sCH0o8nAX2XU8akJfLz58Vg\" \"kTx/sfealtwNA0gTy1t1jV8q0OF5RA0IeMRgCzeH2USOZI98W+EAUsGG5653Vzmp3FJRWp1tWJwRJ0M/aZ3ka/G1iTx3rNNcadVk+4q3gz3KnlAlun+m58y8pNWKjYuxmu9xkDRwM/33rv98j0R8HZO7HFL+1vjKkxSEuzmnTQ2O9F76/OsQoDPZ1Z6nJRvK8ts8PQr4ASKohby62+1F1M8U2Xn7u84dYLUCAwEAAQ==\" "
591
  type    = "TXT"
592
593
}

594
595
596
597
598
599
600
601
resource "hetznerdns_record" "archlinux_org_luna3_txt" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "luna"
  ttl     = 600
  value   = "\"v=spf1 include:lists.archlinux.org -all\""
  type    = "TXT"
}

602
603
resource "hetznerdns_record" "archlinux_org_mailman3_a" {
  zone_id = hetznerdns_zone.archlinux.id
604
605
606
  name    = "mailman3"
  value   = hcloud_server.mailman3.ipv4_address
  type    = "A"
607
608
}

609
610
611
612
613
614
615
resource "hetznerdns_record" "archlinux_org_mailman3_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "mailman3"
  value   = hcloud_server.mailman3.ipv6_address
  type    = "AAAA"
}

616
617
resource "hetznerdns_record" "archlinux_org_master_key_a" {
  zone_id = hetznerdns_zone.archlinux.id
618
  name    = "master-key"
619
  ttl     = 600
620
  value   = hcloud_server.archlinux.ipv4_address
621
  type    = "A"
622
623
}

624
625
626
627
resource "hetznerdns_record" "archlinux_org_master_key_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "master-key"
  ttl     = 600
628
  value   = hcloud_server.archlinux.ipv6_address
629
630
631
  type    = "AAAA"
}

632
633
resource "hetznerdns_record" "archlinux_org_matrix_a" {
  zone_id = hetznerdns_zone.archlinux.id
634
635
636
  name    = "matrix"
  value   = hcloud_server.matrix.ipv4_address
  type    = "A"
637
638
}

639
640
641
642
643
644
645
resource "hetznerdns_record" "archlinux_org_matrix_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "matrix"
  value   = hcloud_server.matrix.ipv6_address
  type    = "AAAA"
}

646
647
resource "hetznerdns_record" "archlinux_org_monitoring_a" {
  zone_id = hetznerdns_zone.archlinux.id
648
649
650
  name    = "monitoring"
  value   = hcloud_server.monitoring.ipv4_address
  type    = "A"
651
652
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
653
654
resource "hetznerdns_record" "archlinux_org_monitoring_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
655
656
657
  name    = "monitoring"
  value   = hcloud_server.monitoring.ipv6_address
  type    = "AAAA"
Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
658
659
}

660
resource "hetznerdns_record" "archlinux_org_mail_a" {
661
  zone_id = hetznerdns_zone.archlinux.id
662
  name    = "mail"
663
  ttl     = 600
664
  value   = hcloud_server.mail.ipv4_address
665
  type    = "A"
666
667
}

668
resource "hetznerdns_record" "archlinux_org_mail_aaaa" {
669
  zone_id = hetznerdns_zone.archlinux.id
670
  name    = "mail"
671
  ttl     = 600
672
  value   = hcloud_server.mail.ipv6_address
673
  type    = "AAAA"
674
675
}

676
resource "hetznerdns_record" "archlinux_org_mtasts_cname" {
677
678
  for_each = toset(["", ".aur", ".master-key", ".lists"])

679
  zone_id = hetznerdns_zone.archlinux.id
680
  name    = "mta-sts${each.value}"
681
682
683
684
685
  value   = "mail"
  type    = "CNAME"
}

resource "hetznerdns_record" "archlinux_org__mtasts_txt" {
686
687
  for_each = toset(["", ".aur", ".master-key", ".lists"])

688
  zone_id = hetznerdns_zone.archlinux.id
689
  name    = "_mta-sts${each.value}"
690
691
692
693
694
695
  ttl     = 600
  # date +%s
  value = "\"v=STSv1; id=1608210175\""
  type  = "TXT"
}

696
697
698
resource "hetznerdns_record" "archlinux_org_origin_mx" {
  for_each = toset(["@", "aur", "master-key"])

699
  zone_id = hetznerdns_zone.archlinux.id
700
  name    = each.value
701
  ttl     = 600
702
703
  value   = "10 mail"
  type    = "MX"
704
705
}

706
707
708
resource "hetznerdns_record" "archlinux_org_origin_txt" {
  for_each = toset(["@", "aur", "mail", "master-key"])

709
  zone_id = hetznerdns_zone.archlinux.id
710
  name    = each.value
711
  ttl     = 600
712
713
714
  # mail.archlinux.org
  value = "\"v=spf1 ip4:95.216.189.61 ip6:2a01:4f9:c010:3052::1 ~all\""
  type  = "TXT"
715
716
}

717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
resource "hetznerdns_record" "archlinux_org_domainkey_dkim-ed25519_txt" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "dkim-ed25519._domainkey"
  ttl     = 600
  value   = "\"v=DKIM1; k=ed25519; \" \"p=XOHB7b7V1puX+FryNIhsjXHYIFqk+q6JRu4XQ7Jc8MQ=\" "
  type    = "TXT"
}

resource "hetznerdns_record" "archlinux_org_domainkey_dkim-rsa_txt" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "dkim-rsa._domainkey"
  ttl     = 600
  value   = "\"v=DKIM1; k=rsa; \" \"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1GjGrEczq7iHZbvT7wa4ltJz2jwSndUGdRHgfEPnGBeevOXEAlEFr4zsdkfZEaNaQLIhZNpvKAt/A+kkyalkj4u9AnxqeNsNmZflFl6TKgvh0tWNEP3+XNxfdQ7zfml4WggL/YdAjXngg42oZEUsnS/6iozOFn7bNvzqBx5PFJ21pgyuR8DWyLaeOt+p55dVed7DCKnKi11Xjiu7k\" \"H68W8rose7g8Fv9fecBatEE4jwloOXsjh+tH0iab1NSSSpIq6EdgcPrpmrllN3/n2J/kCGK6ztISB6vR7xWgvgHSMjmEL0GPWzohGPrw2UQhZhrNV8dJpiLRYmfK+rXaKF0Kqag/F0e4C4jCKFX7NYFcYXYRlN5QlDFjZvUmOILlgnZ8w/SdZUKzpLObGuwnANLG+WSOjw42p9mXVGN6AfOQPu8OjRjS1MyhcdDIbUvZiQjbmiVJ5frpYZ39BTg\" \"CIzYLJJ5932+3gnwROu1OeljWkpBkfHZXPzADus80l3Vxsk91XZVB36rN8tyuMownR/M4HNC7ZE/EBwOnn1mGH7bLd6pva8u5Qy8Y6LrDdYea5Kk7aZ2WJSSRTV+nkPvOEIx+DfsIWNfmkVWzmuVky96fRvwOCuh38w8zpmlqzhDuGSQrBaLFXwAC7LYQ6kPDHzrjQhs99ScR0ix6YclrmpimMcCAwEAAQ==\" "
  type    = "TXT"
}

733
734
735
736
737
738
739
resource "hetznerdns_record" "archlinux_org_dmarc_txt" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "_dmarc"
  value   = "\"v=DMARC1; p=none; rua=mailto:dmarc-reports@archlinux.org; ruf=mailto:dmarc-reports@archlinux.org;\""
  type    = "TXT"
}

Kristian Klausen's avatar
Kristian Klausen committed
740
resource "hetznerdns_record" "archlinux_org_smtp_tlsrpt_txt" {
741
742
  for_each = toset(["", ".aur", ".master-key", ".lists"])

Kristian Klausen's avatar
Kristian Klausen committed
743
  zone_id = hetznerdns_zone.archlinux.id
744
  name    = "_smtp._tls${each.value}"
Kristian Klausen's avatar
Kristian Klausen committed
745
746
747
748
  value   = "\"v=TLSRPTv1;rua=mailto:postmaster@archlinux.org\""
  type    = "TXT"
}

749
750
751
752
753
754
755
756
757
758
759
760
761
762
resource "hetznerdns_record" "archlinux_org_openpgpkey_a" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "openpgpkey"
  value   = hcloud_server.openpgpkey.ipv4_address
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_openpgpkey_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "openpgpkey"
  value   = hcloud_server.openpgpkey.ipv6_address
  type    = "AAAA"
}

763
764
resource "hetznerdns_record" "archlinux_org_phrik_a" {
  zone_id = hetznerdns_zone.archlinux.id
765
766
767
  name    = "phrik"
  value   = hcloud_server.phrik.ipv4_address
  type    = "A"
768
769
}

770
771
772
773
resource "hetznerdns_record" "archlinux_org_phrik_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "phrik"
  value   = hcloud_server.phrik.ipv6_address
Frederik Schwan's avatar
Frederik Schwan committed
774
  type    = "AAAA"
775
776
}

777
778
resource "hetznerdns_record" "archlinux_org_quassel_a" {
  zone_id = hetznerdns_zone.archlinux.id
779
780
781
  name    = "quassel"
  value   = hcloud_server.quassel.ipv4_address
  type    = "A"
782
783
784
785
}

resource "hetznerdns_record" "archlinux_org_quassel_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
786
787
788
  name    = "quassel"
  value   = hcloud_server.quassel.ipv6_address
  type    = "AAAA"
789
790
}

791
792
793
794
795
796
797
798
799
800
801
802
803
804
resource "hetznerdns_record" "archlinux_org_redirect_a" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "redirect"
  value   = hcloud_server.redirect.ipv4_address
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_redirect_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "redirect"
  value   = hcloud_server.redirect.ipv6_address
  type    = "AAAA"
}

805
806
resource "hetznerdns_record" "archlinux_org_reproducible_a" {
  zone_id = hetznerdns_zone.archlinux.id
807
808
809
  name    = "reproducible"
  value   = hcloud_server.reproducible.ipv4_address
  type    = "A"
810
811
}

812
813
814
815
resource "hetznerdns_record" "archlinux_org_reproducible_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "reproducible"
  value   = hcloud_server.reproducible.ipv6_address
Frederik Schwan's avatar
Frederik Schwan committed
816
  type    = "AAAA"
817
818
}

Jelle van der Waa's avatar
Jelle van der Waa committed
819
820
821
822
823
824
825
resource "hetznerdns_record" "archlinux_org_runner1_a" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "runner1"
  value   = "84.17.49.250"
  type    = "A"
}

826
827
828
829
830
831
832
resource "hetznerdns_record" "archlinux_org_runner1_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "runner1"
  value   = "2a02:6ea0:c719::2"
  type    = "AAAA"
}

833
834
resource "hetznerdns_record" "archlinux_org_runner2_a" {
  zone_id = hetznerdns_zone.archlinux.id
835
836
837
  name    = "runner2"
  value   = "147.75.80.217"
  type    = "A"
838
839
840
841
}

resource "hetznerdns_record" "archlinux_org_runner2_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
842
843
844
  name    = "runner2"
  value   = "2604:1380:2001:4500::3"
  type    = "AAAA"
845
846
847
848
}

resource "hetznerdns_record" "archlinux_org_secure_runner1_a" {
  zone_id = hetznerdns_zone.archlinux.id
849
850
851
  name    = "secure-runner1"
  value   = "116.202.134.150"
  type    = "A"
852
853
854
855
}

resource "hetznerdns_record" "archlinux_org_secure_runner1_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
856
857
858
  name    = "secure-runner1"
  value   = "2a01:4f8:231:4e1e::2"
  type    = "AAAA"
859
860
}

861
862
resource "hetznerdns_record" "archlinux_org_svn2gittest_a" {
  zone_id = hetznerdns_zone.archlinux.id
863
864
865
  name    = "svn2gittest"
  value   = hcloud_server.svn2gittest.ipv4_address
  type    = "A"
866
867
868
869
}

resource "hetznerdns_record" "archlinux_org_svn2gittest_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
870
871
872
  name    = "svn2gittest"
  value   = hcloud_server.svn2gittest.ipv6_address
  type    = "AAAA"
873
874
}

875
876
resource "hetznerdns_record" "archlinux_org_state_a" {
  zone_id = hetznerdns_zone.archlinux.id
877
878
879
  name    = "state"
  value   = "116.203.16.252"
  type    = "A"
880
881
882
883
}

resource "hetznerdns_record" "archlinux_org_state_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
884
885
886
  name    = "state"
  value   = "2a01:4f8:c2c:474::1"
  type    = "AAAA"
887
888
}

889
resource "hetznerdns_record" "archlinux_org_patchwork_a" {
890
  zone_id = hetznerdns_zone.archlinux.id
891
  name    = "patchwork"
892
  ttl     = 600
893
894
895
896
897
898
899
900
901
902
  value   = hcloud_server.patchwork.ipv4_address
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_patchwork_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "patchwork"
  ttl     = 600
  value   = hcloud_server.patchwork.ipv6_address
  type    = "AAAA"
903
904
}

905
resource "hetznerdns_record" "archlinux_org_security_a" {
906
  zone_id = hetznerdns_zone.archlinux.id
907
  name    = "security"
908
  ttl     = 600
909
910
911
912
913
914
915
916
917
918
  value   = hcloud_server.security.ipv4_address
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_security_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "security"
  ttl     = 600
  value   = hcloud_server.security.ipv6_address
  type    = "AAAA"
919
920
}

921
resource "hetznerdns_record" "archlinux_org_wiki_a" {
922
  zone_id = hetznerdns_zone.archlinux.id
923
  name    = "wiki"
924
  ttl     = 600
925
  value   = hcloud_server.archwiki.ipv4_address
926
927
928
929
930
931
932
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_wiki_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "wiki"
  ttl     = 600
933
  value   = hcloud_server.archwiki.ipv6_address
934
  type    = "AAAA"
935
936
}

937
resource "hetznerdns_record" "archlinux_org_www_a" {
938
  zone_id = hetznerdns_zone.archlinux.id
939
  name    = "www"
940
  ttl     = 600
941
  value   = hcloud_server.archlinux.ipv4_address
942
943
944
945
946
947
948
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_www_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "www"
  ttl     = 600
949
  value   = hcloud_server.archlinux.ipv6_address
950
  type    = "AAAA"
951
952
953
954
}

resource "hetznerdns_record" "archlinux_org_matrix_tcp_srv" {
  zone_id = hetznerdns_zone.archlinux.id
955
956
957
  name    = "_matrix._tcp"
  value   = "10 0 8448 matrix"
  type    = "SRV"
958
959
960
961
}

resource "hetznerdns_record" "archlinux_org_github_challenge_archlinux" {
  zone_id = hetznerdns_zone.archlinux.id
962
963
964
  name    = "_github-challenge-archlinux"
  value   = "\"824af4446e\""
  type    = "TXT"
965
966
967
968
}

resource "hetznerdns_record" "archlinux_org_github_challenge_archlinux_www" {
  zone_id = hetznerdns_zone.archlinux.id
969
970
971
  name    = "_github-challenge-archlinux.www"
  value   = "\"b53f311f86\""
  type    = "TXT"
972
973
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
974
resource "hcloud_rdns" "quassel_ipv4" {
975
976
  server_id  = hcloud_server.quassel.id
  ip_address = hcloud_server.quassel.ipv4_address
977
  dns_ptr    = "quassel.archlinux.org"
978
979
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
980
981
982
983
984
985
resource "hcloud_rdns" "quassel_ipv6" {
  server_id  = hcloud_server.quassel.id
  ip_address = hcloud_server.quassel.ipv6_address
  dns_ptr    = "quassel.archlinux.org"
}

Jelle van der Waa's avatar
Jelle van der Waa committed
986
resource "hcloud_server" "quassel" {
987
  name        = "quassel.archlinux.org"
988
  image       = data.hcloud_image.archlinux.id
Jelle van der Waa's avatar
Jelle van der Waa committed
989
  server_type = "cx11"
990
991
992
  lifecycle {
    ignore_changes = [image]
  }
Jelle van der Waa's avatar
Jelle van der Waa committed
993
}
Jelle van der Waa's avatar
Jelle van der Waa committed
994

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
995
resource "hcloud_rdns" "phrik_ipv4" {
996
997
  server_id  = hcloud_server.phrik.id
  ip_address = hcloud_server.phrik.ipv4_address
Jelle van der Waa's avatar
Jelle van der Waa committed
998
999
1000
  dns_ptr    = "phrik.archlinux.org"
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1001
1002
1003
1004
1005
1006
resource "hcloud_rdns" "phrik_ipv6" {
  server_id  = hcloud_server.phrik.id
  ip_address = hcloud_server.phrik.ipv6_address
  dns_ptr    = "phrik.archlinux.org"
}

Jelle van der Waa's avatar
Jelle van der Waa committed
1007
1008
resource "hcloud_server" "phrik" {
  name        = "phrik.archlinux.org"
1009
  image       = data.hcloud_image.archlinux.id
Jelle van der Waa's avatar
Jelle van der Waa committed
1010
  server_type = "cx11"
1011
1012
1013
  lifecycle {
    ignore_changes = [image]
  }
Jelle van der Waa's avatar
Jelle van der Waa committed
1014
}
Jelle van der Waa's avatar
Jelle van der Waa committed
1015

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1016
resource "hcloud_rdns" "bbs_ipv4" {
1017
1018
  server_id  = hcloud_server.bbs.id
  ip_address = hcloud_server.bbs.ipv4_address
Jelle van der Waa's avatar
Jelle van der Waa committed
1019
1020
1021
  dns_ptr    = "bbs.archlinux.org"
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1022
1023
1024
1025
1026
1027
resource "hcloud_rdns" "bbs_ipv6" {
  server_id  = hcloud_server.bbs.id
  ip_address = hcloud_server.bbs.ipv6_address
  dns_ptr    = "bbs.archlinux.org"
}

Jelle van der Waa's avatar
Jelle van der Waa committed
1028
1029
resource "hcloud_server" "bbs" {
  name        = "bbs.archlinux.org"
1030
  image       = data.hcloud_image.archlinux.id
Jelle van der Waa's avatar
Jelle van der Waa committed
1031
  server_type = "cx21"
1032
1033
1034
1035
1036
  lifecycle {
    ignore_changes = [image]
  }
}

1037

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1038
resource "hcloud_rdns" "gitlab_ipv4" {
1039
1040
  server_id  = hcloud_server.gitlab.id
  ip_address = hcloud_server.gitlab.ipv4_address
1041
1042
1043
  dns_ptr    = "gitlab.archlinux.org"
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1044
1045
1046
1047
1048
1049
resource "hcloud_rdns" "gitlab_ipv6" {
  server_id  = hcloud_server.gitlab.id
  ip_address = hcloud_server.gitlab.ipv6_address
  dns_ptr    = "gitlab.archlinux.org"
}

1050
1051
resource "hcloud_server" "gitlab" {
  name        = "gitlab.archlinux.org"
1052
  image       = data.hcloud_image.archlinux.id
1053
  server_type = "cx51"
1054
1055
1056
  lifecycle {
    ignore_changes = [image]
  }
Jelle van der Waa's avatar
Jelle van der Waa committed
1057
}
Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1058

1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
resource "hetznerdns_record" "archlinux_org_gitlab_pages_a" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "pages"
  value   = hcloud_floating_ip.gitlab_pages.ip_address
  type    = "A"
}

resource "hetznerdns_record" "archlinux_org_gitlab_pages_aaaa" {
  zone_id = hetznerdns_zone.archlinux.id
  name    = "pages"
  value   = var.gitlab_pages_ipv6
  type    = "AAAA"
}

1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
resource "hcloud_floating_ip" "gitlab_pages" {
  type        = "ipv4"
  description = "GitLab Pages"
  server_id   = hcloud_server.gitlab.id
}

variable "gitlab_pages_ipv6" {
  default = "2a01:4f8:c2c:5d2d::2"
}

1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
resource "hetznerdns_record" "archlinux_org_gitlab_pages_cname" {
  for_each = { for p in var.archlinux_org_gitlab_pages : p.name => p }

  zone_id = hetznerdns_zone.archlinux.id
  name    = each.value.name
  value   = "pages.archlinux.org."
  type    = "CNAME"
}

resource "hetznerdns_record" "archlinux_org_gitlab_pages_verification_code_txt" {
  for_each = { for p in var.archlinux_org_gitlab_pages : p.name => p }

  zone_id = hetznerdns_zone.archlinux.id
  name    = "_gitlab-pages-verification-code.${each.value.name}"
  value   = "gitlab-pages-verification-code=${each.value.verification_code}"
  type    = "TXT"
}

1101
resource "hcloud_volume" "gitlab" {
1102
1103
  name      = "gitlab"
  size      = 1000
1104
1105
1106
1107
  server_id = hcloud_server.gitlab.id
}


Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1108
resource "hcloud_rdns" "matrix_ipv4" {
1109
1110
  server_id  = hcloud_server.matrix.id
  ip_address = hcloud_server.matrix.ipv4_address
Jelle van der Waa's avatar
Jelle van der Waa committed
1111
1112
1113
  dns_ptr    = "matrix.archlinux.org"
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1114
1115
1116
1117
1118
1119
resource "hcloud_rdns" "matrix_ipv6" {
  server_id  = hcloud_server.matrix.id
  ip_address = hcloud_server.matrix.ipv6_address
  dns_ptr    = "matrix.archlinux.org"
}

Jelle van der Waa's avatar
Jelle van der Waa committed
1120
1121
resource "hcloud_server" "matrix" {
  name        = "matrix.archlinux.org"
1122
  image       = data.hcloud_image.archlinux.id
1123
  server_type = "cpx31"
Jelle van der Waa's avatar
Jelle van der Waa committed
1124
1125
1126
1127
  lifecycle {
    ignore_changes = [image]
  }
}
1128

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1129
resource "hcloud_rdns" "acccounts_ipv4" {
1130
1131
  server_id  = hcloud_server.accounts.id
  ip_address = hcloud_server.accounts.ipv4_address
1132
1133
1134
  dns_ptr    = "accounts.archlinux.org"
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1135
1136
1137
1138
1139
1140
resource "hcloud_rdns" "acccounts_ipv6" {
  server_id  = hcloud_server.accounts.id
  ip_address = hcloud_server.accounts.ipv6_address
  dns_ptr    = "accounts.archlinux.org"
}

1141
1142
resource "hcloud_server" "accounts" {
  name        = "accounts.archlinux.org"
1143
  image       = data.hcloud_image.archlinux.id
1144
  server_type = "cx11"
1145
1146
  provisioner "local-exec" {
    working_dir = ".."
1147
    command     = "ansible-playbook --ssh-extra-args '-o StrictHostKeyChecking=no' playbooks/accounts.archlinux.org.yml"
1148
  }
1149
1150
1151
1152
  lifecycle {
    ignore_changes = [image]
  }
}
1153

1154
resource "hcloud_volume" "mirror" {
1155
1156
  name      = "mirror"
  size      = 100
1157
1158
1159
  server_id = hcloud_server.mirror.id
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1160
resource "hcloud_rdns" "mirror_ipv4" {
1161
1162
  server_id  = hcloud_server.mirror.id
  ip_address = hcloud_server.mirror.ipv4_address
1163
1164
1165
  dns_ptr    = "mirror.pkgbuild.com"
}

Sven-Hendrik Haase's avatar
Sven-Hendrik Haase committed
1166
1167
1168
1169
1170
1171
resource "hcloud_rdns" "mirror_ipv6" {
  server_id  = hcloud_server.mirror.id
  ip_address = hcloud_server.mirror.ipv6_address
  dns_ptr    = "mirror.pkgbuild.com"
}

1172
1173
resource "hcloud_server" "mirror" {
  name        = "mirror.pkgbuild.com"
1174
  image       = data.hcloud_image.archlinux.id
1175
1176
1177
1178
1179
  server_type = "cx11"
  lifecycle {
    ignore_changes = [image]
  }
}
1180