Skip to content

fix: restore metrics-server access to cluster kubelets - #65

Merged
Davidcode2 merged 3 commits into
mainfrom
fix/allow-inter-node-kubelet-metrics
Oct 17, 2026
Merged

Davidcode2 merged 3 commits into
mainfrom
fix/allow-inter-node-kubelet-metrics

Conversation

@Davidcode2

Copy link
Copy Markdown
Owner

Summary

  • Add one inbound TCP 10250 rule to the existing cluster firewall, restricted to the four cloud nodes public IPv4 /32 addresses.
  • Restore the connection metrics-server already uses without changing node addresses, Kubernetes resources, or firewall attachments.

Diagnosis

Four cloud nodes are Ready, but both telemetry and the Kubernetes metrics API return only k8s-node-1. Metrics-server runs on k8s-node-1 and repeatedly times out scraping the other three cloud nodes at their public IPs on TCP 10250. The live Hetzner firewall is attached to all four nodes and has no matching allowance; its unrestricted internal rule only covers 10.0.0.0/16.

Impact and rollout

This is an additive firewall permission change. No pod or node restarts are required. No infrastructure changes have been applied locally. Review the Terraform plan before merging: the intended change is an in-place update to hcloud_firewall.k8s_cluster adding this rule, with no removals, replacements, or attachment changes. Metrics-server retries every 15 seconds and telemetry refreshes every 30 seconds.

Validation

  • git diff --check passed.
  • Parsed the HCL with python-hcl2 and structurally compared it with the original: exactly one inbound TCP 10250 rule was added, its sources are exactly the four expected /32 addresses, and all existing configuration is preserved.
  • Source addresses were checked against the live Hetzner server list during investigation.
  • Terraform commands were not run, per repository policy.

Post-deployment verification

  • Confirm metrics-server no longer times out for k8s-node-2, k8s-node-3, and k8s-worker-1.
  • Confirm /apis/metrics.k8s.io/v1beta1/nodes returns all four cloud nodes.
  • Confirm telemetry reports four nodes. The offline acer-laptop entry is separate.

Tracking

bd ready --json failed because the local Dolt journal is reported corrupt. No database repair was attempted; a bd task ID could not be created.

@github-actions

Copy link
Copy Markdown
Contributor

Terraform Format and Style 🖌failure

Terraform Initialization ⚙️success

Terraform Validation 🤖success

Terraform Plan 📖failure

Show Plan
tls_private_key.hetzner_private_key: Refreshing state... [id=976e6cb73e196f15de378de25cb856d93156d17a]
module.dns.digitalocean_domain.schluesselmomente_freiburg_de: Refreshing state... [id=schluesselmomente-freiburg.de]
module.dns.digitalocean_domain.gmymf_com: Refreshing state... [id=gmymf.com]
module.dns.digitalocean_record.jakob_lingel_dev_smiles: Refreshing state... [id=1832639417]
module.dns.digitalocean_domain.jakob-lingel-dev: Refreshing state... [id=jakob-lingel.dev]
module.dns.digitalocean_record.jakob_lingel_dev_google_verification: Refreshing state... [id=1832947695]
module.dns.digitalocean_domain.mimis_kreativstudio_de: Refreshing state... [id=mimis-kreativstudio.de]
hcloud_ssh_key.hetzner_ssh_key: Refreshing state... [id=29251013]
hcloud_firewall.legacy_vm: Refreshing state... [id=10471313]
hcloud_firewall.k8s_cluster: Refreshing state... [id=10471312]
module.dns.digitalocean_domain.immoly-io: Refreshing state... [id=immoly.io]
hcloud_network.k8s_private_net: Refreshing state... [id=11620945]
hcloud_firewall.bot_node: Refreshing state... [id=11352564]
module.dns.digitalocean_domain.alemazung_de: Refreshing state... [id=alemazung.de]
hcloud_network.bot_private_net: Refreshing state... [id=12478431]
hcloud_ssh_key.deployment_key: Refreshing state... [id=29750012]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_url: Refreshing state... [id=/joy_alemazung/strapi/api_url]
module.projects.aws_ssm_parameter.umami_app_secret: Refreshing state... [id=/umami/app_secret]
data.aws_caller_identity.current: Reading...
module.projects.aws_ssm_parameter.teachme_backend_stripe_test_key: Refreshing state... [id=/teachme/backend/stripe_test_key]
module.projects.aws_ssm_parameter.schluesselmomente_be_password: Refreshing state... [id=/schluesselmomente/be/password]
module.projects.aws_ssm_parameter.gmymf_medusa_db_password: Refreshing state... [id=/gmymf-medusa/db/password]
module.projects.aws_ssm_parameter.schluesselmomente_be_schluesselmomente_sendkey: Refreshing state... [id=/schluesselmomente/be/schluesselmomente_sendkey]
module.projects.aws_ssm_parameter.teachme_backend_gcloud_api_key: Refreshing state... [id=/teachme/backend/gcloud_api_key]
module.projects.aws_ssm_parameter.smiles_notifications_recipient_email_address: Refreshing state... [id=/smiles/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.teachme_keycloak_db_username: Refreshing state... [id=/teachme/keycloak/db_username]
data.aws_caller_identity.current: Read complete after 0s [id=787858641164]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_ipv4: Refreshing state... [id=/compute/hetzner-cloud-server-1/host]
module.projects.aws_ssm_parameter.gmymf_medusa_cookie_secret: Refreshing state... [id=/gmymf-medusa/cookie/secret]
module.projects.aws_ssm_parameter.teachme_backend_jwt_refresh_secret: Refreshing state... [id=/teachme/backend/jwt_refresh_secret]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_password: Refreshing state... [id=/teachme/keycloak/admin_password]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/deployment_private_ssh_key]
module.projects.aws_ssm_parameter.joy_alemazung_notifications_recipient_email_address: Refreshing state... [id=/joy_alemazung/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.message_router_resend_api_key_full: Refreshing state... [id=/message-router/resend-api-key-full]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_secret: Refreshing state... [id=/schreinerei/keycloak/admin_client_secret]
module.projects.aws_ssm_parameter.maas_bueromoebel_notifications_recipient_email_address: Refreshing state... [id=/maas-bueromoebel/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token_salt: Refreshing state... [id=/joy_alemazung/strapi/api_token_salt]
module.projects.aws_ssm_parameter.schreinerei_mollie_api_key: Refreshing state... [id=/schreinerei/mollie/api_key]
module.projects.aws_ssm_parameter.paperless_secret_key: Refreshing state... [id=/paperless/secret-key]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_user: Refreshing state... [id=/teachme/keycloak-db/postgres_user]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_encryption_key: Refreshing state... [id=/joy_alemazung/strapi/db/encryption_key]
module.projects.aws_ssm_parameter.teachme_backend_session_secret: Refreshing state... [id=/teachme/backend/session_secret]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_app_keys: Refreshing state... [id=/joy_alemazung/strapi/app_keys]
module.projects.aws_ssm_parameter.teachme_backend_db_password: Refreshing state... [id=/teachme/backend/db_password]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/jwt_secret]
module.projects.aws_ssm_parameter.vogthof_recipient_email: Refreshing state... [id=/vogthof/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.teachme_backend_keycloak_client_secret: Refreshing state... [id=/teachme/backend/keycloak_client_secret]
module.projects.aws_ssm_parameter.immoly_db_name: Refreshing state... [id=/immoly/db/name]
module.projects.aws_ssm_parameter.teachme_backend_recaptcha_secret: Refreshing state... [id=/teachme/backend/recaptcha_secret]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_spf"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_spf]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hcloud_ssh_key"]: Refreshing state... [id=/infra/terraform/servers/hcloud_ssh_key]
module.projects.aws_ssm_parameter.schluesselmomente_be_mailgun_api_key: Refreshing state... [id=/schluesselmomente/be/mailgun_api_key]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hetzner_server_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/hetzner_server_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/ssh_private_key_path"]: Refreshing state... [id=/infra/terraform/ssh_private_key_path]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/aws/account_id"]: Refreshing state... [id=/infra/terraform/aws/account_id]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zmail_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zmail_dkim]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/hcloud_token"]: Refreshing state... [id=/infra/terraform/providers/hcloud_token]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/digitalocean_droplet_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/digitalocean_droplet_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/portfolio_netlify_challenge"]: Refreshing state... [id=/infra/terraform/dns/portfolio_netlify_challenge]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_dkim]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zoho_verification"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zoho_verification]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/digitalocean_token"]: Refreshing state... [id=/infra/terraform/providers/digitalocean_token]
aws_iam_role.terraform_ci_role: Refreshing state... [id=terraform-ci-role]
module.projects.aws_ssm_parameter.schreinerei_db_password: Refreshing state... [id=/schreinerei/db/password]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_transfer_token_salt: Refreshing state... [id=/joy_alemazung/strapi/transfer_token_salt]
module.projects.aws_ssm_parameter.schreinerei_db_user: Refreshing state... [id=/schreinerei/db/user]
module.projects.aws_ssm_parameter.schreinerei_db_name: Refreshing state... [id=/schreinerei/db/name]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token: Refreshing state... [id=/joy_alemazung/strapi/api_token]
module.projects.aws_ssm_parameter.immoly_db_user: Refreshing state... [id=/immoly/db/user]
module.projects.aws_ssm_parameter.teachme_backend_db_username: Refreshing state... [id=/teachme/backend/db_username]
module.projects.aws_ssm_parameter.schluesselmomente_be_mail: Refreshing state... [id=/schluesselmomente/be/mail]
module.projects.aws_ssm_parameter.argocd_github_app_private_key: Refreshing state... [id=/argocd/github-app-private-key]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_username: Refreshing state... [id=/teachme/keycloak/admin_username]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_password: Refreshing state... [id=/joy_alemazung/strapi/db/password]
module.projects.aws_ssm_parameter.teachme_backend_stripe_webhook_secret: Refreshing state... [id=/teachme/backend/stripe_webhook_secret]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_id: Refreshing state... [id=/schreinerei/keycloak/admin_client_id]
module.projects.aws_ssm_parameter.message_router_api_key: Refreshing state... [id=/message-router/api-key]
module.projects.aws_ssm_parameter.teachme_keycloak_db_password: Refreshing state... [id=/teachme/keycloak/db_password]
module.projects.aws_ssm_parameter.immoly_db_password: Refreshing state... [id=/immoly/db/password]
module.projects.aws_ssm_parameter.teachme_backend_jwt_secret: Refreshing state... [id=/teachme/backend/jwt_secret]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_realm: Refreshing state... [id=/schreinerei/keycloak/admin_realm]
module.projects.aws_ssm_parameter.umami_db_password: Refreshing state... [id=/umami/db/password]
module.projects.aws_ssm_parameter.message_router_from_email: Refreshing state... [id=/message-router/from-email]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_openssl_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/openssl_deployment_private_ssh_key]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_password: Refreshing state... [id=/teachme/keycloak-db/postgres_password]
aws_iam_role.ci-role: Refreshing state... [id=ci-role]
module.projects.aws_ssm_parameter.paperless_db_password: Refreshing state... [id=/paperless/db/password]
module.projects.aws_ssm_parameter.business_website_notifications_recipient_email_address: Refreshing state... [id=/business-website/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_admin_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/admin_jwt_secret]
aws_iam_user.external_secrets: Refreshing state... [id=external-secrets-ssm]
aws_iam_openid_connect_provider.github: Refreshing state... [id=arn:aws:iam::787858641164:oidc-provider/token.actions.githubusercontent.com]
module.projects.aws_ssm_parameter.gmymf_storefront_medusa_publishable_key: Refreshing state... [id=/gmymf-storefront/medusa/publishable_key]
module.projects.aws_ssm_parameter.teachme_keycloak_keystore_password: Refreshing state... [id=/teachme/keycloak/keystore_password]
module.projects.aws_ssm_parameter.mimis_kreativstudio_notifications_recipient_email_address: Refreshing state... [id=/mimis-kreativstudio/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.message_router_resend_api_key: Refreshing state... [id=/message-router/resend-api-key]
module.projects.aws_ssm_parameter.oauth2_proxy_cookie_secret: Refreshing state... [id=/oauth2-proxy/cookie-secret]
module.projects.aws_ssm_parameter.gmymf_medusa_jwt_secret: Refreshing state... [id=/gmymf-medusa/jwt/secret]
hcloud_network_subnet.bot_private_subnet: Refreshing state... [id=12478431-10.1.1.0/24]
hcloud_network_subnet.k8s_private_subnet: Refreshing state... [id=11620945-10.0.1.0/24]
hcloud_server.k8s_node[1]: Refreshing state... [id=112652681]
hcloud_server.k8s_node[2]: Refreshing state... [id=112652679]
hcloud_server.k8s_node[0]: Refreshing state... [id=112652680]
aws_iam_role_policy.terraform_ci_policy: Refreshing state... [id=terraform-ci-role:terraform-ci-policy]
aws_iam_role_policy.ci-policy: Refreshing state... [id=ci-role:ci-policy]
hcloud_server.bot_node[0]: Refreshing state... [id=154112110]
hcloud_server.k8s_worker[0]: Refreshing state... [id=126420344]
aws_iam_user_policy.external_secrets_ssm: Refreshing state... [id=external-secrets-ssm:external-secrets-ssm-read]
hcloud_firewall_attachment.bot_node: Refreshing state... [id=11352564]
hcloud_firewall_attachment.k8s_cluster: Refreshing state... [id=10471312]
local_file.ansible_inventory: Refreshing state... [id=bbe78095307aeaaedd0eb4fdc9488580dd9eaa2a]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
  - destroy

Terraform planned the following actions, but then encountered a problem:

  # aws_iam_role_policy.ci-policy will be updated in-place
  ~ resource "aws_iam_role_policy" "ci-policy" {
        id          = "ci-role:ci-policy"
        name        = "ci-policy"
      ~ policy      = (sensitive value)
        # (2 unchanged attributes hidden)
    }

  # aws_iam_role_policy.terraform_ci_policy will be updated in-place
  ~ resource "aws_iam_role_policy" "terraform_ci_policy" {
        id          = "terraform-ci-role:terraform-ci-policy"
        name        = "terraform-ci-policy"
      ~ policy      = (sensitive value)
        # (2 unchanged attributes hidden)
    }

  # aws_iam_user_policy.external_secrets_ssm will be updated in-place
  ~ resource "aws_iam_user_policy" "external_secrets_ssm" {
        id          = "external-secrets-ssm:external-secrets-ssm-read"
        name        = "external-secrets-ssm-read"
      ~ policy      = jsonencode(
          ~ {
              ~ Statement = [
                  ~ {
                      ~ Resource = [
                            # (13 unchanged elements hidden)
                            "arn:aws:ssm:eu-central-1:787858641164:parameter/schreinerei/*",
                          - "arn:aws:ssm:eu-central-1:787858641164:parameter/smiles/*",
                            "arn:aws:ssm:eu-central-1:787858641164:parameter/teachme/*",
                            # (2 unchanged elements hidden)
                        ]
                        # (2 unchanged attributes hidden)
                    },
                    {
                        Action   = "ssm:DescribeParameters"
                        Effect   = "Allow"
                        Resource = "*"
                    },
                    # (1 unchanged element hidden)
                ]
                # (1 unchanged attribute hidden)
            }
        )
        # (2 unchanged attributes hidden)
    }

  # hcloud_firewall.k8s_cluster will be updated in-place
  ~ resource "hcloud_firewall" "k8s_cluster" {
        id     = "10471312"
        name   = "k8s-cluster-firewall"
        # (1 unchanged attribute hidden)

      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "22" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "30000-32767" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "6443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "80" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "8472" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "10250"
          + protocol        = "tcp"
          + source_ips      = [
              + "116.203.111.240/32",
              + "178.104.133.8/32",
              + "195.201.5.29/32",
              + "91.98.235.232/32",
            ]
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + protocol        = "icmp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "22"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "30000-32767"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "6443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "80"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "8472"
          + protocol        = "udp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + protocol        = "icmp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }

        # (4 unchanged blocks hidden)
    }

  # local_file.ansible_inventory will be created
  + resource "local_file" "ansible_inventory" {
      + content              = (sensitive value)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = ".././ansible/inventory/k8s_hosts.ini"
      + id                   = (known after apply)
    }

  # module.projects.aws_ssm_parameter.smiles_notifications_recipient_email_address will be destroyed
  # (because aws_ssm_parameter.smiles_notifications_recipient_email_address is not in configuration)
  - resource "aws_ssm_parameter" "smiles_notifications_recipient_email_address" {
      - arn             = "arn:aws:ssm:eu-central-1:787858641164:parameter/smiles/notifications/recipient_email_address" -> null
      - data_type       = "text" -> null
      - description     = "Waitlist recipient email address for Smiles" -> null
      - id              = "/smiles/notifications/recipient_email_address" -> null
      - key_id          = "alias/aws/ssm" -> null
      - name            = "/smiles/notifications/recipient_email_address" -> null
      - tags            = {} -> null
      - tags_all        = {} -> null
      - tier            = "Standard" -> null
      - type            = "SecureString" -> null
      - value           = (sensitive value) -> null
      - value_wo        = (write-only attribute) -> null
      - version         = 2 -> null
        # (1 unchanged attribute hidden)
    }

Plan: 1 to add, 4 to change, 1 to destroy.

Warning: Deprecated attribute

  on main.tf line 127, in resource "hcloud_server" "bot_node":
 127:       datacenter,

The attribute "datacenter" is deprecated. Refer to the provider documentation
for details.

(and 5 more similar warnings elsewhere)

Pushed by: @Davidcode2, Action: pull_request

@github-actions

Copy link
Copy Markdown
Contributor

Terraform Format and Style 🖌failure

Terraform Initialization ⚙️success

Terraform Validation 🤖success

Terraform Plan 📖failure

Show Plan
tls_private_key.hetzner_private_key: Refreshing state... [id=976e6cb73e196f15de378de25cb856d93156d17a]
hcloud_ssh_key.hetzner_ssh_key: Refreshing state... [id=29251013]
hcloud_network.bot_private_net: Refreshing state... [id=12478431]
hcloud_network.k8s_private_net: Refreshing state... [id=11620945]
hcloud_firewall.bot_node: Refreshing state... [id=11352564]
hcloud_firewall.legacy_vm: Refreshing state... [id=10471313]
hcloud_ssh_key.deployment_key: Refreshing state... [id=29750012]
hcloud_firewall.k8s_cluster: Refreshing state... [id=10471312]
module.dns.digitalocean_domain.immoly-io: Refreshing state... [id=immoly.io]
module.dns.digitalocean_record.jakob_lingel_dev_google_verification: Refreshing state... [id=1832947695]
module.dns.digitalocean_domain.schluesselmomente_freiburg_de: Refreshing state... [id=schluesselmomente-freiburg.de]
module.dns.digitalocean_domain.alemazung_de: Refreshing state... [id=alemazung.de]
module.dns.digitalocean_domain.jakob-lingel-dev: Refreshing state... [id=jakob-lingel.dev]
module.dns.digitalocean_domain.mimis_kreativstudio_de: Refreshing state... [id=mimis-kreativstudio.de]
module.dns.digitalocean_domain.gmymf_com: Refreshing state... [id=gmymf.com]
module.projects.aws_ssm_parameter.paperless_secret_key: Refreshing state... [id=/paperless/secret-key]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_dkim]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/jwt_secret]
module.projects.aws_ssm_parameter.maas_bueromoebel_notifications_recipient_email_address: Refreshing state... [id=/maas-bueromoebel/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/deployment_private_ssh_key]
module.projects.aws_ssm_parameter.teachme_backend_recaptcha_secret: Refreshing state... [id=/teachme/backend/recaptcha_secret]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_realm: Refreshing state... [id=/schreinerei/keycloak/admin_realm]
module.projects.aws_ssm_parameter.schreinerei_db_password: Refreshing state... [id=/schreinerei/db/password]
module.projects.aws_ssm_parameter.teachme_keycloak_db_password: Refreshing state... [id=/teachme/keycloak/db_password]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_user: Refreshing state... [id=/teachme/keycloak-db/postgres_user]
module.projects.aws_ssm_parameter.message_router_api_key: Refreshing state... [id=/message-router/api-key]
module.projects.aws_ssm_parameter.business_website_notifications_recipient_email_address: Refreshing state... [id=/business-website/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/ssh_private_key_path"]: Refreshing state... [id=/infra/terraform/ssh_private_key_path]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hetzner_server_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/hetzner_server_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/digitalocean_token"]: Refreshing state... [id=/infra/terraform/providers/digitalocean_token]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_ipv4: Refreshing state... [id=/compute/hetzner-cloud-server-1/host]
module.projects.aws_ssm_parameter.schluesselmomente_be_schluesselmomente_sendkey: Refreshing state... [id=/schluesselmomente/be/schluesselmomente_sendkey]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/digitalocean_droplet_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/digitalocean_droplet_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/portfolio_netlify_challenge"]: Refreshing state... [id=/infra/terraform/dns/portfolio_netlify_challenge]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hcloud_ssh_key"]: Refreshing state... [id=/infra/terraform/servers/hcloud_ssh_key]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/hcloud_token"]: Refreshing state... [id=/infra/terraform/providers/hcloud_token]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/aws/account_id"]: Refreshing state... [id=/infra/terraform/aws/account_id]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zmail_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zmail_dkim]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zoho_verification"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zoho_verification]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_username: Refreshing state... [id=/teachme/keycloak/admin_username]
module.projects.aws_ssm_parameter.umami_app_secret: Refreshing state... [id=/umami/app_secret]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_spf"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_spf]
module.projects.aws_ssm_parameter.gmymf_storefront_medusa_publishable_key: Refreshing state... [id=/gmymf-storefront/medusa/publishable_key]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token: Refreshing state... [id=/joy_alemazung/strapi/api_token]
data.aws_caller_identity.current: Reading...
module.projects.aws_ssm_parameter.gmymf_medusa_jwt_secret: Refreshing state... [id=/gmymf-medusa/jwt/secret]
module.projects.aws_ssm_parameter.teachme_keycloak_db_username: Refreshing state... [id=/teachme/keycloak/db_username]
data.aws_caller_identity.current: Read complete after 0s [id=787858641164]
module.projects.aws_ssm_parameter.joy_alemazung_notifications_recipient_email_address: Refreshing state... [id=/joy_alemazung/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.teachme_backend_session_secret: Refreshing state... [id=/teachme/backend/session_secret]
module.projects.aws_ssm_parameter.teachme_backend_db_username: Refreshing state... [id=/teachme/backend/db_username]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_id: Refreshing state... [id=/schreinerei/keycloak/admin_client_id]
module.projects.aws_ssm_parameter.teachme_backend_jwt_refresh_secret: Refreshing state... [id=/teachme/backend/jwt_refresh_secret]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_secret: Refreshing state... [id=/schreinerei/keycloak/admin_client_secret]
module.projects.aws_ssm_parameter.immoly_db_name: Refreshing state... [id=/immoly/db/name]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token_salt: Refreshing state... [id=/joy_alemazung/strapi/api_token_salt]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_password: Refreshing state... [id=/teachme/keycloak-db/postgres_password]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_password: Refreshing state... [id=/teachme/keycloak/admin_password]
module.projects.aws_ssm_parameter.argocd_github_app_private_key: Refreshing state... [id=/argocd/github-app-private-key]
module.projects.aws_ssm_parameter.oauth2_proxy_cookie_secret: Refreshing state... [id=/oauth2-proxy/cookie-secret]
module.projects.aws_ssm_parameter.mimis_kreativstudio_notifications_recipient_email_address: Refreshing state... [id=/mimis-kreativstudio/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.teachme_backend_gcloud_api_key: Refreshing state... [id=/teachme/backend/gcloud_api_key]
module.projects.aws_ssm_parameter.teachme_backend_stripe_webhook_secret: Refreshing state... [id=/teachme/backend/stripe_webhook_secret]
aws_iam_role.ci-role: Refreshing state... [id=ci-role]
aws_iam_role.terraform_ci_role: Refreshing state... [id=terraform-ci-role]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_admin_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/admin_jwt_secret]
module.projects.aws_ssm_parameter.schluesselmomente_be_mailgun_api_key: Refreshing state... [id=/schluesselmomente/be/mailgun_api_key]
module.projects.aws_ssm_parameter.teachme_backend_jwt_secret: Refreshing state... [id=/teachme/backend/jwt_secret]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_password: Refreshing state... [id=/joy_alemazung/strapi/db/password]
module.projects.aws_ssm_parameter.teachme_backend_db_password: Refreshing state... [id=/teachme/backend/db_password]
module.projects.aws_ssm_parameter.gmymf_medusa_db_password: Refreshing state... [id=/gmymf-medusa/db/password]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_encryption_key: Refreshing state... [id=/joy_alemazung/strapi/db/encryption_key]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_app_keys: Refreshing state... [id=/joy_alemazung/strapi/app_keys]
module.projects.aws_ssm_parameter.gmymf_medusa_cookie_secret: Refreshing state... [id=/gmymf-medusa/cookie/secret]
module.projects.aws_ssm_parameter.teachme_keycloak_keystore_password: Refreshing state... [id=/teachme/keycloak/keystore_password]
module.projects.aws_ssm_parameter.message_router_resend_api_key: Refreshing state... [id=/message-router/resend-api-key]
aws_iam_openid_connect_provider.github: Refreshing state... [id=arn:aws:iam::787858641164:oidc-provider/token.actions.githubusercontent.com]
module.projects.aws_ssm_parameter.smiles_notifications_recipient_email_address: Refreshing state... [id=/smiles/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_openssl_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/openssl_deployment_private_ssh_key]
module.projects.aws_ssm_parameter.immoly_db_password: Refreshing state... [id=/immoly/db/password]
module.projects.aws_ssm_parameter.message_router_from_email: Refreshing state... [id=/message-router/from-email]
module.projects.aws_ssm_parameter.schluesselmomente_be_mail: Refreshing state... [id=/schluesselmomente/be/mail]
module.projects.aws_ssm_parameter.schluesselmomente_be_password: Refreshing state... [id=/schluesselmomente/be/password]
module.projects.aws_ssm_parameter.schreinerei_db_user: Refreshing state... [id=/schreinerei/db/user]
module.projects.aws_ssm_parameter.umami_db_password: Refreshing state... [id=/umami/db/password]
module.projects.aws_ssm_parameter.teachme_backend_keycloak_client_secret: Refreshing state... [id=/teachme/backend/keycloak_client_secret]
module.projects.aws_ssm_parameter.immoly_db_user: Refreshing state... [id=/immoly/db/user]
module.projects.aws_ssm_parameter.teachme_backend_stripe_test_key: Refreshing state... [id=/teachme/backend/stripe_test_key]
module.projects.aws_ssm_parameter.paperless_db_password: Refreshing state... [id=/paperless/db/password]
module.projects.aws_ssm_parameter.schreinerei_mollie_api_key: Refreshing state... [id=/schreinerei/mollie/api_key]
module.projects.aws_ssm_parameter.message_router_resend_api_key_full: Refreshing state... [id=/message-router/resend-api-key-full]
module.projects.aws_ssm_parameter.vogthof_recipient_email: Refreshing state... [id=/vogthof/notifications/recipient_email_address]
aws_iam_user.external_secrets: Refreshing state... [id=external-secrets-ssm]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_url: Refreshing state... [id=/joy_alemazung/strapi/api_url]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_transfer_token_salt: Refreshing state... [id=/joy_alemazung/strapi/transfer_token_salt]
module.projects.aws_ssm_parameter.schreinerei_db_name: Refreshing state... [id=/schreinerei/db/name]
hcloud_network_subnet.bot_private_subnet: Refreshing state... [id=12478431-10.1.1.0/24]
hcloud_network_subnet.k8s_private_subnet: Refreshing state... [id=11620945-10.0.1.0/24]
hcloud_server.k8s_node[1]: Refreshing state... [id=112652681]
hcloud_server.k8s_node[2]: Refreshing state... [id=112652679]
hcloud_server.k8s_node[0]: Refreshing state... [id=112652680]
aws_iam_role_policy.ci-policy: Refreshing state... [id=ci-role:ci-policy]
aws_iam_role_policy.terraform_ci_policy: Refreshing state... [id=terraform-ci-role:terraform-ci-policy]
hcloud_server.bot_node[0]: Refreshing state... [id=154112110]
hcloud_server.k8s_worker[0]: Refreshing state... [id=126420344]
aws_iam_user_policy.external_secrets_ssm: Refreshing state... [id=external-secrets-ssm:external-secrets-ssm-read]
hcloud_firewall_attachment.bot_node: Refreshing state... [id=11352564]
hcloud_firewall_attachment.k8s_cluster: Refreshing state... [id=10471312]
local_file.ansible_inventory: Refreshing state... [id=bbe78095307aeaaedd0eb4fdc9488580dd9eaa2a]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform planned the following actions, but then encountered a problem:

  # hcloud_firewall.k8s_cluster will be updated in-place
  ~ resource "hcloud_firewall" "k8s_cluster" {
        id     = "10471312"
        name   = "k8s-cluster-firewall"
        # (1 unchanged attribute hidden)

      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "22" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "30000-32767" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "6443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "80" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "8472" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "10250"
          + protocol        = "tcp"
          + source_ips      = [
              + "116.203.111.240/32",
              + "178.104.133.8/32",
              + "195.201.5.29/32",
              + "91.98.235.232/32",
            ]
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + protocol        = "icmp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "22"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "30000-32767"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "6443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "80"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "8472"
          + protocol        = "udp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + protocol        = "icmp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }

        # (4 unchanged blocks hidden)
    }

  # local_file.ansible_inventory will be created
  + resource "local_file" "ansible_inventory" {
      + content              = (sensitive value)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = ".././ansible/inventory/k8s_hosts.ini"
      + id                   = (known after apply)
    }

Plan: 1 to add, 1 to change, 0 to destroy.

Warning: Deprecated attribute

  on main.tf line 127, in resource "hcloud_server" "bot_node":
 127:       datacenter,

The attribute "datacenter" is deprecated. Refer to the provider documentation
for details.

(and 5 more similar warnings elsewhere)

Pushed by: @Davidcode2, Action: pull_request

@github-actions

Copy link
Copy Markdown
Contributor

Terraform Format and Style 🖌failure

Terraform Initialization ⚙️success

Terraform Validation 🤖success

Terraform Plan 📖success

Show Plan
Acquiring state lock. This may take a few moments...
tls_private_key.hetzner_private_key: Refreshing state... [id=976e6cb73e196f15de378de25cb856d93156d17a]
hcloud_ssh_key.hetzner_ssh_key: Refreshing state... [id=29251013]
hcloud_network.k8s_private_net: Refreshing state... [id=11620945]
hcloud_network.bot_private_net: Refreshing state... [id=12478431]
hcloud_firewall.bot_node: Refreshing state... [id=11352564]
hcloud_firewall.legacy_vm: Refreshing state... [id=10471313]
hcloud_ssh_key.deployment_key: Refreshing state... [id=29750012]
hcloud_firewall.k8s_cluster: Refreshing state... [id=10471312]
module.dns.digitalocean_domain.alemazung_de: Refreshing state... [id=alemazung.de]
module.dns.digitalocean_record.jakob_lingel_dev_google_verification: Refreshing state... [id=1832947695]
module.dns.digitalocean_domain.immoly-io: Refreshing state... [id=immoly.io]
module.dns.digitalocean_domain.schluesselmomente_freiburg_de: Refreshing state... [id=schluesselmomente-freiburg.de]
module.dns.digitalocean_domain.mimis_kreativstudio_de: Refreshing state... [id=mimis-kreativstudio.de]
module.dns.digitalocean_domain.jakob-lingel-dev: Refreshing state... [id=jakob-lingel.dev]
module.dns.digitalocean_record.alemazung_de_ns2: Refreshing state... [id=1813504227]
module.dns.digitalocean_record.alemazung_de_api_A: Refreshing state... [id=1825319355]
module.dns.digitalocean_record.alemazung_de_www_A: Refreshing state... [id=1813504228]
module.dns.digitalocean_domain.gmymf_com: Refreshing state... [id=gmymf.com]
module.dns.digitalocean_record.alemazung_de_ns3: Refreshing state... [id=1813504229]
module.dns.digitalocean_record.alemazung_de_A: Refreshing state... [id=1813504226]
module.dns.digitalocean_record.alemazung_de_www_api_A: Refreshing state... [id=1825319353]
module.dns.digitalocean_record.alemazung_de_ns1: Refreshing state... [id=1813504225]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_www_a: Refreshing state... [id=1776724211]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_ns3: Refreshing state... [id=1776723516]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_mx1: Refreshing state... [id=1777264684]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_ns2: Refreshing state... [id=1776723514]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_s1_dkim_txt: Refreshing state... [id=1777773174]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_spf_txt: Refreshing state... [id=1777264988]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_zmail_dkim_txt: Refreshing state... [id=1777264856]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_admin_a: Refreshing state... [id=1781139199]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_mx2: Refreshing state... [id=1777264705]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_ns1: Refreshing state... [id=1776723512]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_zoho_verification_txt: Refreshing state... [id=1777263731]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_mx3: Refreshing state... [id=1777264751]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_root_a: Refreshing state... [id=1776723817]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_api_a: Refreshing state... [id=1780508291]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_www_admin_a: Refreshing state... [id=1781147690]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_user: Refreshing state... [id=/teachme/keycloak-db/postgres_user]
module.projects.aws_ssm_parameter.teachme_backend_jwt_secret: Refreshing state... [id=/teachme/backend/jwt_secret]
aws_iam_openid_connect_provider.github: Refreshing state... [id=arn:aws:iam::787858641164:oidc-provider/token.actions.githubusercontent.com]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_password: Refreshing state... [id=/teachme/keycloak/admin_password]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_encryption_key: Refreshing state... [id=/joy_alemazung/strapi/db/encryption_key]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_spf"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_spf]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/ssh_private_key_path"]: Refreshing state... [id=/infra/terraform/ssh_private_key_path]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zoho_verification"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zoho_verification]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/digitalocean_droplet_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/digitalocean_droplet_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hcloud_ssh_key"]: Refreshing state... [id=/infra/terraform/servers/hcloud_ssh_key]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/hcloud_token"]: Refreshing state... [id=/infra/terraform/providers/hcloud_token]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/digitalocean_token"]: Refreshing state... [id=/infra/terraform/providers/digitalocean_token]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/aws/account_id"]: Refreshing state... [id=/infra/terraform/aws/account_id]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/portfolio_netlify_challenge"]: Refreshing state... [id=/infra/terraform/dns/portfolio_netlify_challenge]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_dkim]
module.projects.aws_ssm_parameter.schluesselmomente_be_schluesselmomente_sendkey: Refreshing state... [id=/schluesselmomente/be/schluesselmomente_sendkey]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hetzner_server_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/hetzner_server_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zmail_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zmail_dkim]
aws_iam_role.ci-role: Refreshing state... [id=ci-role]
data.aws_caller_identity.current: Reading...
module.projects.aws_ssm_parameter.joy_alemazung_strapi_app_keys: Refreshing state... [id=/joy_alemazung/strapi/app_keys]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_secret: Refreshing state... [id=/schreinerei/keycloak/admin_client_secret]
module.projects.aws_ssm_parameter.gmymf_medusa_db_password: Refreshing state... [id=/gmymf-medusa/db/password]
module.projects.aws_ssm_parameter.paperless_secret_key: Refreshing state... [id=/paperless/secret-key]
module.projects.aws_ssm_parameter.message_router_from_email: Refreshing state... [id=/message-router/from-email]
data.aws_caller_identity.current: Read complete after 0s [id=787858641164]
module.projects.aws_ssm_parameter.umami_db_password: Refreshing state... [id=/umami/db/password]
module.projects.aws_ssm_parameter.argocd_github_app_private_key: Refreshing state... [id=/argocd/github-app-private-key]
module.projects.aws_ssm_parameter.gmymf_medusa_jwt_secret: Refreshing state... [id=/gmymf-medusa/jwt/secret]
aws_iam_role.terraform_ci_role: Refreshing state... [id=terraform-ci-role]
module.projects.aws_ssm_parameter.gmymf_storefront_medusa_publishable_key: Refreshing state... [id=/gmymf-storefront/medusa/publishable_key]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token_salt: Refreshing state... [id=/joy_alemazung/strapi/api_token_salt]
module.projects.aws_ssm_parameter.teachme_backend_keycloak_client_secret: Refreshing state... [id=/teachme/backend/keycloak_client_secret]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_password: Refreshing state... [id=/joy_alemazung/strapi/db/password]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_openssl_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/openssl_deployment_private_ssh_key]
module.projects.aws_ssm_parameter.business_website_notifications_recipient_email_address: Refreshing state... [id=/business-website/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.teachme_backend_db_username: Refreshing state... [id=/teachme/backend/db_username]
module.projects.aws_ssm_parameter.schluesselmomente_be_password: Refreshing state... [id=/schluesselmomente/be/password]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_password: Refreshing state... [id=/teachme/keycloak-db/postgres_password]
module.projects.aws_ssm_parameter.gmymf_medusa_cookie_secret: Refreshing state... [id=/gmymf-medusa/cookie/secret]
module.projects.aws_ssm_parameter.teachme_keycloak_db_username: Refreshing state... [id=/teachme/keycloak/db_username]
module.projects.aws_ssm_parameter.teachme_backend_gcloud_api_key: Refreshing state... [id=/teachme/backend/gcloud_api_key]
module.projects.aws_ssm_parameter.immoly_db_user: Refreshing state... [id=/immoly/db/user]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_transfer_token_salt: Refreshing state... [id=/joy_alemazung/strapi/transfer_token_salt]
module.projects.aws_ssm_parameter.teachme_keycloak_keystore_password: Refreshing state... [id=/teachme/keycloak/keystore_password]
module.projects.aws_ssm_parameter.immoly_db_name: Refreshing state... [id=/immoly/db/name]
module.projects.aws_ssm_parameter.mimis_kreativstudio_notifications_recipient_email_address: Refreshing state... [id=/mimis-kreativstudio/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.schreinerei_mollie_api_key: Refreshing state... [id=/schreinerei/mollie/api_key]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_ipv4: Refreshing state... [id=/compute/hetzner-cloud-server-1/host]
module.projects.aws_ssm_parameter.schluesselmomente_be_mail: Refreshing state... [id=/schluesselmomente/be/mail]
module.projects.aws_ssm_parameter.teachme_backend_session_secret: Refreshing state... [id=/teachme/backend/session_secret]
module.projects.aws_ssm_parameter.schreinerei_db_name: Refreshing state... [id=/schreinerei/db/name]
module.projects.aws_ssm_parameter.teachme_backend_stripe_webhook_secret: Refreshing state... [id=/teachme/backend/stripe_webhook_secret]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token: Refreshing state... [id=/joy_alemazung/strapi/api_token]
module.projects.aws_ssm_parameter.teachme_backend_stripe_test_key: Refreshing state... [id=/teachme/backend/stripe_test_key]
aws_iam_user.external_secrets: Refreshing state... [id=external-secrets-ssm]
module.projects.aws_ssm_parameter.schluesselmomente_be_mailgun_api_key: Refreshing state... [id=/schluesselmomente/be/mailgun_api_key]
module.projects.aws_ssm_parameter.smiles_notifications_recipient_email_address: Refreshing state... [id=/smiles/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.schreinerei_db_password: Refreshing state... [id=/schreinerei/db/password]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_id: Refreshing state... [id=/schreinerei/keycloak/admin_client_id]
module.projects.aws_ssm_parameter.message_router_api_key: Refreshing state... [id=/message-router/api-key]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_realm: Refreshing state... [id=/schreinerei/keycloak/admin_realm]
module.projects.aws_ssm_parameter.teachme_backend_jwt_refresh_secret: Refreshing state... [id=/teachme/backend/jwt_refresh_secret]
module.projects.aws_ssm_parameter.paperless_db_password: Refreshing state... [id=/paperless/db/password]
module.projects.aws_ssm_parameter.teachme_keycloak_db_password: Refreshing state... [id=/teachme/keycloak/db_password]
module.projects.aws_ssm_parameter.message_router_resend_api_key_full: Refreshing state... [id=/message-router/resend-api-key-full]
module.projects.aws_ssm_parameter.schreinerei_db_user: Refreshing state... [id=/schreinerei/db/user]
module.projects.aws_ssm_parameter.teachme_backend_db_password: Refreshing state... [id=/teachme/backend/db_password]
module.projects.aws_ssm_parameter.message_router_resend_api_key: Refreshing state... [id=/message-router/resend-api-key]
module.projects.aws_ssm_parameter.umami_app_secret: Refreshing state... [id=/umami/app_secret]
module.projects.aws_ssm_parameter.maas_bueromoebel_notifications_recipient_email_address: Refreshing state... [id=/maas-bueromoebel/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/deployment_private_ssh_key]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/jwt_secret]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_username: Refreshing state... [id=/teachme/keycloak/admin_username]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_url: Refreshing state... [id=/joy_alemazung/strapi/api_url]
module.projects.aws_ssm_parameter.teachme_backend_recaptcha_secret: Refreshing state... [id=/teachme/backend/recaptcha_secret]
module.projects.aws_ssm_parameter.oauth2_proxy_cookie_secret: Refreshing state... [id=/oauth2-proxy/cookie-secret]
module.projects.aws_ssm_parameter.immoly_db_password: Refreshing state... [id=/immoly/db/password]
module.projects.aws_ssm_parameter.joy_alemazung_notifications_recipient_email_address: Refreshing state... [id=/joy_alemazung/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.vogthof_recipient_email: Refreshing state... [id=/vogthof/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_admin_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/admin_jwt_secret]
hcloud_network_subnet.bot_private_subnet: Refreshing state... [id=12478431-10.1.1.0/24]
hcloud_network_subnet.k8s_private_subnet: Refreshing state... [id=11620945-10.0.1.0/24]
hcloud_server.k8s_node[2]: Refreshing state... [id=112652679]
hcloud_server.k8s_node[0]: Refreshing state... [id=112652680]
hcloud_server.k8s_node[1]: Refreshing state... [id=112652681]
module.dns.digitalocean_record.mimis_kreativstudio_de_ns3: Refreshing state... [id=1789898810]
module.dns.digitalocean_record.mimis_kreativstudio_de_ns1: Refreshing state... [id=1789898807]
module.dns.digitalocean_record.immoly_io_google_verification: Refreshing state... [id=1793982154]
module.dns.digitalocean_record.immoly_io_www_alemazung_CNAME: Refreshing state... [id=1798672741]
module.dns.digitalocean_record.mimis_kreativstudio_de_A: Refreshing state... [id=1789898809]
module.dns.digitalocean_record.immoly_io_alemazung_CNAME: Refreshing state... [id=1798672744]
module.dns.digitalocean_record.immoly_io_ns2: Refreshing state... [id=1793981663]
module.dns.digitalocean_record.mimis_kreativstudio_de_www_A: Refreshing state... [id=1789898806]
module.dns.digitalocean_record.mimis_kreativstudio_de_ns2: Refreshing state... [id=1789898808]
module.dns.digitalocean_record.immoly_io_A: Refreshing state... [id=1793981658]
module.dns.digitalocean_record.immoly_io_ns1: Refreshing state... [id=1793981659]
module.dns.digitalocean_record.immoly_io_ns3: Refreshing state... [id=1793981664]
module.dns.digitalocean_record.immoly_io_www_api_alemazung_CNAME: Refreshing state... [id=1798672740]
module.dns.digitalocean_record.immoly_io_api_alemazung_CNAME: Refreshing state... [id=1798672742]
module.dns.digitalocean_record.immoly_io_blog_CNAME: Refreshing state... [id=1793981660]
module.dns.digitalocean_record.immoly_io_www_A: Refreshing state... [id=1793981662]
module.dns.digitalocean_record.gmymf_com_ns3: Refreshing state... [id=1815888853]
module.dns.digitalocean_record.gmymf_com_ns2: Refreshing state... [id=1815888858]
module.dns.digitalocean_record.gmymf_com_ns1: Refreshing state... [id=1815888856]
module.dns.digitalocean_record.gmymf_com_www_A: Refreshing state... [id=1815888859]
module.dns.digitalocean_record.gmymf_com_A: Refreshing state... [id=1815888852]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_blog_CNAME: Refreshing state... [id=1817217996]
module.dns.digitalocean_record.jakob_lingel_dev_immoly_CNAME: Refreshing state... [id=1782036502]
module.dns.digitalocean_record.jakob_lingel_dev_notifications: Refreshing state... [id=1812601340]
module.dns.digitalocean_record.jakob_lingel_dev_www_homeatsea_CNAME: Refreshing state... [id=1807741897]
module.dns.digitalocean_record.jakob_lingel_dev_alemazung: Refreshing state... [id=1790821024]
module.dns.digitalocean_record.jakob_lingel_dev_oauth: Refreshing state... [id=1828883510]
module.dns.digitalocean_record.jakob_lingel_dev_blog_CNAME: Refreshing state... [id=1793047348]
module.dns.digitalocean_record.jakob_lingel_dev_gmymf_medusa: Refreshing state... [id=1815601486]
module.dns.digitalocean_record.jakob_lingel_dev_www_blog_CNAME: Refreshing state... [id=1798224425]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_www_blog_CNAME: Refreshing state... [id=1817217991]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_app_A: Refreshing state... [id=1817217990]
module.dns.digitalocean_record.jakob_lingel_dev_homeatsea_CNAME: Refreshing state... [id=1807741898]
module.dns.digitalocean_record.jakob_lingel_dev_analytics: Refreshing state... [id=1793025268]
module.dns.digitalocean_record.jakob_lingel_dev_argocd: Refreshing state... [id=1798180103]
module.dns.digitalocean_record.jakob_lingel_dev_auth_A: Refreshing state... [id=1817217999]
module.dns.digitalocean_record.jakob_lingel_dev_ns1: Refreshing state... [id=1776334973]
module.dns.digitalocean_record.jakob_lingel_dev_immo_google_verification: Refreshing state... [id=1830632324]
module.dns.digitalocean_record.jakob_lingel_dev_www_uptime: Refreshing state... [id=1803544468]
module.dns.digitalocean_record.jakob_lingel_dev_A: Refreshing state... [id=1776336745]
module.dns.digitalocean_record.jakob_lingel_dev_immoly_google_verification: Refreshing state... [id=1793041158]
module.dns.digitalocean_record.jakob_lingel_dev_uptime: Refreshing state... [id=1803544466]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_api_A: Refreshing state... [id=1817217997]
module.dns.digitalocean_record.jakob_lingel_dev_telemetry: Refreshing state... [id=1811080612]
module.dns.digitalocean_record.jakob_lingel_dev_ns2: Refreshing state... [id=1776334974]
module.dns.digitalocean_record.jakob_lingel_dev_immo: Refreshing state... [id=1825241914]
module.dns.digitalocean_record.jakob_lingel_dev_vogthof: Refreshing state... [id=1814524296]
module.dns.digitalocean_record.jakob_lingel_dev_www_schreinerei_app: Refreshing state... [id=1825241913]
module.dns.digitalocean_record.jakob_lingel_dev_ns3: Refreshing state... [id=1776334975]
module.dns.digitalocean_record.jakob_lingel_dev_api_homeatsea_CNAME: Refreshing state... [id=1807741899]
module.dns.digitalocean_record.jakob_lingel_dev_www_immo: Refreshing state... [id=1825241915]
module.dns.digitalocean_record.jakob_lingel_dev_paperless: Refreshing state... [id=1813871415]
module.dns.digitalocean_record.jakob_lingel_dev_gmymf_storefront: Refreshing state... [id=1815605874]
module.dns.digitalocean_record.jakob_lingel_dev_www_argocd: Refreshing state... [id=1798224423]
module.dns.digitalocean_record.jakob_lingel_dev_schreinerei_app: Refreshing state... [id=1819978660]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_netlify_challenge_TXT: Refreshing state... [id=1817217994]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_A: Refreshing state... [id=1817217993]
module.dns.digitalocean_record.jakob_lingel_dev_bueromoebel: Refreshing state... [id=1815502540]
module.dns.digitalocean_record.jakob_lingel_dev_portfolio_A: Refreshing state... [id=1812143504]
module.dns.digitalocean_record.jakob_lingel_dev_schreinerei: Refreshing state... [id=1817713954]
module.dns.digitalocean_record.jakob_lingel_dev_www_A: Refreshing state... [id=1776336757]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_www_A: Refreshing state... [id=1817217995]
module.dns.digitalocean_record.jakob_lingel_dev_www_analytics: Refreshing state... [id=1798224424]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_portfolio_CNAME: Refreshing state... [id=1817217998]
module.dns.digitalocean_record.jakob_lingel_dev_smiles: Refreshing state... [id=1832639417]
module.dns.digitalocean_record.jakob_lingel_dev_www_auth_CNAME: Refreshing state... [id=1817217992]
module.dns.digitalocean_record.jakob_lingel_dev_schreinerei_app_google_verification: Refreshing state... [id=1830632323]
module.dns.digitalocean_record.jakob_lingel_dev_tango: Refreshing state... [id=1828078586]
module.dns.digitalocean_record.jakob_lingel_dev_www_telemetry: Refreshing state... [id=1811080611]
aws_iam_role_policy.ci-policy: Refreshing state... [id=ci-role:ci-policy]
aws_iam_role_policy.terraform_ci_policy: Refreshing state... [id=terraform-ci-role:terraform-ci-policy]
hcloud_server.bot_node[0]: Refreshing state... [id=154112110]
hcloud_server.k8s_worker[0]: Refreshing state... [id=126420344]
aws_iam_user_policy.external_secrets_ssm: Refreshing state... [id=external-secrets-ssm:external-secrets-ssm-read]
hcloud_firewall_attachment.bot_node: Refreshing state... [id=11352564]
hcloud_firewall_attachment.k8s_cluster: Refreshing state... [id=10471312]
local_file.ansible_inventory: Refreshing state... [id=bbe78095307aeaaedd0eb4fdc9488580dd9eaa2a]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
  - destroy

Terraform will perform the following actions:

  # hcloud_firewall.k8s_cluster will be updated in-place
  ~ resource "hcloud_firewall" "k8s_cluster" {
        id     = "10471312"
        name   = "k8s-cluster-firewall"
        # (1 unchanged attribute hidden)

      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "22" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "30000-32767" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "6443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "80" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "8472" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "10250"
          + protocol        = "tcp"
          + source_ips      = [
              + "116.203.111.240/32",
              + "178.104.133.8/32",
              + "195.201.5.29/32",
              + "91.98.235.232/32",
            ]
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + protocol        = "icmp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "22"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "30000-32767"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "6443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "80"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "8472"
          + protocol        = "udp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + protocol        = "icmp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }

        # (4 unchanged blocks hidden)
    }

  # local_file.ansible_inventory will be created
  + resource "local_file" "ansible_inventory" {
      + content              = (sensitive value)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = ".././ansible/inventory/k8s_hosts.ini"
      + id                   = (known after apply)
    }

  # module.dns.digitalocean_record.jakob_lingel_dev_google_verification will be destroyed
  # (because digitalocean_record.jakob_lingel_dev_google_verification is not in configuration)
  - resource "digitalocean_record" "jakob_lingel_dev_google_verification" {
      - domain   = "jakob-lingel.dev" -> null
      - flags    = 0 -> null
      - fqdn     = "jakob-lingel.dev" -> null
      - id       = "1832947695" -> null
      - name     = "@" -> null
      - port     = 0 -> null
      - priority = 0 -> null
      - ttl      = 1800 -> null
      - type     = "TXT" -> null
      - value    = "google-site-verification=6cc-R32CLdo5pnRguKt10WTFCVnkBcy8lQKiHPXGfUo" -> null
      - weight   = 0 -> null
        # (1 unchanged attribute hidden)
    }

  # module.dns.digitalocean_record.jakob_lingel_dev_portfolio_google_verification will be created
  + resource "digitalocean_record" "jakob_lingel_dev_portfolio_google_verification" {
      + domain = "jakob-lingel.dev"
      + fqdn   = (known after apply)
      + id     = (known after apply)
      + name   = "@"
      + ttl    = 1800
      + type   = "TXT"
      + value  = "google-site-verification=9mS_je2OJqOW8vlDGA6jXDVgi79c4rpxNg1t5u2VRN8"
    }

Plan: 2 to add, 1 to change, 1 to destroy.

Warning: Deprecated attribute

  on main.tf line 127, in resource "hcloud_server" "bot_node":
 127:       datacenter,

The attribute "datacenter" is deprecated. Refer to the provider documentation
for details.

(and 5 more similar warnings elsewhere)

─────────────────────────────────────────────────────────────────────────────

Saved the plan to: tfplan

To perform exactly these actions, run the following command to apply:
    terraform apply "tfplan"

Pushed by: @Davidcode2, Action: pull_request

@github-actions

Copy link
Copy Markdown
Contributor

Terraform Format and Style 🖌failure

Terraform Initialization ⚙️success

Terraform Validation 🤖success

Terraform Plan 📖success

Show Plan
Acquiring state lock. This may take a few moments...
tls_private_key.hetzner_private_key: Refreshing state... [id=976e6cb73e196f15de378de25cb856d93156d17a]
hcloud_ssh_key.hetzner_ssh_key: Refreshing state... [id=29251013]
module.dns.digitalocean_domain.gmymf_com: Refreshing state... [id=gmymf.com]
module.dns.digitalocean_domain.alemazung_de: Refreshing state... [id=alemazung.de]
hcloud_firewall.legacy_vm: Refreshing state... [id=10471313]
hcloud_network.k8s_private_net: Refreshing state... [id=11620945]
hcloud_network.bot_private_net: Refreshing state... [id=12478431]
hcloud_firewall.bot_node: Refreshing state... [id=11352564]
hcloud_ssh_key.deployment_key: Refreshing state... [id=29750012]
hcloud_firewall.k8s_cluster: Refreshing state... [id=10471312]
module.dns.digitalocean_domain.immoly-io: Refreshing state... [id=immoly.io]
module.dns.digitalocean_domain.jakob-lingel-dev: Refreshing state... [id=jakob-lingel.dev]
module.dns.digitalocean_domain.schluesselmomente_freiburg_de: Refreshing state... [id=schluesselmomente-freiburg.de]
module.dns.digitalocean_domain.mimis_kreativstudio_de: Refreshing state... [id=mimis-kreativstudio.de]
module.dns.digitalocean_record.gmymf_com_ns3: Refreshing state... [id=1815888853]
module.dns.digitalocean_record.gmymf_com_ns2: Refreshing state... [id=1815888858]
module.dns.digitalocean_record.gmymf_com_www_A: Refreshing state... [id=1815888859]
module.dns.digitalocean_record.gmymf_com_A: Refreshing state... [id=1815888852]
module.dns.digitalocean_record.gmymf_com_ns1: Refreshing state... [id=1815888856]
module.dns.digitalocean_record.alemazung_de_ns1: Refreshing state... [id=1813504225]
module.dns.digitalocean_record.alemazung_de_www_A: Refreshing state... [id=1813504228]
module.dns.digitalocean_record.alemazung_de_api_A: Refreshing state... [id=1825319355]
module.dns.digitalocean_record.alemazung_de_A: Refreshing state... [id=1813504226]
module.dns.digitalocean_record.alemazung_de_ns2: Refreshing state... [id=1813504227]
module.dns.digitalocean_record.alemazung_de_www_api_A: Refreshing state... [id=1825319353]
module.dns.digitalocean_record.alemazung_de_ns3: Refreshing state... [id=1813504229]
module.dns.digitalocean_record.immoly_io_www_alemazung_CNAME: Refreshing state... [id=1798672741]
module.dns.digitalocean_record.immoly_io_ns2: Refreshing state... [id=1793981663]
module.dns.digitalocean_record.immoly_io_google_verification: Refreshing state... [id=1793982154]
module.dns.digitalocean_record.immoly_io_www_A: Refreshing state... [id=1793981662]
module.dns.digitalocean_record.immoly_io_alemazung_CNAME: Refreshing state... [id=1798672744]
module.dns.digitalocean_record.immoly_io_www_api_alemazung_CNAME: Refreshing state... [id=1798672740]
module.dns.digitalocean_record.immoly_io_blog_CNAME: Refreshing state... [id=1793981660]
module.dns.digitalocean_record.immoly_io_api_alemazung_CNAME: Refreshing state... [id=1798672742]
module.dns.digitalocean_record.immoly_io_ns1: Refreshing state... [id=1793981659]
module.dns.digitalocean_record.immoly_io_ns3: Refreshing state... [id=1793981664]
module.dns.digitalocean_record.immoly_io_A: Refreshing state... [id=1793981658]
module.projects.aws_ssm_parameter.umami_app_secret: Refreshing state... [id=/umami/app_secret]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token_salt: Refreshing state... [id=/joy_alemazung/strapi/api_token_salt]
module.projects.aws_ssm_parameter.smiles_notifications_recipient_email_address: Refreshing state... [id=/smiles/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_app_keys: Refreshing state... [id=/joy_alemazung/strapi/app_keys]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/aws/account_id"]: Refreshing state... [id=/infra/terraform/aws/account_id]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/portfolio_netlify_challenge"]: Refreshing state... [id=/infra/terraform/dns/portfolio_netlify_challenge]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_dkim]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_spf"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_spf]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hetzner_server_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/hetzner_server_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zmail_dkim"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zmail_dkim]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/ssh_private_key_path"]: Refreshing state... [id=/infra/terraform/ssh_private_key_path]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/dns/schluesselmomente_zoho_verification"]: Refreshing state... [id=/infra/terraform/dns/schluesselmomente_zoho_verification]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/hcloud_token"]: Refreshing state... [id=/infra/terraform/providers/hcloud_token]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/providers/digitalocean_token"]: Refreshing state... [id=/infra/terraform/providers/digitalocean_token]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/digitalocean_droplet_1_ipv4"]: Refreshing state... [id=/infra/terraform/servers/digitalocean_droplet_1_ipv4]
module.projects.aws_ssm_parameter.terraform_secrets["/infra/terraform/servers/hcloud_ssh_key"]: Refreshing state... [id=/infra/terraform/servers/hcloud_ssh_key]
module.projects.aws_ssm_parameter.schluesselmomente_be_mailgun_api_key: Refreshing state... [id=/schluesselmomente/be/mailgun_api_key]
module.projects.aws_ssm_parameter.vogthof_recipient_email: Refreshing state... [id=/vogthof/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.message_router_api_key: Refreshing state... [id=/message-router/api-key]
module.projects.aws_ssm_parameter.message_router_resend_api_key_full: Refreshing state... [id=/message-router/resend-api-key-full]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_transfer_token_salt: Refreshing state... [id=/joy_alemazung/strapi/transfer_token_salt]
module.projects.aws_ssm_parameter.oauth2_proxy_cookie_secret: Refreshing state... [id=/oauth2-proxy/cookie-secret]
module.projects.aws_ssm_parameter.teachme_backend_db_password: Refreshing state... [id=/teachme/backend/db_password]
module.projects.aws_ssm_parameter.joy_alemazung_notifications_recipient_email_address: Refreshing state... [id=/joy_alemazung/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.schreinerei_db_name: Refreshing state... [id=/schreinerei/db/name]
aws_iam_user.external_secrets: Refreshing state... [id=external-secrets-ssm]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_password: Refreshing state... [id=/teachme/keycloak/admin_password]
module.projects.aws_ssm_parameter.teachme_keycloak_admin_username: Refreshing state... [id=/teachme/keycloak/admin_username]
module.projects.aws_ssm_parameter.immoly_db_user: Refreshing state... [id=/immoly/db/user]
module.projects.aws_ssm_parameter.message_router_from_email: Refreshing state... [id=/message-router/from-email]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_password: Refreshing state... [id=/teachme/keycloak-db/postgres_password]
module.projects.aws_ssm_parameter.teachme_backend_recaptcha_secret: Refreshing state... [id=/teachme/backend/recaptcha_secret]
aws_iam_openid_connect_provider.github: Refreshing state... [id=arn:aws:iam::787858641164:oidc-provider/token.actions.githubusercontent.com]
module.projects.aws_ssm_parameter.umami_db_password: Refreshing state... [id=/umami/db/password]
module.projects.aws_ssm_parameter.gmymf_medusa_jwt_secret: Refreshing state... [id=/gmymf-medusa/jwt/secret]
module.projects.aws_ssm_parameter.teachme_keycloak_keystore_password: Refreshing state... [id=/teachme/keycloak/keystore_password]
module.projects.aws_ssm_parameter.mimis_kreativstudio_notifications_recipient_email_address: Refreshing state... [id=/mimis-kreativstudio/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.teachme_backend_gcloud_api_key: Refreshing state... [id=/teachme/backend/gcloud_api_key]
module.projects.aws_ssm_parameter.maas_bueromoebel_notifications_recipient_email_address: Refreshing state... [id=/maas-bueromoebel/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.immoly_db_name: Refreshing state... [id=/immoly/db/name]
module.projects.aws_ssm_parameter.schreinerei_mollie_api_key: Refreshing state... [id=/schreinerei/mollie/api_key]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/jwt_secret]
module.projects.aws_ssm_parameter.schluesselmomente_be_schluesselmomente_sendkey: Refreshing state... [id=/schluesselmomente/be/schluesselmomente_sendkey]
module.projects.aws_ssm_parameter.teachme_backend_stripe_webhook_secret: Refreshing state... [id=/teachme/backend/stripe_webhook_secret]
module.projects.aws_ssm_parameter.teachme_backend_stripe_test_key: Refreshing state... [id=/teachme/backend/stripe_test_key]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_ipv4: Refreshing state... [id=/compute/hetzner-cloud-server-1/host]
module.projects.aws_ssm_parameter.teachme_keycloak_db_password: Refreshing state... [id=/teachme/keycloak/db_password]
module.projects.aws_ssm_parameter.schluesselmomente_be_password: Refreshing state... [id=/schluesselmomente/be/password]
module.projects.aws_ssm_parameter.gmymf_medusa_cookie_secret: Refreshing state... [id=/gmymf-medusa/cookie/secret]
module.projects.aws_ssm_parameter.schreinerei_db_user: Refreshing state... [id=/schreinerei/db/user]
module.projects.aws_ssm_parameter.teachme_backend_session_secret: Refreshing state... [id=/teachme/backend/session_secret]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_token: Refreshing state... [id=/joy_alemazung/strapi/api_token]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_password: Refreshing state... [id=/joy_alemazung/strapi/db/password]
module.projects.aws_ssm_parameter.teachme_backend_jwt_secret: Refreshing state... [id=/teachme/backend/jwt_secret]
aws_iam_role.terraform_ci_role: Refreshing state... [id=terraform-ci-role]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_api_url: Refreshing state... [id=/joy_alemazung/strapi/api_url]
module.projects.aws_ssm_parameter.teachme_backend_keycloak_client_secret: Refreshing state... [id=/teachme/backend/keycloak_client_secret]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_secret: Refreshing state... [id=/schreinerei/keycloak/admin_client_secret]
module.projects.aws_ssm_parameter.gmymf_medusa_db_password: Refreshing state... [id=/gmymf-medusa/db/password]
module.projects.aws_ssm_parameter.teachme_keycloak_db_username: Refreshing state... [id=/teachme/keycloak/db_username]
module.projects.aws_ssm_parameter.teachme_keycloak_db_postgres_user: Refreshing state... [id=/teachme/keycloak-db/postgres_user]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_openssl_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/openssl_deployment_private_ssh_key]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_realm: Refreshing state... [id=/schreinerei/keycloak/admin_realm]
module.projects.aws_ssm_parameter.teachme_backend_db_username: Refreshing state... [id=/teachme/backend/db_username]
aws_iam_role.ci-role: Refreshing state... [id=ci-role]
module.projects.aws_ssm_parameter.schreinerei_db_password: Refreshing state... [id=/schreinerei/db/password]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_db_encryption_key: Refreshing state... [id=/joy_alemazung/strapi/db/encryption_key]
module.projects.aws_ssm_parameter.argocd_github_app_private_key: Refreshing state... [id=/argocd/github-app-private-key]
module.projects.aws_ssm_parameter.paperless_db_password: Refreshing state... [id=/paperless/db/password]
module.projects.aws_ssm_parameter.business_website_notifications_recipient_email_address: Refreshing state... [id=/business-website/notifications/recipient_email_address]
module.projects.aws_ssm_parameter.gmymf_storefront_medusa_publishable_key: Refreshing state... [id=/gmymf-storefront/medusa/publishable_key]
module.projects.aws_ssm_parameter.paperless_secret_key: Refreshing state... [id=/paperless/secret-key]
module.projects.aws_ssm_parameter.hetzner_cloud_server_1_private_ssh_key: Refreshing state... [id=/ssh/hetzner-cloud-server-1/deployment_private_ssh_key]
module.projects.aws_ssm_parameter.message_router_resend_api_key: Refreshing state... [id=/message-router/resend-api-key]
module.projects.aws_ssm_parameter.joy_alemazung_strapi_admin_jwt_secret: Refreshing state... [id=/joy_alemazung/strapi/admin_jwt_secret]
module.projects.aws_ssm_parameter.teachme_backend_jwt_refresh_secret: Refreshing state... [id=/teachme/backend/jwt_refresh_secret]
module.projects.aws_ssm_parameter.immoly_db_password: Refreshing state... [id=/immoly/db/password]
data.aws_caller_identity.current: Reading...
data.aws_caller_identity.current: Read complete after 0s [id=787858641164]
module.projects.aws_ssm_parameter.schreinerei_keycloak_admin_client_id: Refreshing state... [id=/schreinerei/keycloak/admin_client_id]
module.projects.aws_ssm_parameter.schluesselmomente_be_mail: Refreshing state... [id=/schluesselmomente/be/mail]
hcloud_network_subnet.k8s_private_subnet: Refreshing state... [id=11620945-10.0.1.0/24]
hcloud_server.k8s_node[0]: Refreshing state... [id=112652680]
hcloud_server.k8s_node[1]: Refreshing state... [id=112652681]
hcloud_server.k8s_node[2]: Refreshing state... [id=112652679]
hcloud_network_subnet.bot_private_subnet: Refreshing state... [id=12478431-10.1.1.0/24]
module.dns.digitalocean_record.jakob_lingel_dev_blog_CNAME: Refreshing state... [id=1793047348]
module.dns.digitalocean_record.jakob_lingel_dev_www_schreinerei_app: Refreshing state... [id=1825241913]
module.dns.digitalocean_record.jakob_lingel_dev_oauth: Refreshing state... [id=1828883510]
module.dns.digitalocean_record.jakob_lingel_dev_analytics: Refreshing state... [id=1793025268]
module.dns.digitalocean_record.jakob_lingel_dev_www_immo: Refreshing state... [id=1825241915]
module.dns.digitalocean_record.jakob_lingel_dev_ns2: Refreshing state... [id=1776334974]
module.dns.digitalocean_record.jakob_lingel_dev_vogthof: Refreshing state... [id=1814524296]
module.dns.digitalocean_record.jakob_lingel_dev_alemazung: Refreshing state... [id=1790821024]
module.dns.digitalocean_record.jakob_lingel_dev_www_auth_CNAME: Refreshing state... [id=1817217992]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_portfolio_CNAME: Refreshing state... [id=1817217998]
module.dns.digitalocean_record.jakob_lingel_dev_A: Refreshing state... [id=1776336745]
module.dns.digitalocean_record.jakob_lingel_dev_schreinerei: Refreshing state... [id=1817713954]
module.dns.digitalocean_record.jakob_lingel_dev_paperless: Refreshing state... [id=1813871415]
module.dns.digitalocean_record.jakob_lingel_dev_ns3: Refreshing state... [id=1776334975]
module.dns.digitalocean_record.jakob_lingel_dev_argocd: Refreshing state... [id=1798180103]
module.dns.digitalocean_record.jakob_lingel_dev_tango: Refreshing state... [id=1828078586]
module.dns.digitalocean_record.jakob_lingel_dev_www_telemetry: Refreshing state... [id=1811080611]
module.dns.digitalocean_record.jakob_lingel_dev_www_homeatsea_CNAME: Refreshing state... [id=1807741897]
module.dns.digitalocean_record.jakob_lingel_dev_gmymf_storefront: Refreshing state... [id=1815605874]
module.dns.digitalocean_record.jakob_lingel_dev_immo_google_verification: Refreshing state... [id=1830632324]
module.dns.digitalocean_record.jakob_lingel_dev_immoly_google_verification: Refreshing state... [id=1793041158]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_www_blog_CNAME: Refreshing state... [id=1817217991]
module.dns.digitalocean_record.jakob_lingel_dev_google_verification: Refreshing state... [id=1832947695]
module.dns.digitalocean_record.jakob_lingel_dev_www_A: Refreshing state... [id=1776336757]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_app_A: Refreshing state... [id=1817217990]
module.dns.digitalocean_record.jakob_lingel_dev_www_analytics: Refreshing state... [id=1798224424]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_netlify_challenge_TXT: Refreshing state... [id=1817217994]
module.dns.digitalocean_record.jakob_lingel_dev_api_homeatsea_CNAME: Refreshing state... [id=1807741899]
module.dns.digitalocean_record.jakob_lingel_dev_www_blog_CNAME: Refreshing state... [id=1798224425]
module.dns.digitalocean_record.jakob_lingel_dev_auth_A: Refreshing state... [id=1817217999]
module.dns.digitalocean_record.jakob_lingel_dev_www_argocd: Refreshing state... [id=1798224423]
module.dns.digitalocean_record.jakob_lingel_dev_smiles: Refreshing state... [id=1832639417]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_blog_CNAME: Refreshing state... [id=1817217996]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_A: Refreshing state... [id=1817217993]
module.dns.digitalocean_record.jakob_lingel_dev_homeatsea_CNAME: Refreshing state... [id=1807741898]
module.dns.digitalocean_record.jakob_lingel_dev_ns1: Refreshing state... [id=1776334973]
module.dns.digitalocean_record.jakob_lingel_dev_immoly_CNAME: Refreshing state... [id=1782036502]
module.dns.digitalocean_record.jakob_lingel_dev_gmymf_medusa: Refreshing state... [id=1815601486]
module.dns.digitalocean_record.jakob_lingel_dev_immo: Refreshing state... [id=1825241914]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_api_A: Refreshing state... [id=1817217997]
module.dns.digitalocean_record.jakob_lingel_dev_schreinerei_app: Refreshing state... [id=1819978660]
module.dns.digitalocean_record.jakob_lingel_dev_schreinerei_app_google_verification: Refreshing state... [id=1830632323]
module.dns.digitalocean_record.jakob_lingel_dev_telemetry: Refreshing state... [id=1811080612]
module.dns.digitalocean_record.jakob_lingel_dev_uptime: Refreshing state... [id=1803544466]
module.dns.digitalocean_record.jakob_lingel_dev_bueromoebel: Refreshing state... [id=1815502540]
module.dns.digitalocean_record.teachly_jakob_lingel_dev_www_A: Refreshing state... [id=1817217995]
module.dns.digitalocean_record.jakob_lingel_dev_portfolio_A: Refreshing state... [id=1812143504]
module.dns.digitalocean_record.jakob_lingel_dev_notifications: Refreshing state... [id=1812601340]
module.dns.digitalocean_record.jakob_lingel_dev_www_uptime: Refreshing state... [id=1803544468]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_spf_txt: Refreshing state... [id=1777264988]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_ns1: Refreshing state... [id=1776723512]
module.dns.digitalocean_record.mimis_kreativstudio_de_www_A: Refreshing state... [id=1789898806]
module.dns.digitalocean_record.mimis_kreativstudio_de_ns1: Refreshing state... [id=1789898807]
module.dns.digitalocean_record.mimis_kreativstudio_de_ns3: Refreshing state... [id=1789898810]
module.dns.digitalocean_record.mimis_kreativstudio_de_ns2: Refreshing state... [id=1789898808]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_mx1: Refreshing state... [id=1777264684]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_s1_dkim_txt: Refreshing state... [id=1777773174]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_zoho_verification_txt: Refreshing state... [id=1777263731]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_zmail_dkim_txt: Refreshing state... [id=1777264856]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_www_a: Refreshing state... [id=1776724211]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_admin_a: Refreshing state... [id=1781139199]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_mx2: Refreshing state... [id=1777264705]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_ns2: Refreshing state... [id=1776723514]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_root_a: Refreshing state... [id=1776723817]
module.dns.digitalocean_record.mimis_kreativstudio_de_A: Refreshing state... [id=1789898809]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_api_a: Refreshing state... [id=1780508291]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_mx3: Refreshing state... [id=1777264751]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_ns3: Refreshing state... [id=1776723516]
module.dns.digitalocean_record.schluesselmomente_freiburg_de_www_admin_a: Refreshing state... [id=1781147690]
aws_iam_role_policy.terraform_ci_policy: Refreshing state... [id=terraform-ci-role:terraform-ci-policy]
aws_iam_role_policy.ci-policy: Refreshing state... [id=ci-role:ci-policy]
hcloud_server.k8s_worker[0]: Refreshing state... [id=126420344]
hcloud_server.bot_node[0]: Refreshing state... [id=154112110]
aws_iam_user_policy.external_secrets_ssm: Refreshing state... [id=external-secrets-ssm:external-secrets-ssm-read]
hcloud_firewall_attachment.k8s_cluster: Refreshing state... [id=10471312]
local_file.ansible_inventory: Refreshing state... [id=bbe78095307aeaaedd0eb4fdc9488580dd9eaa2a]
hcloud_firewall_attachment.bot_node: Refreshing state... [id=11352564]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # hcloud_firewall.k8s_cluster will be updated in-place
  ~ resource "hcloud_firewall" "k8s_cluster" {
        id     = "10471312"
        name   = "k8s-cluster-firewall"
        # (1 unchanged attribute hidden)

      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
          - direction       = "out" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - protocol        = "icmp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (2 unchanged attributes hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "22" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "30000-32767" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "6443" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "80" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "8472" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "0.0.0.0/0",
              - "::/0",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "tcp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      - rule {
          - destination_ips = [] -> null
          - direction       = "in" -> null
          - port            = "any" -> null
          - protocol        = "udp" -> null
          - source_ips      = [
              - "10.0.0.0/16",
            ] -> null
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "10250"
          + protocol        = "tcp"
          + source_ips      = [
              + "116.203.111.240/32",
              + "178.104.133.8/32",
              + "195.201.5.29/32",
              + "91.98.235.232/32",
            ]
            # (1 unchanged attribute hidden)
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = [
              + "0.0.0.0/0",
              + "::/0",
            ]
          + direction       = "out"
          + protocol        = "icmp"
          + source_ips      = []
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "22"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "30000-32767"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "6443"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "80"
          + protocol        = "tcp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "8472"
          + protocol        = "udp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "tcp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + port            = "any"
          + protocol        = "udp"
          + source_ips      = [
              + "10.0.0.0/16",
            ]
        }
      + rule {
          + destination_ips = []
          + direction       = "in"
          + protocol        = "icmp"
          + source_ips      = [
              + "0.0.0.0/0",
              + "::/0",
            ]
        }

        # (4 unchanged blocks hidden)
    }

  # local_file.ansible_inventory will be created
  + resource "local_file" "ansible_inventory" {
      + content              = (sensitive value)
      + content_base64sha256 = (known after apply)
      + content_base64sha512 = (known after apply)
      + content_md5          = (known after apply)
      + content_sha1         = (known after apply)
      + content_sha256       = (known after apply)
      + content_sha512       = (known after apply)
      + directory_permission = "0777"
      + file_permission      = "0777"
      + filename             = ".././ansible/inventory/k8s_hosts.ini"
      + id                   = (known after apply)
    }

Plan: 1 to add, 1 to change, 0 to destroy.

Warning: Deprecated attribute

  on main.tf line 127, in resource "hcloud_server" "bot_node":
 127:       datacenter,

The attribute "datacenter" is deprecated. Refer to the provider documentation
for details.

(and 5 more similar warnings elsewhere)

─────────────────────────────────────────────────────────────────────────────

Saved the plan to: tfplan

To perform exactly these actions, run the following command to apply:
    terraform apply "tfplan"

Pushed by: @Davidcode2, Action: pull_request

@Davidcode2
Davidcode2 merged commit b3dcc0c into main Oct 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant