Skip to content

chore: switch to upstream peribolos with enterprise team support#7

Merged
jflowers merged 3 commits into
mainfrom
chore/use-upstream-peribolos
Jun 26, 2026
Merged

chore: switch to upstream peribolos with enterprise team support#7
jflowers merged 3 commits into
mainfrom
chore/use-upstream-peribolos

Conversation

@jflowers

Copy link
Copy Markdown
Contributor

Switches from the uwu-tools/peribolos container image to building peribolos from the upstream kubernetes-sigs/prow source. This gives access to --ignore-enterprise-teams and --ignore-secret-teams flags, which cleanly handle enterprise-managed teams without needing to list them in the config.

Changes

Workflow (.github/workflows/peribolos-sync.yml):

  • Build peribolos from kubernetes-sigs/prow source instead of using the ghcr.io/uwu-tools/peribolos container
  • Add --ignore-enterprise-teams and --ignore-secret-teams flags
  • Restore --maximum-removal-delta back to 0.25
  • Add daily schedule (05:30 UTC) and manual dry-run support
  • Add concurrency control and timeout
  • Update actions to latest versions (checkout v7, create-github-app-token v3)
  • Improve token handling security (temp file with restricted permissions)

Config (org/config.yaml):

  • Remove ent:enterprise-security-managers team (now ignored by peribolos)
  • Remove 8 enterprise-managed members (no longer needed to prevent removal delta errors)

New file (go.mod):

  • Minimal go.mod for setup-go action to determine Go version

Modeled after the complytime/.github workflow.

- Build peribolos from kubernetes-sigs/prow source instead of uwu-tools container
- Add --ignore-enterprise-teams and --ignore-secret-teams flags
- Remove enterprise-managed members and team from config (no longer needed)
- Add go.mod for setup-go action
- Add daily schedule, dry-run support, concurrency control
- Restore --maximum-removal-delta to 0.25
- Update actions to latest versions
- name: Checkout peribolos source
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
repository: kubernetes-sigs/prow

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should pin the hashref here to stay in line with the rest of the pulled material.

with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
owner: unbound-force

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should shorten the default TTL for the token to the minimum viable lifetime.

The 10 minute minimum should be enough.

expires-in: 600

This is because there's a possibility that the error handling passthrough commands could log the raw token.


jobs:
detect-drift:
runs-on: ubuntu-latest

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should bind this to the current repo so that forks don't attempt to run the job.

if: github.repository == 'unbound-force/.github'

…ork guards

- Pin kubernetes-sigs/prow checkout to commit hash (supply-chain safety)
- Add expires-in: 600 to GitHub App tokens (least-privilege TTL)
- Add repository guard to prevent fork execution on scheduled runs
@jflowers jflowers merged commit dd23854 into main Jun 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants