|
|
|
@@ -1,40 +1,20 @@
|
|
|
|
|
---
|
|
|
|
|
name: uat
|
|
|
|
|
description: >
|
|
|
|
|
Functional UAT procedures for Privileged Escalation Headlamp plugins. Delegates per-plugin testing procedures to UAT_PLAYBOOK.md in each plugin repository.
|
|
|
|
|
Functional UAT procedures for Privileged Escalation Headlamp plugins. General
|
|
|
|
|
behavior, acceptance criteria, artifact requirements, and reference to
|
|
|
|
|
plugin-specific test steps in UAT_PLAYBOOK.md.
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# UAT Procedures
|
|
|
|
|
|
|
|
|
|
## Purpose
|
|
|
|
|
|
|
|
|
|
This skill defines **functional User Acceptance Testing** for all Privileged Escalation Headlamp plugins. UAT validates that plugins work correctly in the deployed environment — by loading plugins in a running Headlamp instance and exercising their features.
|
|
|
|
|
This skill defines **functional User Acceptance Testing** for all Privileged Escalation Headlamp plugins. UAT validates that plugins work correctly in the deployed environment — by exercising plugin features in a running Headlamp instance, not by reviewing code or CI results.
|
|
|
|
|
|
|
|
|
|
## Pipeline Stage
|
|
|
|
|
## UAT Environment
|
|
|
|
|
|
|
|
|
|
UAT is the final promotion gate before production: `uat → main`. Pixel Patty (UAT agent) validates the deployed application via Playwright browser testing before merging.
|
|
|
|
|
|
|
|
|
|
## Per-Plugin Testing Procedures
|
|
|
|
|
|
|
|
|
|
Detailed, up-to-date testing procedures for each plugin are maintained in the plugin's own repository at `UAT_PLAYBOOK.md`. This is the authoritative source — do not copy procedure details into this skill.
|
|
|
|
|
|
|
|
|
|
| Plugin | Repository |
|
|
|
|
|
|--------|------------|
|
|
|
|
|
| headlamp-polaris-plugin | `polaris` |
|
|
|
|
|
| headlamp-sealed-secrets-plugin | `sealed-secrets` |
|
|
|
|
|
| headlamp-intel-gpu-plugin | `intel-gpu` |
|
|
|
|
|
| headlamp-kube-vip-plugin | `kube-vip` |
|
|
|
|
|
| headlamp-tns-csi-plugin | `tns-csi` |
|
|
|
|
|
| headlamp-rook-plugin | `rook` |
|
|
|
|
|
| headlamp-argocd-plugin | `argocd` |
|
|
|
|
|
|
|
|
|
|
Each plugin's `UAT_PLAYBOOK.md` contains:
|
|
|
|
|
|
|
|
|
|
- Access path (sidebar entry or app bar location)
|
|
|
|
|
- Step-by-step test actions
|
|
|
|
|
- Expected results for each step
|
|
|
|
|
- Pass/fail criteria
|
|
|
|
|
- Artifact requirements (screenshots, console errors, environment info)
|
|
|
|
|
The UAT Headlamp instance runs in the `headlamp-uat` Kubernetes namespace. Navigate to the Headlamp UAT URL using your Playwright browser. The plugin under test must be deployed to UAT before testing begins.
|
|
|
|
|
|
|
|
|
|
## General Process
|
|
|
|
|
|
|
|
|
@@ -42,23 +22,48 @@ For every `uat→main` promotion:
|
|
|
|
|
|
|
|
|
|
1. Open the Headlamp UAT instance in the browser
|
|
|
|
|
2. Confirm the plugin appears in the sidebar or app bar
|
|
|
|
|
3. Retrieve the plugin's `UAT_PLAYBOOK.md` from its repository
|
|
|
|
|
4. Execute the test steps in the playbook
|
|
|
|
|
5. Capture screenshots of the **running plugin** at each verification step
|
|
|
|
|
6. Check the browser console for errors
|
|
|
|
|
7. Post a structured test report (see Artifacts section)
|
|
|
|
|
3. Read the plugin's `UAT_PLAYBOOK.md` for the specific test steps to run
|
|
|
|
|
4. Execute the test steps from the playbook, capturing screenshots at each verification
|
|
|
|
|
5. Check the browser console for errors throughout
|
|
|
|
|
6. Post a structured test report (see Artifacts section)
|
|
|
|
|
|
|
|
|
|
## UAT Artifacts
|
|
|
|
|
## Acceptance Criteria
|
|
|
|
|
|
|
|
|
|
A plugin passes UAT when:
|
|
|
|
|
|
|
|
|
|
- **Plugin loads** — sidebar entry or app bar action is visible and accessible
|
|
|
|
|
- **Features work** — all core features in the playbook execute without errors
|
|
|
|
|
- **No console errors** — browser console shows no errors during normal operation
|
|
|
|
|
- **Data matches cluster state** — plugin data is consistent with `kubectl` queries against the cluster
|
|
|
|
|
|
|
|
|
|
A plugin fails UAT when:
|
|
|
|
|
|
|
|
|
|
- Plugin does not load or renders only an error state
|
|
|
|
|
- Any core feature is inaccessible or produces errors
|
|
|
|
|
- Console errors are present and not explainable as unrelated noise
|
|
|
|
|
- Displayed data contradicts known cluster state
|
|
|
|
|
|
|
|
|
|
## Artifact Requirements
|
|
|
|
|
|
|
|
|
|
For each plugin tested, the UAT report must include:
|
|
|
|
|
|
|
|
|
|
1. **Screenshots** of the plugin running in Headlamp — sidebar entry visible, main view loaded, at least one detail view
|
|
|
|
|
2. **Test checklist** — each step from the playbook marked pass/fail
|
|
|
|
|
2. **Test checklist** — each step from `UAT_PLAYBOOK.md` marked pass/fail
|
|
|
|
|
3. **Console errors** — any browser console errors observed (attach screenshot if present)
|
|
|
|
|
4. **Environment** — Headlamp version, plugin version, browser used
|
|
|
|
|
4. **Environment info** — Headlamp version, plugin version, browser used, namespace context
|
|
|
|
|
|
|
|
|
|
## Reading UAT_PLAYBOOK.md
|
|
|
|
|
|
|
|
|
|
Each plugin repository contains a `UAT_PLAYBOOK.md` in its root directory. That file contains the canonical test steps for that specific plugin. Before running UAT, read the relevant playbook to know:
|
|
|
|
|
|
|
|
|
|
- Which features to exercise
|
|
|
|
|
- What the expected results are
|
|
|
|
|
- What screenshots to capture at each step
|
|
|
|
|
|
|
|
|
|
If `UAT_PLAYBOOK.md` does not exist for a plugin, treat that as a gap — report it in the UAT findings and flag it as a documentation issue.
|
|
|
|
|
|
|
|
|
|
## Decision Criteria
|
|
|
|
|
|
|
|
|
|
- **Approve** the `uat→main` PR when all applicable test steps pass
|
|
|
|
|
- **Request changes** with specific failing steps and failure screenshots
|
|
|
|
|
- **Block** if the plugin fails to load entirely — escalate to CTO as a deployment issue
|
|
|
|
|
- **Approve** the `uat→main` promotion when all applicable test steps from the playbook pass and no console errors are present
|
|
|
|
|
- **Request changes** when any test step fails — include specific failing steps, observed results vs. expected results, and failure screenshots
|
|
|
|
|
- **Block** if the plugin fails to load entirely — escalate to CTO as a deployment issue requiring immediate resolution
|