feat: add skancher to terrier #459

Closed
skancher wants to merge 2 commits from skancher/governance:main into main
Member
No description provided.
feat: add skancher to terrier
All checks were successful
atlantis/pre_workflow_hook: Install local-only OpenTofu providers succeeded.
kennel/build skipped: no services or static sites defined
CI / check-1 (pull_request) Successful in 9m51s
CI / build (pull_request) Has been skipped
CI / check (pull_request) Successful in 0s
Validate / Governance (pull_request_target) Successful in 6m14s
96f4aeaa76
Member

@thesuperRL Looks like the Nix store ran out of space.

@thesuperRL Looks like the Nix store ran out of space.
chore: regenerate tofu, schemas, CODEOWNERS [skip ci]
All checks were successful
kennel/build skipped: no services or static sites defined
atlantis/plan: slack Plan: 2 to add, 0 to change, 14 to destroy.
atlantis/plan: google_play Plan: 2 to add, 0 to change, 14 to destroy.
atlantis/plan: keycloak Plan: 0 to add, 2 to change, 0 to destroy.
atlantis/plan: google_groups Plan: 1 to add, 0 to change, 7 to destroy.
atlantis/plan: git Plan: 1 to add, 0 to change, 7 to destroy.
atlantis/plan: discord Plan: 1 to add, 0 to change, 7 to destroy.
atlantis/plan 6/6 projects planned successfully.
atlantis/pre_workflow_hook: Install local-only OpenTofu providers succeeded.
d5b32e6cc5

Ran Plan for 6 projects:

  1. project: slack dir: tofu/slack workspace: default
  2. project: google_play dir: tofu/google_play workspace: default
  3. project: keycloak dir: tofu/keycloak workspace: default
  4. project: google_groups dir: tofu/google_groups workspace: default
  5. project: git dir: tofu/git workspace: default
  6. project: discord dir: tofu/discord workspace: default

1. project: slack dir: tofu/slack workspace: default

Show Output
Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 0.21s


OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
- destroy

OpenTofu will perform the following actions:

  # null_resource.slack_hub_abeni_hyz will be destroyed
  # (because null_resource.slack_hub_abeni_hyz is not in configuration)
- resource "null_resource" "slack_hub_abeni_hyz" {
-       id       = "6651427985500845403" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0ATWCVMV9P"
        } -> null
    }

  # null_resource.slack_hub_hannahg_143 will be destroyed
  # (because null_resource.slack_hub_hannahg_143 is not in configuration)
- resource "null_resource" "slack_hub_hannahg_143" {
-       id       = "4085891576169186766" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0C4PUP5ED8"
        } -> null
    }

  # null_resource.slack_hub_ipae will be destroyed
  # (because null_resource.slack_hub_ipae is not in configuration)
- resource "null_resource" "slack_hub_ipae" {
-       id       = "8731908278110164852" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0BS3HVJR25"
        } -> null
    }

  # null_resource.slack_hub_mdn2 will be destroyed
  # (because null_resource.slack_hub_mdn2 is not in configuration)
- resource "null_resource" "slack_hub_mdn2" {
-       id       = "693547392187753986" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0C18G68PBL"
        } -> null
    }

  # null_resource.slack_hub_sbwang will be destroyed
  # (because null_resource.slack_hub_sbwang is not in configuration)
- resource "null_resource" "slack_hub_sbwang" {
-       id       = "2257670165865032899" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0C125J8KC6"
        } -> null
    }

  # null_resource.slack_hub_skancher will be created
+ resource "null_resource" "slack_hub_skancher" {
+       id       = (known after apply)
+       triggers = {
          + "channel" = "C096TM8EMS8"
          + "user"    = "U0C24UWM648"
        }
    }

  # null_resource.slack_hub_sophiaw4 will be destroyed
  # (because null_resource.slack_hub_sophiaw4 is not in configuration)
- resource "null_resource" "slack_hub_sophiaw4" {
-       id       = "937840738979966788" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0C381D67J9"
        } -> null
    }

  # null_resource.slack_hub_vpardesh will be destroyed
  # (because null_resource.slack_hub_vpardesh is not in configuration)
- resource "null_resource" "slack_hub_vpardesh" {
-       id       = "6214619749210912798" -> null
-       triggers = {
          - "channel" = "C096TM8EMS8"
          - "user"    = "U0BTRJMLUQ1"
        } -> null
    }

  # null_resource.slack_terrier_ch0_abeni_hyz will be destroyed
  # (because null_resource.slack_terrier_ch0_abeni_hyz is not in configuration)
- resource "null_resource" "slack_terrier_ch0_abeni_hyz" {
-       id       = "4352803509561670126" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0ATWCVMV9P"
        } -> null
    }

  # null_resource.slack_terrier_ch0_hannahg_143 will be destroyed
  # (because null_resource.slack_terrier_ch0_hannahg_143 is not in configuration)
- resource "null_resource" "slack_terrier_ch0_hannahg_143" {
-       id       = "7422336563801100019" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0C4PUP5ED8"
        } -> null
    }

  # null_resource.slack_terrier_ch0_ipae will be destroyed
  # (because null_resource.slack_terrier_ch0_ipae is not in configuration)
- resource "null_resource" "slack_terrier_ch0_ipae" {
-       id       = "447710973983744828" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0BS3HVJR25"
        } -> null
    }

  # null_resource.slack_terrier_ch0_mdn2 will be destroyed
  # (because null_resource.slack_terrier_ch0_mdn2 is not in configuration)
- resource "null_resource" "slack_terrier_ch0_mdn2" {
-       id       = "8916493226705238314" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0C18G68PBL"
        } -> null
    }

  # null_resource.slack_terrier_ch0_sbwang will be destroyed
  # (because null_resource.slack_terrier_ch0_sbwang is not in configuration)
- resource "null_resource" "slack_terrier_ch0_sbwang" {
-       id       = "6835270116506814343" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0C125J8KC6"
        } -> null
    }

  # null_resource.slack_terrier_ch0_skancher will be created
+ resource "null_resource" "slack_terrier_ch0_skancher" {
+       id       = (known after apply)
+       triggers = {
          + "channel" = "C08AAADPCSE"
          + "user"    = "U0C24UWM648"
        }
    }

  # null_resource.slack_terrier_ch0_sophiaw4 will be destroyed
  # (because null_resource.slack_terrier_ch0_sophiaw4 is not in configuration)
- resource "null_resource" "slack_terrier_ch0_sophiaw4" {
-       id       = "3229070013316939545" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0C381D67J9"
        } -> null
    }

  # null_resource.slack_terrier_ch0_vpardesh will be destroyed
  # (because null_resource.slack_terrier_ch0_vpardesh is not in configuration)
- resource "null_resource" "slack_terrier_ch0_vpardesh" {
-       id       = "2681138092519747988" -> null
-       triggers = {
          - "channel" = "C08AAADPCSE"
          - "user"    = "U0BTRJMLUQ1"
        } -> null
    }

Plan: 2 to add, 0 to change, 14 to destroy.
  • ▶️ To apply this plan, comment:
    atlantis apply -p slack
    
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -p slack
    

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


2. project: google_play dir: tofu/google_play workspace: default

Show Output
Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 0.26s


OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
- destroy

OpenTofu will perform the following actions:

  # googleplay_app_iam.terrier_abeni_hyz will be destroyed
  # (because googleplay_app_iam.terrier_abeni_hyz is not in configuration)
- resource "googleplay_app_iam" "terrier_abeni_hyz" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "hanyuz2@andrew.cmu.edu" -> null
    }

  # googleplay_app_iam.terrier_hannahg_143 will be destroyed
  # (because googleplay_app_iam.terrier_hannahg_143 is not in configuration)
- resource "googleplay_app_iam" "terrier_hannahg_143" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "hannahgu@andrew.cmu.edu" -> null
    }

  # googleplay_app_iam.terrier_ipae will be destroyed
  # (because googleplay_app_iam.terrier_ipae is not in configuration)
- resource "googleplay_app_iam" "terrier_ipae" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "ipae@andrew.cmu.edu" -> null
    }

  # googleplay_app_iam.terrier_mdn2 will be destroyed
  # (because googleplay_app_iam.terrier_mdn2 is not in configuration)
- resource "googleplay_app_iam" "terrier_mdn2" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "mdn2@andrew.cmu.edu" -> null
    }

  # googleplay_app_iam.terrier_sbwang will be destroyed
  # (because googleplay_app_iam.terrier_sbwang is not in configuration)
- resource "googleplay_app_iam" "terrier_sbwang" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "sbwang@andrew.cmu.edu" -> null
    }

  # googleplay_app_iam.terrier_skancher will be created
+ resource "googleplay_app_iam" "terrier_skancher" {
+       app_id               = "build.terrier.app"
+       expanded_permissions = (known after apply)
+       permissions          = [
+           "CAN_MANAGE_TRACK_APKS",
+           "CAN_MANAGE_TRACK_USERS",
+           "CAN_VIEW_APP_QUALITY",
+           "CAN_VIEW_NON_FINANCIAL_DATA",
        ]
+       user_id              = "skancher@andrew.cmu.edu"
    }

  # googleplay_app_iam.terrier_sophiaw4 will be destroyed
  # (because googleplay_app_iam.terrier_sophiaw4 is not in configuration)
- resource "googleplay_app_iam" "terrier_sophiaw4" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "sophiaw4@andrew.cmu.edu" -> null
    }

  # googleplay_app_iam.terrier_vpardesh will be destroyed
  # (because googleplay_app_iam.terrier_vpardesh is not in configuration)
- resource "googleplay_app_iam" "terrier_vpardesh" {
-       app_id               = "build.terrier.app" -> null
-       expanded_permissions = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       permissions          = [
-           "CAN_MANAGE_TRACK_APKS",
-           "CAN_MANAGE_TRACK_USERS",
-           "CAN_VIEW_APP_QUALITY",
-           "CAN_VIEW_NON_FINANCIAL_DATA",
        ] -> null
-       user_id              = "vpardesh@andrew.cmu.edu" -> null
    }

  # googleplay_user.abeni_hyz will be destroyed
  # (because googleplay_user.abeni_hyz is not in configuration)
- resource "googleplay_user" "abeni_hyz" {
-       email                = "hanyuz2@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "hanyuz2@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/hanyuz2@andrew.cmu.edu" -> null
    }

  # googleplay_user.hannahg_143 will be destroyed
  # (because googleplay_user.hannahg_143 is not in configuration)
- resource "googleplay_user" "hannahg_143" {
-       email                = "hannahgu@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "hannahgu@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/hannahgu@andrew.cmu.edu" -> null
    }

  # googleplay_user.ipae will be destroyed
  # (because googleplay_user.ipae is not in configuration)
- resource "googleplay_user" "ipae" {
-       email                = "ipae@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "ipae@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/ipae@andrew.cmu.edu" -> null
    }

  # googleplay_user.mdn2 will be destroyed
  # (because googleplay_user.mdn2 is not in configuration)
- resource "googleplay_user" "mdn2" {
-       email                = "mdn2@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "mdn2@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/mdn2@andrew.cmu.edu" -> null
    }

  # googleplay_user.sbwang will be destroyed
  # (because googleplay_user.sbwang is not in configuration)
- resource "googleplay_user" "sbwang" {
-       email                = "sbwang@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "sbwang@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/sbwang@andrew.cmu.edu" -> null
    }

  # googleplay_user.skancher will be created
+ resource "googleplay_user" "skancher" {
+       email                = "skancher@andrew.cmu.edu"
+       expanded_permissions = (known after apply)
+       global_permissions   = [
+           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ]
+       id                   = (known after apply)
+       name                 = (known after apply)
    }

  # googleplay_user.sophiaw4 will be destroyed
  # (because googleplay_user.sophiaw4 is not in configuration)
- resource "googleplay_user" "sophiaw4" {
-       email                = "sophiaw4@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "sophiaw4@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/sophiaw4@andrew.cmu.edu" -> null
    }

  # googleplay_user.vpardesh will be destroyed
  # (because googleplay_user.vpardesh is not in configuration)
- resource "googleplay_user" "vpardesh" {
-       email                = "vpardesh@andrew.cmu.edu" -> null
-       expanded_permissions = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       global_permissions   = [
-           "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL",
        ] -> null
-       id                   = "vpardesh@andrew.cmu.edu" -> null
-       name                 = "developers/7984360456919420393/users/vpardesh@andrew.cmu.edu" -> null
    }

Plan: 2 to add, 0 to change, 14 to destroy.
  • ▶️ To apply this plan, comment:
    atlantis apply -p google_play
    
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -p google_play
    

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


3. project: keycloak dir: tofu/keycloak workspace: default

Show Output
Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `release` profile [optimized] target(s) in 0.20s


OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
! update in-place (current -> planned)

OpenTofu will perform the following actions:

  # keycloak_group_memberships.project_terrier will be updated in-place
! resource "keycloak_group_memberships" "project_terrier" {
        id       = "scottylabs/group-memberships/678c7fa9-35cc-4bef-9a06-87cb6aa36238"
!       members  = [
-           "hannahgu",
-           "hanyuz2",
-           "ipae",
-           "mdn2",
-           "sbwang",
-           "sophiaw4",
-           "vpardesh",
+           "skancher",
            # (11 unchanged elements hidden)
        ]
        # (2 unchanged attributes hidden)
    }

  # keycloak_group_memberships.projects will be updated in-place
! resource "keycloak_group_memberships" "projects" {
        id       = "scottylabs/group-memberships/9e6890c8-50a0-4b82-86b9-91791fffac25"
!       members  = [
-           "hannahgu",
-           "hanyuz2",
-           "ipae",
-           "mdn2",
-           "sbwang",
-           "sophiaw4",
-           "vpardesh",
+           "skancher",
            # (107 unchanged elements hidden)
        ]
        # (2 unchanged attributes hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.
  • ▶️ To apply this plan, comment:
    atlantis apply -p keycloak
    
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -p keycloak
    

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


4. project: google_groups dir: tofu/google_groups workspace: default

Show Output
Blocking waiting for file lock on package cache
    Finished `release` profile [optimized] target(s) in 0.14s


OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
- destroy

OpenTofu will perform the following actions:

  # google_cloud_identity_group_membership.tech_abeni_hyz will be destroyed
  # (because google_cloud_identity_group_membership.tech_abeni_hyz is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_abeni_hyz" {
-       create_time = "2026-10-02T02:00:47.750893Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/114337912658184297504" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/114337912658184297504" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.750893Z" -> null

-       preferred_member_key {
-           id = "hanyuz2@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

  # google_cloud_identity_group_membership.tech_hannahg_143 will be destroyed
  # (because google_cloud_identity_group_membership.tech_hannahg_143 is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_hannahg_143" {
-       create_time = "2026-10-02T02:00:47.730655Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/104168947905771504752" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/104168947905771504752" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.730655Z" -> null

-       preferred_member_key {
-           id = "hannahgu@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

  # google_cloud_identity_group_membership.tech_ipae will be destroyed
  # (because google_cloud_identity_group_membership.tech_ipae is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_ipae" {
-       create_time = "2026-10-02T02:00:47.734849Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/107795329098423225273" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/107795329098423225273" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.734849Z" -> null

-       preferred_member_key {
-           id = "ipae@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

  # google_cloud_identity_group_membership.tech_mdn2 will be destroyed
  # (because google_cloud_identity_group_membership.tech_mdn2 is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_mdn2" {
-       create_time = "2026-10-02T02:00:47.803870Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/112729618132774511971" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/112729618132774511971" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.803870Z" -> null

-       preferred_member_key {
-           id = "mdn2@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

  # google_cloud_identity_group_membership.tech_sbwang will be destroyed
  # (because google_cloud_identity_group_membership.tech_sbwang is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_sbwang" {
-       create_time = "2026-10-02T02:00:47.738522Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/116974631979658863587" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/116974631979658863587" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.738522Z" -> null

-       preferred_member_key {
-           id = "sbwang@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

  # google_cloud_identity_group_membership.tech_skancher will be created
+ resource "google_cloud_identity_group_membership" "tech_skancher" {
+       create_time = (known after apply)
+       group       = "groups/04anzqyu1bqbv79"
+       id          = (known after apply)
+       name        = (known after apply)
+       type        = (known after apply)
+       update_time = (known after apply)

+       preferred_member_key {
+           id = "skancher@andrew.cmu.edu"
        }

+       roles {
+           name = "MEMBER"
        }
    }

  # google_cloud_identity_group_membership.tech_sophiaw4 will be destroyed
  # (because google_cloud_identity_group_membership.tech_sophiaw4 is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_sophiaw4" {
-       create_time = "2026-10-02T02:00:47.718149Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/100163073511417542948" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/100163073511417542948" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.718149Z" -> null

-       preferred_member_key {
-           id = "sophiaw4@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

  # google_cloud_identity_group_membership.tech_vpardesh will be destroyed
  # (because google_cloud_identity_group_membership.tech_vpardesh is not in configuration)
- resource "google_cloud_identity_group_membership" "tech_vpardesh" {
-       create_time = "2026-10-02T02:00:47.738478Z" -> null
-       group       = "groups/04anzqyu1bqbv79" -> null
-       id          = "groups/04anzqyu1bqbv79/memberships/102041520413824736042" -> null
-       name        = "groups/04anzqyu1bqbv79/memberships/102041520413824736042" -> null
-       type        = "USER" -> null
-       update_time = "2026-10-02T02:00:47.738478Z" -> null

-       preferred_member_key {
-           id = "vpardesh@andrew.cmu.edu" -> null
        }

-       roles {
-           name = "MEMBER" -> null
        }
    }

Plan: 1 to add, 0 to change, 7 to destroy.
  • ▶️ To apply this plan, comment:
    atlantis apply -p google_groups
    
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -p google_groups
    

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


5. project: git dir: tofu/git workspace: default

Show Output
Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 0.20s


OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
- destroy

OpenTofu will perform the following actions:

  # forgejo_team_member.terrier_abeni_hyz will be destroyed
  # (because forgejo_team_member.terrier_abeni_hyz is not in configuration)
- resource "forgejo_team_member" "terrier_abeni_hyz" {
-       team_id = 10 -> null
-       user    = "hanyuz2" -> null
    }

  # forgejo_team_member.terrier_hannahg_143 will be destroyed
  # (because forgejo_team_member.terrier_hannahg_143 is not in configuration)
- resource "forgejo_team_member" "terrier_hannahg_143" {
-       team_id = 10 -> null
-       user    = "hannahg_143" -> null
    }

  # forgejo_team_member.terrier_ipae will be destroyed
  # (because forgejo_team_member.terrier_ipae is not in configuration)
- resource "forgejo_team_member" "terrier_ipae" {
-       team_id = 10 -> null
-       user    = "ipae" -> null
    }

  # forgejo_team_member.terrier_mdn2 will be destroyed
  # (because forgejo_team_member.terrier_mdn2 is not in configuration)
- resource "forgejo_team_member" "terrier_mdn2" {
-       team_id = 10 -> null
-       user    = "mdn2" -> null
    }

  # forgejo_team_member.terrier_sbwang will be destroyed
  # (because forgejo_team_member.terrier_sbwang is not in configuration)
- resource "forgejo_team_member" "terrier_sbwang" {
-       team_id = 10 -> null
-       user    = "sbwang" -> null
    }

  # forgejo_team_member.terrier_skancher will be created
+ resource "forgejo_team_member" "terrier_skancher" {
+       team_id = 10
+       user    = "skancher"
    }

  # forgejo_team_member.terrier_sophiaw4 will be destroyed
  # (because forgejo_team_member.terrier_sophiaw4 is not in configuration)
- resource "forgejo_team_member" "terrier_sophiaw4" {
-       team_id = 10 -> null
-       user    = "sophiaw4" -> null
    }

  # forgejo_team_member.terrier_vpardesh will be destroyed
  # (because forgejo_team_member.terrier_vpardesh is not in configuration)
- resource "forgejo_team_member" "terrier_vpardesh" {
-       team_id = 10 -> null
-       user    = "vpardesh" -> null
    }

Plan: 1 to add, 0 to change, 7 to destroy.
  • ▶️ To apply this plan, comment:
    atlantis apply -p git
    
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -p git
    

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


6. project: discord dir: tofu/discord workspace: default

Show Output
Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `release` profile [optimized] target(s) in 0.22s


OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
- destroy

OpenTofu will perform the following actions:

  # discord_member_roles.abeni_hyz will be destroyed
  # (because discord_member_roles.abeni_hyz is not in configuration)
- resource "discord_member_roles" "abeni_hyz" {
-       id        = "1353118209024331948:1401759878023745606" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "1401759878023745606" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

  # discord_member_roles.hannahg_143 will be destroyed
  # (because discord_member_roles.hannahg_143 is not in configuration)
- resource "discord_member_roles" "hannahg_143" {
-       id        = "1353118209024331948:694255787207557150" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "694255787207557150" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

  # discord_member_roles.ipae will be destroyed
  # (because discord_member_roles.ipae is not in configuration)
- resource "discord_member_roles" "ipae" {
-       id        = "1353118209024331948:1107986330056671242" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "1107986330056671242" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

  # discord_member_roles.mdn2 will be destroyed
  # (because discord_member_roles.mdn2 is not in configuration)
- resource "discord_member_roles" "mdn2" {
-       id        = "1353118209024331948:408177745059774464" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "408177745059774464" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

  # discord_member_roles.sbwang will be destroyed
  # (because discord_member_roles.sbwang is not in configuration)
- resource "discord_member_roles" "sbwang" {
-       id        = "1353118209024331948:756122216218755202" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "756122216218755202" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

  # discord_member_roles.skancher will be created
+ resource "discord_member_roles" "skancher" {
+       id        = (known after apply)
+       server_id = "1353118209024331948"
+       user_id   = "557250514254036992"

+       role {
+           has_role = true
+           role_id  = "1488787088118644848"
        }
+       role {
+           has_role = true
+           role_id  = "1517227361790201857"
        }
    }

  # discord_member_roles.sophiaw4 will be destroyed
  # (because discord_member_roles.sophiaw4 is not in configuration)
- resource "discord_member_roles" "sophiaw4" {
-       id        = "1353118209024331948:1419801173879291975" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "1419801173879291975" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

  # discord_member_roles.vpardesh will be destroyed
  # (because discord_member_roles.vpardesh is not in configuration)
- resource "discord_member_roles" "vpardesh" {
-       id        = "1353118209024331948:754857853961109676" -> null
-       server_id = "1353118209024331948" -> null
-       user_id   = "754857853961109676" -> null

-       role {
-           has_role = true -> null
-           role_id  = "1488787088118644848" -> null
        }
-       role {
-           has_role = true -> null
-           role_id  = "1517227361790201857" -> null
        }
    }

Plan: 1 to add, 0 to change, 7 to destroy.
  • ▶️ To apply this plan, comment:
    atlantis apply -p discord
    
  • 🚮 To delete this plan and lock, click here
  • 🔁 To plan this project again, comment:
    atlantis plan -p discord
    

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


Plan Summary

6 projects, 6 with changes, 0 with no changes, 0 failed

  • ⏩ To apply all unapplied plans from this Pull Request, comment:
    atlantis apply
    
  • 🚮 To delete all plans and locks from this Pull Request, comment:
    atlantis unlock
    
Ran Plan for 6 projects: 1. project: `slack` dir: `tofu/slack` workspace: `default` 1. project: `google_play` dir: `tofu/google_play` workspace: `default` 1. project: `keycloak` dir: `tofu/keycloak` workspace: `default` 1. project: `google_groups` dir: `tofu/google_groups` workspace: `default` 1. project: `git` dir: `tofu/git` workspace: `default` 1. project: `discord` dir: `tofu/discord` workspace: `default` --- ### 1. project: `slack` dir: `tofu/slack` workspace: `default` <details><summary>Show Output</summary> ```diff Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Finished `release` profile [optimized] target(s) in 0.21s OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create - destroy OpenTofu will perform the following actions: # null_resource.slack_hub_abeni_hyz will be destroyed # (because null_resource.slack_hub_abeni_hyz is not in configuration) - resource "null_resource" "slack_hub_abeni_hyz" { - id = "6651427985500845403" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0ATWCVMV9P" } -> null } # null_resource.slack_hub_hannahg_143 will be destroyed # (because null_resource.slack_hub_hannahg_143 is not in configuration) - resource "null_resource" "slack_hub_hannahg_143" { - id = "4085891576169186766" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0C4PUP5ED8" } -> null } # null_resource.slack_hub_ipae will be destroyed # (because null_resource.slack_hub_ipae is not in configuration) - resource "null_resource" "slack_hub_ipae" { - id = "8731908278110164852" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0BS3HVJR25" } -> null } # null_resource.slack_hub_mdn2 will be destroyed # (because null_resource.slack_hub_mdn2 is not in configuration) - resource "null_resource" "slack_hub_mdn2" { - id = "693547392187753986" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0C18G68PBL" } -> null } # null_resource.slack_hub_sbwang will be destroyed # (because null_resource.slack_hub_sbwang is not in configuration) - resource "null_resource" "slack_hub_sbwang" { - id = "2257670165865032899" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0C125J8KC6" } -> null } # null_resource.slack_hub_skancher will be created + resource "null_resource" "slack_hub_skancher" { + id = (known after apply) + triggers = { + "channel" = "C096TM8EMS8" + "user" = "U0C24UWM648" } } # null_resource.slack_hub_sophiaw4 will be destroyed # (because null_resource.slack_hub_sophiaw4 is not in configuration) - resource "null_resource" "slack_hub_sophiaw4" { - id = "937840738979966788" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0C381D67J9" } -> null } # null_resource.slack_hub_vpardesh will be destroyed # (because null_resource.slack_hub_vpardesh is not in configuration) - resource "null_resource" "slack_hub_vpardesh" { - id = "6214619749210912798" -> null - triggers = { - "channel" = "C096TM8EMS8" - "user" = "U0BTRJMLUQ1" } -> null } # null_resource.slack_terrier_ch0_abeni_hyz will be destroyed # (because null_resource.slack_terrier_ch0_abeni_hyz is not in configuration) - resource "null_resource" "slack_terrier_ch0_abeni_hyz" { - id = "4352803509561670126" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0ATWCVMV9P" } -> null } # null_resource.slack_terrier_ch0_hannahg_143 will be destroyed # (because null_resource.slack_terrier_ch0_hannahg_143 is not in configuration) - resource "null_resource" "slack_terrier_ch0_hannahg_143" { - id = "7422336563801100019" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0C4PUP5ED8" } -> null } # null_resource.slack_terrier_ch0_ipae will be destroyed # (because null_resource.slack_terrier_ch0_ipae is not in configuration) - resource "null_resource" "slack_terrier_ch0_ipae" { - id = "447710973983744828" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0BS3HVJR25" } -> null } # null_resource.slack_terrier_ch0_mdn2 will be destroyed # (because null_resource.slack_terrier_ch0_mdn2 is not in configuration) - resource "null_resource" "slack_terrier_ch0_mdn2" { - id = "8916493226705238314" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0C18G68PBL" } -> null } # null_resource.slack_terrier_ch0_sbwang will be destroyed # (because null_resource.slack_terrier_ch0_sbwang is not in configuration) - resource "null_resource" "slack_terrier_ch0_sbwang" { - id = "6835270116506814343" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0C125J8KC6" } -> null } # null_resource.slack_terrier_ch0_skancher will be created + resource "null_resource" "slack_terrier_ch0_skancher" { + id = (known after apply) + triggers = { + "channel" = "C08AAADPCSE" + "user" = "U0C24UWM648" } } # null_resource.slack_terrier_ch0_sophiaw4 will be destroyed # (because null_resource.slack_terrier_ch0_sophiaw4 is not in configuration) - resource "null_resource" "slack_terrier_ch0_sophiaw4" { - id = "3229070013316939545" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0C381D67J9" } -> null } # null_resource.slack_terrier_ch0_vpardesh will be destroyed # (because null_resource.slack_terrier_ch0_vpardesh is not in configuration) - resource "null_resource" "slack_terrier_ch0_vpardesh" { - id = "2681138092519747988" -> null - triggers = { - "channel" = "C08AAADPCSE" - "user" = "U0BTRJMLUQ1" } -> null } Plan: 2 to add, 0 to change, 14 to destroy. ``` </details> * :arrow_forward: To **apply** this plan, comment: ```shell atlantis apply -p slack ``` * :put_litter_in_its_place: To **delete** this plan and lock, click [here](https://atlantis.scottylabs.org/lock?id=ScottyLabs%252Fgovernance%252Ftofu%252Fslack%252Fdefault%252Fslack) * :repeat: To **plan** this project again, comment: ```shell atlantis plan -p slack ``` Plan: 2 to add, 0 to change, 14 to destroy. --- ### 2. project: `google_play` dir: `tofu/google_play` workspace: `default` <details><summary>Show Output</summary> ```diff Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Finished `release` profile [optimized] target(s) in 0.26s OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create - destroy OpenTofu will perform the following actions: # googleplay_app_iam.terrier_abeni_hyz will be destroyed # (because googleplay_app_iam.terrier_abeni_hyz is not in configuration) - resource "googleplay_app_iam" "terrier_abeni_hyz" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "hanyuz2@andrew.cmu.edu" -> null } # googleplay_app_iam.terrier_hannahg_143 will be destroyed # (because googleplay_app_iam.terrier_hannahg_143 is not in configuration) - resource "googleplay_app_iam" "terrier_hannahg_143" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "hannahgu@andrew.cmu.edu" -> null } # googleplay_app_iam.terrier_ipae will be destroyed # (because googleplay_app_iam.terrier_ipae is not in configuration) - resource "googleplay_app_iam" "terrier_ipae" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "ipae@andrew.cmu.edu" -> null } # googleplay_app_iam.terrier_mdn2 will be destroyed # (because googleplay_app_iam.terrier_mdn2 is not in configuration) - resource "googleplay_app_iam" "terrier_mdn2" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "mdn2@andrew.cmu.edu" -> null } # googleplay_app_iam.terrier_sbwang will be destroyed # (because googleplay_app_iam.terrier_sbwang is not in configuration) - resource "googleplay_app_iam" "terrier_sbwang" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "sbwang@andrew.cmu.edu" -> null } # googleplay_app_iam.terrier_skancher will be created + resource "googleplay_app_iam" "terrier_skancher" { + app_id = "build.terrier.app" + expanded_permissions = (known after apply) + permissions = [ + "CAN_MANAGE_TRACK_APKS", + "CAN_MANAGE_TRACK_USERS", + "CAN_VIEW_APP_QUALITY", + "CAN_VIEW_NON_FINANCIAL_DATA", ] + user_id = "skancher@andrew.cmu.edu" } # googleplay_app_iam.terrier_sophiaw4 will be destroyed # (because googleplay_app_iam.terrier_sophiaw4 is not in configuration) - resource "googleplay_app_iam" "terrier_sophiaw4" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "sophiaw4@andrew.cmu.edu" -> null } # googleplay_app_iam.terrier_vpardesh will be destroyed # (because googleplay_app_iam.terrier_vpardesh is not in configuration) - resource "googleplay_app_iam" "terrier_vpardesh" { - app_id = "build.terrier.app" -> null - expanded_permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - permissions = [ - "CAN_MANAGE_TRACK_APKS", - "CAN_MANAGE_TRACK_USERS", - "CAN_VIEW_APP_QUALITY", - "CAN_VIEW_NON_FINANCIAL_DATA", ] -> null - user_id = "vpardesh@andrew.cmu.edu" -> null } # googleplay_user.abeni_hyz will be destroyed # (because googleplay_user.abeni_hyz is not in configuration) - resource "googleplay_user" "abeni_hyz" { - email = "hanyuz2@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "hanyuz2@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/hanyuz2@andrew.cmu.edu" -> null } # googleplay_user.hannahg_143 will be destroyed # (because googleplay_user.hannahg_143 is not in configuration) - resource "googleplay_user" "hannahg_143" { - email = "hannahgu@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "hannahgu@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/hannahgu@andrew.cmu.edu" -> null } # googleplay_user.ipae will be destroyed # (because googleplay_user.ipae is not in configuration) - resource "googleplay_user" "ipae" { - email = "ipae@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "ipae@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/ipae@andrew.cmu.edu" -> null } # googleplay_user.mdn2 will be destroyed # (because googleplay_user.mdn2 is not in configuration) - resource "googleplay_user" "mdn2" { - email = "mdn2@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "mdn2@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/mdn2@andrew.cmu.edu" -> null } # googleplay_user.sbwang will be destroyed # (because googleplay_user.sbwang is not in configuration) - resource "googleplay_user" "sbwang" { - email = "sbwang@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "sbwang@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/sbwang@andrew.cmu.edu" -> null } # googleplay_user.skancher will be created + resource "googleplay_user" "skancher" { + email = "skancher@andrew.cmu.edu" + expanded_permissions = (known after apply) + global_permissions = [ + "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] + id = (known after apply) + name = (known after apply) } # googleplay_user.sophiaw4 will be destroyed # (because googleplay_user.sophiaw4 is not in configuration) - resource "googleplay_user" "sophiaw4" { - email = "sophiaw4@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "sophiaw4@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/sophiaw4@andrew.cmu.edu" -> null } # googleplay_user.vpardesh will be destroyed # (because googleplay_user.vpardesh is not in configuration) - resource "googleplay_user" "vpardesh" { - email = "vpardesh@andrew.cmu.edu" -> null - expanded_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - global_permissions = [ - "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", ] -> null - id = "vpardesh@andrew.cmu.edu" -> null - name = "developers/7984360456919420393/users/vpardesh@andrew.cmu.edu" -> null } Plan: 2 to add, 0 to change, 14 to destroy. ``` </details> * :arrow_forward: To **apply** this plan, comment: ```shell atlantis apply -p google_play ``` * :put_litter_in_its_place: To **delete** this plan and lock, click [here](https://atlantis.scottylabs.org/lock?id=ScottyLabs%252Fgovernance%252Ftofu%252Fgoogle_play%252Fdefault%252Fgoogle_play) * :repeat: To **plan** this project again, comment: ```shell atlantis plan -p google_play ``` Plan: 2 to add, 0 to change, 14 to destroy. --- ### 3. project: `keycloak` dir: `tofu/keycloak` workspace: `default` <details><summary>Show Output</summary> ```diff Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Finished `release` profile [optimized] target(s) in 0.20s OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: ! update in-place (current -> planned) OpenTofu will perform the following actions: # keycloak_group_memberships.project_terrier will be updated in-place ! resource "keycloak_group_memberships" "project_terrier" { id = "scottylabs/group-memberships/678c7fa9-35cc-4bef-9a06-87cb6aa36238" ! members = [ - "hannahgu", - "hanyuz2", - "ipae", - "mdn2", - "sbwang", - "sophiaw4", - "vpardesh", + "skancher", # (11 unchanged elements hidden) ] # (2 unchanged attributes hidden) } # keycloak_group_memberships.projects will be updated in-place ! resource "keycloak_group_memberships" "projects" { id = "scottylabs/group-memberships/9e6890c8-50a0-4b82-86b9-91791fffac25" ! members = [ - "hannahgu", - "hanyuz2", - "ipae", - "mdn2", - "sbwang", - "sophiaw4", - "vpardesh", + "skancher", # (107 unchanged elements hidden) ] # (2 unchanged attributes hidden) } Plan: 0 to add, 2 to change, 0 to destroy. ``` </details> * :arrow_forward: To **apply** this plan, comment: ```shell atlantis apply -p keycloak ``` * :put_litter_in_its_place: To **delete** this plan and lock, click [here](https://atlantis.scottylabs.org/lock?id=ScottyLabs%252Fgovernance%252Ftofu%252Fkeycloak%252Fdefault%252Fkeycloak) * :repeat: To **plan** this project again, comment: ```shell atlantis plan -p keycloak ``` Plan: 0 to add, 2 to change, 0 to destroy. --- ### 4. project: `google_groups` dir: `tofu/google_groups` workspace: `default` <details><summary>Show Output</summary> ```diff Blocking waiting for file lock on package cache Finished `release` profile [optimized] target(s) in 0.14s OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create - destroy OpenTofu will perform the following actions: # google_cloud_identity_group_membership.tech_abeni_hyz will be destroyed # (because google_cloud_identity_group_membership.tech_abeni_hyz is not in configuration) - resource "google_cloud_identity_group_membership" "tech_abeni_hyz" { - create_time = "2026-10-02T02:00:47.750893Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/114337912658184297504" -> null - name = "groups/04anzqyu1bqbv79/memberships/114337912658184297504" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.750893Z" -> null - preferred_member_key { - id = "hanyuz2@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } # google_cloud_identity_group_membership.tech_hannahg_143 will be destroyed # (because google_cloud_identity_group_membership.tech_hannahg_143 is not in configuration) - resource "google_cloud_identity_group_membership" "tech_hannahg_143" { - create_time = "2026-10-02T02:00:47.730655Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/104168947905771504752" -> null - name = "groups/04anzqyu1bqbv79/memberships/104168947905771504752" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.730655Z" -> null - preferred_member_key { - id = "hannahgu@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } # google_cloud_identity_group_membership.tech_ipae will be destroyed # (because google_cloud_identity_group_membership.tech_ipae is not in configuration) - resource "google_cloud_identity_group_membership" "tech_ipae" { - create_time = "2026-10-02T02:00:47.734849Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/107795329098423225273" -> null - name = "groups/04anzqyu1bqbv79/memberships/107795329098423225273" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.734849Z" -> null - preferred_member_key { - id = "ipae@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } # google_cloud_identity_group_membership.tech_mdn2 will be destroyed # (because google_cloud_identity_group_membership.tech_mdn2 is not in configuration) - resource "google_cloud_identity_group_membership" "tech_mdn2" { - create_time = "2026-10-02T02:00:47.803870Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/112729618132774511971" -> null - name = "groups/04anzqyu1bqbv79/memberships/112729618132774511971" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.803870Z" -> null - preferred_member_key { - id = "mdn2@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } # google_cloud_identity_group_membership.tech_sbwang will be destroyed # (because google_cloud_identity_group_membership.tech_sbwang is not in configuration) - resource "google_cloud_identity_group_membership" "tech_sbwang" { - create_time = "2026-10-02T02:00:47.738522Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/116974631979658863587" -> null - name = "groups/04anzqyu1bqbv79/memberships/116974631979658863587" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.738522Z" -> null - preferred_member_key { - id = "sbwang@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } # google_cloud_identity_group_membership.tech_skancher will be created + resource "google_cloud_identity_group_membership" "tech_skancher" { + create_time = (known after apply) + group = "groups/04anzqyu1bqbv79" + id = (known after apply) + name = (known after apply) + type = (known after apply) + update_time = (known after apply) + preferred_member_key { + id = "skancher@andrew.cmu.edu" } + roles { + name = "MEMBER" } } # google_cloud_identity_group_membership.tech_sophiaw4 will be destroyed # (because google_cloud_identity_group_membership.tech_sophiaw4 is not in configuration) - resource "google_cloud_identity_group_membership" "tech_sophiaw4" { - create_time = "2026-10-02T02:00:47.718149Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/100163073511417542948" -> null - name = "groups/04anzqyu1bqbv79/memberships/100163073511417542948" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.718149Z" -> null - preferred_member_key { - id = "sophiaw4@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } # google_cloud_identity_group_membership.tech_vpardesh will be destroyed # (because google_cloud_identity_group_membership.tech_vpardesh is not in configuration) - resource "google_cloud_identity_group_membership" "tech_vpardesh" { - create_time = "2026-10-02T02:00:47.738478Z" -> null - group = "groups/04anzqyu1bqbv79" -> null - id = "groups/04anzqyu1bqbv79/memberships/102041520413824736042" -> null - name = "groups/04anzqyu1bqbv79/memberships/102041520413824736042" -> null - type = "USER" -> null - update_time = "2026-10-02T02:00:47.738478Z" -> null - preferred_member_key { - id = "vpardesh@andrew.cmu.edu" -> null } - roles { - name = "MEMBER" -> null } } Plan: 1 to add, 0 to change, 7 to destroy. ``` </details> * :arrow_forward: To **apply** this plan, comment: ```shell atlantis apply -p google_groups ``` * :put_litter_in_its_place: To **delete** this plan and lock, click [here](https://atlantis.scottylabs.org/lock?id=ScottyLabs%252Fgovernance%252Ftofu%252Fgoogle_groups%252Fdefault%252Fgoogle_groups) * :repeat: To **plan** this project again, comment: ```shell atlantis plan -p google_groups ``` Plan: 1 to add, 0 to change, 7 to destroy. --- ### 5. project: `git` dir: `tofu/git` workspace: `default` <details><summary>Show Output</summary> ```diff Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Finished `release` profile [optimized] target(s) in 0.20s OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create - destroy OpenTofu will perform the following actions: # forgejo_team_member.terrier_abeni_hyz will be destroyed # (because forgejo_team_member.terrier_abeni_hyz is not in configuration) - resource "forgejo_team_member" "terrier_abeni_hyz" { - team_id = 10 -> null - user = "hanyuz2" -> null } # forgejo_team_member.terrier_hannahg_143 will be destroyed # (because forgejo_team_member.terrier_hannahg_143 is not in configuration) - resource "forgejo_team_member" "terrier_hannahg_143" { - team_id = 10 -> null - user = "hannahg_143" -> null } # forgejo_team_member.terrier_ipae will be destroyed # (because forgejo_team_member.terrier_ipae is not in configuration) - resource "forgejo_team_member" "terrier_ipae" { - team_id = 10 -> null - user = "ipae" -> null } # forgejo_team_member.terrier_mdn2 will be destroyed # (because forgejo_team_member.terrier_mdn2 is not in configuration) - resource "forgejo_team_member" "terrier_mdn2" { - team_id = 10 -> null - user = "mdn2" -> null } # forgejo_team_member.terrier_sbwang will be destroyed # (because forgejo_team_member.terrier_sbwang is not in configuration) - resource "forgejo_team_member" "terrier_sbwang" { - team_id = 10 -> null - user = "sbwang" -> null } # forgejo_team_member.terrier_skancher will be created + resource "forgejo_team_member" "terrier_skancher" { + team_id = 10 + user = "skancher" } # forgejo_team_member.terrier_sophiaw4 will be destroyed # (because forgejo_team_member.terrier_sophiaw4 is not in configuration) - resource "forgejo_team_member" "terrier_sophiaw4" { - team_id = 10 -> null - user = "sophiaw4" -> null } # forgejo_team_member.terrier_vpardesh will be destroyed # (because forgejo_team_member.terrier_vpardesh is not in configuration) - resource "forgejo_team_member" "terrier_vpardesh" { - team_id = 10 -> null - user = "vpardesh" -> null } Plan: 1 to add, 0 to change, 7 to destroy. ``` </details> * :arrow_forward: To **apply** this plan, comment: ```shell atlantis apply -p git ``` * :put_litter_in_its_place: To **delete** this plan and lock, click [here](https://atlantis.scottylabs.org/lock?id=ScottyLabs%252Fgovernance%252Ftofu%252Fgit%252Fdefault%252Fgit) * :repeat: To **plan** this project again, comment: ```shell atlantis plan -p git ``` Plan: 1 to add, 0 to change, 7 to destroy. --- ### 6. project: `discord` dir: `tofu/discord` workspace: `default` <details><summary>Show Output</summary> ```diff Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Finished `release` profile [optimized] target(s) in 0.22s OpenTofu used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create - destroy OpenTofu will perform the following actions: # discord_member_roles.abeni_hyz will be destroyed # (because discord_member_roles.abeni_hyz is not in configuration) - resource "discord_member_roles" "abeni_hyz" { - id = "1353118209024331948:1401759878023745606" -> null - server_id = "1353118209024331948" -> null - user_id = "1401759878023745606" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } # discord_member_roles.hannahg_143 will be destroyed # (because discord_member_roles.hannahg_143 is not in configuration) - resource "discord_member_roles" "hannahg_143" { - id = "1353118209024331948:694255787207557150" -> null - server_id = "1353118209024331948" -> null - user_id = "694255787207557150" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } # discord_member_roles.ipae will be destroyed # (because discord_member_roles.ipae is not in configuration) - resource "discord_member_roles" "ipae" { - id = "1353118209024331948:1107986330056671242" -> null - server_id = "1353118209024331948" -> null - user_id = "1107986330056671242" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } # discord_member_roles.mdn2 will be destroyed # (because discord_member_roles.mdn2 is not in configuration) - resource "discord_member_roles" "mdn2" { - id = "1353118209024331948:408177745059774464" -> null - server_id = "1353118209024331948" -> null - user_id = "408177745059774464" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } # discord_member_roles.sbwang will be destroyed # (because discord_member_roles.sbwang is not in configuration) - resource "discord_member_roles" "sbwang" { - id = "1353118209024331948:756122216218755202" -> null - server_id = "1353118209024331948" -> null - user_id = "756122216218755202" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } # discord_member_roles.skancher will be created + resource "discord_member_roles" "skancher" { + id = (known after apply) + server_id = "1353118209024331948" + user_id = "557250514254036992" + role { + has_role = true + role_id = "1488787088118644848" } + role { + has_role = true + role_id = "1517227361790201857" } } # discord_member_roles.sophiaw4 will be destroyed # (because discord_member_roles.sophiaw4 is not in configuration) - resource "discord_member_roles" "sophiaw4" { - id = "1353118209024331948:1419801173879291975" -> null - server_id = "1353118209024331948" -> null - user_id = "1419801173879291975" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } # discord_member_roles.vpardesh will be destroyed # (because discord_member_roles.vpardesh is not in configuration) - resource "discord_member_roles" "vpardesh" { - id = "1353118209024331948:754857853961109676" -> null - server_id = "1353118209024331948" -> null - user_id = "754857853961109676" -> null - role { - has_role = true -> null - role_id = "1488787088118644848" -> null } - role { - has_role = true -> null - role_id = "1517227361790201857" -> null } } Plan: 1 to add, 0 to change, 7 to destroy. ``` </details> * :arrow_forward: To **apply** this plan, comment: ```shell atlantis apply -p discord ``` * :put_litter_in_its_place: To **delete** this plan and lock, click [here](https://atlantis.scottylabs.org/lock?id=ScottyLabs%252Fgovernance%252Ftofu%252Fdiscord%252Fdefault%252Fdiscord) * :repeat: To **plan** this project again, comment: ```shell atlantis plan -p discord ``` Plan: 1 to add, 0 to change, 7 to destroy. --- ### Plan Summary 6 projects, 6 with changes, 0 with no changes, 0 failed * :fast_forward: To **apply** all unapplied plans from this Pull Request, comment: ```shell atlantis apply ``` * :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment: ```shell atlantis unlock ```
Member

atlantis unlock

atlantis unlock

All Atlantis locks for this PR have been unlocked and plans discarded

All Atlantis locks for this PR have been unlocked and plans discarded
Member

atlantis unlock

atlantis unlock

All Atlantis locks for this PR have been unlocked and plans discarded

All Atlantis locks for this PR have been unlocked and plans discarded
kritdass closed this pull request 2026-10-03 18:28:59 +00:00
All checks were successful
kennel/build skipped: no services or static sites defined
atlantis/plan: slack Plan: 2 to add, 0 to change, 14 to destroy.
atlantis/plan: google_play Plan: 2 to add, 0 to change, 14 to destroy.
atlantis/plan: keycloak Plan: 0 to add, 2 to change, 0 to destroy.
atlantis/plan: google_groups Plan: 1 to add, 0 to change, 7 to destroy.
atlantis/plan: git Plan: 1 to add, 0 to change, 7 to destroy.
atlantis/plan: discord Plan: 1 to add, 0 to change, 7 to destroy.
atlantis/plan 6/6 projects planned successfully.
atlantis/pre_workflow_hook: Install local-only OpenTofu providers succeeded.

Pull request closed

Sign in to join this conversation.
No description provided.