Commit Graph
597 Commits
Author SHA1 Message Date
Adam Zhang ce474d01e8 Expose resourcemodifiers package to pkg for plugin reuse (#10759)
Move the resourcemodifiers package from internal/ to pkg/ so that external
plugins, such as Restore Item Action (RIA) plugins, can import and reuse
Velero's built-in resource modifier implementation.

Due to Go's internal package visibility restrictions, external plugins
cannot import packages located under internal/. Relocating resourcemodifiers
to pkg/ allows plugins to evaluate and apply resource modifier rules to
in-memory resource objects prior to validation or restore execution,
ensuring consistent behavior with the Velero server without duplicate code.

Update all internal import paths and add an unreleased changelog entry.

Fixes #10668

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-10-29 13:30:10 -04:00
Lyndon-Li e1d82fe483 change log for issue 10724
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-10-27 17:12:34 +08:00
Lyndon-Li e752f55852 Merge branch 'main' into issue-fix-10724 2026-10-27 16:46:19 +08:00
Lyndon-Li 49b8ababbc add UT for parallel files/blocks upload
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-10-27 16:43:30 +08:00
Lyndon-Li dfc7bd5373 add parallel-blocks-upload for block data mover
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-10-27 16:31:01 +08:00
Max Freedom PollardandClaude Opus 5.5 eb4a085603 Allow backup and restore logs to be fetched while Finalizing
velero backup logs and velero restore logs check the phase before they
create a DownloadRequest, and only go ahead for Completed,
PartiallyFailed, Failed, WaitingForPluginOperations and
WaitingForPluginOperationsPartiallyFailed. Finalizing and
FinalizingPartiallyFailed are not on either list, so both commands
answer "logs ... are not available until it's finished processing" for
a backup or restore in those phases.

The log is already in object storage by then. The backup controller
writes it in persistBackup (PutBackup uploads the log first) before the
Backup is patched out of InProgress, and the restore controller calls
PutRestoreLog before it sets the WaitingForPluginOperations or
Finalizing phase. Neither finalizer controller writes the log again,
and the DownloadRequest controller signs URLs in both phases. Finalizing
also comes after WaitingForPluginOperations, which both commands
already accept, so a log that could be read while plugin operations
were running becomes unreadable again until the finalizer is done.

For restores that window is not short. The restore finalizer waits up
to the resource timeout for restored PVCs to bind before patching their
PVs, and waits for post-restore exec hooks, so a restore can stay in
Finalizing for minutes, and a restore stuck there is when its log is
most needed.

Add the two Finalizing phases to both allowlists. The new table tests
create a backup or restore in each phase and check that the phases with
a log get as far as requesting it, while New, InProgress and
FailedValidation are still refused.

Signed-off-by: Max Freedom Pollard <272618364+MaxFreedomPollard@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 19:41:36 -07:00
Harshil-1603 b02f684ece Clarify client and server version mismatch warnings (#10655)
* Clarify client and server version mismatch warnings

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>

* Test both client and server version mismatch warnings

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>

* Add changelog for PR 10655

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>

---------

Signed-off-by: Harshil-1603 <harshil.agrawal098@gmail.com>
2026-10-22 14:22:07 +08:00
Wenkai Yin(尹文开) c6632db674 Introduce "AllowExistingVolumeMismatch" in restore to support bypassing same volume handle pre-flight checking (#10651)
Run the E2E test on kind / setup-test-matrix (push) Failing after 3s
Scorecard supply-chain security / Scorecard analysis (push) Skipped
e2e-test-kind.yaml / extract (push) Failing after 9s
Run the E2E test on kind / get-go-version (push) Failing after 11s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
Run the E2E test on kind / run-csi-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 7s
Main CI / Build (push) Skipped
Introduce "AllowExistingVolumeMismatch" in restore to support bypassing same volume handle pre-flight checking

Signed-off-by: Wenkai Yin (尹文开) <wenkai.yin@broadcom.com>
2026-10-15 11:39:38 +08:00
Daniel Jiang 6c06da8778 Update for "vmware-tanzu" to "velero-io" update (#10650)
This commit makes change to the code, scripts and some template files to
reflect the change of the org after donation to CNCF.

The files under "/site" "/changelogs" and "/design" are deliberately
excluded in this change.  I'll make follow up changes in these
directories when needed.

Signed-off-by: Daniel Jiang <daniel.jiang@broadcom.com>
2026-10-13 08:40:07 -04:00
Abhayraj Jaiswal 0d28bab85e fix(cli): update legacy repository issue URLs in velero bug command (#10640)
e2e-test-kind.yaml / extract (push) Failing after 6s
Run the E2E test on kind / get-go-version (push) Failing after 8s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / setup-test-matrix (push) Failing after 4s
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 8s
Main CI / get-go-version (push) Failing after 8s
Main CI / Build (push) Skipped
Scorecard supply-chain security / Scorecard analysis (push) Skipped
Update issue URLs in pkg/cmd/cli/bug/bug.go and GitHub issue templates from legacy vmware-tanzu/velero to velero-io/velero, and add unit test coverage for the bug CLI package.

Closes #10639

Signed-off-by: Abhayraj Jaiswal <abhayraj916146@gmail.com>
2026-10-12 13:33:02 -04:00
Abhayraj Jaiswal 170085858e fix(uninstall): standardize error messages to Velero lowercase conventions (#10619)
Run the E2E test on kind / setup-test-matrix (push) Failing after 3s
Scorecard supply-chain security / Scorecard analysis (push) Skipped
e2e-test-kind.yaml / extract (push) Failing after 6s
Run the E2E test on kind / get-go-version (push) Failing after 7s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 7s
Main CI / Build (push) Skipped
Align error return statements in pkg/cmd/cli/uninstall/uninstall.go with Velero Code Standards by keeping error messages lower-cased.

Closes #10618

Signed-off-by: Abhayraj Jaiswal <abhayraj916146@gmail.com>
2026-10-08 13:59:32 +08:00
lyndon-li 1acecf8754 enable VGDP soothing by default and set queue length as 5 (#10578)
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-09-28 11:18:50 +08:00
Jeremy Schoemaker 8206b79673 Fix schedule create dropping annotations
velero schedule create registers --annotations through BackupOptions.BindFlags,
but the Schedule ObjectMeta it builds only sets Labels, so the flag was accepted
and silently discarded.

This matters beyond the Schedule object itself: BackupBuilder.FromSchedule
falls back to schedule.Annotations when the template carries none, so every
backup generated by the schedule lost the annotations too. velero schedule
describe already prints these fields and the Schedule CRD already carries them,
so the create path was the only gap.

Same shape as #10526, which fixed the backup type being dropped on the same
struct literal.

Signed-off-by: Jeremy Schoemaker <jeremy@shoemoney.com>
2026-09-19 17:32:48 -05:00
Xun Jiang/Bruce Jiang 7c860515f3 Merge pull request #10507 from mmustafasenoglu/fix/install-wait-default
Run the E2E test on kind / setup-test-matrix (push) Failing after 2s
e2e-test-kind.yaml / extract (push) Failing after 6s
Run the E2E test on kind / get-go-version (push) Failing after 7s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 6s
Main CI / Build (push) Skipped
Scorecard supply-chain security / Scorecard analysis (push) Skipped
install: clarify --wait flag behavior, default false
2026-09-16 11:04:48 +08:00
Mustafa Senoglu c1d6ff9c1d install: clarify --wait flag behavior, default false
Keep the existing opt-in behavior (consistent with velero backup create and velero restore create, where waiting is disabled by default and enabled with --wait), and clarify it in the command help text. Add tests pinning the --wait default (false) and flag parsing.

Signed-off-by: Mustafa Senoglu <mmustafasenoglu0@gmail.com>
2026-09-15 11:14:29 +03:00
Chlins Zhang 53a6c37d2f Merge pull request #10449 from PratikMane0112/fix/snapshot-location-label-selector
Fix snapshot-location get --selector flag to actually filter VolumeSnapshotLocations by label
2026-09-15 16:04:34 +08:00
lyndon-li c4f73126e8 Merge pull request #10526 from Daniel-1600/fix/schedule-create-backup-type
Fix schedule create dropping backup type
2026-09-15 14:33:50 +08:00
872f903091 Add configurable tolerations for PodVolumeBackup and data mover pods (#9575)
Run the E2E test on kind / setup-test-matrix (push) Failing after 3s
Scorecard supply-chain security / Scorecard analysis (push) Skipped
e2e-test-kind.yaml / extract (push) Failing after 6s
Run the E2E test on kind / get-go-version (push) Failing after 7s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 7s
Main CI / Build (push) Skipped
* Remove toleration whitelist for PodVolumeBackup and data mover pods

Instead of filtering tolerations through a hardcoded allowlist
(ThirdPartyTolerations), inherit all tolerations from the node-agent
daemonset for PodVolumeBackup/Restore and DataUpload/Download pods,
and from the Velero deployment for maintenance jobs.

This enables backups and restores on nodes with custom NoExecute taints,
which was previously impossible since only two specific toleration keys
were whitelisted.

Fixes #9476

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

* Fix codespell: replace 'whitelist' with 'allowlist' in changelog

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

* Implement deduplication of tolerations and add unit tests for the new function

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>

* Merge node-agent-configmap tolerations with third-party allowlist

Add a `tolerations` field to the node-agent-configmap so operators can
declare hosting-pod tolerations explicitly, per blackpiglet's review
feedback that tolerations shouldn't be read from the DaemonSet alone.
These are merged with (and deduplicated against) DaemonSet tolerations
matching the existing third-party allowlist
(kubernetes.azure.com/scalesetpriority, CriticalAddonsOnly), restoring
that allowlist per the follow-up suggestion to keep inheriting it
alongside the new config option.

The toleration dedup helper is moved from pkg/exposer to
pkg/util/kube (exported as DeduplicateTolerations) so it can be
shared with pkg/nodeagent without an import cycle.

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>

* Fix testifylint finding in TestGetTolerations

golangci-lint v2.12.0 (pinned in pr-linter-check.yml) flagged the
shared assert.Equal after the if/else as require-error: use require
for the error assertion so each branch is self-contained, matching
the pattern used elsewhere in this file.

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>

* Document toleration merge priority in GetTolerations

Per blackpiglet's review feedback: clarify that configured tolerations
take priority over allowlisted daemonset tolerations because they're
appended first and DeduplicateTolerations keeps only the first
occurrence of each exact (Key, Operator, Value, Effect) combination.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>

---------

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2026-09-14 18:05:01 -04:00
Daniel Mungai 7d31c708e8 Fix schedule create dropping backup type
Signed-off-by: Daniel Mungai <chegedan699@gmail.com>
2026-09-11 14:25:45 +03:00
Max Freedom Pollard 4c007c0af4 Scope schedule and repo CLI list calls to the Velero namespace (#10482)
Run the E2E test on kind / setup-test-matrix (push) Failing after 4s
e2e-test-kind.yaml / extract (push) Failing after 6s
Run the E2E test on kind / get-go-version (push) Failing after 7s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 8s
Main CI / Build (push) Skipped
Scorecard supply-chain security / Scorecard analysis (push) Skipped
* Scope schedule and repo CLI list calls to the Velero namespace

velero schedule get, velero schedule describe, velero schedule
pause/unpause and velero repo get built a ctrlclient.ListOptions with a
LabelSelector but no Namespace, so the list ran across every namespace in
the cluster. Their single-name paths in the same functions already scope
to f.Namespace(), and every sibling command (backup get, restore get,
backup describe, restore describe, snapshot-location get, schedule
delete) passes Namespace too, so the omission was an oversight rather
than intent.

The read commands print another installation's Schedules and
BackupRepositories. runPause is worse: velero schedule pause --all and
velero schedule unpause --all fetch Schedules from every namespace and
then write Spec.Paused on each, so pausing one installation's schedules
pauses every other installation's schedules as well.

Add Namespace: f.Namespace() to the four List calls:

  pkg/cmd/cli/schedule/get.go:61
  pkg/cmd/cli/schedule/describe.go:59
  pkg/cmd/cli/schedule/pause.go:114
  pkg/cmd/cli/repo/get.go:61

Neither pkg/cmd/cli/schedule nor pkg/cmd/cli/repo had any tests, so the
regression tests are new files. Each seeds a fake client with one object
in the Velero namespace and one in another-velero, and asserts the second
is neither listed, described, nor paused.

Signed-off-by: Max Freedom Pollard <272618364+MaxFreedomPollard@users.noreply.github.com>

* Add changelog for PR 10482

Signed-off-by: Max Freedom Pollard <272618364+MaxFreedomPollard@users.noreply.github.com>

---------

Signed-off-by: Max Freedom Pollard <272618364+MaxFreedomPollard@users.noreply.github.com>
2026-09-09 16:52:11 -04:00
31333f7610 Add structured JSON output for velero restore describe command (#9983)
Run the E2E test on kind / setup-test-matrix (push) Failing after 4s
e2e-test-kind.yaml / extract (push) Failing after 9s
Run the E2E test on kind / get-go-version (push) Failing after 10s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 5s
Main CI / get-go-version (push) Failing after 6s
Main CI / Build (push) Skipped
* Add structured JSON output for velero restore describe command

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Add changelog for PR 9983

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Fix CSI snapshot restore JSON output to distinguish snapshot vs dataMovement type

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Remove the redundant details wrapper key from podVolumeRestores so phase counts sit flat alongside uploaderType, matching the plaintext output structure.

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Add missing resourcePolicy to json struct

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Fix linter issue

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* fix codecoverage

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Handle nil CSI snapshot fields in restore JSON describe

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

* Fix lint issue

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>

---------

Signed-off-by: Prasad Joshi <prajoshi@redhat.com>
Co-authored-by: lyndon-li <98304688+Lyndon-Li@users.noreply.github.com>
Co-authored-by: Tiger Kaovilai <tkaovila@redhat.com>
2026-09-03 14:36:51 -04:00
PratikMane0112 3c47a2c326 Update label selector pattern and add a test case
Signed-off-by: PratikMane0112 <prmane@redhat.com>
2026-08-31 15:00:48 +05:30
Pratik Mane a2fc011198 Merge branch 'main' into fix/snapshot-location-label-selector 2026-08-30 11:16:26 +05:30
PratikMane0112 226fefbc29 Fix snapshot-location get --selector to filter VSLs by label
Signed-off-by: PratikMane0112 <prmane@redhat.com>
2026-08-30 11:00:07 +05:30
Adam Zhang edcaeff91d Merge pull request #10167 from samay43/fix/backup-name-validation
Run the E2E test on kind / setup-test-matrix (push) Failing after 7s
e2e-test-kind.yaml / extract (push) Failing after 11s
Run the E2E test on kind / get-go-version (push) Failing after 12s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 8s
Main CI / get-go-version (push) Failing after 9s
Main CI / Build (push) Skipped
validate backup name format before contacting the API server
2026-08-29 22:22:36 +08:00
Pranjal ea3abc3107 Reject velero backup delete when BSL is read-only (#10353)
The CLI now checks backup storage location access mode before submitting
a delete request. Also reject backups with no storage location set and
cache BSL lookups when deleting multiple backups.

Fixes #4203

Signed-off-by: PranjalManhgaye <manhgayepranjal@gmail.com>
2026-08-27 13:45:51 +08:00
Wenkai Yin(尹文开)andchlins b7d83a6f2b Cherry pick the in-place restore implementation PRs from feature branch to main (#10415)
* Update CRDs and CLI to support in-place restore (#10038)

Update CRDs(Restore, DataDownload, PodVolumeRestore) and restore create CLI to support in-place restore

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>

* Update Kopia(filesystem) uploader to support incremental and deleteExtraFile during restore (#10066)

Update Kopia(filesystem) uploader to support incremental and deleteExtraFile during restore

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>

* Update Restore Exposer and PVC CSI to support in-place restore (#10104)

1. Update Restore Exposer to support exposing with existing PV for in-place restore
2. Update PVC CSI RIA to continue the restore process for in-place restore

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>

* Update Block uploader to support increase restore (#10244)

Update Block uploader to support increase restore

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>

* Update Exposer to recreate the target PV if the volume mode is different with the restore PVC (#10257)

Update Exposer to recreate the target PV if the volume mode is different with t
he restore PVC

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>

* Preserve PVC selected-node annotation via carrier annotation for in-place restore

For in-place volume data restore, the existing PVC is deleted and
recreated. For StorageClasses with the WaitForFirstConsumer volume
binding mode, losing the volume.kubernetes.io/selected-node annotation
could let the scheduler place the recreated workload Pod in a different
zone than the original PV, leaving it stuck in ContainerCreating.

Instead of relying on RestoreItemAction execution order (the generic
PVC RIA unconditionally strips the selected-node annotation), the PVC
CSI RIA now captures the annotation from the existing PVC right before
deleting it and carries it on the target PVC via the Velero-internal
restore.velero.io/inplace-restore-selected-node annotation. The restore
engine translates the carrier back to the Kubernetes annotation after
all RestoreItemActions have run and always strips the carrier so it
never lands on the cluster.

This makes the behavior independent of RIA ordering: the Kubernetes
annotation is stripped by default on every path (including when the
target PVC does not exist and Velero falls back to provisioning a new
PVC), and preservation only happens when the CSI RIA explicitly
captured a value from the existing PVC.

Signed-off-by: chlins <chlins.zhang@gmail.com>

* Update the control path to make the in-place incremental restore with block data mover work E2E (#10410)

Update the control path to make the in-place incremental restore with block data mover work E2E

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>

---------

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>
Signed-off-by: chlins <chlins.zhang@gmail.com>
Co-authored-by: chlins <chlins.zhang@gmail.com>
2026-08-26 10:21:32 -04:00
R4mbo f5deaf98d0 Merge branch 'main' into fix/backup-name-validation 2026-08-25 22:26:42 +05:30
Xun Jiang 00d7e7d022 Avoid duplicated InitContainer names generated in velero install CLI.
Add random string at the end when there is name collision detected.

Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-08-21 17:41:30 +08:00
opbot_xd 89da479796 Cleanup: Remove deprecated --wait flag from velero uninstall #10316
Signed-off-by: opbot_xd <awasthikrishna23052005@gmail.com>
2026-08-18 03:40:05 +05:30
Jay Sawant 798e34054b fix: trim spaces in ordered-resources names (#10259)
* fix: trim spaces in ordered-resources names

Signed-off-by: Jay2006sawant <jay242902@gmail.com>

* chore: rename changelog for PR 10259

Signed-off-by: Jay2006sawant <jay242902@gmail.com>

---------

Signed-off-by: Jay2006sawant <jay242902@gmail.com>
2026-08-14 16:17:16 +08:00
samay43 efe1279d49 validate schedule-derived backup names don't exceed length limit
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-14 10:37:57 +05:30
samay43 e2c3b4b269 fix lint: use require.NoError for error assertion
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-13 11:08:21 +05:30
samay43 fa3f5737c8 add test coverage for Args validation and Validate method
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-13 10:57:54 +05:30
R4mbo b731710e81 Merge branch 'main' into fix/backup-name-validation 2026-08-13 09:46:24 +05:30
samay43 c27a661d1d gofmt: fix indentation in create.go
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-13 09:44:47 +05:30
samay43 52f7c24084 address review feedback: validate backup name and require name unless from-schedule
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-12 16:39:47 +05:30
samay43 164d9343aa move backup name validation to Args to run before cluster contact, and validate regardless of --from-schedule
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-12 09:51:10 +05:30
Ralthos 105350b78b Make restore logs testable by returning errors (#10234)
pkg/cmd/cli/restore/logs.go was the last command in the CLI still calling
cmd.Exit, which calls os.Exit directly. Two of its own tests were skipped
because of it, and said so:

    t.Skip("Cannot test restore not complete case due to cmd.Exit() call")

This gives restore logs the LogsOptions shape that backup logs already
uses: Complete, BindFlags and Run returning an error, with the cobra
command passing that to cmd.CheckError. Both skipped tests now run and
assert on the returned errors.

Exit status is unchanged; cmd.CheckError also exits 1. The two refusal
messages now carry the standard "An error occurred:" prefix and match
the wording backup logs uses.

Signed-off-by: saral <ilovegojo2580@gmail.com>
2026-08-11 14:33:02 -04:00
Xun Jiang/Bruce Jiang 40de7f9f97 Make backupType case insensitive in the CLI. (#10189)
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
e2e-test-kind.yaml / extract (push) Failing after 8s
Run the E2E test on kind / get-go-version (push) Failing after 9s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 7s
Main CI / Build (push) Skipped
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-08-10 16:29:13 -04:00
R4mbo e968649bba Merge branch 'main' into fix/backup-name-validation 2026-08-06 10:25:32 +05:30
Tiger KaovilaiandCopilot 80440f5d5a Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
2026-08-05 08:17:44 -07:00
JosephandClaude Opus 4.6 3c49bbec75 Add dynamic resource autocompletion to Velero CLI
Register cobra completion callbacks for all commands that accept
existing Velero resource names. A centralized completeNames helper
uses apimachinery's meta.ExtractList/Accessor to list resources with
a 3-second timeout, filter by prefix, and deduplicate already-typed
arguments. Wires ValidArgsFunction on 20 commands and
RegisterFlagCompletionFunc on 9 flags across backup, restore,
schedule, backuplocation, snapshotlocation, repo, and debug.

Closes #9782

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Joseph <jvaikath@redhat.com>
2026-08-05 08:17:44 -07:00
samay43 be6b4d38f2 gofmt pkg/cmd/cli/backup/create.go
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-05 20:28:12 +05:30
samay43 12c1ef4ff2 validate backup name format before contacting the API server
Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-05 14:03:42 +05:30
Shubham Pampattiwar ee2c3a4cd2 Add test coverage for --skip-default-resource-modifier CLI flag
Add the flag to the existing TestCreateCommand test to verify flag
binding and option parsing.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-08-03 13:19:48 -07:00
Shubham Pampattiwar c509e5369c Wire default resource modifier through install path and builder
Add --default-resource-modifier-configmap to the install CLI and
deployment builder so administrators can configure it during velero
install. Wire through VeleroOptions and podTemplateConfig following
the existing --backup-repository-configmap pattern.

Add SkipDefaultResourceModifier builder method to RestoreBuilder.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-08-03 13:19:47 -07:00
Shubham Pampattiwar 34bc3c7e1a Add --skip-default-resource-modifier flag to restore CLI
When set, the server-configured default resource modifier is skipped
for this restore. Only sets the *bool field when the flag is true,
leaving it nil otherwise.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-08-03 13:19:47 -07:00
Lyndon-Li 8fe02224b9 set CBT service to uploader
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-03 13:25:18 +08:00
Xun Jiang/Bruce Jiang 36647b0b2f Merge pull request #9974 from blackpiglet/jxun/fips-140
Disable fips140 enforcement because Kopia doesn't support it.
2026-07-22 17:28:58 +08:00