Skip to content

Add TVK-UI-Framework: UI automation suites for TVK backup and restore with feature integration test - #21

Open
trilio-nikita wants to merge 1 commit into
mainfrom
add-tvk-ui-framework
Open

trilio-nikita wants to merge 1 commit into
mainfrom
add-tvk-ui-framework

Conversation

@trilio-nikita

@trilio-nikita trilio-nikita commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Adds a self-contained UI automation framework under TVK-UI-Framework/. Nothing outside that directory is touched.

What it covers

Suite Driver Purpose
tests/test_e2e_trilio.py Playwright (real browser) Full console lifecycle: login, app install, target, policy, backup plan, backup, snapshot, restore, status verification
tests/test_feature_integration.py Custom Resources Backup types, policies, scheduling, retention and policy lifecycle, without a browser
stress_tvk.py Custom Resources Repeated backup/restore across a Helm release, an operator-managed app and a KubeVirt VM

Also included: pages/ page objects, utils/ cluster and CR helpers, restore_*_only.py for retrying just a restore against an existing backup, and explore_*.py diagnostics that dump live DOM/CR state.

Cluster support

The login strategy is pluggable, so the same suites run on OpenShift (OAuth) and on AKS/EKS/GKE (kubeconfig upload). Adding another flavour means subclassing BaseLoginPage and registering it - the target, policy, backup plan and restore page objects are not OpenShift-specific.

Credentials

None are committed:

  • the pytest suites read them from a git-ignored local config or from environment variables
  • the standalone *.spec.js / *.spec.ts recordings ship with blank credential fields, and the README explains what to fill in
  • internal hostnames are placeholders

Test output (screenshots, logs, generated reports) is git-ignored, as is the oc client binary - it exceeds GitHub's file-size limit, and the README documents how to obtain it.

Validation

Suite Validated against
UI end-to-end, plus target_browsing, helm_transform, custom_transform TVK 5.4.0-rc.5 on OpenShift, and TVK 5.4.0 on AKS (installed from the Azure Marketplace)
Stress 18/18 backup and restore operations over 3 rounds, across all three application shapes
Feature integration Exercised separately against OpenShift

Adds a self-contained framework under TVK-UI-Framework/ covering the TVK
web console and the Kubernetes API, on OpenShift and non-OpenShift
(AKS/EKS/GKE) clusters.

Suites:
- tests/test_e2e_trilio.py       Playwright end-to-end console lifecycle
- tests/test_feature_integration.py  CR-driven backup types, policies,
                                 scheduling and retention
- stress_tvk.py                  resource-aware repeated backup/restore
                                 across a Helm release, an operator-managed
                                 app and a KubeVirt VM

Supporting code:
- pages/    page objects, one per console screen; login strategy is
            pluggable per cluster flavour (OCP OAuth vs kubeconfig upload)
- utils/    cluster client, CR builders, Helm and storage-class helpers
- restore_helm_only.py / restore_custom_only.py  retry just the restore
            against an existing backup
- explore_*.py  diagnostics that dump live DOM and CR state

No credentials are committed. The pytest suites read them from a
git-ignored local config or the environment; the standalone *.spec.js /
*.spec.ts recordings ship with blank credential fields and the README
explains what to fill in. Test output and the oc client binary are
excluded, and the README documents how to obtain oc.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@trilio-nikita trilio-nikita changed the title Add TVK-UI-Framework: UI automation suites for TVK backup and restore Add TVK-UI-Framework: UI automation suites for TVK backup and restore with feature integration test Aug 31, 2026
@trilio-nikita trilio-nikita self-assigned this Aug 31, 2026
@trilio-nikita

Copy link
Copy Markdown
Collaborator Author

@sachin-trilio could you review this when you get a chance?

It adds a UI automation framework under TVK-UI-Framework/ — nothing outside that directory is touched, so the existing plugins and tools/tvk-quickstart are unaffected.

Three suites: a Playwright end-to-end console lifecycle, a CR-driven feature-integration suite (backup types, policies, scheduling, retention), and a resource-aware stress suite that cycles backup/restore across a Helm release, an operator-managed app and a KubeVirt VM.

Worth knowing while reviewing:

  • The login strategy is pluggable, so the same suites run on OpenShift (OAuth) and on AKS/EKS/GKE (kubeconfig upload).
  • No credentials are committed. The pytest suites read them from a git-ignored local config or environment variables; the standalone *.spec.js / *.spec.ts recordings ship with blank credential fields and the README says what to fill in. Internal hostnames are placeholders, since this repo is public.
  • The oc client binary is not vendored (it exceeds GitHub's file-size limit) — the README documents how to obtain it.

Validated against TVK 5.4.0-rc.5 on OpenShift and TVK 5.4.0 on AKS; the stress suite completed 18/18 backup and restore operations over 3 rounds.

@rhushiraj19019 rhushiraj19019 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM

@sachin-trilio sachin-trilio left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks good

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.

3 participants