Skip to content

Stp cbt#30

Open
dalia-frank wants to merge 12 commits intoRedHatQE:mainfrom
dalia-frank:stp_cbt
Open

Stp cbt#30
dalia-frank wants to merge 12 commits intoRedHatQE:mainfrom
dalia-frank:stp_cbt

Conversation

@dalia-frank
Copy link
Copy Markdown

@dalia-frank dalia-frank commented Feb 15, 2026

STP Metadata

VEP issue: https://github.com/kubevirt/enhancements/blob/main/veps/sig-storage/incremental-backup.md

What this PR does

Adds the CBT (Changed Block Tracking) STP for CNV-61530

Special notes for your reviewer

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive CBT (Changed Block Tracking) Quality Engineering/Test Plan covering tracking metadata and links, glossary and push vs. pull distinctions, storage-agnostic incremental backup behavior, QE review checklists, prioritized P0–P2 testing goals and explicit out-of-scope items, multi-category test strategy, environment assumptions (OCP 4.22 with CNV and HCO feature gate), entry criteria, risks/known limitations with workarounds, requirement-to-test traceability, and sign-off placeholders.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 15, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

New OpenShift Virtualization Changed Block Tracking (CBT) Software Test Plan added: metadata (VEP/Jira/QE owner/SIG/status), CBT terminology and push/pull modes, feature overview, QE and tech review checklists, prioritized test scenarios (P0–P2), environment assumptions, risks/limitations, traceability, and sign-off placeholders.

Changes

Cohort / File(s) Summary
CBT Quality Engineering Plan
stps/sig-storage/cbt.md
Added a new CBT QE/STP Markdown document containing metadata and tracking links, terminology and push vs pull backup modes, feature overview, QE and tech/design review checklists, prioritized Software Test Plan (P0–P2), out-of-scope items, multi-category test strategy, environment and entry criteria, risks/known limitations, scenario traceability, and sign-off placeholders.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Stp cbt' is vague and non-descriptive, using abbreviations without context. It does not clearly convey what the changeset introduces or the main purpose of the pull request. Use a more descriptive title like 'Add CBT Software Test Plan for OpenShift Virtualization' to clearly communicate the change and its purpose.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-virtualization-qe-bot-4
Copy link
Copy Markdown

Report bugs in Issues

Welcome! 🎉

This pull request will be automatically processed with the following features:

🔄 Automatic Actions

  • Reviewer Assignment: Reviewers are automatically assigned based on the OWNERS file in the repository root
  • Size Labeling: PR size labels (XS, S, M, L, XL, XXL) are automatically applied based on changes
  • Issue Creation: A tracking issue is created for this PR and will be closed when the PR is merged or closed
  • Branch Labeling: Branch-specific labels are applied to track the target branch
  • Auto-verification: Auto-verified users have their PRs automatically marked as verified
  • Labels: Enabled categories: branch, can-be-merged, cherry-pick, has-conflicts, hold, needs-rebase, size, verified, wip

📋 Available Commands

PR Status Management

  • /wip - Mark PR as work in progress (adds WIP: prefix to title)
  • /wip cancel - Remove work in progress status
  • /hold - Block PR merging (approvers only)
  • /hold cancel - Unblock PR merging
  • /verified - Mark PR as verified
  • /verified cancel - Remove verification status
  • /reprocess - Trigger complete PR workflow reprocessing (useful if webhook failed or configuration changed)
  • /regenerate-welcome - Regenerate this welcome message

Review & Approval

  • /lgtm - Approve changes (looks good to me)
  • /approve - Approve PR (approvers only)
  • /assign-reviewers - Assign reviewers based on OWNERS file
  • /assign-reviewer @username - Assign specific reviewer
  • /check-can-merge - Check if PR meets merge requirements

Testing & Validation

  • /retest tox - Run Python test suite with tox
  • /retest all - Run all available tests

Cherry-pick Operations

  • /cherry-pick <branch> - Schedule cherry-pick to target branch when PR is merged
    • Multiple branches: /cherry-pick branch1 branch2 branch3

Label Management

  • /<label-name> - Add a label to the PR
  • /<label-name> cancel - Remove a label from the PR

✅ Merge Requirements

This PR will be automatically approved when the following conditions are met:

  1. Approval: /approve from at least one approver
  2. LGTM Count: Minimum 2 /lgtm from reviewers
  3. Status Checks: All required status checks must pass
  4. No Blockers: No WIP, hold, conflict labels
  5. Verified: PR must be marked as verified (if verification is enabled)

📊 Review Process

Approvers and Reviewers

Approvers:

  • jpeimer

Reviewers:

  • Ahmad-Hafe
  • dalia-frank
  • duyanyan
  • josemacassan
  • jpeimer
  • kgoldbla
  • kshvaika
  • stesrn
Available Labels
  • hold
  • verified
  • wip
  • lgtm
  • approve

💡 Tips

  • WIP Status: Use /wip when your PR is not ready for review
  • Verification: The verified label is automatically removed on each new commit
  • Cherry-picking: Cherry-pick labels are processed when the PR is merged
  • Permission Levels: Some commands require approver permissions
  • Auto-verified Users: Certain users have automatic verification and merge privileges

For more information, please refer to the project documentation or contact the maintainers.

Copy link
Copy Markdown

@ema-aka-young ema-aka-young left a comment

Choose a reason for hiding this comment

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

Leaving a couple of questions, mainly for understanding.

Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Copy link
Copy Markdown

@kshvaika kshvaika left a comment

Choose a reason for hiding this comment

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

only one comment

Comment thread stps/sig-storage/cbt.md
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (1)
stps/sig-storage/cbt.md (1)

94-94: ⚠️ Potential issue | 🟠 Major

Pull-mode in scope but security coverage is fully excluded.

With pull-mode backup in scope (Line 172), marking security testing as N at Line 94 leaves an important gap. At minimum, include a negative authn/authz scenario for pull-mode tunnel establishment (unauthorized CONNECT/cert path).

Also applies to: 172-172

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@stps/sig-storage/cbt.md` at line 94, The Security Testing entry currently
marked "N" must be updated to reflect that pull-mode backups are in scope:
change the Security Testing cell for "Pull-mode" to indicate partial/conditional
coverage (e.g., "Y (pull-mode only)" or "Partial") and add at least one test
case for pull-mode tunnel establishment verifying negative authn/authz behavior
(unauthorized CONNECT attempts and invalid certificate path rejection).
Specifically, update the "Security Testing" row referenced by the "Security
Testing" header and add a short bullet or a test-case line under the pull-mode
backup section that names the test (e.g., "pull-mode: reject unauthorized
CONNECT / invalid cert path") and describes expected outcome (connection
refused/403 or TLS handshake failure).
🧹 Nitpick comments (1)
stps/sig-storage/cbt.md (1)

124-126: Testing tools section is empty; add concrete framework/CI entries.

This section is currently non-actionable for implementation handoff. Please specify at least the test framework and CI lane(s) that will carry the planned scenarios.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@stps/sig-storage/cbt.md` around lines 124 - 126, The testing tools table
under the "Test Framework", "CI/CD", and "Other Tools" rows is empty; update the
table in cbt.md by specifying a concrete test framework (e.g., "Ginkgo/Gomega"
or "pytest" with version), list the CI lanes that will run these scenarios
(e.g., "presubmit: sig-storage-cbt", "periodic: sig-storage-cbt-nightly", or
GitHub Actions workflow names), and add any other tooling required (e.g.,
"kubetest2", "kind", "kubernetes-e2e-operator", testgrid config). Ensure each
cell contains a specific tool or workflow name so the implementation handoff is
actionable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@stps/sig-storage/cbt.md`:
- Around line 184-188: Replace the placeholder entries under the "Approvers:"
section (the lines containing "[Name / `@github-username`]") with actual approver
names and GitHub handles, or if approvals are not yet complete, replace them
with an explicit "Pending — tracked in <task/issue reference>" note; update the
Approvers list in stps/sig-storage/cbt.md so the release artifact contains real
identities or a clear pending follow-up, and ensure any added names use the same
list markdown format already present.
- Around line 162-175: Replace the repeated "TBD" Requirement ID cells with the
repository's epic mapping format by putting the epic identifier (e.g.,
"CNV-61530 (epic)") in the first row of the related group and leaving the
subsequent Requirement ID cells blank for the remaining scenarios under that
same epic; update the table rows shown (the Requirement ID column entries
currently all "TBD") so each group of related test scenarios uses one epic ID in
its first row and empty Requirement ID cells for following rows to preserve
traceability and avoid repeating the epic.
- Around line 74-76: The testing goals "Verify backup with hotplugged disks",
"Verify incremental backup after migration", and "Verify overlay migration with
RWO and RWX backend PVCs (bitmap behavior, known libvirt RWO limitation)" are
not mapped 1:1 in the traceability table; update the traceability table to
include explicit rows for each of these goals (or merge them into existing rows
but rename and expand those rows to match the exact goal wording), ensuring each
goal has a corresponding scenario, acceptance criteria, and trace ID so the
table entries now cover both the goals near the top of the document and the
related entries later in the table (the block referenced in the review).

---

Duplicate comments:
In `@stps/sig-storage/cbt.md`:
- Line 94: The Security Testing entry currently marked "N" must be updated to
reflect that pull-mode backups are in scope: change the Security Testing cell
for "Pull-mode" to indicate partial/conditional coverage (e.g., "Y (pull-mode
only)" or "Partial") and add at least one test case for pull-mode tunnel
establishment verifying negative authn/authz behavior (unauthorized CONNECT
attempts and invalid certificate path rejection). Specifically, update the
"Security Testing" row referenced by the "Security Testing" header and add a
short bullet or a test-case line under the pull-mode backup section that names
the test (e.g., "pull-mode: reject unauthorized CONNECT / invalid cert path")
and describes expected outcome (connection refused/403 or TLS handshake
failure).

---

Nitpick comments:
In `@stps/sig-storage/cbt.md`:
- Around line 124-126: The testing tools table under the "Test Framework",
"CI/CD", and "Other Tools" rows is empty; update the table in cbt.md by
specifying a concrete test framework (e.g., "Ginkgo/Gomega" or "pytest" with
version), list the CI lanes that will run these scenarios (e.g., "presubmit:
sig-storage-cbt", "periodic: sig-storage-cbt-nightly", or GitHub Actions
workflow names), and add any other tooling required (e.g., "kubetest2", "kind",
"kubernetes-e2e-operator", testgrid config). Ensure each cell contains a
specific tool or workflow name so the implementation handoff is actionable.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0a29fb14-612c-4042-98f5-54d06ecd114c

📥 Commits

Reviewing files that changed from the base of the PR and between beb35f9 and 478a60b.

📒 Files selected for processing (1)
  • stps/sig-storage/cbt.md

Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
Comment thread stps/sig-storage/cbt.md Outdated
dalia-frank and others added 11 commits May 7, 2026 18:14
- Metadata & tracking (enhancement, Jira, QE owner, status)
- Document conventions table (CBT, Push mode, Pull mode)
- Feature overview and motivation
- Section I/II placeholders to be filled

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
- Motivation moved to Section I (Motivation and Requirements Review)
- Section I checklists: Done [x] for all rows; Entry Criteria, Out of Scope, Risks Status [x]
- Testing Goals: P0/P1/P2 goals (CBT, push/pull backup, Windows VM, OCP 4.21, ForceFullBackup, full PVC, etc.); sorted by priority
- Out of Scope: restore as feature, offline, performance; removed pull-mode (now P2 goal)
- Removed/replaced semicolons; simplified goal wording; removed VM restart goal, VM state PVC/hot-plug goal
- Section II.2 Test Strategy: Applicable (Y/N/N/A) and Comments filled for all rows
- Performance: no testing planned currently, may be in future
- Dependencies: OpenShift and CNV; OCP 4.21 updated KubeVirt images
- Compatibility: CBT storage-agnostic; OCP 4.21, Windows VM

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
…Section III

- Test Environment: uniform 'Standard' where applicable; OCP 4.21, Storage, Special Configurations (KubeVirt images for 4.21)
- Entry Criteria: add IncrementalBackup feature gate
- Risks: fill all rows (timeline, coverage, env, dependencies, T1 quarantined; start with push backup)
- Known Limitations: testing can start with current scope; T1 quarantined; feature in progress, storage providers unblocked
- Section III: note to fill from Jira (CNV-61530), single TBD row; Section IV sign-off left as placeholder

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
- Add testing goals: hotplugged disks, incremental after migration, overlay RWO/RWX
- RWO issues: incremental backup after migration (not pull mode) in Risks/Known Limits
- Dependencies: add libvirt; Test Env: libvirt RPMs for 4.22
- Pull-mode: P1, merged for 4.22; Windows VM: P1
- Checkpoint redefinition: add after-migration RWO note (libvirt fix pending)
- Jira Tracking: STP creation task CNV-61552
- Replace semicolons with commas in cbt.md

Made-with: Cursor
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
…ment

- Section III: CNV-61530 (epic) on first row, empty ID cells for following rows
- Add traceability rows for hotplugged disks and incremental backup after migration
- Reorder Testing Goals (P0 before P1) to match traceability table
- Functional testing comment points to II.1 and III; Known Limitations cross-refs to III

Made-with: Cursor
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
…lons

- State HCO feature gate for CBT as enabled across goals, env, risks, traceability
- Clarify RWO limitation is qcow2 overlay migration (not pull mode) in risks/limitations/scenarios
- Replace semicolons in cbt.md for consistency with prior doc style

Made-with: Cursor
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
- Out of scope: performance rationale as one formal sentence
- Performance testing: replace fragment phrasing with two clear sentences
- Automation testing: expected automation for CI/regression

Made-with: Cursor
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
- Feature overview and Pull mode: VMExport API HTTP shim over NBD
- Dependencies and cross integrations: VMExport for pull-mode endpoints
- Pull-mode traceability: verify via VMExport API
- Risks/limitations/scenarios: general CBT/backup wording for RWO overlay
- T1 quarantine: CNV-78846 and kubevirt#17297 (KubeVirt disk source), separate from libvirt overlay issue
- Remove misleading libvirt-as-primary flaky-backup bullet

Made-with: Cursor
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
Remove VMExport/HTTP shim from Document Conventions; Feature Overview
already describes KubeVirt pull-mode access (addresses review feedback).

Made-with: Cursor
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
Add pull-mode backup internal tunnel security test (virt-exportserver to virt-launcher certificate requirement). Convert Known Limitations to table format with PM signoffs (Peter Lauterbach, May 7 2026). Remove qcow2 overlay migration RWO bitmap bug from limitations (now fixed in libvirt). Update Out of Scope with PM signoff. Add security test to Test Strategy and Scenarios (T1/P1).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
@openshift-virtualization-qe-bot-4
Copy link
Copy Markdown

Clean rebase detected — no code changes compared to previous head (0d278ca).
The following labels were preserved: commented-coderabbitai[bot], commented-dalia-frank.

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 7, 2026
@openshift-virtualization-qe-bot-4
Copy link
Copy Markdown

duyanyan can not be added as reviewer. Reviews may only be requested from collaborators. One or more of the users or teams you specified is not a collaborator of the RedHatQE/openshift-virtualization-tests-design-docs repository.: 422 {"message": "Reviews may only be requested from collaborators. One or more of the users or teams you specified is not a collaborator of the RedHatQE/openshift-virtualization-tests-design-docs repository.", "documentation_url": "https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request", "status": "422"}

Comment thread stps/sig-storage/cbt.md Outdated
…no, Ahmad Hafe)

Signed-off-by: Dalia Frank <dafrank@dafrank-thinkpadp1gen4i.raanaii.csb>
@openshift-virtualization-qe-bot-3
Copy link
Copy Markdown

duyanyan can not be added as reviewer. Reviews may only be requested from collaborators. One or more of the users or teams you specified is not a collaborator of the RedHatQE/openshift-virtualization-tests-design-docs repository.: 422 {"message": "Reviews may only be requested from collaborators. One or more of the users or teams you specified is not a collaborator of the RedHatQE/openshift-virtualization-tests-design-docs repository.", "documentation_url": "https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request", "status": "422"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.