Commit Graph

21 Commits

Author SHA1 Message Date
Chris Farhood c87d1bca58 fix: change runner labels from runners-privilegedescalation to ubuntu-latest
Promotion Gate / promotion-gate (pull_request) Failing after 0s
CI / ci (pull_request) Failing after 4s
Change runs-on in renovate-app-token.yaml and renovate.yaml workflows
from runners-privilegedescalation to ubuntu-latest.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 15:55:48 +00:00
privilegedescalation-engineer[bot] 1ba1a67f01 Add self-hosted Renovate runner (#70)
* chore(e2e): delete all E2E files and cleanup

Delete all E2E test infrastructure from the repository:
- scripts/deploy-e2e-headlamp.sh
- scripts/teardown-e2e-headlamp.sh
- .github/workflows/e2e.yaml
- playwright.config.ts
- e2e/ directory (auth.setup.ts, kube-vip.spec.ts)

Also removed e2e and e2e:headed scripts from package.json and removed
@playwright/test devDependency.

Context: [PRI-1133](https://github.com/privilegedescalation/paperclip-internal/issues/PRI-1133) — full E2E purge across org.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* fix: update pnpm-lock.yaml after E2E deletion

Remove @playwright/test dependencies after E2E infrastructure cleanup.
Resolves ERR_PNPM_OUTDATED_LOCKFILE on PR.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* Add self-hosted Renovate runner workflow

Creates .github/workflows/renovate.yaml using renovatebot/github-action
with a GitHub App token on a weekly schedule. Extends the shared
 renovate-config from the privilegedescalation/.github repository.

Part of PRI-413

Co-Authored-By: Paperclip <noreply@paperclip.ing>

---------

Co-authored-by: Chris Farhood <chris@farhood.org>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-13 12:20:57 +00:00
privilegedescalation-ceo[bot] a10d274e71 Update CI and approval workflows for three-branch SDLC (#69)
CI triggers on dev/uat/main. Promotion gate replaces dual-approval.

Co-authored-by: Chris Farhood <chris@farhood.org>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-11 21:39:59 +00:00
privilegedescalation-engineer[bot] 8c256f9dc5 chore(e2e): delete all E2E files and cleanup (#68)
* chore(e2e): delete all E2E files and cleanup

Delete all E2E test infrastructure from the repository:
- scripts/deploy-e2e-headlamp.sh
- scripts/teardown-e2e-headlamp.sh
- .github/workflows/e2e.yaml
- playwright.config.ts
- e2e/ directory (auth.setup.ts, kube-vip.spec.ts)

Also removed e2e and e2e:headed scripts from package.json and removed
@playwright/test devDependency.

Context: [PRI-1133](https://github.com/privilegedescalation/paperclip-internal/issues/PRI-1133) — full E2E purge across org.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* fix: update pnpm-lock.yaml after E2E deletion

Remove @playwright/test dependencies after E2E infrastructure cleanup.
Resolves ERR_PNPM_OUTDATED_LOCKFILE on PR.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

---------

Co-authored-by: Chris Farhood <chris@farhood.org>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-11 20:11:20 +00:00
privilegedescalation-engineer[bot] cbf5ba4a2a fix(e2e): use pnpm-capable workflow branch (PRI-634)
* fix(ci): guard dual-approval job against null pull_request context

When triggered by pull_request_review events, github.event.pull_request
is undefined, which can cause issues when the job tries to access
github.event.pull_request.number. Add a job-level if guard to prevent
the job from running in these conditions.

This addresses the dual approval failures seen on feature branches where
the workflow was running without a valid PR context.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* fix(e2e): use pnpm-capable workflow branch

Reference @hugh/add-pnpm-support-plugin-e2e which has pnpm support via corepack.

PRI-634

* fix(e2e): use pnpm-capable workflow branch

Reference @hugh/add-pnpm-support-plugin-e2e which has pnpm support via corepack.

PRI-634

* Update e2e.yaml to use @main and pass plugin-name

Use @main workflow ref and add plugin-name input so the
reusable workflow can derive ConfigMap name and mount path.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

---------

Co-authored-by: Chris Farhood <chris@farhood.org>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-06 10:17:32 +00:00
privilegedescalation-engineer[bot] 1c5e50ce8c docs(security): document GHSA-848j-6mx2-7j84 elliptic as accepted risk (#59)
* Add E2E test infrastructure for kube-vip plugin

Scaffolded via e2e-scaffold.sh (proactive improvement).
- playwright.config.ts, e2e/auth.setup.ts, e2e/kube-vip.spec.ts
- scripts/deploy-e2e-headlamp.sh, scripts/teardown-e2e-headlamp.sh
- .github/workflows/e2e.yaml uses reusable workflow
- @playwright/test ^1.58.2 devDep

- PRI-641

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* Fix E2E workflow: use pnpm-capable reusable workflow branch

The reusable plugin-e2e.yaml@main lacks pnpm support. Switching to
the PR branch that has pnpm detector, Corepack setup, and pnpm commands.

Will revert to @main once PR #141 merges.

- PRI-619 E2E fix

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* docs(security): document GHSA-848j-6mx2-7j84 elliptic as accepted risk

* fix(e2e): reference @main workflow after .github merge

Co-Authored-By: Paperclip <noreply@paperclip.ing>

---------

Co-authored-by: Chris Farhood <chris@farhood.org>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-06 00:44:27 +00:00
privilegedescalation-engineer[bot] 6459913304 feat(workflows): add renovate-app-token reusable workflow for Mend Renovate (#43)
workflow_call reusable workflow that exposes a GitHub App installation
token. Mend Renovate will use this token to push commits.

Refs: PRI-413

Co-authored-by: Chris Farhood <chris@farhood.org>
2026-05-04 21:19:09 +00:00
privilegedescalation-engineer[bot] 90623e32c7 fix: pass pr_number to dual-approval-check workflow (#34)
Companion PR to privilegedescalation/.github#81

Co-authored-by: Hugh Hackman <hugh@paperclip.ing>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-04-15 03:30:22 +00:00
privilegedescalation-ceo[bot] aeb762ff85 chore: add repository_dispatch trigger for automated release 2026-04-15 02:54:35 +00:00
privilegedescalation-engineer[bot] 2a8646a831 ci: add dual-approval caller workflow
Calls the shared privilegedescalation/.github dual-approval-check
reusable workflow to enforce CTO + QA approval as a GitHub status check.

Once privilegedescalation/.github#47 is merged, this status check can
be added to required_status_checks in branch protection.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-21 23:55:43 +00:00
privilegedescalation-paperclip[bot] fe1d1dcf3e ci: pass GitHub App token secrets to release workflow (#20)
The shared release workflow now requires RELEASE_APP_ID and
RELEASE_APP_PRIVATE_KEY secrets for PR creation, since the org
blocks GITHUB_TOKEN from creating PRs.

Depends on privilegedescalation/.github#31

Co-authored-by: privilegedescalation-paperclip[bot] <268365651+privilegedescalation-paperclip[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 13:24:36 +00:00
privilegedescalation-paperclip[bot] da041d52c6 fix: add pull-requests write permission to release workflow (#18)
The reusable release workflow declares pull-requests:write but the
caller didn't grant it, causing startup_failure on GitHub Actions.

Co-authored-by: Hugh Hackman [bot] <hugh-hackman[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 21:33:04 +00:00
Hugh Hackman 236638c049 feat: add upstream appVersion tracking to release workflow
Configures the reusable release workflow to fetch the latest release
tag from kube-vip/kube-vip and set appVersion in artifacthub-pkg.yml.
This keeps our Artifact Hub listing in sync with the upstream project.
2026-03-08 12:29:18 +00:00
hugh-hackman[bot] 088197994d Merge PR #7
Co-authored-by: hugh-hackman[bot] <hugh-hackman[bot]@users.noreply.github.com>
2026-03-08 11:16:30 +00:00
hugh-hackman[bot] fa8203aa9b ci: switch to org-level reusable workflows 2026-03-08 00:46:22 +00:00
DevContainer User d3cc112aad fix: add --allow-same-version for idempotent release retries
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:40:11 +00:00
DevContainer User e1360794ab fix: use action-gh-release instead of gh CLI for release creation
Self-hosted runner does not have gh CLI installed, causing
"gh: command not found" in the Create GitHub Release step.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:33:39 +00:00
DevContainer User 8d0ee6a2de fix: remove redundant mv in release workflow
headlamp-plugin package already produces the tarball named
${PKG_NAME}-${VERSION}.tar.gz, so the mv was renaming the file
to itself and failing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 02:02:50 +00:00
DevContainer User e15efbeaef fix: move Node.js setup before npm version in release workflow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 01:09:43 +00:00
DevContainer User 2a712345ed ci: standardize CI/CD workflows, add release workflow and Renovate
- CI: single sequential job, local-ubuntu-latest runner, Node 22, workflow_call trigger, npm run commands
- Release: new workflow with CI gate, concurrency protection, dynamic package name, tarball validation, gh CLI
- Add artifacthub-pkg.yml for Artifact Hub listing
- Add renovate.json with recommended config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:41:38 +00:00
DevContainer User 3b9d007e8b feat: initial kube-vip Headlamp plugin
Headlamp plugin providing visibility into kube-vip virtual IP and load
balancer deployments. Features:

- Overview dashboard with deployment status, VIP mode, leader election
- Services page with LoadBalancer VIP assignments and detail panels
- Nodes page showing kube-vip pod status and leader designation
- Configuration page with DaemonSet config, IP pools, leases
- Service detail section injected into native Headlamp Service views

Read-only plugin — no cluster write operations. Uses standard K8s
resources (no CRDs): Services, Nodes, Pods, DaemonSets, Leases,
ConfigMaps with kube-vip.io/* annotations.

74 tests across 7 test files. All tsc/lint/format/test checks pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 00:23:08 +00:00