You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 20, 2026. It is now read-only.
raise a warning if assignee_type attribute is configured without assignee_id attribute
raise an error if assignee_id attribute is configured without assignee_type attribute
As of 1 August 2026, the behavior of the Primary IP assignee_type property will change, and will return unassigned when the Primary IP is not assigned (when assignee_id is null). The goal is to eventually assign Primary IPs to other resource types, not only to server.
In addition, the Primary IP request body assignee_type property of the operation POST /v1/primary_ips is now optional. Primary IPs created without assignee_type return server until 1 August 2026, after this date, its value will be unassigned.
Available and recommended Server Types have been moved
Data sources hcloud_datacenter/hcloud_datacenters[]: Attributes supported_server_type_ids[] and available_server_type_ids[] have been deprecated.
Data sources hcloud_server_type/hcloud_server_types[]: Attributes locations[].available and locations[].recommended have been added as a replacement for the deprecated datacenter attributes.
Previously the hcloud_storage_box resource ignored any changes to the ssh_keys attribute to avoid accidentally deleting the Storage Box (SSH Keys can not be changed through the API after the Storage Box is created).
This is changed in this release, we now mark the resource as "requires replacement" if the SSH Keys are changed. If you want to ignore changes and keep the previous behaviour, please add the attribute to lifecycle.ignore_changes:
Therefore, datacenter attributes is deprecated in favour of the location attribute in the following Terraform resources/datasources:
hcloud_server
data.hcloud_server
data.hcloud_servers
hcloud_primary_ip
data.hcloud_primary_ip
data.hcloud_primary_ips
The location attribute already exists for Servers, and was added for Primary IPs.
The datacenter attribute will not be updated any more after it is no longer returned by the API. For existing resources this will keep the previous value, for new resources this will result in an empty string.
Please make sure to upgrade to v1.58.0+ before the removal date to avoid potential crashes in the provider.
Features
drop support for OpenTofu v1.8
add support for OpenTofu v1.11
storage-box: stop ignoring changes to ssh keys and replace resource instead (#1296)
deprecate datacenter in primary ips and servers (#1309)
The Storage Box integration will be introduced as an experimental feature. This experimental phase is expected to last until 2 January 2026. During this period, upcoming minor releases of the project may include breaking changes to features related to the Storage Box API. You can find out the current state of this in #1285.
With this release, the hcloud_server_network and hcloud_load_balancer_network resource now supports assigning a server or load balancer to a specific network subnet using the subnet_id attribute. The subnet_id attribute also validates that the network_id and ip attributes are consistent with the subnet_id. If they are not consistent, the resource will be replaced.
In the hcloud_server_network resource, the alias_ips attributes now defaults to an empty set when undefined.
Features
attach server to a specific network subnet (#1217)
attach load balancer to a specific network subnet (#1242)
The DNS API is currently in beta, which will likely end on 10 November 2025. After the beta ended, it will no longer be possible to create new zones in the old DNS system. See the DNS Beta FAQ for more details.
Future minor releases of this project may include breaking changes for features that are related to the DNS API.
We added a new locations property to the Server Types resource. The new property defines a list of supported Locations and additional per Locations details such as deprecations information.
We deprecated the deprecation property from the Server Types resource. The property will gradually be phased out as per Locations deprecations are being announced. Please use the new per Locations deprecation information instead.
In this release, we upgraded the underlying Hetzner Cloud API client (hcloud-go) for the entire provider, which involves risk of breakage. Please make sure to test this new version before using it on production environments.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-QPt6RuxSgYPvyy6F
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall.web_firewall: Drift detected (update)
hcloud_server.web: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-ceFhUBJDnVR1vaY2
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
hcloud_server.web: Drift detected (update)
hcloud_firewall.web_firewall: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-1kPjiWavrAyon3Sx
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall.web_firewall: Drift detected (update)
hcloud_server.web: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-jUhj1Yz4Q61mgfyr
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
hcloud_server.web: Refreshing state... [id=51760523]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
hcloud_firewall.web_firewall: Drift detected (update)
hcloud_server.web: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-2w7gHS3QP2CxhDtS
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
hcloud_server.web: Refreshing state... [id=51760523]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.a: Drift detected (update)
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aaaa: Drift detected (update)
hcloud_server.web: Drift detected (update)
cloudflare_record.aliases["grafana"]: Drift detected (update)
cloudflare_record.aliases["grocy"]: Drift detected (update)
cloudflare_record.aliases["ldap"]: Drift detected (update)
cloudflare_record.aliases["photoprism"]: Drift detected (update)
cloudflare_record.aliases["traefik"]: Drift detected (update)
cloudflare_record.aliases["auth"]: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-CVrfkWApDyBrsxyM
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aliases["ldap"]: Drift detected (update)
cloudflare_record.aliases["photoprism"]: Drift detected (update)
cloudflare_record.aliases["traefik"]: Drift detected (update)
cloudflare_record.aliases["auth"]: Drift detected (update)
cloudflare_record.aliases["grafana"]: Drift detected (update)
cloudflare_record.aliases["grocy"]: Drift detected (update)
hcloud_server.web: Drift detected (update)
cloudflare_record.a: Drift detected (update)
cloudflare_record.aaaa: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-rTanm7NDCJENbDr3
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
hcloud_server.web: Refreshing state... [id=51760523]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aaaa: Drift detected (update)
hcloud_server.web: Drift detected (update)
cloudflare_record.a: Drift detected (update)
cloudflare_record.aliases["traefik"]: Drift detected (update)
cloudflare_record.aliases["auth"]: Drift detected (update)
cloudflare_record.aliases["grafana"]: Drift detected (update)
cloudflare_record.aliases["grocy"]: Drift detected (update)
cloudflare_record.aliases["ldap"]: Drift detected (update)
cloudflare_record.aliases["photoprism"]: Drift detected (update)
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-bnJ2A6SyKdd7vuqm
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall.web_firewall: Drift detected (update)
hcloud_server.web: Drift detected (update)
cloudflare_record.a: Drift detected (delete)
cloudflare_record.aaaa: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-VhwjKvE6jPZpBFKk
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.a: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aaaa: Drift detected (delete)
hcloud_server.web: Drift detected (update)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-cdYxqhZcTmaLQsGq
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.a: Drift detected (delete)
hcloud_server.web: Drift detected (update)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-BMeLEpsxKzinqM1c
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.a: Drift detected (delete)
cloudflare_record.aaaa: Drift detected (delete)
hcloud_server.web: Drift detected (update)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-HG6NbSbKcJXEjNtH
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.a: Drift detected (delete)
cloudflare_record.aaaa: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
hcloud_server.web: Drift detected (update)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-9CR3m5HnubqvP7ti
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.aaaa: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.a: Drift detected (delete)
hcloud_server.web: Drift detected (update)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Cost Estimation:
Resources: 0 of 14 estimated
$0.0/mo +$0.0
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-YHmcr1tnBnPMy6kd
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_volume.data: Refreshing state... [id=24743811]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
hcloud_server.web: Drift detected (update)
cloudflare_record.a: Drift detected (delete)
cloudflare_record.aaaa: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Cost Estimation:
Resources: 0 of 14 estimated
$0.0/mo +$0.0
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
terraform
Running plan in HCP Terraform. Output will stream here. Pressing Ctrl-C
will stop streaming the logs, but will not stop the plan running remotely.
Preparing the remote plan...
The remote workspace is configured to work with configuration at
infra relative to the target repository.
Terraform will upload the contents of the following directory,
excluding files or directories as defined by a .terraformignore file
at /home/runner/work/private_server/private_server/.terraformignore (if it is present),
in order to capture the filesystem context the remote workspace expects:
/home/runner/work/private_server/private_server
To view this run in a browser, visit:
https://app.terraform.io/app/redline/private_server/runs/run-Ynj4aa2oPKYerZv3
Waiting for the plan to start...
Terraform v1.3.2
on linux_amd64
Initializing plugins and modules...
cloudflare_zone.personal_domain: Refreshing state... [id=cee2af2644f6a3325416173e2d4b44f7]
hcloud_ssh_key.ansible: Refreshing state... [id=8957821]
hcloud_firewall.web_firewall: Refreshing state... [id=603891]
cloudflare_record.aliases["traefik"]: Refreshing state... [id=efbdd0b7c842cec43a43af72a450fcc0]
cloudflare_record.aliases["ldap"]: Refreshing state... [id=416e67a40f89597f342029d943e253ed]
cloudflare_record.aliases["grafana"]: Refreshing state... [id=a63efd438a1e819f0e4215e4835a0f24]
cloudflare_record.aliases["auth"]: Refreshing state... [id=59a6c353a0138b64113ad34f046c17dc]
cloudflare_record.aliases["photoprism"]: Refreshing state... [id=6c61639959eeaf8d547dd411419bcf9a]
cloudflare_record.aliases["grocy"]: Refreshing state... [id=1a98a4348007c72461ab6752f2c7f9df]
hcloud_server.web: Refreshing state... [id=51760523]
hcloud_firewall_attachment.firewall_assignments: Refreshing state... [id=603891]
cloudflare_record.a: Refreshing state... [id=a44b3519c0443db244e9f2dc5bba8a91]
hcloud_volume.data: Refreshing state... [id=24743811]
cloudflare_record.aaaa: Refreshing state... [id=1f54f8a3794295291a1b5a18ed363416]
hcloud_server.web: Drift detected (update)
cloudflare_record.a: Drift detected (delete)
cloudflare_record.aliases["grafana"]: Drift detected (delete)
cloudflare_record.aliases["grocy"]: Drift detected (delete)
cloudflare_record.aliases["ldap"]: Drift detected (delete)
cloudflare_record.aliases["photoprism"]: Drift detected (delete)
cloudflare_record.aliases["traefik"]: Drift detected (delete)
cloudflare_record.aliases["auth"]: Drift detected (delete)
cloudflare_record.aaaa: Drift detected (delete)
hcloud_firewall.web_firewall: Drift detected (update)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudflare_record.a will be created
+ resource "cloudflare_record" "a" {
+ allow_overwrite = false
+ content = "78.47.192.97"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "A"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aaaa will be created
+ resource "cloudflare_record" "aaaa" {
+ allow_overwrite = false
+ content = "2a01:4f8:c2c:1ff1::1"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "pascal.build"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "AAAA"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["auth"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "auth"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grafana"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grafana"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["grocy"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "grocy"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["ldap"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "ldap"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["photoprism"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "photoprism"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
# cloudflare_record.aliases["traefik"] will be created
+ resource "cloudflare_record" "aliases" {
+ allow_overwrite = false
+ content = "pascal.build"
+ created_on = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ modified_on = (known after apply)
+ name = "traefik"
+ proxiable = (known after apply)
+ ttl = 300
+ type = "CNAME"
+ value = (known after apply)
+ zone_id = "cee2af2644f6a3325416173e2d4b44f7"
}
Plan: 8 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Cost Estimation:
Resources: 0 of 14 estimated
$0.0/mo +$0.0
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.48.0→1.63.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
hetznercloud/terraform-provider-hcloud (hcloud)
v1.63.0Compare Source
Features
v1.62.0Compare Source
Primary IPs
assignee_typebehavior changeThe
hcloud_primary_ipresource will now:assignee_typeattribute is configured withoutassignee_idattributeassignee_idattribute is configured withoutassignee_typeattributeAs of 1 August 2026, the behavior of the Primary IP
assignee_typeproperty will change, and will returnunassignedwhen the Primary IP is not assigned (whenassignee_idisnull). The goal is to eventually assign Primary IPs to other resource types, not only toserver.See the changelog for more details.
In addition, the Primary IP request body
assignee_typeproperty of the operationPOST /v1/primary_ipsis now optional. Primary IPs created withoutassignee_typereturnserveruntil 1 August 2026, after this date, its value will beunassigned.See the changelog for more details.
Features
assignee_typeattribute is now optional (#1395)Bug Fixes
v1.61.0Compare Source
Available and recommended Server Types have been moved
hcloud_datacenter/hcloud_datacenters[]: Attributessupported_server_type_ids[]andavailable_server_type_ids[]have been deprecated.hcloud_server_type/hcloud_server_types[]: Attributeslocations[].availableandlocations[].recommendedhave been added as a replacement for the deprecated datacenter attributes.See the changelog for more details.
Features
Bug Fixes
v1.60.1Compare Source
Bug Fixes
v1.60.0Compare Source
Features
zone_recordresource (#1228)v1.59.0Compare Source
Features
Bug Fixes
v1.58.0Compare Source
Breaking Change for the Storage Box resource
Previously the
hcloud_storage_boxresource ignored any changes to thessh_keysattribute to avoid accidentally deleting the Storage Box (SSH Keys can not be changed through the API after the Storage Box is created).This is changed in this release, we now mark the resource as "requires replacement" if the SSH Keys are changed. If you want to ignore changes and keep the previous behaviour, please add the attribute to
lifecycle.ignore_changes:We are releasing this breaking change in a minor version as the Storage Box support is marked as experimental.
Deprecation of
datacenterattribute for Primary IPs and ServersThe
datacenterattributes is deprecated inPrimary IPsandServersAPI resources and will be removed after 1 July 2026. See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters for more details.Therefore,
datacenterattributes is deprecated in favour of thelocationattribute in the following Terraform resources/datasources:hcloud_serverdata.hcloud_serverdata.hcloud_servershcloud_primary_ipdata.hcloud_primary_ipdata.hcloud_primary_ipsThe
locationattribute already exists for Servers, and was added for Primary IPs.The
datacenterattribute will not be updated any more after it is no longer returned by the API. For existing resources this will keep the previous value, for new resources this will result in an empty string.Please make sure to upgrade to
v1.58.0+before the removal date to avoid potential crashes in the provider.Features
Bug Fixes
v1.57.0Compare Source
Storage Box API Experimental
This release adds support for the Storage Box API.
The Storage Box integration will be introduced as an experimental feature. This experimental phase is expected to last until 2 January 2026. During this period, upcoming minor releases of the project may include breaking changes to features related to the Storage Box API. You can find out the current state of this in #1285.
This release includes all changes from the recent Storage Box API changelog entry.
Examples
Features
Bug Fixes
v1.56.0Compare Source
DNS API is now generally available
The DNS API is now generally available, as well as support for features in this project that are related to the DNS API.
To migrate existing zones to the new DNS API, see the DNS migration guide.
See the changelog for more details.
Server and load balancer network attachment
With this release, the
hcloud_server_networkandhcloud_load_balancer_networkresource now supports assigning a server or load balancer to a specific network subnet using thesubnet_idattribute. Thesubnet_idattribute also validates that thenetwork_idandipattributes are consistent with thesubnet_id. If they are not consistent, the resource will be replaced.In the
hcloud_server_networkresource, thealias_ipsattributes now defaults to an empty set when undefined.Features
v1.55.0Compare Source
Features
txt_recordhelper function (#1227)Bug Fixes
v1.54.0Compare Source
DNS API Beta
This release adds support for the new DNS API.
The DNS API is currently in beta, which will likely end on 10 November 2025. After the beta ended, it will no longer be possible to create new zones in the old DNS system. See the DNS Beta FAQ for more details.
Future minor releases of this project may include breaking changes for features that are related to the DNS API.
See the DNS API Beta changelog for more details.
Examples
Features
v1.53.1Compare Source
Bug Fixes
v1.53.0Compare Source
Server Types now depend on Locations.
We added a new
locationsproperty to the Server Types resource. The new property defines a list of supported Locations and additional per Locations details such as deprecations information.We deprecated the
deprecationproperty from the Server Types resource. The property will gradually be phased out as per Locations deprecations are being announced. Please use the new per Locations deprecation information instead.See our changelog for more details.
Upgrading
Features
Bug Fixes
v1.52.0Compare Source
Features
v1.51.0Compare Source
Features
v1.50.1Compare Source
Bug Fixes
v1.50.0Compare Source
In this release, we upgraded the underlying Hetzner Cloud API client (hcloud-go) for the entire provider, which involves risk of breakage. Please make sure to test this new version before using it on production environments.
Features
Bug Fixes
v1.49.1Compare Source
Bug Fixes
v1.49.0Compare Source
Features
Bug Fixes
v1.48.1Compare Source
Bug Fixes
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.