Commit Graph
6473 Commits
Author SHA1 Message Date
Wenkai Yin(尹文开) e030d4c0eb 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>
2026-07-27 17:46:52 +08:00
lyndon-liandGitHub 1711094110 Merge pull request #10071 from Lyndon-Li/block-uploader-restore-implementation
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
e2e-test-kind.yaml / extract (push) Failing after 15s
Run the E2E test on kind / get-go-version (push) Failing after 16s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Successful in 13s
Main CI / get-go-version (push) Successful in 14s
Main CI / Build (push) Failing after 1m6s
Block uploader restore implementation
2026-07-27 15:40:52 +08:00
Xun Jiang/Bruce JiangandGitHub 3905ccb0ea Backup workflow for block data mover. (#10067)
Signed-off-by: Xun Jiang <xun.jiang@broadcom.com>
2026-07-27 15:36:44 +08:00
Adam ZhangandGitHub d2c46dad7a Merge pull request #10056 from adam-jian-zhang/ria-must-include-design
design for RIA must-include-additional-items
2026-07-27 15:08:05 +08:00
Xun Jiang/Bruce JiangandGitHub ae772382a8 Merge pull request #10062 from shubham-pampattiwar/remove-health-files
Remove community health files now provided by org-level .github repo
2026-07-27 15:07:56 +08:00
Shubham PampattiwarandGitHub 77e119c274 Fix stale 'Latest Release Information' link on velero.io (#10081)
Update the landing page CTA link from the outdated Velero 1.11 blog
post to the GitHub releases/latest URL, which always resolves to the
most recent release and will not go stale.

Fixes #10080

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-27 15:05:44 +08:00
Lyndon-Li bc596da386 block uploader restore implementation
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-27 14:19:22 +08:00
Lyndon-Li d81b319abf Merge branch 'main' into block-uploader-restore-implementation 2026-07-27 14:12:06 +08:00
Xun Jiang/Bruce JiangandGitHub 713c2f3b0a Merge pull request #10074 from velero-io/dependabot/github_actions/codecov/codecov-action-7
Bump codecov/codecov-action from 6 to 7
2026-07-27 13:47:56 +08:00
Xun Jiang/Bruce JiangandGitHub 07ab16ffc0 Merge pull request #10075 from velero-io/dependabot/github_actions/actions/labeler-7
Bump actions/labeler from 5 to 7
2026-07-27 13:46:15 +08:00
dependabot[bot]andGitHub 91e089d3e6 Bump actions/labeler from 5 to 7
Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 7.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v5...v7)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 19:12:46 +00:00
dependabot[bot]andGitHub ff7273548b Bump codecov/codecov-action from 6 to 7
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 19:12:25 +00:00
a12b373e4c Support set-based filter label selectors (#10064)
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
e2e-test-kind.yaml / extract (push) Failing after 12s
Run the E2E test on kind / get-go-version (push) Failing after 13s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Successful in 10s
Main CI / get-go-version (push) Successful in 11s
Main CI / Build (push) Failing after 25s
* Support set-based filter label selectors

Use matchLabels/matchExpressions in fine-grained filters.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

* omit the details of resource policy for cli

The reason to not resolve and display CLI is because it may go
out of sync, we want to avoid display it to mislead users.

We may consider to cpature those information and display it
in later release.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

---------

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
Co-authored-by: Scott Seago <sseago@redhat.com>
2026-07-24 16:03:51 -04:00
Shubham Pampattiwar d44a185115 Remove community health files now provided by org-level .github repo
These files are now maintained in the velero-io/.github repo and
automatically apply as org-wide defaults across all velero-io repos.

See https://github.com/velero-io/.github

Fixes #10042

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-24 09:30:04 -07:00
Lyndon-Li 00f1626f7a block uploader restore implementation
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-24 14:02:19 +08:00
Lyndon-Li f6f2ecf8cc Merge branch 'main' into block-uploader-restore-implementation 2026-07-24 13:38:40 +08:00
Lyndon-Li 236c45b443 block uploader restore UT
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-24 13:37:40 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
92f636ca52 Bump google.golang.org/grpc from 1.81.1 to 1.82.1 (#10058)
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
build-image / Build (push) Failing after 15s
e2e-test-kind.yaml / extract (push) Failing after 15s
Run the E2E test on kind / get-go-version (push) Failing after 15s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Successful in 14s
Main CI / get-go-version (push) Successful in 15s
Main CI / Build (push) Failing after 34s
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.81.1 to 1.82.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.81.1...v1.82.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.82.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-23 15:52:44 -04:00
Tiger KaovilaiandGitHub 5ecf38b5d7 Derive dev-tool CLI versions from go.mod (ginkgo, protoc-gen-go, goimports) (#10024)
* Derive Ginkgo CLI version from go.mod in test/Makefile

Hardcoded @v2.22.0 pin drifted from go.mod's v2.28.3, causing
Ginkgo CLI/package version mismatch warnings.

Fixes #10023

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

* Derive protoc-gen-go and goimports versions from go.mod in build-image

Same drift issue as #10023: Dockerfile hardcoded @v1.33.0 and @v0.33.0
while go.mod had moved on. Build context is hack/build-image, which
doesn't include go.mod, so versions are computed in the Makefile (which
does have go.mod) and passed through as build-args, same as GOPROXY.

protoc-gen-go-grpc and controller-gen/setup-envtest/golangci-lint are
left as-is: no matching go.mod entry, or independently versioned from
the module they live alongside.

Fixes #10023

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

---------

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
2026-07-23 15:43:47 -04:00
e5654fa7ed Fix flaky TestKopiaObjectWriterEx_ConcurrentAsyncErrors (#10030)
The test assumed all ten Write calls succeed before any async goroutine
stores its error, but with a mock that fails instantly a goroutine can
poison the writer mid-loop, making a later Write correctly fail fast —
a timing-dependent test failure.

Rewrite the test to assert the real-world contract instead of one
schedule: a failed async block write either fails a subsequent Write
fast or surfaces at Result, and is never lost. Add a separate
deterministic case pinning the late-error schedule, holding async
writes until all writes are queued so Result alone must report the
error.

Verified with -race -count=100.

Fixes #10029

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 15:42:36 -04:00
Shubham PampattiwarandGitHub b6749d882c Merge pull request #10059 from shubham-pampattiwar/docs/migrate-links-to-velero-io
Update docs and governance links from vmware-tanzu to velero-io
2026-07-23 12:15:04 -07:00
lyndon-liandGitHub 564d213e6b Merge pull request #10035 from HajimohammadiNet/fix-install-plugin-spacing
Run the E2E test on kind / get-go-version (push) Failing after 1m0s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / get-go-version (push) Successful in 14s
Main CI / Build (push) Failing after 29s
Trim plugin image entries during install
2026-07-23 14:45:21 +08:00
Shubham PampattiwarandGitHub c676fdd03e Merge pull request #10000 from shubham-pampattiwar/fix/cleanup-stale-backup-metrics
Fix stale backupLastSuccessfulTimestamp metric after schedule deletion
2026-07-22 23:26:02 -07:00
Wenkai Yin(尹文开)andGitHub d69f6abe5c Add param to StartRestore to facilitates future expansion (#10057)
Add param to StartRestore to facilitates future expansion

Signed-off-by: Wenkai Yin(尹文开) <yinw@vmware.com>
2026-07-23 10:31:42 +08:00
Shubham Pampattiwar e2249c26d5 Update docs and governance links from vmware-tanzu to velero-io
The Velero repositories have moved to the velero-io GitHub organization.
Update references in docs, GOVERNANCE.md, and SECURITY.md for repos
that have migrated (velero, plugin-for-aws, plugin-for-gcp,
plugin-for-microsoft-azure, plugin-for-example). References to repos
that have not moved (helm-charts, plugin-for-vsphere, plugin-for-csi)
are left unchanged.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 10:56:39 -07:00
Shubham Pampattiwar 0f01b534c3 Remove unused collectGaugeCount, assert surviving label values
Remove the unused collectGaugeCount helper and assert specific label
values survive after each deletion using testutil.ToFloat64.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 10:43:13 -07:00
Shubham Pampattiwar 911cc9eb9e Fix gofmt alignment in backupReconciler struct
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:57:28 -07:00
Shubham Pampattiwar 4ea38216f5 Address review feedback: use DeleteLabelValues, extract resync method
Replace blanket Reset() with targeted DeleteLabelValues to avoid
briefly wiping metrics for schedules that still exist. Track known
schedules in a set and only delete stale entries on each resync.

Extract the wait.Until closure into resyncBackupMetrics() so tests
can call it directly without goroutine timing. Replace hand-rolled
collectGaugeCount helper with testutil.CollectAndCount.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Shubham Pampattiwar b9d9dcfc38 Add integration test for updateTotalBackupMetric resync
Add a test that exercises the actual updateTotalBackupMetric goroutine
with a fake client to verify stale backupLastSuccessfulTimestamp
entries are pruned during a real resync cycle.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Shubham Pampattiwar bfeccba0a8 Move metric reset inside List success block
Avoid clearing backupLastSuccessfulTimestamp on transient API errors.
The reset and re-set now only run when the backup List call succeeds,
so existing metric values remain stable across temporary failures.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Shubham Pampattiwar 6ea95548d6 Remove BackupLastSuccessfulTimestampCount, use Metrics() in test
Remove the exported method that was only used in tests. Use the
existing Metrics() getter to access the gauge directly in the
backup controller test instead.

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Shubham Pampattiwar 4357ad8976 Add changelog for PR #10000
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Shubham Pampattiwar 8cf03998dd Reset backupLastSuccessfulTimestamp during periodic resync
The periodic backup metrics resync in updateTotalBackupMetric only set
backupLastSuccessfulTimestamp values but never removed stale entries.
When a schedule was deleted and its backups removed, the gauge persisted
until the Velero pod was restarted.

Reset the gauge before re-setting current values so that deleted
schedules are pruned automatically each resync cycle.

Fixes #9239

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Shubham Pampattiwar 1968bf44ee Add ResetBackupLastSuccessfulTimestamp to ServerMetrics
Add a method to reset all backupLastSuccessfulTimestamp gauge values.
This will be used by the backup controller's periodic resync to prune
stale metrics for deleted schedules.

Fixes #9239

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
2026-07-22 09:17:59 -07:00
Tiger KaovilaiandGitHub 7ecf06d190 Fix CI: make Bitnami MinIO Dockerfile SHA lookup resilient (#10049)
Run the E2E test on kind / get-go-version (push) Failing after 1m0s
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / get-go-version (push) Successful in 13s
Main CI / Build (push) Failing after 28s
curl piped straight into jq with no error check; a non-JSON or failed
HTTP response (rate limit, transient API error) broke jq with an
opaque parse error. Add --fail-with-body, retries, and validate the
parsed SHA before continuing.

Fixes #10048

Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
2026-07-22 10:14:18 -04:00
Adam ZhangandGitHub 4be131b3f9 Merge pull request #10053 from adam-jian-zhang/fix-backup-doc-example14
update backup filters example 14
2026-07-22 20:22:45 +08:00
Lyndon-Li 97978ed9b7 block uploader flush zero blocks
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-22 18:01:57 +08:00
Lyndon-Li 9c1d8bee71 block uploader restore data
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-22 18:00:13 +08:00
Lyndon-Li bec292e738 block uploader restore data
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-22 17:58:02 +08:00
Lyndon-Li 7bbd172684 persist source dev size
Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
2026-07-22 17:52:01 +08:00
Xun Jiang/Bruce JiangandGitHub 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
Adam Zhang ac76402aa0 design for RIA must-include-additional-items
Design for `restore.velero.io/must-include-additional-items` annotation
and its usage and interaction with existing filtering mechanism.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-07-22 13:41:46 +08:00
Adam Zhang e9a778b848 update backup filters example 14
update the excludeNames to match example 3 for better consistency.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-07-21 10:53:27 +08:00
Adam ZhangandGitHub 9ed3fc855a add documentation for backup filters (#9967)
Main CI / get-go-version (push) Successful in 12s
Main CI / Build (push) Failing after 29s
Run the E2E test on kind / get-go-version (push) Failing after 20s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
* add documentation for backup filters

Add user guide for fine grained backup filters with examples
from easy to advanced.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

* address review comments

- enhanced example 3, explain how each item got excluded
- enhanced example 8, explain the exact match rule, and how the
  ordering affecting namespace that has  multiple match patterns
- cross link to restore side design
- fix the error msg to be consistent with implemenation

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

---------

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-07-20 15:55:54 -04:00
Adam ZhangandGitHub d59e7d4eb8 Prioritize exact namespace match in restore (#10033)
Run the E2E test on kind / get-go-version (push) Failing after 1m12s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Main CI / get-go-version (push) Successful in 12s
Main CI / Build (push) Failing after 26s
* Prioritize exact namespace match in restore

Align restore pipeline with backup pipeline by
evaluating exact namespace matches before glob
patterns in namespacedFilterPolicies. This ensures
specific overrides always win regardless of list
order.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

* improve test cases

add test cases for exact listed first, and excat listed last to
ensure the behavior that the order does not matter for exact
listed namespace, the rule will be always honored.

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>

---------

Signed-off-by: Adam Zhang <adam.zhang@broadcom.com>
2026-07-20 09:18:13 -04:00
lyndon-liandGitHub b96bb73308 Merge pull request #10007 from Lyndon-Li/cancel-pvb-on-timeout
Issue 9997: cancel ongoing PVB on timeout
2026-07-20 16:31:16 +08:00
lyndon-liandGitHub 32242d2f0a Merge pull request #10005 from Lyndon-Li/fail-earlier-when-pvr-pod-is-not-ready
Issue 9973: fail earlier when PVR pod is not ready
2026-07-20 16:30:50 +08:00
hajimohammadi.netandGitHub f671199128 Merge branch 'main' into fix-install-plugin-spacing 2026-07-20 11:43:31 +03:30
Xun Jiang/Bruce JiangandGitHub a34a6fc922 Merge pull request #10019 from velero-io/copilot/discuss-codeowners-integration
Run the E2E test on kind / get-go-version (push) Failing after 57s
Run the E2E test on kind / build (push) Has been skipped
Run the E2E test on kind / setup-test-matrix (push) Successful in 3s
Run the E2E test on kind / run-e2e-test (push) Has been skipped
Remove Auto Request Review workflow in favor of CODEOWNERS
2026-07-20 16:01:27 +08:00
Chlins ZhangandGitHub fc79ff1f2b Merge pull request #10036 from velero-io/dependabot/github_actions/aquasecurity/trivy-action-0.36.0
Bump aquasecurity/trivy-action from 0.35.0 to 0.36.0
2026-07-20 15:15:25 +08:00