Syncing latest changes from main for ceph-volsync-plugin#9
Open
df-build-team wants to merge 44 commits intorelease-4.22from
Open
Syncing latest changes from main for ceph-volsync-plugin#9df-build-team wants to merge 44 commits intorelease-4.22from
df-build-team wants to merge 44 commits intorelease-4.22from
Conversation
Signed-off-by: Rakshith R <rar@redhat.com>
ci: add codespell workflow
Add e2e test infrastructure with Rook Ceph deployment, VolSync snapshot controller installation, and test scripts. Update CI workflow to use Minikube instead of kind and include operator deployment and cleanup steps. Signed-off-by: Rakshith R <rar@redhat.com>
…-main Signed-off-by: DF Build Team <df-build-team@redhat.com>
e2e: add rook ceph and volsync test setup
Syncing latest changes from upstream main for ceph-volsync-plugin
…-main Signed-off-by: DF Build Team <df-build-team@redhat.com>
Syncing latest changes from upstream main for ceph-volsync-plugin
Merge codespell workflow into lint.yml and add govulncheck job. All three linting jobs (codespell, golangci-lint, govulncheck) now run as parallel jobs under a single Lint workflow.
Vulnerability #1: GO-2026-4394 OpenTelemetry Go SDK Vulnerable to Arbitrary Code Execution via PATH Hijacking in go.opentelemetry.io/otel/sdk More info: https://pkg.go.dev/vuln/GO-2026-4394 Module: go.opentelemetry.io/otel/sdk Found in: go.opentelemetry.io/otel/sdk@v1.33.0 Fixed in: go.opentelemetry.io/otel/sdk@v1.40.0 Signed-off-by: Praveen M <m.praveen@ibm.com>
…-main Signed-off-by: DF Build Team <df-build-team@redhat.com>
Syncing latest changes from upstream main for ceph-volsync-plugin
Signed-off-by: Praveen M <m.praveen@ibm.com>
The manager entrypoint was moved to cmd/manager/main.go but the Makefile build and run targets still referenced the old cmd/main.go path.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: df-build-team The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Signed-off-by: Rakshith R <rar@redhat.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Part 1: Add replication source and destination controllers
Add a tmate session in detached mode before running e2e tests, allowing SSH access for debugging during test execution.
- Add build/build.env to pin Ceph, Go, rsync, and stunnel versions in one place - Include build.env from Makefile and pass versions as --build-arg to mover container builds - Narrow controller-gen paths to internal/controller - Add ceph_preview tag to go vet - Substitute MOVER_IMAGE_PLACEHOLDER in deploy and build-installer targets - Set ignore-not-found to true by default Signed-off-by: Rakshith R <rar@redhat.com>
- Switch from distroless to quay.io/ceph/ceph:v20 base image for go-ceph CGO bindings - Enable CGO and build with ceph_preview tag - Install Ceph dev headers in builder stage - Install rsync, stunnel, and bash in final stage - Add ldd check to verify all shared libraries resolve Signed-off-by: Rakshith R <rar@redhat.com>
- Add GOLANG_VERSION build-arg to Containerfile.manager so the Go version is controlled from build.env - Pass --build-arg GOLANG_VERSION to docker-build target Signed-off-by: Rakshith R <rar@redhat.com>
- Remove hardcoded Namespace resource in favor of kustomize-managed namespace - Add MOVER_IMAGE env var to manager container - Mount ceph-csi-config ConfigMap for Ceph CSI configuration Signed-off-by: Rakshith R <rar@redhat.com>
- Add CONTAINER_TOOL, IMG, and MOVER_IMG as job-level env vars - Install Ceph dev headers for local go vet/test - Split build and deploy into separate steps - Deploy operator into rook-ceph namespace - Install ginkgo and run e2e tests in parallel - Run cleanup step only on success Signed-off-by: Rakshith R <rar@redhat.com>
- Replace utils-based CertManager setup with controller-runtime and client-go clients for typed access to VolSync CRDs, VolumeSnapshots, and core resources - Split e2e tests into helpers, manual trigger, and schedule trigger files - Add parameterized tests across nfs, cephfs, and rbd drivers - Add FailFast config and change namespace to rook-ceph - Extract debug log collection into debugAfterEach helper - Add createRS to codespell ignore list - Promote k8s.io/utils to a direct dependency E2E now covers most of the scenarios: - data write + validation - 3 drivers - copyMethod: direct and copy - triger: - RepSource: schedule, manual - RepDestination: schedule, manual, None Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
e2e: add test suite with controller-runtime client
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Add containerized protoc code generation support: - build/Containerfile.protoc: multi-stage image with protoc, protoc-gen-go, and protoc-gen-go-grpc - build/build.env: pin protoc tooling versions - Makefile: proto-image, proto-generate, proto-verify targets; add proto-verify to test prerequisites Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Add the gRPC service contract definitions for data transfer between source and destination worker pods. SyncService (api/v1/sync.proto) consolidates all data-path RPCs: - Write, CompareHashes, Commit, Delete (bidi-streaming) - Done (unary) VersionService (version/v1/version.proto): - GetVersion (unary) Includes .proto source files and generated Go code (protoc-gen-go v1.36.11, protoc-gen-go-grpc v1.6.1). Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Document the gRPC service definitions, directory structure, Go import paths, code generation workflow, tooling versions, and versioning guidance. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Add shared worker interfaces, gRPC client/server setup, base source/destination implementations, and TLS tunnel management via stunnel and rsync. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Concurrent 6-stage pipeline for block-level data transfer with semaphore-based flow control, compression, and hash comparison. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Ceph configuration, CephFS operations, connection pooling, RBD device management, volume ID parsing, and error types. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
CephFS source and destination workers with block iteration, snapshot diff reading, commit draining, and hash comparison. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
RBD block device source and destination workers with hash comparison. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Register CephFS and RBD source/destination workers with tunnel setup. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Source mover pods need hostNetwork to access Ceph OSDs/MDS via userspace libraries (libcephfs, librbd). Replace source-side stunnel TCP endpoints with Unix domain sockets to avoid port conflicts on the host network. Add socat for rsync UDS bridge. Destination pods remain on pod network unchanged. - Add hostNetwork and DNSClusterFirstWithHostNet for source pods - Fix AllowPrivilegeEscalation to ptr.To(true) - Set allowHostPorts to false in SCC (no TCP ports exposed) - Add socat to mover container image for rsync UDS bridge Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: Rakshith R <rar@redhat.com>
…-main Signed-off-by: DF Build Team <df-build-team@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR containing the latest commits from main branch