Skip to content

feat(github): add OP_TF_O11Y org secret for yucca-o11y CI#1842

Open
onedr0p wants to merge 3 commits into
mainfrom
feat/o11y-tf-ci-secret
Open

feat(github): add OP_TF_O11Y org secret for yucca-o11y CI#1842
onedr0p wants to merge 3 commits into
mainfrom
feat/o11y-tf-ci-secret

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

yucca-o11y is wiring up a Terraform plan workflow (yucca-o11y#125, closes #53 there). Its jobs resolve deployment/.env 1Password references via the op CLI using a service-account token - the same pattern yucca's infra.yml uses, and the only option that avoids the Connect/NetBird chicken-and-egg (Connect lives on the mesh; joining the mesh needs secrets from op).

This adds the org secret OP_TF_O11Y the same way the existing infra secrets are managed here: sourced from 1Password, created as a github_actions_organization_secret. Scoped visibility = "selected" to immich-app/yucca-o11y only (the TIGRIS entries are the precedent) rather than all, since it's a credential that can read the o11y_tf* / shared_tf Terraform vaults - no reason to expose it to every org repo's Actions.

Prerequisites before apply (1P-admin, out of band) - please confirm/adjust:

  • Create the service account with read on o11y_tf, o11y_tf_staging, o11y_tf_prod, shared_tf.
  • Store its token as a tf-vault item. I assumed the item title OP_TF_O11Y in the tf vault (data.onepassword_vault.tf) to match this module's convention - correct the data.onepassword_item title/vault if it lands elsewhere.

Read-only, so no _WRITE companion (o11y's Terraform never writes back to 1Password). After apply, yucca-o11y inherits the secret and its workflow can be enabled.

Read-only 1Password service-account token for yucca-o11y's terraform plan
workflow, sourced from the tf vault. Scoped to that repo (visibility
selected) since it can read the o11y_tf* and shared_tf vaults.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p requested a review from a team as a code owner July 22, 2026 11:10
@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

Terraform Plan

Shared

1password/account — No changes
1password/futo-account — No changes
bunny/futo-account — No changes
cloudflare/account — No changes
cloudflare/api-keys — No changes
cloudflare/futo-account — No changes
cloudflare/futo-api-keys — No changes
docker/org — No changes
⚠️ github/org — Plan: 0 to add, 4 to change, 0 to destroy.
OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place (current -> planned)
  # github_repository_collaborators.repo_collaborators["immich"] will be updated in-place
  ~ resource "github_repository_collaborators" "repo_collaborators" {
        id             = "455229168"
      ~ invitation_ids = {
          - "koen-futo"  = "286515056"
          - "martabal"   = "284848949"
          - "martyfuhry" = "284848968"
          - "matthinc"   = "284848954"
          - "sudoicezen" = "284848972"
        } -> (known after apply)
        # (2 unchanged attributes hidden)
      - user {
          - permission = "admin" -> null
          - username   = "alextran1502" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "bo0tzz" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "jrasm91" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "zackpollard" -> null
        }
      + user {
          + permission = "maintain"
          + username   = "alextran1502"
        }
      + user {
          + permission = "maintain"
          + username   = "bo0tzz"
        }
      + user {
          + permission = "maintain"
          + username   = "jrasm91"
        }
      + user {
          + permission = "maintain"
          + username   = "zackpollard"
        }
        # (59 unchanged blocks hidden)
    }
  # github_repository_collaborators.repo_collaborators["static-pages"] will be updated in-place
  ~ resource "github_repository_collaborators" "repo_collaborators" {
        id             = "822727374"
      ~ invitation_ids = {
          - "PixelJonas" = "284848947"
          - "fyfrey"     = "284848959"
          - "kennyfuto"  = "288622006"
          - "koen-futo"  = "286515046"
          - "martabal"   = "284848951"
          - "martyfuhry" = "284848969"
          - "matthinc"   = "284848955"
          - "orhan98"    = "315880176"
          - "sudoicezen" = "284848974"
        } -> (known after apply)
        # (2 unchanged attributes hidden)
      - user {
          - permission = "admin" -> null
          - username   = "alextran1502" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "bo0tzz" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "jrasm91" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "zackpollard" -> null
        }
      + user {
          + permission = "maintain"
          + username   = "alextran1502"
        }
      + user {
          + permission = "maintain"
          + username   = "bo0tzz"
        }
      + user {
          + permission = "maintain"
          + username   = "jrasm91"
        }
      + user {
          + permission = "maintain"
          + username   = "zackpollard"
        }
        # (58 unchanged blocks hidden)
    }
  # github_repository_collaborators.repo_collaborators["test-assets"] will be updated in-place
  ~ resource "github_repository_collaborators" "repo_collaborators" {
        id             = "697157116"
      ~ invitation_ids = {
          - "PixelJonas" = "284848946"
          - "fyfrey"     = "284848960"
          - "kennyfuto"  = "288622000"
          - "koen-futo"  = "286515048"
          - "martabal"   = "284848952"
          - "martyfuhry" = "284848970"
          - "matthinc"   = "284848956"
          - "orhan98"    = "315880175"
          - "staticdog"  = "320859393"
          - "sudoicezen" = "284848973"
        } -> (known after apply)
        # (2 unchanged attributes hidden)
      - user {
          - permission = "admin" -> null
          - username   = "alextran1502" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "bo0tzz" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "jrasm91" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "zackpollard" -> null
        }
      + user {
          + permission = "maintain"
          + username   = "alextran1502"
        }
      + user {
          + permission = "maintain"
          + username   = "bo0tzz"
        }
      + user {
          + permission = "maintain"
          + username   = "jrasm91"
        }
      + user {
          + permission = "maintain"
          + username   = "zackpollard"
        }
        # (58 unchanged blocks hidden)
    }
  # github_repository_collaborators.repo_collaborators["walkrs"] will be updated in-place
  ~ resource "github_repository_collaborators" "repo_collaborators" {
        id             = "1156754889"
      ~ invitation_ids = {
          - "C-Otto"          = "307331486"
          - "PixelJonas"      = "307331438"
          - "adamantike"      = "307331464"
          - "dahool"          = "307331471"
          - "ddshd"           = "307331444"
          - "fyfrey"          = "307331463"
          - "github-cli"      = "307331445"
          - "jbaez"           = "307331428"
          - "kennyfuto"       = "307331447"
          - "koen-futo"       = "307331458"
          - "martabal"        = "307331390"
          - "martyfuhry"      = "307331483"
          - "matthinc"        = "307331420"
          - "michelheusschen" = "307331480"
          - "midzelis"        = "309034718"
          - "orhan98"         = "315880173"
          - "samholton"       = "307331386"
          - "schuhbacca"      = "307331432"
          - "skatsubo"        = "307331414"
          - "staticdog"       = "320859390"
        } -> (known after apply)
        # (2 unchanged attributes hidden)
      - user {
          - permission = "admin" -> null
          - username   = "alextran1502" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "bo0tzz" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "jrasm91" -> null
        }
      - user {
          - permission = "admin" -> null
          - username   = "zackpollard" -> null
        }
      + user {
          + permission = "maintain"
          + username   = "alextran1502"
        }
      + user {
          + permission = "maintain"
          + username   = "bo0tzz"
        }
      + user {
          + permission = "maintain"
          + username   = "jrasm91"
        }
      + user {
          + permission = "maintain"
          + username   = "zackpollard"
        }
        # (58 unchanged blocks hidden)
    }
Plan: 0 to add, 4 to change, 0 to destroy.
╷
│ Warning: Argument is deprecated
│ 
│   with github_repository.repositories["demo"],
│   on repositories.tf line 173, in resource "github_repository" "repositories":173:   vulnerability_alerts      = !each.value.archived
│ 
│ Use the github_repository_vulnerability_alerts resource instead. This field
│ will be removed in a future version.
│ 
│ (and 24 more similar warnings elsewhere)
╵
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so OpenTofu can't
guarantee to take exactly these actions if you run "tofu apply" now.
github/secrets — Error
│ Error: Client Error
│ 
│   with data.onepassword_vault.o11y_tf["staging"],
│   on secrets.tf line 460, in data "onepassword_vault" "o11y_tf":
│  460: data "onepassword_vault" "o11y_tf" {
│ 
--
│ Error: Client Error
│ 
│   with data.onepassword_vault.o11y_tf["dev"],
│   on secrets.tf line 460, in data "onepassword_vault" "o11y_tf":
│  460: data "onepassword_vault" "o11y_tf" {
│ 
--
│ Error: Client Error
│ 
│   with data.onepassword_vault.o11y_tf["prod"],
│   on secrets.tf line 460, in data "onepassword_vault" "o11y_tf":
│  460: data "onepassword_vault" "o11y_tf" {
│ 
github/webhooks — No changes
netbird/account — No changes
zitadel/cloud — No changes
zitadel/self-hosted — No changes

Scoped (dev)

⚠️ No modules detected in plan output — the output format may have changed.

Scoped (prod)

⚠️ No modules detected in plan output — the output format may have changed.

Scoped (staging — zitadel customer)

⚠️ No modules detected in plan output — the output format may have changed.

@onedr0p
onedr0p marked this pull request as draft July 22, 2026 11:16
@onedr0p onedr0p changed the title feat(github): add OP_TF_O11Y_ENV org secret for yucca-o11y CI feat(github): add OP_TF_O11Y org secret for yucca-o11y CI Jul 22, 2026
@onedr0p
onedr0p marked this pull request as ready for review July 22, 2026 11:25
@zackpollard

Copy link
Copy Markdown
Member
image

Signed-off-by: Devin Buhl <devin@buhl.casa>
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.

2 participants