Commit Graph
6646 Commits
Author SHA1 Message Date
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
83de7cab47 Bump google.golang.org/protobuf (#10290)
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
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
push.yml / extract (push) Failing after 7s
Main CI / get-go-version (push) Failing after 8s
Main CI / Build (push) Skipped
Bumps google.golang.org/protobuf from 1.36.12-0.20260120151049-f2248ac996af to 1.36.12.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-version: 1.36.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17 16:55:50 +08:00
Shubham PampattiwarandGitHub 6a751ae483 Add Docker Pulls and GitHub stars badges to README (#10278)
Surface adoption signals (500M+ Docker Hub pulls, 10K+ GitHub stars)
at the top of the README, matching the org profile README. Also make
the release badge clickable.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-08-17 16:55:40 +08:00
RalthosandGitHub 53ba2e96d7 Add printer columns for DownloadRequest and ServerStatusRequest (#10229)
DownloadRequest and ServerStatusRequest were the last two Velero CRDs
without printer columns, so kubectl showed only NAME and AGE for both.

DownloadRequest gains the target kind and name, its phase, and age.
ServerStatusRequest gains its phase, the reported server version, the
time the controller processed it, and age.

status.downloadURL is deliberately left out: it is a pre-signed URL that
grants access to the object, and a default list view is the wrong place
for it. status.expiration is left out because kubectl renders a date
column as time elapsed, so a future timestamp prints <invalid>.

Signed-off-by: saral <ilovegojo2580@gmail.com>
2026-08-17 16:55:29 +08:00
R4mboandGitHub b8de7ba506 fix nil pointer dereference in EnsureDeleteVS and EnsureDeleteVSC timeout paths (#10292)
* fix nil pointer dereference in EnsureDeleteVS and EnsureDeleteVSC timeouts

Signed-off-by: samay43 <samayrbhat43@gmail.com>

* add changelog entry

Signed-off-by: samay43 <samayrbhat43@gmail.com>

---------

Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-17 16:55:14 +08:00
lyndon-liandGitHub da5bee7097 Use thread safe map for cancel recorder (#10255)
* use thread safe map for cancel recorder

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* use atomic load and store

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

---------

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-17 16:55:01 +08:00
lyndon-liandGitHub d4e62bb979 Add cap for backup data extraction (#10260)
* add cap for backup data extraction

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* set default extraction size

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* control total size only

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* add doc for max-backup-extraction-size

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

---------

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-17 16:29:42 +08:00
lyndon-liandGitHub adc35b635c Cap the unzip of metadata download to avoid OOM kill (#10258)
* cap the unzip of metadata download to avoid oom kill

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* detect when EOF is retuend because of cap

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

---------

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-17 16:29:01 +08:00
lyndon-liandGitHub ff4783470e cap the metadata decompression in object store (#10270)
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-17 16:19:55 +08:00
R4mboandGitHub 856c3398f7 fix nil pointer dereference in EnsureDeletePVC, EnsureDeletePV and EnsureDeletePod timeout paths (#10293)
* fix nil pointer dereference in kube EnsureDelete timeout paths

Signed-off-by: samay43 <samayrbhat43@gmail.com>

* add changelog entry

Signed-off-by: samay43 <samayrbhat43@gmail.com>

---------

Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-17 16:05:21 +08:00
lyndon-liandGitHub 61c9b5b84f credentialFile in Config of BSL should be used internally (#10254)
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-17 14:59:27 +08:00
Krishna AwasthiandGitHub 9d01d7f491 test: add verification for skippedPVTracker in backup tests (#10283)
Signed-off-by: opbot_xd <awasthikrishna23052005@gmail.com>
2026-08-17 13:39:03 +08:00
harshit sainiandGitHub 11a071637b Use k8s.io/api well-known label constants instead of hardcoded strings (#10279)
* refactor: use k8s.io/api well-known label constants

Several well-known Kubernetes label strings were hardcoded across the
codebase instead of using the constants already exported by
k8s.io/api/core/v1, which is an existing dependency:

  "kubernetes.io/hostname"        -> corev1api.LabelHostname
  "kubernetes.io/os"              -> corev1api.LabelOSStable
  "topology.kubernetes.io/zone"   -> corev1api.LabelTopologyZone

The local kube.NodeOSLabel and zoneLabel consts, which duplicated the
upstream values verbatim, are now defined in terms of the upstream
constants rather than repeating the literal. Both are kept: NodeOSLabel
is exported and referenced from four packages alongside NodeOSLinux and
NodeOSWindows, which have no upstream equivalent, and zoneLabel sits
beside the deprecated-label fallback it is compared against.

No functional change - every replacement is a constant with an identical
value.

Signed-off-by: Harshit saini <harshitsaini1188@gmail.com>

* Add changelog for #10279

Signed-off-by: Harshit saini <harshitsaini1188@gmail.com>

* Cover the selected-node path in createRestorePod

TestCreateRestorePod only exercised selectedNode == "", so the branch
that pins the restore pod to a node was never executed. Add a case with
a selected node and assert the resulting pod carries the hostname label
in its node selector.

Signed-off-by: Harshit saini <harshitsaini1188@gmail.com>

* Also use constants for the arch and deprecated zone labels

Extends the same replacement to the two remaining well-known labels
raised on the issue:

  "kubernetes.io/arch"                      -> corev1api.LabelArchStable
  "failure-domain.beta.kubernetes.io/zone"  -> corev1api.LabelFailureDomainBetaZone

zoneLabelDeprecated in item_backupper.go was the last local const still
repeating a literal that upstream already exports, so the zone pair now
reads consistently against k8s.io/api. The deprecation note upstream
applies to the label itself, not the constant; Velero reads that label
deliberately as the fallback for PVs created before the topology labels
existed.

Signed-off-by: Harshit saini <harshitsaini1188@gmail.com>

---------

Signed-off-by: Harshit saini <harshitsaini1188@gmail.com>
2026-08-17 13:37:44 +08:00
lyndon-liandGitHub ae6f40c286 Merge pull request #10273 from Lyndon-Li/fix-pvr-regression
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
e2e-test-kind.yaml / extract (push) Failing after 5s
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 8s
Main CI / get-go-version (push) Failing after 9s
Main CI / Build (push) Skipped
Fix PVR regression
2026-08-15 10:36:46 +08:00
Daniel JiangandGitHub 293f6f6a63 Harden "patchDynamicPVWithVolumeInfo" (#10271)
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
e2e-test-kind.yaml / extract (push) Failing after 6s
Run the E2E test on kind / get-go-version (push) Failing after 6s
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
This commit hardens the func "patchDynamicPVWithVolumeInfo":
1. Add nil checks for storageClass and the attributes.
2. Remove the double reported errors.

Signed-off-by: Daniel Jiang <daniel.jiang@broadcom.com>
2026-08-14 19:26:15 +08:00
Lyndon-Li 913ec9f325 fix PVR regression
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-14 18:11:32 +08:00
V PrajwalandGitHub 194404971a Fix schedule reconciler aliasing server-wide skipImmediately default (#10242)
e2e-test-kind.yaml / extract (push) Failing after 5s
Run the E2E test on kind / get-go-version (push) Failing after 6s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
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
When a Schedule has no explicit spec.skipImmediately, the reconciler
assigned &c.skipImmediately directly into the Schedule's spec pointer.
The subsequent write-through-pointer (*ptr = false) mutated the
reconciler's own shared field, silently disabling
--schedule-skip-immediately for every schedule reconciled afterward
for the life of the process.

Fix: copy the value into a fresh bool before taking its address.

Adds TestReconcileDoesNotCorruptReconcilerSkipImmediately, which
reconciles two schedules against one reconciler instance and asserts
the shared default is preserved.

Signed-off-by: Prajwal <percy38621@gmail.com>
2026-08-14 16:18:00 +08:00
Krishna AwasthiandGitHub 41b95b5919 Refactor: Replace context.TODO() with properly plumbed contexts in CSI actions (#10247)
Signed-off-by: opbot_xd <awasthikrishna23052005@gmail.com>
2026-08-14 16:17:29 +08:00
Jay SawantandGitHub 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
Sairam BisoyiandGitHub 31d0e967be E2E: add kind VolumeSnapshotClass test data (#10236)
BeforeSuite applies testdata/volume-snapshot-class/<provider>.yaml when
CSI is enabled, and there is no kind.yaml, so the suite fails before any
spec runs and none of the existing CSI tests can run on kind.

This adds a class for csi-driver-host-path. The driver ships its own, but
it lacks the velero.io/csi-volumesnapshot-class label so Velero never
selects it. Nothing sets FEATURES=EnableCSI for kind yet, so no test that
runs today is affected.

Signed-off-by: Sairam Bisoyi <sairamb2007.21@gmail.com>
2026-08-14 16:16:48 +08:00
RalthosandGitHub 8e3c92f0bf Document what the DownloadRequest Processed phase means (#10245)
Processed means the controller signed a URL into status.downloadURL. It
does not mean the object is present: GetDownloadURL builds the key by
convention and signs it, with no existence check, so a request whose
target never produced a file still reaches Processed and the URL 404s.

The CLI never sees this because it filters on backup and restore phase
before creating the request. Other API consumers have nothing in the
status telling them that filter is needed, and the field description
said only "Phase is the current state of the DownloadRequest".

Documentation only. The field comments are what controller-gen writes
into the CRD, so this reaches kubectl explain and generated clients
without anyone reading the Go source.

Refs #10232

Signed-off-by: saral <ilovegojo2580@gmail.com>
2026-08-14 15:37:05 +08:00
lyndon-liandGitHub d60ee8ba0e clarify the security context to velero server (#10256)
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-14 15:30:45 +08:00
lyndon-liandGitHub 4f55fb5a65 Fix pvr deadlock (#10250)
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
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 7s
Main CI / get-go-version (push) Failing after 8s
Main CI / Build (push) Skipped
* fix pvr deadlock

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* fix pvr deadlock

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

---------

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-13 12:21:20 -04:00
Chlins ZhangandGitHub de8642d4fd Merge pull request #10261 from chlins/docs/changelog-10155
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
e2e-test-kind.yaml / extract (push) Failing after 8s
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 / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 7s
Main CI / get-go-version (push) Failing after 8s
Main CI / Build (push) Skipped
chore(changelogs): rename unreleased changelog entry to 10155-chlins
2026-08-13 17:11:07 +08:00
chlins b6e091a441 chore(changelogs): rename unreleased changelog entry to 10155-chlins
Signed-off-by: chlins <chlins.zhang@gmail.com>
2026-08-13 16:52:23 +08:00
Xun Jiang/Bruce JiangandGitHub b353fafe5e Merge pull request #10176 from blackpiglet/jxun/volume_policy_support_data_mover_setting
Support to set data mover for the uploader from volume policy.
2026-08-13 11:34:14 +08:00
Chlins ZhangandGitHub 7d36376109 Merge pull request #10251 from Lyndon-Li/pvr-restorer-could-run-concurrently
Fix wrong node-agent check result when PVR restorer run concurrently
2026-08-13 11:20:37 +08:00
R4mboandGitHub 1e368b0778 add curl --fail flag to kubectl download in e2e kind workflow (#10174)
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
* add curl --fail flag to kubectl download in e2e kind workflow

Signed-off-by: samay43 <samayrbhat43@gmail.com>

* add changelog entry

Signed-off-by: samay43 <samayrbhat43@gmail.com>

---------

Signed-off-by: samay43 <samayrbhat43@gmail.com>
2026-08-12 10:24:40 -07:00
Lyndon-Li 5dd0b9e849 fix node-agent check contest
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-12 22:49:21 +08:00
Lyndon-Li 158f403d34 Merge branch 'main' into pvr-restorer-could-run-concurrently 2026-08-12 22:44:22 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2d10d3685f Bump the github-actions group with 4 updates (#10239)
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
e2e-test-kind.yaml / extract (push) Failing after 5s
Run the E2E test on kind / get-go-version (push) Failing after 6s
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
Bumps the github-actions group with 4 updates: [actions/github-script](https://github.com/actions/github-script), [actions/cache](https://github.com/actions/cache), [jpmcb/prow-github-actions](https://github.com/jpmcb/prow-github-actions) and [actions/stale](https://github.com/actions/stale).


Updates `actions/github-script` from 7 to 9
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v9)

Updates `actions/cache` from 4 to 6
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v6)

Updates `jpmcb/prow-github-actions` from 1.1.3 to 2.0.0
- [Release notes](https://github.com/jpmcb/prow-github-actions/releases)
- [Commits](https://github.com/jpmcb/prow-github-actions/compare/f4d01dd4b13f289014c23fe5a19878a2479cb35b...c44ac3a57d67639e39e4a4988b52049ef45b80dd)

Updates `actions/stale` from 10.1.1 to 11.0.0
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10.1.1...v11.0.0)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: jpmcb/prow-github-actions
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/stale
  dependency-version: 11.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-12 16:30:29 +08:00
RalthosandGitHub 8d275e69cc Print n/a for unset timestamps in backup and restore get (#10206)
velero backup get prints <nil> in CREATED for a backup that never
started, and velero restore get prints it in both STARTED and COMPLETED.
The timestamps are *metav1.Time and are appended to the row unformatted,
so a nil pointer reaches the user as Go's nil literal.

This is reachable in ordinary use. A backup that fails validation never
starts, so StartTimestamp is never set, and a restore that fails
validation gets neither timestamp.

formatTimestamp returns n/a for an unset value, matching
humanReadableTimeFromNow, which already handles a zero expiration in the
same row. A set timestamp is unchanged.

Adds tests for both printers, which had no row-level coverage.

Signed-off-by: saral <ilovegojo2580@gmail.com>
2026-08-12 15:42:53 +08:00
AftAb-25andGitHub 9a1d2e6eb0 Fix switch case ordering bug in filterBackupOwnerReferences (#10161)
* Fix switch case ordering in filterBackupOwnerReferences (Issue #10160)

When client.Get returns a transient (non-NotFound) error, the previous
case ordering caused the UID mismatch case to fire against a zero-value
struct, silently dropping the owner reference and logging a misleading
'mismatched UIDs' warning instead of the intended error log.

Fix: move the general error handler before the UID mismatch check so
it is evaluated while err is still relevant. The UID check now only
runs when err == nil (i.e. the Schedule was successfully fetched).

Also add a test case that injects a transient Get error via the fake
client interceptor to verify the owner reference is preserved.

Signed-off-by: aftab <aftab123215@gmail.com>

* Add changelog for #10160

Signed-off-by: aftab <aftab123215@gmail.com>

---------

Signed-off-by: aftab <aftab123215@gmail.com>
2026-08-12 15:12:58 +08:00
Daniel JiangandGitHub 2aa5175594 Mark the existed resource as skipped during restore (#10243)
This commit makes sure the object is marked as "skipped" when there's
object with same name exists in the cluster during restore.  Otherwise,
such object will appeared as "failed" in the "Resource list" in the
output of "velero restore describe xxx --details"

Signed-off-by: Daniel Jiang <daniel.jiang@broadcom.com>
2026-08-12 13:53:56 +08:00
lyndon-liandGitHub 550bec10ed Merge pull request #10230 from Lyndon-Li/block-uploader-restore-progress
e2e-test-kind.yaml / extract (push) Failing after 8s
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) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 7s
Main CI / get-go-version (push) Failing after 8s
Main CI / Build (push) Skipped
Use source size in progress for block uploader restore
2026-08-12 08:49:53 +08:00
Krishna AwasthiandGitHub c303809857 Enhancement: Add missing test assertions for PVCBackupSummary in podvolume backupper (#10218)
Signed-off-by: opbot_xd <awasthikrishna23052005@gmail.com>
2026-08-11 15:42:48 -04:00
CopilotGitHubkaovilaicopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
0ba74dbf51 Group Dependabot GitHub Actions updates (#10220)
* Initial plan

* Group Dependabot GitHub Actions updates

Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>
2026-08-11 15:32:17 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9cb2c25eb8 Bump kentaro-m/auto-assign-action from 2.0.0 to 2.0.2 (#10201)
Bumps [kentaro-m/auto-assign-action](https://github.com/kentaro-m/auto-assign-action) from 2.0.0 to 2.0.2.
- [Release notes](https://github.com/kentaro-m/auto-assign-action/releases)
- [Commits](https://github.com/kentaro-m/auto-assign-action/compare/v2.0.0...v2.0.2)

---
updated-dependencies:
- dependency-name: kentaro-m/auto-assign-action
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 15:28:38 -04:00
CopilotGitHubkaovilaicopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
1832f099f2 backport: add pre-merge label-on-comment support; add copilot-instructions and auto-labeler for changelog exemptions (#10211)
* Initial plan

* chore: commit backport.yml pre-merge labeling enhancement

Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>

* chore: auto-label kind/changelog-not-required for non-shipping PRs; add copilot-instructions.md

Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>

* chore: add changelog naming convention to copilot-instructions; tighten labeler exclusions

Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>

* fix: use # as sed delimiter to avoid conflict with | in alternation group

Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kaovilai <11228024+kaovilai@users.noreply.github.com>
2026-08-11 15:23:56 -04:00
RalthosandGitHub 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
ae1d869c77 Add printer columns for Backup and Restore CRDs (#10200)
e2e-test-kind.yaml / extract (push) Failing after 7s
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 / setup-test-matrix (push) Successful in 3s
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
* Add printer columns for Backup and Restore CRDs

kubectl get backup and kubectl get restore fall back to the default
NAME/AGE table because neither type declares printer columns, while
Schedule and BackupStorageLocation do. Anything reading the API without
the velero binary cannot see a backup's phase, error count or timing.

Printer columns were added in #2881 and reverted in #3652 as a
workaround for #3600, a CRD install error that was never root-caused.
Schedule regained columns in 2022 and BackupStorageLocation has them
today, with no recurrence.

Only fields expressible as plain JSONPath are included. Expiration is
deliberately omitted: kubectl renders a date column as time elapsed,
so a future expiration prints <invalid>, which covers every backup that
has not yet expired.

Fixes #10199

Signed-off-by: saral <ilovegojo2580@gmail.com>

* Rename changelog name to pass changelog check

Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>

---------

Signed-off-by: saral <ilovegojo2580@gmail.com>
Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
Co-authored-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
2026-08-11 16:58:19 +00:00
Shubham PampattiwarandGitHub 3da77b9469 Site: add conference talks to resources and LinkedIn to community page (#10180)
* site: add conference talks to resources page and LinkedIn to community page

Add a Conference Talks section to the resources page with Velero-related
talks from KubeCon EU 2026, KubeCon India 2026, KubeCon China 2024,
KubeCon EU 2023, and DevConf.IN 2025. Includes YouTube embeds where
recordings are available and sched.com links for all talks.

Add LinkedIn page link to the community page alongside existing
Twitter and Slack links.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>

* site: add Open Source Summit NA 2022 Velero talk to resources

Add the Velero talk by Orlin Vasilev and Scott Seago from
Open Source Summit North America 2022 with YouTube embed
and sched.com link.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>

---------

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-08-11 11:55:33 -04:00
RalthosandGitHub 48f2095dc9 Site: document artifact download failures with an in-cluster s3Url (#10231)
troubleshooting.md covers SignatureDoesNotMatch but not the other way a
log or results download fails: the pre-signed URL carries the s3Url host,
which for an in-cluster Service name does not resolve on the client.

The backup or restore itself is unaffected, which makes the error easy to
misread. The fix, publicUrl, is documented only under exposing Minio, so
this links there instead of duplicating it.

Signed-off-by: saral <ilovegojo2580@gmail.com>
2026-08-11 11:44:02 -04:00
Jay SawantandGitHub 57da5e5f05 docs: fix grammar and typos in backup-restore-windows (#10228)
Signed-off-by: Jay2006sawant <jay242902@gmail.com>
2026-08-11 08:02:47 -04:00
Lyndon-Li 6506d6d9da Merge branch 'main' into block-uploader-restore-progress 2026-08-11 17:12:06 +08:00
RalthosandGitHub 93df34d2ea Add printer columns for VolumeSnapshotLocation (#10216)
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
e2e-test-kind.yaml / extract (push) Failing after 7s
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
build-image / Build (push) Failing after 7s
push.yml / extract (push) Failing after 8s
Main CI / get-go-version (push) Failing after 9s
Main CI / Build (push) Skipped
kubectl get volumesnapshotlocation falls back to NAME and AGE, while
BackupStorageLocation beside it shows provider and phase. This follows
the same pattern for the remaining location type.

Phase is worth surfacing here because the CLI does not print it.
velero snapshot-location get shows only NAME and PROVIDER, so
status.phase, which carries the same Available/Unavailable enum as
BackupStorageLocation, is currently not visible from either tool.

Raised as an open question on #10199 and left out of #10200 to keep that
change to the two types the issue was filed about.

Signed-off-by: saral <ilovegojo2580@gmail.com>
2026-08-11 17:04:26 +08:00
Xun Jiang 79d9a5cde4 Support to set data mover for the uploader from volume policy.
Refactor function ShouldPerformCustomAction and GetActionParameters:
extract shared code to a new function getPVAndMatchAction.

Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-08-11 16:52:21 +08:00
Chlins ZhangandGitHub bb95f680cb Merge pull request #10125 from chlins/fix/hook-exec-timeout-and-leak
Cancel hook exec stream on timeout and bound hook timeouts
2026-08-11 15:57:10 +08:00
Chlins ZhangandGitHub 41df2dbe24 Merge pull request #10155 from chlins/fix/verify-build-tool-downloads
Verify build tool downloads
2026-08-11 15:56:49 +08:00
Lyndon-Li 882ad944f3 Merge branch 'main' into block-uploader-restore-progress 2026-08-11 15:53:08 +08:00
Lyndon-Li bbb0f11f33 use source size in progress for block uploader restore
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-08-11 15:49:30 +08:00