Hetzner has changed it's API and removed the field `datacenter` from the
primary IPs in favor of `location`. This change reflex this and adjusts
the configuration accordingly. Note, that this change didn't require any
manual state changes. Instead I applied the former plan with the newest
provider once. Hence the provider already treated the fields correctly I
only had to adjust the configuration.
Chapeau Hetzner for this good transition!
See-also: 14da745f Update tofu-resources to their latest versions
Reference: https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters
The API of Hetzner has got some important changes recently which will
impact my configuration. So, this maintenance change is necessary for me
to address these changes and figure out all deprecations.
First and foremost a new DNS-API was introduced in November 2025 to bind
the DNS-settings closer to their cloud console. In favor of this new
DNS-system they will phase out the old API in the beginning of May 2026!
Secondly, some API-fields have changed, e.g. the "datacenter" field of
primary IPs is going to be removed in favor of the "location" field.
This change will finally take place at 1. of July 2026.
Beside of that I simply updated all providers to their latest versions.
Reference: https://docs.hetzner.com/networking/dns/faq/beta
Reference: https://docs.hetzner.cloud/changelog#2025-11
Reference: https://docs.hetzner.cloud/changelog#2025-12
Since I don't have multiple terraform steps anymore it simply doesn't
make sense to me anymore to split all tasks into separate folders.
Instead I try to be as clear as possible in the README to make it easy
to follow the structure in the future without too much headache.
This changes makes it easier to differentiate and understand the
different parts of the kubernetes setup. On one hand we have the bare
infrastructure (servers, network, etc), on the other hand we have the
software (k3s in this case).
In the future we'll have a few more parts, like the minimal
configuration of the kubernetes cluster, e.g. with a cert-manager. This
is easier to manage with helm or terraform than with ansible. Therefore
it makes even more sense to split the responsibilities into dedicated
directories.