Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ vendor/
*.swo
*~

# Local version files
# Support make files
semver.mk
csm-common.mk

# Logs
repctl.log
80 changes: 80 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Copyright © 2025-2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Dell Technologies, Dell and other trademarks are trademarks of Dell Inc.
# or its subsidiaries. Other trademarks may be trademarks of their respective
# owners.

# some arguments that must be supplied
ARG BASEIMAGE
ARG GOIMAGE

# Build the manager binary
FROM $GOIMAGE AS builder
ARG IMAGE
ARG VERSION

RUN mkdir -p /go/src/csm-replication
COPY ./ /go/src/csm-replication

WORKDIR /go/src/csm-replication

# Build specific image.
RUN if [ "$IMAGE" = "dell-replication-controller" ]; then \
make build-controller-manager IMAGE_VERSION=$VERSION; \
elif [ "$IMAGE" = "dell-csi-replicator" ]; then \
make build-sidecar-manager IMAGE_VERSION=$VERSION; \
elif [ "$IMAGE" = "dell-csi-migrator" ]; then \
make build-sidecar-migrator IMAGE_VERSION=$VERSION; \
elif [ "$IMAGE" = "dell-csi-node-rescanner" ]; then \
make build-sidecar-node-rescanner IMAGE_VERSION=$VERSION; \
else \
echo "IMAGE supplied is $IMAGE. Not supported."; \
fi

# Base image
FROM $BASEIMAGE AS container-base
ARG VERSION
LABEL vendor="Dell Technologies" \
maintainer="Dell Technologies" \
release="1.16.0" \
license="Apache-2.0"

FROM container-base AS controller
ARG VERSION
COPY /licenses /licenses
COPY --from=builder /go/src/csm-replication/bin/dell-replication-controller /
ENTRYPOINT ["/dell-replication-controller"]
LABEL version=$VERSION \
name="dell-replication-controller" \
description="CSI Replication controller" \
summary="Controller which replicates the resources across (or within) Kubernetes clusters"

FROM container-base AS replicator
ARG VERSION
COPY /licenses /licenses
COPY --from=builder /go/src/csm-replication/bin/dell-csi-replicator /
ENTRYPOINT ["/dell-csi-replicator"]
LABEL version=$VERSION \
name="dell-csi-replicator" \
description="CSI Replicator sidecar" \
summary="Sidecar used for managing the replication processes"

FROM container-base AS migrator
ARG VERSION
COPY /licenses /licenses
COPY --from=builder /go/src/csm-replication/bin/dell-csi-migrator /
ENTRYPOINT ["/dell-csi-migrator"]
LABEL version=$VERSION \
name="dell-csi-migrator" \
description="CSI Migrator sidecar" \
summary="Sidecar used for managing the replication processes"

FROM container-base AS rescanner
ARG VERSION
COPY /licenses /licenses
COPY --from=builder /go/src/csm-replication/bin/dell-csi-node-rescanner /
ENTRYPOINT ["/dell-csi-node-rescanner"]
LABEL version=$VERSION \
name="dell-csi-node-rescanner" \
description="CSI Node Rescanner sidecar" \
summary="Sidecar used for managing the replication processes"
92 changes: 0 additions & 92 deletions Dockerfiles/Dockerfile

This file was deleted.

28 changes: 0 additions & 28 deletions Dockerfiles/Dockerfile.dev

This file was deleted.

102 changes: 23 additions & 79 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Copyright © 2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Dell Technologies, Dell and other trademarks are trademarks of Dell Inc.
# or its subsidiaries. Other trademarks may be trademarks of their respective
# owners.

include images.mk

# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
Expand All @@ -11,26 +19,26 @@ KUSTOMIZE ?= $(GOBIN)/kustomize

IMG ?= "NOIMG"

#Generate semver.mk for setting the semantic version
gen-semver:
(cd core; rm -f core_generated.go; go generate)
go run core/semver/semver.go -f mk > semver.mk
# This will be overridden during image build.
IMAGE_VERSION ?= 0.0.0
LDFLAGS = "-X main.ManifestSemver=$(IMAGE_VERSION)"

# Run all _test.go files (including those in repctl/) in this repo and generate coverage report
test: generate fmt vet static-crd gen-semver
go test ./... -coverprofile cover.out

# Build manager binary for csi-replicator
build-sidecar-manager: pre
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/dell-csi-replicator cmd/csi-replicator/main.go
build-sidecar-migrator: pre
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/dell-csi-migrator cmd/csi-migrator/main.go
# Build manager binary for csi-node re scanner
build-sidecar-node-rescanner: pre
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/dell-csi-node-rescanner cmd/csi-node-rescanner/main.go
# Build manager binary for replication-controller
build-controller-manager: pre
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/dell-replication-controller cmd/replication-controller/main.go
build-sidecar-manager: gen-semver
CGO_ENABLED=0 GOOS=linux go build -ldflags $(LDFLAGS) -mod=vendor -o bin/dell-csi-replicator cmd/csi-replicator/main.go

build-sidecar-migrator: gen-semver
CGO_ENABLED=0 GOOS=linux go build -ldflags $(LDFLAGS) -mod=vendor -o bin/dell-csi-migrator cmd/csi-migrator/main.go

build-sidecar-node-rescanner: gen-semver
CGO_ENABLED=0 GOOS=linux go build -ldflags $(LDFLAGS) -mod=vendor -o bin/dell-csi-node-rescanner cmd/csi-node-rescanner/main.go

build-controller-manager: gen-semver
CGO_ENABLED=0 GOOS=linux go build -ldflags $(LDFLAGS) -mod=vendor -o bin/dell-replication-controller cmd/replication-controller/main.go

# Build all binaries for replication
build: build-sidecar-manager build-sidecar-migrator build-sidecar-node-rescanner build-controller-manager

Expand All @@ -50,7 +58,6 @@ run-node-rescanner: pre static-crd
static-crd: manifests
$(KUSTOMIZE) build config/crd > deploy/replicationcrds.all.yaml


update-image:
ifeq ($(IMG),"NOIMG")
@{ \
Expand Down Expand Up @@ -110,52 +117,6 @@ generate: tools
# Pre-requisite for the build/run targets
pre: gen-semver fmt vet tools generate

# Build the container image
image-sidecar: gen-semver
make -f image.mk sidecar

image-migrator: gen-semver
make -f image.mk sidecar-migrator

image-migrator-push: gen-semver
make -f image.mk sidecar-migrator-push

image-node-rescanner: gen-semver
make -f image.mk sidecar-node-rescanner

image-node-rescanner-push: gen-semver
make -f image.mk sidecar-node-rescanner-push

image-controller: gen-semver
make -f image.mk controller

image-sidecar-push: gen-semver
make -f image.mk sidecar-push

image-controller-push: gen-semver
make -f image.mk controller-push

build-base-image: gen-semver
make -f image.mk build-base-image

images: gen-semver
make -f image.mk images

images-push: gen-semver
make -f image.mk images-push

image-sidecar-dev: build-sidecar-manager
make -f image.mk sidecar-dev

image-controller-dev: build-controller-manager
make -f image.mk controller-dev

image-migrator-dev: build-sidecar-migrator
make -f image.mk sidecar-migrator-dev

image-node-rescanner-dev: build-sidecar-node-rescanner
make -f image.mk sidecar-node-rescanner-dev

#To start mock-grpc server
start-server-win:
go run test/mock-server/main.go --csi-address localhost:4772 --stubs test/mock-server/stubs
Expand Down Expand Up @@ -236,20 +197,3 @@ KUSTOMIZE=$(GOBIN)/kustomize
else
KUSTOMIZE=$(shell which kustomize)
endif

.PHONY: actions action-help
actions: ## Run all GitHub Action checks that run on a pull request creation
@echo "Running all GitHub Action checks for pull request events..."
@act -l | grep -v ^Stage | grep pull_request | grep -v image_security_scan | awk '{print $$2}' | while read WF; do \
echo "Running workflow: $${WF}"; \
act pull_request --no-cache-server --platform ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest --job "$${WF}"; \
done

action-help: ## Echo instructions to run one specific workflow locally
@echo "GitHub Workflows can be run locally with the following command:"
@echo "act pull_request --no-cache-server --platform ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest --job <jobid>"
@echo ""
@echo "Where '<jobid>' is a Job ID returned by the command:"
@echo "act -l"
@echo ""
@echo "NOTE: if act is not installed, it can be downloaded from https://github.com/nektos/act"
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,23 @@
limitations under the License.
-->

# :lock: **Important Notice**
Starting with the release of **Container Storage Modules v1.16.0**, this repository will no longer be maintained as an open source project. Future development will continue under a closed source model. This change reflects our commitment to delivering even greater value to our customers by enabling faster innovation and more deeply integrated features with the Dell storage portfolio.<br>
For existing customers using Dell’s Container Storage Modules, you will continue to receive:
* **Ongoing Support & Community Engagement**<br>
You will continue to receive high-quality support through Dell Support and our community channels. Your experience of engaging with the Dell community remains unchanged.
* **Streamlined Deployment & Updates**<br>
Deployment and update processes will remain consistent, ensuring a smooth and familiar experience.
* **Access to Documentation & Resources**<br>
All documentation and related materials will remain publicly accessible, providing transparency and technical guidance.
* **Continued Access to Current Open Source Version**<br>
The current open-source version will remain available under its existing license for those who rely on it.

Moving to a closed source model allows Dell’s development team to accelerate feature delivery and enhance integration across our Enterprise Kubernetes Storage solutions ultimately providing a more seamless and robust experience.<br>
We deeply appreciate the contributions of the open source community and remain committed to supporting our customers through this transition.<br>

For questions or access requests, please contact the maintainers via [Dell Support](https://www.dell.com/support/kbdoc/en-in/000188046/container-storage-interface-csi-drivers-and-container-storage-modules-csm-how-to-get-support).

# Dell Container Storage Modules (CSM) for Replication

[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](https://github.com/dell/csm/blob/main/docs/CODE_OF_CONDUCT.md)
Expand Down Expand Up @@ -147,4 +164,3 @@ If you wish to install CSM Replication Controller with repctl on your openSUSE s

Click [here](/TESTING.md) for details on how to test.


Loading
Loading