From 60fb4494fa7b0d8ae7cbfa722950a322d41812bd Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <evangelos@foutrelis.com>
Date: Sat, 23 Apr 2022 03:13:59 +0300
Subject: [PATCH] tf-stage1: version bump of terraform providers

New hcloud adds protection fields to servers, volumes and floating IPs.
---
 tf-stage1/.terraform.lock.hcl | 72 +++++++++++++++++++----------------
 tf-stage1/archlinux.tf        | 35 +++++++++--------
 tf-stage1/templates.tf        | 12 +++---
 3 files changed, 67 insertions(+), 52 deletions(-)

diff --git a/tf-stage1/.terraform.lock.hcl b/tf-stage1/.terraform.lock.hcl
index 5c40a41bb..ab80e8084 100644
--- a/tf-stage1/.terraform.lock.hcl
+++ b/tf-stage1/.terraform.lock.hcl
@@ -2,48 +2,56 @@
 # Manual edits may be lost in future updates.
 
 provider "registry.terraform.io/hashicorp/external" {
-  version = "2.0.0"
+  version = "2.2.2"
   hashes = [
-    "h1:Q5xqryWI3tCY8yr+fugq7dz4Qz+8g4GaW9ZS8dc6Ob8=",
-    "zh:07949780dd6a1d43e7b46950f6e6976581d9724102cb5388d3411a1b6f476bde",
-    "zh:0a4f4636ff93f0644affa8474465dd8c9252946437ad025b28fc9f6603534a24",
-    "zh:0dd7e05a974c649950d1a21d7015d3753324ae52ebdd1744b144bc409ca4b3e8",
-    "zh:2b881032b9aa9d227ac712f614056d050bcdcc67df0dc79e2b2cb76a197059ad",
-    "zh:38feb4787b4570335459ca75a55389df1a7570bdca8cdf5df4c2876afe3c14b4",
-    "zh:40f7e0aaef3b1f4c2ca2bb1189e3fe9af8c296da129423986d1d99ccc8cfb86c",
-    "zh:56b361f64f0f0df5c4f958ae2f0e6f8ba192f35b720b9d3ae1be068fabcf73d9",
-    "zh:5fadb5880cd31c2105f635ded92b9b16f918c1dd989627a4ce62c04939223909",
-    "zh:61fa0be9c14c8c4109cfb7be8d54a80c56d35dbae49d3231cddb59831e7e5a4d",
-    "zh:853774bf97fbc4a784d5af5a4ca0090848430781ae6cfc586adeb48f7c44af79",
+    "h1:e7RpnZ2PbJEEPnfsg7V0FNwbfSk0/Z3FdrLsXINBmDY=",
+    "zh:0b84ab0af2e28606e9c0c1289343949339221c3ab126616b831ddb5aaef5f5ca",
+    "zh:10cf5c9b9524ca2e4302bf02368dc6aac29fb50aeaa6f7758cce9aa36ae87a28",
+    "zh:56a016ee871c8501acb3f2ee3b51592ad7c3871a1757b098838349b17762ba6b",
+    "zh:719d6ef39c50e4cffc67aa67d74d195adaf42afcf62beab132dafdb500347d39",
+    "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
+    "zh:7fbfc4d37435ac2f717b0316f872f558f608596b389b895fcb549f118462d327",
+    "zh:8ac71408204db606ce63fe8f9aeaf1ddc7751d57d586ec421e62d440c402e955",
+    "zh:a4cacdb06f114454b6ed0033add28006afa3f65a0ea7a43befe45fc82e6809fb",
+    "zh:bb5ce3132b52ae32b6cc005bc9f7627b95259b9ffe556de4dad60d47d47f21f0",
+    "zh:bb60d2976f125ffd232a7ccb4b3f81e7109578b23c9c6179f13a11d125dca82a",
+    "zh:f9540ecd2e056d6e71b9ea5f5a5cf8f63dd5c25394b9db831083a9d4ea99b372",
+    "zh:ffd998b55b8a64d4335a090b6956b4bf8855b290f7554dd38db3302de9c41809",
   ]
 }
 
 provider "registry.terraform.io/hetznercloud/hcloud" {
-  version = "1.23.0"
+  version = "1.33.1"
   hashes = [
-    "h1:jE1wBARpDjAy/9ORQIooMrbY7Dph4SUrSa6oAFbm1/M=",
-    "zh:158d1369f267ce292f6e278202c60a1b35f362d24b94d57c83ef460624ef4dc4",
-    "zh:237cf7934682a70b2a911ba7ad5ecef5e6f6c4c7e8c75d5419adee032b843ff3",
-    "zh:249a5c0c73852783ce9191076c1cb0cf9a1f53c7a1c3af08be83d7c51ab4d46c",
-    "zh:2d7e0cab7d54f4373c01210b178bdeca46279cfb0c794f8e564baa8cb95179ad",
-    "zh:5be24f23c00294363aeb07315a98f6c21e2718e6d28d24800d94a67f84ac1aee",
-    "zh:753e498bebb7e9f6423f3654528a429790f5e009a9d80b58733686de1970a05e",
-    "zh:848d8e300e92c5e35cf2dbf4d68a3624898f317e9f11cbbb35f4e5d8ff07b968",
-    "zh:85579efc6dd158dbc2eed22a628f4539e924cfbef2bf07f4173fa47ca6ccd37b",
-    "zh:879e7aa1d7825dd546b8edfc29037c60818e0ab87021430e0c06e051a96ab30a",
-    "zh:9354ff17884ff0fbdd5d81d5e430a6b8712ad763069a7345bc56bfc19b190813",
-    "zh:b2c52428c03ee7a438300692c18f2e1fe09afd4c107b69530a746574690b1bde",
+    "h1:qvQGDcw11niyogj5fNPmGUlkXc/QTJh+UgfwUwZfDeM=",
+    "zh:0e30919099010a0f6f83631c634512ad27cd02bb119d434a62d0f25061fcffd0",
+    "zh:121ae06c2d313616f1c4dffd54b0586b48a9a0996117ca45cfc43b6077be0c34",
+    "zh:18ab43acedcebece7ba2f839d8147371200f9c62c616b2bd8ee730352663cb7d",
+    "zh:24ffe93b2d9bcf0c7944c178497456f43c6096c80032ca15a7b7fe13021bac5c",
+    "zh:2f5eb2dba69bff9386ecc675ceb725c4d23f20c8359492666b4469afc8b25930",
+    "zh:57597aee1fb118c794b67aec4d676447596343959b5de03bc3403ebd2d9ecfd6",
+    "zh:70c910987bd61e6129d87071766524967fd9336d3b67a5af3e2aee93b896fbd0",
+    "zh:7250145e6ac09fe5d915c2c09b785062d0d2695557b2f856197b952955781bdc",
+    "zh:7903ec07eba0db779aec46eaed0605aa9d5be360cd44fc6ed9267bed593ec02f",
+    "zh:85a101fa71bbec512a7f015aaa18837f2e1218c9279429a110bd01b69dac3acf",
+    "zh:9470dbb7adfaec8c4996844ac1aa1701341c56de37b570bf811b55529b43697a",
+    "zh:ad5ffed22254eeafa59bac49fac52bd30bb559d3958b443884affecd5f631dcd",
+    "zh:d1e6c2d1c07f496cdbde1eac4a6fb96a41edd6f8dbfbacabe33646eb78dbe15e",
+    "zh:ee0ddda6131b80a2308b2c76addbede27f7739f03e59a4665aff4f83e1e2ef4e",
   ]
 }
 
 provider "registry.terraform.io/timohirt/hetznerdns" {
-  version = "1.1.1"
+  version = "2.1.0"
   hashes = [
-    "h1:zdJoDXLIX9Cg+s8jddl2IyPB7PJQWjpvxs4qzvJ6uwQ=",
-    "zh:04ce8d4be0efd04558e666fec952169077cfe8479d56432d2f4501cb2a3f5e09",
-    "zh:2514aa9fa74d8ec9e28f456713688efbcc5ccf2cb245d38c35a3362e85ddbe4b",
-    "zh:6a96353af214d5d514bab5f069b822427439a4cf7a631c7f81db70d5e6cbf0d0",
-    "zh:6c75a779df815456a66a17ba0e9e2b4c72b0c16f6f72649914a9f1613f4b9d33",
-    "zh:813365d81a6abb158ed8876a923c5bebc0bc375bc26409bd9f21fce8ba862390",
+    "h1:fNDrNbEUkv/TnUdg5rqHhDyI9hp3ScJ0tW/psaKfHY4=",
+    "zh:1b1e1245a3c57995cddd0e094411715d9a71043ead2d4f427b5bd364616b5822",
+    "zh:4b3f4583cad7a106e8dad0252946df34ae908fd7237b1744b500a0428f3e6b02",
+    "zh:508bdd2860a2ae3168093904bdb3a654ed6ba1a9036207a4c154cf22fd2ab4a5",
+    "zh:8f9bf0ff1d4f28e996e28c7c3de42a2c7487afdbba89033e22f51759dfe3f429",
+    "zh:a2708d50f5714e09b252010e6f1c684d92d0935df609be839c02b9eb4ce661d2",
+    "zh:ab338f412a020f57931b4852c0ab236a592756d7c3f4a4adb3fe7b96bd847d27",
+    "zh:c5491e35d3ddd777eab87b6c1b0ac7890e77eb611b8b1dcf6132af665f3a57d8",
+    "zh:daffa4c068ceb6d6b4af87cdb3c590ddd2047c3f9e6bc8048a414ea7d99942b0",
   ]
 }
diff --git a/tf-stage1/archlinux.tf b/tf-stage1/archlinux.tf
index 430b1fc2e..0d7f9e071 100644
--- a/tf-stage1/archlinux.tf
+++ b/tf-stage1/archlinux.tf
@@ -496,9 +496,10 @@ resource "hetznerdns_record" "archlinux_org_origin_ns1" {
 # }
 
 resource "hcloud_floating_ip" "gitlab_pages" {
-  type        = "ipv4"
-  description = "GitLab Pages"
-  server_id   = hcloud_server.machine["gitlab.archlinux.org"].id
+  type              = "ipv4"
+  description       = "GitLab Pages"
+  server_id         = hcloud_server.machine["gitlab.archlinux.org"].id
+  delete_protection = true
 }
 
 variable "gitlab_pages_ipv6" {
@@ -506,25 +507,29 @@ variable "gitlab_pages_ipv6" {
 }
 
 resource "hcloud_volume" "mirror" {
-  name      = "mirror"
-  size      = 100
-  server_id = hcloud_server.machine["mirror.pkgbuild.com"].id
+  name              = "mirror"
+  size              = 100
+  server_id         = hcloud_server.machine["mirror.pkgbuild.com"].id
+  delete_protection = true
 }
 
 resource "hcloud_volume" "homedir" {
-  name      = "homedir"
-  size      = 100
-  server_id = hcloud_server.machine["homedir.archlinux.org"].id
+  name              = "homedir"
+  size              = 100
+  server_id         = hcloud_server.machine["homedir.archlinux.org"].id
+  delete_protection = true
 }
 
 resource "hcloud_volume" "monitoring" {
-  name      = "monitoring"
-  size      = 200
-  server_id = hcloud_server.machine["monitoring.archlinux.org"].id
+  name              = "monitoring"
+  size              = 200
+  server_id         = hcloud_server.machine["monitoring.archlinux.org"].id
+  delete_protection = true
 }
 
 resource "hcloud_volume" "debuginfod" {
-  name      = "debuginfod"
-  size      = 25
-  server_id = hcloud_server.machine["debuginfod.archlinux.org"].id
+  name              = "debuginfod"
+  size              = 25
+  server_id         = hcloud_server.machine["debuginfod.archlinux.org"].id
+  delete_protection = true
 }
diff --git a/tf-stage1/templates.tf b/tf-stage1/templates.tf
index 5cde97b64..7b7de1dcc 100644
--- a/tf-stage1/templates.tf
+++ b/tf-stage1/templates.tf
@@ -107,11 +107,13 @@ resource "hcloud_rdns" "rdns_ipv6" {
 resource "hcloud_server" "machine" {
   for_each = local.machines
 
-  name        = each.key
-  image       = data.hcloud_image.archlinux.id
-  server_type = each.value.server_type
-  keep_disk   = true
-  location    = "fsn1"
+  name               = each.key
+  image              = data.hcloud_image.archlinux.id
+  server_type        = each.value.server_type
+  keep_disk          = true
+  location           = "fsn1"
+  delete_protection  = true
+  rebuild_protection = true
   lifecycle {
     ignore_changes = [image, location]
   }
-- 
GitLab