Skip to content

CNTRLPLANE-3244: add --use-etcd-snapshot flag to OADP CLI commands - #8232

Merged
openshift-merge-bot[bot] merged 4 commits into
openshift:mainfrom
jparrill:CNTRLPLANE-3244
Apr 20, 2026
Merged

CNTRLPLANE-3244: add --use-etcd-snapshot flag to OADP CLI commands#8232
openshift-merge-bot[bot] merged 4 commits into
openshift:mainfrom
jparrill:CNTRLPLANE-3244

Conversation

@jparrill

@jparrill jparrill commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • Unit tests for RunSchedule with fake client: render fallback, non-render happy path, and error paths (platform detection, OADP validation, DPA verification)
  • Coverage improvement for unknown platform fallback in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added --use-etcd-snapshot flag (Tech Preview) for backup, restore, and schedule to enable etcd-based snapshot mode.
  • Behavior Changes

    • Backup/restore/schedule outputs switch to etcd-snapshot-safe fields (included/excluded resources, PV restore behavior, timeouts, and cleanup settings).
    • Commands validate incompatible flag combinations early and may fail fast.
    • Schedule command will render YAML with a warning if Kubernetes client creation fails in render mode.
  • Documentation

    • Updated CLI docs with Etcd Snapshot Mode usage, examples, and limitations.
  • Tests

    • Expanded test coverage for etcd-snapshot and default modes.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 14, 2026
@openshift-ci-robot

openshift-ci-robot commented Apr 14, 2026

Copy link
Copy Markdown

@jparrill: This pull request references CNTRLPLANE-3244 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai

coderabbitai Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

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

Adds a Tech Preview etcd snapshot mode toggled by --use-etcd-snapshot (new CreateOptions.UseEtcdSnapshot). This changes backup/schedule/restore generation to use etcd-snapshot–specific resource lists and spec fields, and forbids incompatible flags via validateEtcdSnapshotFlags(). Included-resource selection and spec construction were refactored into resolveIncludedResources and buildBackupSpec. Backups/schedules in etcd mode omit data-mover and PV snapshot fields and set snapshot-mode fields (e.g., itemOperationTimeout); restores set restorePVs=false, cleanupBeforeRestore, adjust excludedResources, and may populate Velero backup-name fields. Tests were extended and converted to Gomega.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant CLI as CLI (User)
participant Opts as CreateOptions
participant Platform as Platform Detector
participant SpecBuilder as BackupSpecBuilder
participant K8s as Kubernetes API / Velero

CLI->>Opts: invoke backup/schedule/restore (with flags)
Opts->>Opts: validateEtcdSnapshotFlags()
Opts->>Platform: detect platform
Platform-->>Opts: platform
Opts->>Platform: resolveIncludedResources(platform, UseEtcdSnapshot)
Platform-->>Opts: includedResources
Opts->>SpecBuilder: buildBackupSpec(includedNamespaces, includedResources, UseEtcdSnapshot)
SpecBuilder-->>Opts: spec
Opts->>Platform: applyPlatformBackupSpec(spec, platform)
Opts->>K8s: render/create Backup/Restore/HCPEtcdBackup (spec)
K8s-->>CLI: resource YAML / creation result (success/error)

🚥 Pre-merge checks | ✅ 8 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 64.71% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Structure And Quality ❓ Inconclusive The custom check is designed for Ginkgo test code (Describe/It blocks), but this PR uses standard Go unit tests with Gomega assertions, which are fundamentally different testing frameworks. Clarify whether the custom check should apply to standard Go tests using Gomega, or only to Ginkgo-based tests. If standard Go tests should be evaluated, reformulate the check criteria accordingly.
✅ Passed checks (8 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically identifies the main change: adding a new --use-etcd-snapshot flag to OADP CLI commands, which is the primary feature across all modified files.
Stable And Deterministic Test Names ✅ Passed All test names across modified test files are stable and deterministic with no dynamic content like timestamps, UUIDs, or pod names.
Microshift Test Compatibility ✅ Passed PR adds unit tests using standard Go testing package, not Ginkgo e2e tests. No MicroShift-incompatible APIs detected.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR adds only unit tests for CLI code using standard Go testing framework, not Ginkgo e2e tests, so SNO compatibility check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed PR introduces CLI enhancements for OADP modifying Velero CRD generation without introducing pod scheduling constraints or conflicting with SNO, TNF, TNA, or HyperShift topologies.
Ote Binary Stdout Contract ✅ Passed PR modifies OADP CLI command files with no main(), init(), TestMain(), or suite setup functions that could corrupt stdout.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR does not add Ginkgo e2e tests. The added tests are standard Go unit tests in the cmd/oadp/ package using Gomega assertions, not Ginkgo framework tests.

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

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

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

@openshift-ci
openshift-ci Bot requested review from enxebre and muraee April 14, 2026 09:08
@openshift-ci openshift-ci Bot added the area/cli Indicates the PR includes changes for CLI label Apr 14, 2026
@openshift-ci

openshift-ci Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jparrill

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added approved Indicates a PR has been approved by an approver from all required OWNERS files. and removed do-not-merge/needs-area labels Apr 14, 2026
@openshift-ci-robot

openshift-ci-robot commented Apr 14, 2026

Copy link
Copy Markdown

@jparrill: This pull request references CNTRLPLANE-3244 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features
  • Added --use-etcd-snapshot flag to backup, restore, and schedule commands to enable etcd snapshot mode via HCPEtcdBackup CRD instead of traditional PV volume snapshots.
  • Backup and restore operations now intelligently handle resources and generate optimized specifications when operating in etcd snapshot mode.
  • Schedule operations support etcd snapshot mode with appropriate resource and template configurations.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@jparrill

Copy link
Copy Markdown
Contributor Author

/label tide/merge-method-squash

@openshift-ci openshift-ci Bot added the tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. label Apr 14, 2026
@codecov

codecov Bot commented Apr 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.83333% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 35.70%. Comparing base (dd2dae7) to head (ace1934).
⚠️ Report is 71 commits behind head on main.

Files with missing lines Patch % Lines
cmd/oadp/schedule.go 40.00% 10 Missing and 2 partials ⚠️
cmd/oadp/restore.go 76.00% 6 Missing ⚠️
cmd/oadp/backup.go 44.44% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8232      +/-   ##
==========================================
+ Coverage   34.63%   35.70%   +1.07%     
==========================================
  Files         767      767              
  Lines       93186    93398     +212     
==========================================
+ Hits        32277    33350    +1073     
+ Misses      58236    57346     -890     
- Partials     2673     2702      +29     
Files with missing lines Coverage Δ
cmd/oadp/common.go 89.65% <100.00%> (+15.58%) ⬆️
cmd/oadp/backup.go 45.45% <44.44%> (-4.31%) ⬇️
cmd/oadp/restore.go 36.33% <76.00%> (+2.65%) ⬆️
cmd/oadp/schedule.go 68.19% <40.00%> (+8.24%) ⬆️

... and 60 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@openshift-ci-robot

openshift-ci-robot commented Apr 14, 2026

Copy link
Copy Markdown

@jparrill: This pull request references CNTRLPLANE-3244 which is a valid jira issue.

Details

In response to this:

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • Unit tests for RunSchedule with fake client: render fallback, non-render happy path, and error paths (platform detection, OADP validation, DPA verification)
  • Coverage improvement for unknown platform fallback in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot

openshift-ci-robot commented Apr 14, 2026

Copy link
Copy Markdown

@jparrill: This pull request references CNTRLPLANE-3244 which is a valid jira issue.

Details

In response to this:

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • Unit tests for RunSchedule with fake client: render fallback, non-render happy path, and error paths (platform detection, OADP validation, DPA verification)
  • Coverage improvement for unknown platform fallback in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

  • Added a --use-etcd-snapshot flag to backup, restore, and schedule commands to use etcd-based snapshots via HCPEtcdBackup.

  • Backup, restore, and schedule outputs now generate mode-appropriate specs and defaults when etcd snapshot mode is enabled.

  • Improvements

  • Schedule command can render YAML even when a Kubernetes client is unavailable (render mode).

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@cmd/oadp/restore_test.go`:
- Around line 80-126: The tests currently ignore errors from
unstructured.NestedString/NestedStringSlice/NestedBool calls (e.g., the calls
reading "spec" fields from restore.Object), which can hide type-mismatch
failures; update each call (bn, policy, namespaces, rpv, cbr, val, er) to
capture the error (e.g., bn, found, err := unstructured.NestedString(...)) and
add assertions that err is nil (using g.Expect(err).To(BeNil()) or similar)
before asserting found/values, and when expecting a field to be absent assert
err is not nil or err indicates a type error as appropriate so type-mismatch
failures fail the test. Ensure you change all occurrences of
unstructured.NestedString, NestedStringSlice, and NestedBool in this block.

In `@cmd/oadp/schedule_test.go`:
- Around line 993-1019: The test creates an unstructured DPA object (`dpa`) but
doesn't set its GVK, so the fake client can't find it during `VerifyDPAStatus`;
call `dpa.SetGroupVersionKind(schema.GroupVersionKind{Group:"oadp.openshift.io",
Version:"v1alpha1", Kind:"DataProtectionApplication"})` after constructing `dpa`
and add the import for "k8s.io/apimachinery/pkg/runtime/schema" so the object is
indexed correctly by `fake.NewClientBuilder().WithObjects(...)` and will be
returned by the `List` used in `VerifyDPAStatus`.
🪄 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: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 1112cbfb-5e85-4806-8720-e62094bcf7d9

📥 Commits

Reviewing files that changed from the base of the PR and between 12e33b6 and ecb29a7.

📒 Files selected for processing (4)
  • cmd/oadp/backup_test.go
  • cmd/oadp/restore_test.go
  • cmd/oadp/schedule.go
  • cmd/oadp/schedule_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • cmd/oadp/backup_test.go

Comment thread cmd/oadp/restore_test.go Outdated
Comment thread cmd/oadp/schedule_test.go
@openshift-ci-robot

openshift-ci-robot commented Apr 14, 2026

Copy link
Copy Markdown

@jparrill: This pull request references CNTRLPLANE-3244 which is a valid jira issue.

Details

In response to this:

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • Unit tests for RunSchedule with fake client: render fallback, non-render happy path, and error paths (platform detection, OADP validation, DPA verification)
  • Coverage improvement for unknown platform fallback in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

  • Added a --use-etcd-snapshot flag for backup, restore, and schedule to enable etcd-based snapshot mode and produce mode-appropriate specs.

  • Improvements

  • Backup/restore/schedule outputs now adjust defaults and fields for etcd-snapshot mode (e.g., snapshot/restore behavior, excluded resources, timeouts).

  • Schedule command can render YAML even when a Kubernetes client is unavailable.

  • Tests

  • Expanded tests covering etcd-snapshot and default modes for backup, restore, and schedule generation.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
cmd/oadp/restore_test.go (1)

125-127: ⚠️ Potential issue | 🟡 Minor

Assert excludedResources presence explicitly before membership checks.

Line 126 still discards found from unstructured.NestedStringSlice. Capturing and asserting it makes failures clearer when spec.excludedResources is missing.

Suggested patch
-			er, _, err := unstructured.NestedStringSlice(restore.Object, "spec", "excludedResources")
+			er, found, err := unstructured.NestedStringSlice(restore.Object, "spec", "excludedResources")
 			g.Expect(err).NotTo(HaveOccurred())
+			g.Expect(found).To(BeTrue())
 			for _, expected := range tt.expectedExcludedContains {
 				g.Expect(er).To(ContainElement(expected))
 			}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@cmd/oadp/restore_test.go` around lines 125 - 127, The test currently ignores
the `found` boolean returned by unstructured.NestedStringSlice, so if
spec.excludedResources is missing the membership assertions become confusing;
modify the call to capture the second return (e.g., er, found, err :=
unstructured.NestedStringSlice(restore.Object, "spec", "excludedResources")),
assert err is nil as before and then add an explicit assertion that found is
true (e.g., using g.Expect(found).To(BeTrue())) before performing any checks
against `er` to make failures clearer; reference the call to
unstructured.NestedStringSlice, the `er` variable and `restore.Object`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@cmd/oadp/schedule.go`:
- Around line 121-124: The render branch is hard-coding "AWS" when calling
GenerateScheduleObject which drives resolveIncludedResources and
platform-specific policy generation; change the call in the o.Render block to
use the actual platform (e.g., o.Platform or another explicit platform flag) or
return an error when platform/resource set isn't supplied so we don't emit AWS
manifests for Azure/KubeVirt users—update the o.Render logic to validate a
provided platform value and pass that into GenerateScheduleObject instead of the
literal "AWS", or fail fast if none is available.
- Line 89: When opts.UseEtcdSnapshot is set, reject the mutually incompatible
flags --snapshot-move-data and --default-volumes-to-fs-backup instead of
silently ignoring them: add a validation step (e.g., in the command run/PreRun
or right after flag parsing in the schedule command) that checks
opts.UseEtcdSnapshot and if either opts.SnapshotMoveData or
opts.DefaultVolumesToFsBackup is true, return/exit with an error explaining the
conflict; note that buildBackupSpec in cmd/oadp/common.go forces
snapshotMoveData=false and defaultVolumesToFsBackup=false, so enforce the
failure there to prevent user input from being dropped.

---

Duplicate comments:
In `@cmd/oadp/restore_test.go`:
- Around line 125-127: The test currently ignores the `found` boolean returned
by unstructured.NestedStringSlice, so if spec.excludedResources is missing the
membership assertions become confusing; modify the call to capture the second
return (e.g., er, found, err := unstructured.NestedStringSlice(restore.Object,
"spec", "excludedResources")), assert err is nil as before and then add an
explicit assertion that found is true (e.g., using g.Expect(found).To(BeTrue()))
before performing any checks against `er` to make failures clearer; reference
the call to unstructured.NestedStringSlice, the `er` variable and
`restore.Object`.
🪄 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: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 514c2817-3088-4300-a521-86de54d9104f

📥 Commits

Reviewing files that changed from the base of the PR and between ecb29a7 and 7022cf9.

📒 Files selected for processing (4)
  • cmd/oadp/backup_test.go
  • cmd/oadp/restore_test.go
  • cmd/oadp/schedule.go
  • cmd/oadp/schedule_test.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • cmd/oadp/backup_test.go
  • cmd/oadp/schedule_test.go

Comment thread cmd/oadp/schedule.go
Comment thread cmd/oadp/schedule.go
@openshift-ci openshift-ci Bot added the area/documentation Indicates the PR includes changes for documentation label Apr 14, 2026
@openshift-ci-robot

openshift-ci-robot commented Apr 14, 2026

Copy link
Copy Markdown

@jparrill: This pull request references CNTRLPLANE-3244 which is a valid jira issue.

Details

In response to this:

Summary

  • Add optional --use-etcd-snapshot flag to oadp-backup, oadp-restore and oadp-schedule commands
  • When provided, Velero manifests use HCPEtcdBackup CRD snapshots instead of PV volume snapshots, producing lighter manifests
  • Default behavior (without flag) remains identical for backward compatibility
  • Fix schedule render mode fallback when kubernetes client is unavailable

Test plan

  • Unit tests for backup, restore and schedule in etcd snapshot mode
  • Unit tests for RunSchedule with fake client: render fallback, non-render happy path, and error paths (platform detection, OADP validation, DPA verification)
  • Coverage improvement for unknown platform fallback in etcd snapshot mode
  • All existing tests pass without regressions
  • Manual validation with --render flag for both default and etcd snapshot modes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

  • Added --use-etcd-snapshot flag (Tech Preview) for backup, restore, and schedule to enable etcd-based snapshot mode.

  • Behavior Changes

  • Backup/restore/schedule outputs now switch to etcd-snapshot-safe fields (resource inclusion, excluded resources, PV/restore behavior, timeouts, and cleanup settings).

  • Commands validate incompatible flags early and may fail fast on invalid combinations.

  • Schedule command will render YAML with a warning if Kubernetes client creation fails.

  • Documentation

  • Updated CLI docs with Etcd Snapshot Mode usage and limitations.

  • Tests

  • Expanded tests for etcd-snapshot and default modes.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
cmd/oadp/restore.go (1)

83-83: Clarify restore flag help text to avoid backup/restore ambiguity.

Line 83 currently says etcd “is backed up,” but this is the restore command. Tightening wording will reduce CLI confusion.

Suggested wording tweak
- cmd.Flags().BoolVar(&opts.UseEtcdSnapshot, "use-etcd-snapshot", false, "Use etcd snapshot mode: etcd is backed up via HCPEtcdBackup CRD snapshots instead of PV volume snapshots")
+ cmd.Flags().BoolVar(&opts.UseEtcdSnapshot, "use-etcd-snapshot", false, "Use etcd snapshot restore mode: restore from backups created via HCPEtcdBackup CRD snapshots instead of PV volume snapshots")
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@cmd/oadp/restore.go` at line 83, The help text for the Bool flag defined in
the cmd.Flags().BoolVar call (variable opts.UseEtcdSnapshot) is misleading for
the restore command because it says etcd “is backed up”; change the description
to clearly state this flag controls using etcd snapshot mode for restore
operations (e.g., "Restore etcd from HCPEtcdBackup CRD snapshots instead of PV
volume snapshots" or similar) so the text correctly references restore rather
than backup.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@cmd/oadp/schedule_test.go`:
- Around line 378-383: The test currently ignores the "found" boolean returned
by unstructured.NestedBool, so missing keys would default to false and tests
would incorrectly pass; update the two checks to capture the found flag (e.g.,
sv, svFound, err := unstructured.NestedBool(schedule.Object, "spec", "template",
"snapshotVolumes") and smd, smdFound, err :=
unstructured.NestedBool(schedule.Object, "spec", "template",
"snapshotMoveData")) and add assertions that svFound and smdFound are true (and
that sv and smd are false) so the test fails if those fields are absent; keep
references to schedule.Object and the same key paths and error handling.

In `@docs/content/how-to/disaster-recovery/dr-cli.md`:
- Around line 743-758: The doc claims that in `--use-etcd-snapshot` mode the
fields `veleroManagedClustersBackupName`, `veleroCredentialsBackupName`, and
`veleroResourcesBackupName` are always "set to backup name", but the
implementation only sets these when `--from-backup` is used (not
`--from-schedule`); update the wording under `--use-etcd-snapshot` to scope
those three backup-name fields to the `--from-backup` case (e.g., "set to backup
name when restoring from `--from-backup`") and ensure the doc mentions the
distinction between `--from-backup` and `--from-schedule`.

---

Nitpick comments:
In `@cmd/oadp/restore.go`:
- Line 83: The help text for the Bool flag defined in the cmd.Flags().BoolVar
call (variable opts.UseEtcdSnapshot) is misleading for the restore command
because it says etcd “is backed up”; change the description to clearly state
this flag controls using etcd snapshot mode for restore operations (e.g.,
"Restore etcd from HCPEtcdBackup CRD snapshots instead of PV volume snapshots"
or similar) so the text correctly references restore rather than backup.
🪄 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: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: c6e0507e-312e-4e9f-8a49-34648ddb4e50

📥 Commits

Reviewing files that changed from the base of the PR and between 7022cf9 and 63e2d8f.

📒 Files selected for processing (10)
  • cmd/oadp/backup.go
  • cmd/oadp/backup_test.go
  • cmd/oadp/common.go
  • cmd/oadp/common_test.go
  • cmd/oadp/restore.go
  • cmd/oadp/restore_test.go
  • cmd/oadp/schedule.go
  • cmd/oadp/schedule_test.go
  • cmd/oadp/types.go
  • docs/content/how-to/disaster-recovery/dr-cli.md
🚧 Files skipped from review as they are similar to previous changes (5)
  • cmd/oadp/restore_test.go
  • cmd/oadp/backup.go
  • cmd/oadp/backup_test.go
  • cmd/oadp/common.go
  • cmd/oadp/types.go

Comment thread cmd/oadp/schedule_test.go Outdated
Comment thread docs/content/how-to/disaster-recovery/dr-cli.md
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aks | Build: 2044325872839692288 | Cost: $1.5640169999999998 | Failed step: hypershift-azure-run-e2e

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed | Build: 2044325877877051392 | Cost: $2.324538 | Failed step: hypershift-azure-run-e2e-self-managed

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@cwbotbot

cwbotbot commented Apr 15, 2026

Copy link
Copy Markdown

Test Results

e2e-aks

e2e-aws

@jparrill

Copy link
Copy Markdown
Contributor Author

/test e2e-aks

sdminonne added a commit to sdminonne/hypershift that referenced this pull request Apr 15, 2026
…test

Add feature gate check, BackupCompleted condition verification,
etcd-init log validation, and etcd-snapshot-specific manifest helpers
to the BackupRestoreEtcdSnapshot e2e test per reviewer feedback.

- Skip test early in BeforeAll when HCPEtcdBackup CRD is not installed
  (feature gate disabled), preventing opaque CRD-not-found failures
- Add BackupCompleted=True condition check on HCPEtcdBackup to ensure
  backup actually succeeded before verifying snapshotURL
- Verify etcd-0 init container logs after restore contain expected
  snapshot download and restore traces
- Extract EtcdSnapshotBackupOptions and EtcdSnapshotRestoreOptions
  helper functions with etcd-snapshot-specific flag values
  (snapshotMoveData=false, restorePVs=false) and TODOs to integrate
  --use-etcd-snapshot flag from PR openshift#8232 once merged

Signed-off-by: Salvatore Dario Minonne <sminonne@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jparrill

Copy link
Copy Markdown
Contributor Author

/test e2e-azure-self-managed

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed | Build: 2044443533317771264 | Cost: $2.6468524999999987 | Failed step: hypershift-azure-run-e2e-self-managed

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@jparrill

Copy link
Copy Markdown
Contributor Author

/test e2e-azure-self-managed

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed | Build: 2044485091220000768 | Cost: $1.43198825 | Failed step: hypershift-azure-run-e2e-self-managed

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

I now have complete evidence. Let me produce the final report.

Test Failure Analysis Complete

Job Information

  • Prow Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed
  • Build ID: 2044485091220000768
  • Target: e2e-azure-self-managed
  • Failed Step: hypershift-azure-run-e2e-self-managed (test phase)
  • Result: 13 failures, 7 skipped, 55 passed out of 75 tests

Test Failure Analysis

Error

ExternalDNSReachable=False: ExternalDNSHostNotReachable(lookup api-<cluster>.aks-e2e.hypershift.azure.devcluster.openshift.com on 172.29.0.10:53: no such host)

Failed to wait for a successful connection to the guest API server in 10m0s: context deadline exceeded

Summary

All 13 test failures share an identical root cause: the ExternalDNS pod on the management cluster failed to create DNS A/CNAME records in the Azure DNS zone aks-e2e.hypershift.azure.devcluster.openshift.com. The external-dns pod started successfully (ready, no restarts) but its log shows only 7 lines of initialization ending at Azure API authentication — no sync cycles, no record creation attempts, no errors were ever logged. Without DNS records, all HostedCluster API endpoints (api-<name>.aks-e2e.hypershift.azure.devcluster.openshift.com) were unresolvable, causing every test that relies on ExternalDNS to fail with "no such host" during the ValidateHostedCluster phase. Tests that do NOT use ExternalDNS — TestAzurePrivateTopology (uses Azure Private DNS/Private Link) and TestHAEtcdChaos (platform None) — all passed. This is an infrastructure/environment issue completely unrelated to PR #8232, which only modifies OADP CLI code (cmd/oadp/) and documentation.

Root Cause

The ExternalDNS pod (external-dns-55f5d97547-kgmcc) in the hypershift namespace was running (ready=true, restartCount=0) but silently failed to operate after initialization. The pod log contains exactly 7 lines: configuration dump, Kubernetes/OpenShift client creation, and "Using client_id+client_secret to retrieve access token for Azure API." — then nothing. No sync cycle logs, no DNS record creation attempts, no errors.

This means the external-dns process either:

  1. Hung during Azure API authentication — the Azure SDK call to retrieve an access token may have blocked indefinitely without returning an error, or
  2. Failed to discover the Azure DNS zone — if the DNS zone aks-e2e.hypershift.azure.devcluster.openshift.com was temporarily unavailable or the service principal credentials lacked permissions, external-dns would fail silently after the authentication step.

The consequence is that no DNS records were created for any of the 6 HostedClusters' API endpoints (api-create-cluster-w5jt2, api-autoscaling-9qbxv, api-azure-oauth-lb-hhl5s, api-node-pool-ptvj4, api-node-pool-5rx4b, api-control-plane-upgrade-n2lwr), causing all tests that validate the hosted cluster guest API server to fail with DNS resolution errors after a 10-minute timeout.

The proof that this is an infrastructure issue and not a code regression:

  • PR CNTRLPLANE-3244: add --use-etcd-snapshot flag to OADP CLI commands #8232 only changes cmd/oadp/backup.go, cmd/oadp/restore.go, cmd/oadp/schedule.go, cmd/oadp/common.go, cmd/oadp/types.go, and related tests/docs — none of which affect ExternalDNS, cluster creation, or test infrastructure
  • Tests not using ExternalDNS all passed: TestAzurePrivateTopology (PASSED), TestHAEtcdChaos (PASSED)
  • All HostedClusters were created successfully — the management cluster and HyperShift operator were healthy; only the DNS registration via ExternalDNS failed
Recommendations
  1. Re-run the job — This is a transient infrastructure issue with the Azure ExternalDNS integration in the aks-e2e.hypershift.azure.devcluster.openshift.com zone. A retry should succeed if the Azure DNS zone and service principal are functioning normally.
  2. If failures persist, investigate:
    • The ExternalDNS pod logs on the management cluster for Azure API authentication errors
    • The Azure DNS zone aks-e2e.hypershift.azure.devcluster.openshift.com — verify it exists and the service principal has DNS Zone Contributor permissions
    • Whether the Azure service principal credentials (/etc/provider/credentials) mounted in the external-dns pod are valid and not expired
  3. No code changes needed for PR CNTRLPLANE-3244: add --use-etcd-snapshot flag to OADP CLI commands #8232 — the OADP CLI changes are completely orthogonal to this failure.
Evidence
Evidence Detail
Failed tests 13 of 75 (all with identical DNS resolution failure)
Error pattern dial tcp: lookup api-<name>.aks-e2e.hypershift.azure.devcluster.openshift.com: no such host
ExternalDNS pod status Running, ready=true, restartCount=0, but only 7 log lines (no sync cycles)
ExternalDNS last log "Using client_id+client_secret to retrieve access token for Azure API." at 19:30:39Z
Test duration Tests ran 19:33–20:02 (~30 min) — ExternalDNS never produced records in that window
HostedCluster condition ExternalDNSReachable=False, reason ExternalDNSHostNotReachable
Passing tests (no ExternalDNS) TestAzurePrivateTopology (PASSED), TestHAEtcdChaos (PASSED) — both bypass ExternalDNS
PR #8232 changes Only cmd/oadp/*.go and docs — zero overlap with ExternalDNS or test infra
DNS domain aks-e2e.hypershift.azure.devcluster.openshift.com (Azure DNS zone)
Affected HostedClusters create-cluster-w5jt2, autoscaling-9qbxv, azure-oauth-lb-hhl5s, node-pool-ptvj4, node-pool-5rx4b, control-plane-upgrade-n2lwr

| `csiSnapshotTimeout` | `10m0s` | not set |
| `itemOperationTimeout` | not set | `4h0m0s` |
| `excludedResources` | not set | `[]` (empty) |
| Included resources | FQDNs (e.g. `hostedclusters.hypershift.openshift.io`) | Short names (e.g. `hostedcluster`) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Based on my findings this line is wrong:

The code itself uses FQDNs in baseResourcesEtcdSnapshot             
  (types.go:116-125). The docs are wrong when they say etcd snapshot
  mode uses short names. The actual implementation uses FQDNs just    
  like the default mode — the only difference between baseResources   
  and baseResourcesEtcdSnapshot is which resources are included, not  
  how they're named.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed. The doc table no longer mentions short names vs FQDNs. Updated to: "Base + platform resources (without PVs, deployments, statefulsets; adds namespaces)" which reflects what the code actually does.

| `snapshotMoveData` | user-configurable | `false` (forced) |
| `defaultVolumesToFsBackup` | user-configurable | `false` (forced) |
| `dataMover` | `velero` | not set |
| `csiSnapshotTimeout` | `10m0s` | not set |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

csiSnapshotTimeout is still there:

csiSnapshotTimeout: 10m0s

In "render" mode it is not, but Velero adds this to the resource in the end.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch. Updated to "not set by CLI (Velero may add a default)" to clarify that the CLI doesn't set it, but Velero may populate it at runtime.

| `veleroResourcesBackupName` | not set | set to backup name (when `--from-backup` is used) |
| Excluded `csinodes.storage.k8s.io` | yes | no |
| Excluded `volumeattachments.storage.k8s.io` | yes | no |
| Excluded `backuprepositories.velero.io` | yes | no |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This resource looks different when I try that with Velero:

ᐅ oc get restore -A -oyaml
apiVersion: v1
items:
- apiVersion: velero.io/v1
  kind: Restore
  metadata:
    creationTimestamp: "2026-04-17T09:54:49Z"
    finalizers:
    - restores.velero.io/external-resources-finalizer
    generation: 16
    name: mgencur-hc1-clusters-wqk4lg
    namespace: openshift-adp
    resourceVersion: "1228053"
    uid: 6bdc1ab4-9621-4900-9bf2-87687e434b5e
  spec:
    backupName: mgencur-hc1-clusters-82jk9j
    excludedResources:
    - nodes
    - events
    - events.events.k8s.io
    - backups.velero.io
    - restores.velero.io
    - resticrepositories.velero.io
    - csinodes.storage.k8s.io
    - volumeattachments.storage.k8s.io
    - backuprepositories.velero.io
    existingResourcePolicy: update
    includedNamespaces:
    - clusters
    - clusters-mgencur-hc1
    itemOperationTimeout: 4h0m0s
    preserveNodePorts: true
    restorePVs: false
  status:
    completionTimestamp: "2026-04-17T09:55:01Z"
    hookStatus: {}
    phase: Completed
    progress:
      itemsRestored: 337
      totalItems: 337
    startTimestamp: "2026-04-17T09:54:49Z"
    warnings: 9
kind: List
metadata:
  resourceVersion: ""

In "render" mode it matches what these docs describe.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good point. Added a disclaimer to the restore table header: "as generated by the CLI; Velero may add additional fields at runtime". The tables document what the CLI produces (i.e. what --render outputs), not what the final Velero resource looks like after the controller reconciles it.

Add Tech Preview documentation for the etcd snapshot mode including
flag details, comparison tables and usage scenarios.

Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 17, 2026
@mgencur

mgencur commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 20, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws

@mgencur

mgencur commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

/verified by @mgencur
Verified in the same way as openshift/hypershift-oadp-plugin#244
For more details, see this slack thread

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Apr 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@mgencur: This PR has been marked as verified by @mgencur.

Details

In response to this:

/verified by @mgencur
Verified in the same way as openshift/hypershift-oadp-plugin#244
For more details, see this slack thread

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed | Build: 2046088626701340672 | Cost: $1.9106722500000002 | Failed step: hypershift-azure-run-e2e-self-managed

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@mgencur

mgencur commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

/test e2e-azure-self-managed

@openshift-ci

openshift-ci Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

@jparrill: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 80615ba into openshift:main Apr 20, 2026
35 checks passed
sdminonne added a commit to sdminonne/hypershift that referenced this pull request Apr 21, 2026
…test

Add feature gate check, BackupCompleted condition verification,
etcd-init log validation, and etcd-snapshot-specific manifest helpers
to the BackupRestoreEtcdSnapshot e2e test per reviewer feedback.

- Skip test early in BeforeAll when HCPEtcdBackup CRD is not installed
  (feature gate disabled), preventing opaque CRD-not-found failures
- Add BackupCompleted=True condition check on HCPEtcdBackup to ensure
  backup actually succeeded before verifying snapshotURL
- Verify etcd-0 init container logs after restore contain expected
  snapshot download and restore traces
- Extract EtcdSnapshotBackupOptions and EtcdSnapshotRestoreOptions
  helper functions with etcd-snapshot-specific flag values
  (snapshotMoveData=false, restorePVs=false) and TODOs to integrate
  --use-etcd-snapshot flag from PR openshift#8232 once merged

Signed-off-by: Salvatore Dario Minonne <sminonne@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
sdminonne added a commit to sdminonne/hypershift that referenced this pull request Apr 26, 2026
…test

Add feature gate check, BackupCompleted condition verification,
etcd-init log validation, and etcd-snapshot-specific manifest helpers
to the BackupRestoreEtcdSnapshot e2e test per reviewer feedback.

- Skip test early in BeforeAll when HCPEtcdBackup CRD is not installed
  (feature gate disabled), preventing opaque CRD-not-found failures
- Add BackupCompleted=True condition check on HCPEtcdBackup to ensure
  backup actually succeeded before verifying snapshotURL
- Verify etcd-0 init container logs after restore contain expected
  snapshot download and restore traces
- Extract EtcdSnapshotBackupOptions and EtcdSnapshotRestoreOptions
  helper functions with etcd-snapshot-specific flag values
  (snapshotMoveData=false, restorePVs=false) and TODOs to integrate
  --use-etcd-snapshot flag from PR openshift#8232 once merged

Signed-off-by: Salvatore Dario Minonne <sminonne@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
qinqon pushed a commit to qinqon/hypershift that referenced this pull request Apr 29, 2026
…test

Add feature gate check, BackupCompleted condition verification,
etcd-init log validation, and etcd-snapshot-specific manifest helpers
to the BackupRestoreEtcdSnapshot e2e test per reviewer feedback.

- Skip test early in BeforeAll when HCPEtcdBackup CRD is not installed
  (feature gate disabled), preventing opaque CRD-not-found failures
- Add BackupCompleted=True condition check on HCPEtcdBackup to ensure
  backup actually succeeded before verifying snapshotURL
- Verify etcd-0 init container logs after restore contain expected
  snapshot download and restore traces
- Extract EtcdSnapshotBackupOptions and EtcdSnapshotRestoreOptions
  helper functions with etcd-snapshot-specific flag values
  (snapshotMoveData=false, restorePVs=false) and TODOs to integrate
  --use-etcd-snapshot flag from PR openshift#8232 once merged

Signed-off-by: Salvatore Dario Minonne <sminonne@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/cli Indicates the PR includes changes for CLI area/documentation Indicates the PR includes changes for documentation jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants