Skip to content

Plan links should link to GHA directly like applies do #255

Description

@mwarkentin
          # [Terraform Plan](https://github.com/getsentry/ops/actions/runs/10854543131)

TACOS generated a terraform plan for 14 slices:

  • 1 slices failed to plan
  • 12 slices have pending changes to apply
  • 1 slices are unaffected

Errors

terragrunt/regions/single-tenant/db/default/test-control

time=2024-09-13T18:53:13Z level=error msg=Error: Error in function call
Commands: (error code 1)

$ cd terragrunt/regions/single-tenant/db/default/test-control
direnv: loading $repo/.envrc
tenv missing, please install via devenv sync
./.envrc:54: brew: command not found
kube-linter missing, please install via devenv sync
direnv: export +DATADOG_API_KEY +DATADOG_APP_KEY +GETSENTRY_SAC_DEPLOY_ENVIRON +HOMEBREW_PREFIX +SENTRY_DEVENV_HOME +TF_VAR_datadog_api_key +TF_VAR_datadog_app_key ~PATH
direnv: loading $repo/tacos-gha/.envrc
direnv: export ~PATH ~PS1_PREFIX ~PYTHONPATH

$ env GETSENTRY_SAC_VERB=state-admin sudo-gcp tf-lock-acquire
You are authenticated for the next hour as: team-sre-tf-state-admin@sac-prod-sa.iam.gserviceaccount.com
time=2024-09-13T18:53:13Z level=error msg=Error: Error in function call


time=2024-09-13T18:53:13Z level=error msg=  on $repo/terragrunt/terragrunt.hcl line 7, in locals:

time=2024-09-13T18:53:13Z level=error msg=   7:   service_config = read_terragrunt_config(find_in_parent_folders("service.hcl"), { inputs = {}, locals = {} })

time=2024-09-13T18:53:13Z level=error msg=

time=2024-09-13T18:53:13Z level=error msg=Call to function "read_terragrunt_config" failed: Error reading file at path
$repo/terragrunt/regions/single-tenant/snapshot-schedule/test-control:
open
$repo/terragrunt/regions/single-tenant/snapshot-schedule/test-control:
no such file or directory.


time=2024-09-13T18:53:13Z level=error msg=Encountered error while evaluating locals in file $repo/terragrunt/terragrunt.hcl
time=2024-09-13T18:53:13Z level=error msg=$repo/terragrunt/terragrunt.hcl:7,20-43: Error in function call; Call to function "read_terragrunt_config" failed: Error reading file at path $repo/terragrunt/regions/single-tenant/snapshot-schedule/test-control: open $repo/terragrunt/regions/single-tenant/snapshot-schedule/test-control: no such file or directory.
time=2024-09-13T18:53:13Z level=error msg=Unable to determine underlying exit code, so Terragrunt will exit with error code 1

Changes

terragrunt/regions/single-tenant/db/metrics/disney

Plan: 5 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

Terraform used the selected providers to generate the following execution
...
( 4.0KB, 109 lines skipped )
...
                    },
                ]
            }
        )
      + project       = "sentry-st-disney"
      + zone          = "us-east4-b"
    }

Plan: 5 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/metrics/goldmansachs

Plan: 5 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

Terraform used the selected providers to generate the following execution
...
( 4.0KB, 108 lines skipped )
...
                      + role    = "roles/compute.osLogin"
                    },
                ]
            }
        )
      + project       = "sentry-st-goldmansachs"
      + zone          = "us-east4-b"
    }

Plan: 5 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/metrics/geico

Plan: 5 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
...
( 3.9KB, 107 lines skipped )
...
                      + role    = "roles/compute.osLogin"
                    },
                ]
            }
        )
      + project       = "sentry-st-geico"
      + zone          = "us-east4-b"
    }

Plan: 5 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/default/disney

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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

...
( 2.4KB, 60 lines skipped )
...
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/metrics/s4s

Plan: 5 to add, 2 to change, 0 to destroy.
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

...
( 3.8KB, 101 lines skipped )
...
                        ]
                      + role    = "roles/compute.osLogin"
                    },
                ]
            }
        )
      + project       = "mattrobenolt-kube"
      + zone          = "us-west1-b"
    }

Plan: 5 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/default/goldmansachs

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

...
( 2.3KB, 54 lines skipped )
...
        }
        name                      = "db-default-2"
        tags                      = [
            "db-default-2",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/default/geico

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

  # google_compute_disk_resource_policy_attachment.data_daily_attachment[0] will be created
...
( 2.1KB, 52 lines skipped )
...
            # (11 unchanged elements hidden)
        }
        name                      = "db-default-2"
        tags                      = [
            "db-default-2",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/default/test-region

Plan: 3 to add, 1 to change, 0 to destroy.
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

  # google_compute_disk_resource_policy_attachment.data_daily_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_daily_attachment" {
      + disk    = "db-default-1-pgdata"
      + id      = (known after apply)
      + name    = "data-daily-snapshot"
      + project = (known after apply)
...
( 1.1KB, 24 lines skipped )
...
      ~ labels                    = {
          - "cogs_category"      = "shared" -> null
            # (11 unchanged elements hidden)
        }
        name                      = "db-default-1"
        tags                      = [
            "db-default-1",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

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

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/metrics/ly

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

  # google_compute_disk_resource_policy_attachment.data_daily_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_daily_attachment" {
      + disk    = "db-metrics-1-pgdata"
      + id      = (known after apply)
      + name    = "data-daily-snapshot"
      + project = (known after apply)
...
( 1.7KB, 44 lines skipped )
...
        id                        = "projects/sentry-st-ly/zones/asia-northeast1-b/instances/db-metrics-2"
      ~ labels                    = {
          - "cogs_category"      = "sessions" -> null
            # (11 unchanged elements hidden)
        }
        name                      = "db-metrics-2"
        tags                      = [
            "db-metrics-2",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/metrics/test-region

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

  # google_compute_disk_resource_policy_attachment.data_daily_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_daily_attachment" {
      + disk    = "db-metrics-1-pgdata"
      + id      = (known after apply)
      + name    = "data-daily-snapshot"
      + project = (known after apply)
      + zone    = "europe-west3-c"
    }

  # google_compute_disk_resource_policy_attachment.data_hourly_attachment[0] will be created
...
( 1.3KB, 32 lines skipped )
...
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

  # module.instance["2"].google_compute_instance.salt_instance will be updated in-place
  ~ resource "google_compute_instance" "salt_instance" {
        id                        = "projects/sentry-test-region/zones/europe-west3-b/instances/db-metrics-2"
      ~ labels                    = {
          - "cogs_category"      = "sessions" -> null
            # (11 unchanged elements hidden)
        }
        name                      = "db-metrics-2"
        tags                      = [
            "db-metrics-2",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/seer/s4s

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["2"].data.google_iam_policy.os_login: Read complete after 1s [id=1708961782]
module.instance["1"].data.google_iam_policy.os_login: Read complete after 1s [id=1708961782]

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:

  # google_compute_disk_resource_policy_attachment.data_daily_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_daily_attachment" {
      + disk    = "db-seer-1-pgdata"
      + id      = (known after apply)
      + name    = "data-daily-snapshot"
      + project = (known after apply)
      + zone    = "us-west1-c"
    }

  # google_compute_disk_resource_policy_attachment.data_hourly_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_hourly_attachment" {
      + disk    = "db-seer-1-pgdata"
      + id      = (known after apply)
      + name    = "data-hourly-snapshot"
      + project = (known after apply)
      + zone    = "us-west1-c"
    }

  # google_compute_disk_resource_policy_attachment.data_weekly_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_weekly_attachment" {
      + disk    = "db-seer-1-pgdata"
      + id      = (known after apply)
      + name    = "data-weekly-snapshot"
      + project = (known after apply)
      + zone    = "us-west1-c"
    }

  # module.instance["1"].google_compute_instance.salt_instance will be updated in-place
  ~ resource "google_compute_instance" "salt_instance" {
        id                        = "projects/mattrobenolt-kube/zones/us-west1-c/instances/db-seer-1"
      ~ labels                    = {
          - "cogs_category" = "shared" -> null
            # (10 unchanged elements hidden)
        }
        name                      = "db-seer-1"
        tags                      = [
            "db-seer-1",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

  # module.instance["2"].google_compute_instance.salt_instance will be updated in-place
  ~ resource "google_compute_instance" "salt_instance" {
        id                        = "projects/mattrobenolt-kube/zones/us-west1-b/instances/db-seer-2"
      ~ labels                    = {
          - "cogs_category" = "shared" -> null
            # (10 unchanged elements hidden)
        }
        name                      = "db-seer-2"
        tags                      = [
            "db-seer-2",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

terragrunt/regions/single-tenant/db/default/ly

Plan: 3 to add, 2 to change, 0 to destroy.
module.instance["2"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Reading...
module.instance["1"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]
module.instance["2"].data.google_iam_policy.os_login: Read complete after 0s [id=1708961782]

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:

  # google_compute_disk_resource_policy_attachment.data_daily_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_daily_attachment" {
      + disk    = "db-default-1-pgdata"
      + id      = (known after apply)
      + name    = "data-daily-snapshot"
      + project = (known after apply)
      + zone    = "asia-northeast1-c"
    }

  # google_compute_disk_resource_policy_attachment.data_hourly_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_hourly_attachment" {
      + disk    = "db-default-1-pgdata"
      + id      = (known after apply)
      + name    = "data-hourly-snapshot"
      + project = (known after apply)
      + zone    = "asia-northeast1-c"
    }

  # google_compute_disk_resource_policy_attachment.data_weekly_attachment[0] will be created
  + resource "google_compute_disk_resource_policy_attachment" "data_weekly_attachment" {
      + disk    = "db-default-1-pgdata"
      + id      = (known after apply)
      + name    = "data-weekly-snapshot"
      + project = (known after apply)
      + zone    = "asia-northeast1-c"
    }

  # module.instance["1"].google_compute_instance.salt_instance will be updated in-place
  ~ resource "google_compute_instance" "salt_instance" {
        id                        = "projects/sentry-st-ly/zones/asia-northeast1-c/instances/db-default-1"
      ~ labels                    = {
          - "cogs_category"      = "shared" -> null
            # (11 unchanged elements hidden)
        }
        name                      = "db-default-1"
        tags                      = [
            "db-default-1",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

  # module.instance["2"].google_compute_instance.salt_instance will be updated in-place
  ~ resource "google_compute_instance" "salt_instance" {
        id                        = "projects/sentry-st-ly/zones/asia-northeast1-b/instances/db-default-2"
      ~ labels                    = {
          - "cogs_category"      = "shared" -> null
            # (11 unchanged elements hidden)
        }
        name                      = "db-default-2"
        tags                      = [
            "db-default-2",
            "firewall-allow-health-check-and-proxy",
            "internal",
            "postgres",
            "salt",
            "use-nat",
        ]
        # (18 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }

Plan: 3 to add, 2 to change, 0 to destroy.

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

Saved the plan to:
tfplan

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

Clean

These slices are in scope of your PR, but Terraform
found no infra changes are currently necessary. Hooray! 🍪

  • terragrunt/regions/single-tenant/db/default/s4s

Originally posted by @github-actions[bot] in https://github.com/getsentry/ops/issues/12101#issuecomment-2349907673

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions