Commit Graph

57 Commits

Author SHA1 Message Date
privilegedescalation-ceo[bot] 15320dbcba Merge pull request #33 from privilegedescalation/fix/restore-openapi-types-lockfile
fix: restore openapi-types@12.1.3 to package-lock.json
2026-03-24 23:38:22 +00:00
Gandalf the Greybeard 82ad1faa33 fix: restore openapi-types@12.1.3 to package-lock.json
PR #29 accidentally dropped the openapi-types peer dependency entry
from the lock file. This restores it by re-running npm install, which
resolves the CI failure: "Missing: openapi-types@12.1.3 from lock file".

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-24 23:33:42 +00:00
privilegedescalation-ceo[bot] 547f743016 Merge pull request #29 from privilegedescalation/fix/package-lock-playwright
fix: regenerate package-lock.json with Playwright dependencies
2026-03-24 23:29:39 +00:00
Gandalf the Greybeard aceb06f2e5 fix: regenerate package-lock.json with Playwright dependencies
Adds @playwright/test ^1.58.2 to the lockfile, which was missing after
PR #25 (Playwright E2E smoke tests) was merged. This unblocks CI on main.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-24 23:21:12 +00:00
privilegedescalation-ceo[bot] fcb72d344c Merge pull request #26 from privilegedescalation/ci/e2e-workflow
ci: add E2E workflow for Playwright smoke tests
2026-03-24 23:19:55 +00:00
privilegedescalation-ceo[bot] 673949f361 Merge pull request #25 from privilegedescalation/feat/playwright-e2e-smoke-tests
feat: add Playwright E2E smoke tests
2026-03-24 23:13:26 +00:00
Gandalf the Greybeard eed5724d5f fix: remove production Headlamp URL fallback in playwright.config.ts
Fail fast with a clear error if HEADLAMP_URL is not set, rather than
defaulting to the production Headlamp instance.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-24 23:08:31 +00:00
Hugh Hackman 0c7e096231 ci: add E2E workflow for Playwright smoke tests
Adds `.github/workflows/e2e.yaml` to run Playwright E2E smoke tests
against a deployed Headlamp instance in `privilegedescalation-dev`.

Follows the headlamp-polaris-plugin pattern:
- Builds the plugin, deploys via scripts/deploy-e2e-headlamp.sh
- Runs tests with `npm run e2e` (intel-gpu uses npm, not pnpm)
- Uploads Playwright report and test results on failure
- Cleans up via scripts/teardown-e2e-headlamp.sh (if: always())
- Concurrency group prevents concurrent runs sharing E2E resources
- Uses runs-on: runners-privilegedescalation (self-hosted ARC)

Depends on Gandalf's E2E test implementation in PR #25.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-24 23:05:32 +00:00
Gandalf the Greybeard 796ec48ad1 feat: add Playwright E2E smoke tests
Adds Playwright E2E smoke tests following the headlamp-polaris-plugin
pattern. Tests target a dedicated Headlamp instance in the
privilegedescalation-dev namespace.

- playwright.config.ts: Playwright configuration with auth state
- e2e/auth.setup.ts: OIDC (Authentik) and token-based auth setup
- e2e/intel-gpu.spec.ts: 5 smoke tests covering sidebar, overview,
  device-plugins page, settings, and inter-view navigation
- scripts/deploy-e2e-headlamp.sh: deploys stock Headlamp with plugin
  injected via ConfigMap into privilegedescalation-dev
- scripts/teardown-e2e-headlamp.sh: tears down all E2E resources
- package.json: adds @playwright/test dev dep, e2e/e2e:headed scripts
- .gitignore: excludes auth state, .env.e2e, playwright-report/

Closes #24

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-24 22:59:55 +00:00
privilegedescalation-ceo[bot] fc592e9e38 Merge pull request #23 from privilegedescalation/feat/renovate-extend-org-config
feat: extend Renovate config from org-level preset
2026-03-24 18:46:07 +00:00
Hugh Hackman 6057c81402 feat: extend Renovate config from org-level preset
Replaces the duplicated Renovate config with a simple extend from the
org-level preset (privilegedescalation/.github:renovate-config). All
rules (schedule, pinDigests, npm/github-actions minor+patch+major groups)
are now inherited from the org config, which was updated in PR #66 to add
major-version update rules for GitHub Actions.

This eliminates config drift between repos and reduces maintenance toil —
future rule changes only need to be made in one place.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-24 16:16:24 +00:00
privilegedescalation-ceo[bot] f547348ef7 Merge pull request #22 from privilegedescalation/chore/renovate-pin-digests
chore(renovate): add pinDigests for GitHub Actions SHA pinning
2026-03-22 11:10:55 +00:00
privilegedescalation-engineer[bot] cd55d1bbba chore(renovate): add pinDigests to ensure SHA pinning for GitHub Actions
The org renovate-config.json (PR #63) adds pinDigests: true at the org level,
but this repo extends config:recommended directly. Adding pinDigests: true here
ensures GitHub Actions are pinned to full commit SHAs regardless of whether the
org config is extended.

Related: privilegedescalation/.github#63, PRI-757
2026-03-22 07:16:12 +00:00
privilegedescalation-ceo[bot] 4cace284a4 Merge pull request #20 from privilegedescalation/feat/dual-approval-status-check
ci: add dual-approval status check (CTO + QA)
2026-03-22 04:12:27 +00:00
privilegedescalation-engineer[bot] 46821c747c release: v1.0.0 (#21)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-21 23:59:53 +00:00
privilegedescalation-engineer[bot] e3c17c9380 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:46 +00:00
privilegedescalation-ceo[bot] fbd8e27a56 docs: ArtifactHub screenshots + appVersion verification (#19)
docs: ArtifactHub screenshots + appVersion verification
2026-03-21 14:21:21 +00:00
Hugh Hackman e0ebd38653 docs: add ArtifactHub screenshots and verify appVersion
Add 3 SVG mockup screenshots (Overview, GPU Nodes, Metrics) to
docs/screenshots/ and wire them into the artifacthub-pkg.yml
screenshots section. Resolves the last metadata polish item for
v1.0.

appVersion 0.35.0 verified current — Intel Device Plugins latest
release is v0.35.0 (2026-02-16), no update needed.

Closes #16 (screenshots item)
2026-03-21 14:15:53 +00:00
privilegedescalation-engineer[bot] 6d889494c4 docs: add install section to ArtifactHub metadata (#18)
Adds Headlamp Plugin Catalog installation instructions and a usage
summary to ArtifactHub metadata. Confirms appVersion 0.35.0 is current
(matches latest intel-device-plugins-for-kubernetes v0.35.0 release).

Partial close of #16 (v1.0 readiness checklist) — screenshots remain
blocked pending actual plugin deployment for capture.

Co-authored-by: Gandalf the Greybeard <gandalf@privilegedescalation.ai>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 12:54:07 +00:00
privilegedescalation-engineer[bot] 6cd159b5a4 test: add component test coverage for all untested files (#17)
* test: add component test coverage for all untested files

Adds 60 new tests (108 total) covering every untested module:
- IntelGpuDataContext: provider renders, loading/loaded states, CRD
  available/unavailable paths, refresh, useIntelGpuContext throws outside
  provider
- OverviewPage: loading, plugin-not-detected, error, populated, refresh
  button, CRD notice, device plugin table, plugin daemon pods, active pods
- NodesPage: loading, empty state, GPU node summary table, detail cards
- PodsPage: loading, empty state, summary counts, pending pod attention,
  all-pods table
- DevicePluginsPage: loading, CRD unavailable, no-plugins, plugin detail,
  daemon pod table
- NodeDetailSection: null for non-GPU nodes, GPU capacity/allocatable rows,
  pod list, loading state
- PodDetailSection: null for non-GPU pods, GPU resource rows, phase status,
  limits-only containers
- MetricsPage: context loading gate, Prometheus unreachable, empty chips,
  chip cards with power values, MetricRequirements always rendered, refresh

Also fixes vitest.config.mts to pin NODE_ENV=test so tests run correctly
without requiring callers to set it explicitly.

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

* fix: remove unused act import and merge duplicate metrics imports in MetricsPage.test.tsx

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

* fix: cast useList mock return values to any in IntelGpuDataContext.test.tsx

The Headlamp useList() return type is an intersection of a tuple and
QueryListResponse, which plain array literals like [[], null] and
[null, null] do not satisfy. Cast all useList mockReturnValue arguments
to any so tsc passes without requiring full KubeObject stub objects.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* style: run Prettier formatting and ESLint lint:fix on test files

Addresses CI format:check failures and import-sort warning in
MetricsPage.test.tsx flagged by QA on PR #17.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Hugh Hackman <hugh@privilegedescalation.com>
Co-authored-by: Paperclip <noreply@paperclip.ing>
Co-authored-by: Gandalf the Greybeard <gandalf@privilegedescalation.com>
Co-authored-by: Gandalf the Greybeard <gandalf@privilegedescalation.dev>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Gandalf the Greybeard <gandalf-the-greybeard[bot]@users.noreply.github.com>
2026-03-21 12:53:04 +00:00
privilegedescalation-paperclip[bot] 8ec38cb247 ci: pass GitHub App token secrets to release workflow (#15)
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:42 +00:00
privilegedescalation-paperclip[bot] e77f075521 Merge pull request #14 from privilegedescalation/release/v0.4.3
release: v0.4.3
2026-03-19 21:50:56 +00:00
github-actions[bot] 60d76f1cb2 release: v0.4.3 v0.4.3 2026-03-19 21:39:48 +00:00
privilegedescalation-paperclip[bot] 0d72d07048 fix: add pull-requests write permission to release workflow (#13)
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:16 +00:00
gandalf-the-greybeard[bot] daad91880c fix: add missing devDependencies for CI (#12)
The package.json only listed @kinvolk/headlamp-plugin as a devDependency,
but CI runs tsc, eslint, prettier, and vitest which all require additional
packages. Add the same devDependencies used by the reference kube-vip plugin
and regenerate the lock file.

Also adds peerDependencies for react/react-dom to match the reference plugin
conventions.

Co-authored-by: Gandalf the Greybeard <gandalf-the-greybeard[bot]@users.noreply.github.com>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-03-18 23:30:28 +00:00
null-pointer-nancy[bot] b9137958f0 Merge pull request #11 from privilegedescalation/fix/dep-security-overrides-tar-undici
fix: add npm overrides for tar and undici security advisories
2026-03-18 23:14:06 +00:00
Hugh Hackman 37a2232178 fix: regenerate package-lock.json for undici override
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 23:08:00 +00:00
Hugh Hackman 56eb0761dd fix: add npm overrides for tar and undici security advisories
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-18 22:55:50 +00:00
null-pointer-nancy[bot] 18c6a03c0c Merge pull request #9 from privilegedescalation/docs/remove-manual-install
docs: remove manual install sections from README
2026-03-17 12:19:29 +00:00
Gandalf the Greybeard cbd86f696d docs: remove manual install sections from README
ArtifactHub plugin installer is the only supported installation method.
Remove manual tarball, sidecar, and build-from-source install options
to align documentation with company policy.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-17 12:15:45 +00:00
null-pointer-nancy[bot] 510affbe1a ci: retrigger after shared workflow fix (#8)
CI retrigger after shared workflow fix (.github PR#14)
2026-03-15 17:54:40 +00:00
Chris Farhood fcb2e5f9fd Merge pull request #7 from privilegedescalation/policy/artifacthub-only
policy: add ArtifactHub-only installation requirement
2026-03-15 12:43:25 -04:00
null-pointer-nancy[bot] a34802b477 policy: add ArtifactHub-only installation policy
Per CEO directive, ArtifactHub via the Headlamp plugin installer is the
only approved installation method. No exceptions.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-15 16:36:41 +00:00
gandalf-the-greybeard[bot] e5e681b415 fix: rename plugin from headlamp-intel-gpu to intel-gpu (#6)
Aligns naming convention across all plugins. Renames package, sidebar entries, routes, and documentation references.
2026-03-10 23:49:08 +00:00
github-actions[bot] db896a8f88 release: v0.4.2 v0.4.2 2026-03-09 03:11:10 +00:00
DevContainer User a16df9baf7 fix: add archive checksum to ArtifactHub metadata
Empty checksum causes headlamp plugin manager to reject the plugin
with "Invalid plugin metadata".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 02:55:56 +00:00
Chris Farhood 865168285e Merge pull request #5 from privilegedescalation/feat/add-upstream-appversion-tracking
feat: auto-track upstream appVersion in releases
2026-03-08 11:41:43 -04:00
Chris Farhood 84af42147f Merge pull request #4 from privilegedescalation/rename-plugin-headlamp-intel-gpu
Rename plugin from intel-gpu to headlamp-intel-gpu
2026-03-08 11:41:10 -04:00
Hugh Hackman b0de53577a feat: add upstream appVersion tracking to release workflow
Configures the reusable release workflow to fetch the latest release
tag from intel/intel-device-plugins-for-kubernetes and set appVersion in artifacthub-pkg.yml.
This keeps our Artifact Hub listing in sync with the upstream project.
2026-03-08 12:29:16 +00:00
gandalf-the-greybeard[bot] 231cb41d06 Rename plugin from intel-gpu to headlamp-intel-gpu
Artifact Hub listing was renamed with new repository ID
3c97f78a-26e3-4e8a-89e7-29884602e3d7. Updates package name,
sidebar entries, routes, archive URL, and documentation.

Refs: PRI-26

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:14:20 +00:00
hugh-hackman[bot] 0e895c1b61 Merge PR #3
* ci: switch to org-level reusable workflows

* chore: retrigger CI after reusable workflows merged

* feat: add workflow_dispatch to CI workflow

---------

Co-authored-by: gandalf-the-greybeard[bot] <gandalf-the-greybeard[bot]@users.noreply.github.com>
Co-authored-by: hugh-hackman[bot] <266376744+hugh-hackman[bot]@users.noreply.github.com>
Co-authored-by: hugh-hackman[bot] <hugh-hackman[bot]@users.noreply.github.com>
2026-03-08 11:16:24 +00:00
gandalf-the-greybeard[bot] 89e9b510d2 Enhance Renovate configuration (#2)
- Target main branch explicitly
- Set weekly schedule (weekends)
- Limit concurrent PRs to 10
- Group minor/patch updates for npm and github-actions to reduce PR noise

Ref: PRI-16

Co-authored-by: gandalf-the-greybeard[bot] <gandalf-the-greybeard[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:01:24 +00:00
Chris Farhood 9d41af375e Merge pull request #1 from privilegedescalation/fix/repo-metadata
chore: add FUNDING.yml
2026-03-07 10:36:41 -05:00
Chris Farhood b0b768783a chore: add FUNDING.yml 2026-03-07 08:03:04 -05:00
DevContainer User c2cbbcc14d docs: add architecture decision records
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 13:50:00 +00:00
DevContainer User e17875a659 Add artifacthub-headlamp agent skill
Adds Claude Code agent skill for ArtifactHub metadata and publishing,
sourced from headlamp-agent-skills repository.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:32:14 +00:00
DevContainer User 1ae6e2d355 release: v0.4.1 — code quality fixes and doc updates
Remove unsafe `as any` casts, fix MetricsPage fetch cancellation safety,
delete dead AppBarGpuBadge component, fix typo in data context, move
extractJsonData to module scope, resolve ESLint/Prettier indent conflict,
fix artifacthub-pkg.yml version mismatch and inaccurate description.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.4.1
2026-03-04 13:05:58 +00:00
DevContainer User e451e3906e Add headlamp-plugin-developer agent skill
Adds Claude Code agent skill for Headlamp plugin development,
sourced from headlamp-agent-skills repository.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:26:50 +00:00
github-actions[bot] 01b60a23b8 release: v0.4.0 v0.4.0 2026-03-04 11:52:19 +00:00
DevContainer User 488bf90abc fix: resolve eslint errors and apply formatting to match shared config
Auto-fix import ordering, quote style, and indentation via eslint --fix
and prettier --write. Remove unused variable in NodesPage and PodsPage.

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