Skip to content
Open
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ csm-common.mk
csi-powermax
!csi-powermax/
semver.mk
vendor/

# files created by IDEs
.vscode
Expand Down
18 changes: 9 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright © 2020-2025 Dell Inc. or its subsidiaries. All Rights Reserved.
# Copyright © 2020-2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -10,32 +10,32 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
ARG GOPROXY
ARG GOIMAGE
ARG BASEIMAGE
ARG DIGEST
ARG VERSION="2.16.0"

# Stage to build the driver
FROM $GOIMAGE as builder
ARG GOPROXY
ARG VERSION
RUN mkdir -p /go/src
COPY ./ /go/src/
WORKDIR /go/src/
RUN CGO_ENABLED=0 \
make build
make build IMAGE_VERSION=$VERSION

# Stage to build the driver image
FROM $BASEIMAGE AS final
COPY --from=builder /go/src/csi-powermax .
COPY "csi-powermax.sh" .
ARG VERSION
COPY --from=builder /go/src/csi-powermax /csi-powermax
COPY csi-powermax.sh /csi-powermax.sh
ENTRYPOINT ["/csi-powermax.sh"]
RUN chmod +x /csi-powermax.sh
LABEL vendor="Dell Technologies" \
maintainer="Dell Technologies" \
name="csi-powermax" \
summary="CSI Driver for Dell EMC PowerMax" \
description="CSI Driver for provisioning persistent storage from Dell EMC PowerMax" \
release="1.15.0" \
version="2.15.0" \
release="1.16.0" \
version=$VERSION \
license="Apache-2.0"
COPY ./licenses /licenses
75 changes: 19 additions & 56 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright © 2020-2024 Dell Inc. or its subsidiaries. All Rights Reserved.
# Copyright © 2020-2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -10,9 +10,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
include overrides.mk
include images.mk

all: build unit-test
all: build

# This will be overridden during image build.
IMAGE_VERSION ?= 0.0.0
LDFLAGS = "-X main.ManifestSemver=$(IMAGE_VERSION)"

# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
Expand All @@ -21,38 +25,14 @@ else
GOBIN=$(shell go env GOBIN)
endif

format:
@gofmt -w -s .

clean:
rm -f core/core_generated.go go-code-tester *.log *.out cover*
rm -f core/core_generated.go go-code-tester *.log *.out cover* semver.mk csm-common.mk
rm -rf csm-temp-repo vendor
go clean
make -C csireverseproxy clean

build:
go generate
CGO_ENABLED=0 go build

# Generates the docker container (but does not push)
docker:
go generate
go run core/semver/semver.go -f mk >semver.mk
make -f docker.mk docker
# build the reverseproxy container as part of this target
( cd csireverseproxy; make docker )


# Generates the docker container without cache (but does not push)
docker-no-cache:
go generate
go run core/semver/semver.go -f mk >semver.mk
make -f docker.mk docker-no-cache
# build the reverseproxy container as part of this target
( cd csireverseproxy; make docker-no-cache )

# Pushes container to the repository
push: docker
make -f docker.mk push
build: generate
GOOS=linux CGO_ENABLED=0 go build -mod=vendor -ldflags $(LDFLAGS)

# Run unit tests
unit-test: go-code-tester
Expand All @@ -61,16 +41,11 @@ unit-test: go-code-tester

# Run BDD tests. Need to be root to run as tests require some system access, need to fix
bdd-test:
( cd service; go clean -cache; CGO_ENABLED=0 go test -run TestGoDog -v -coverprofile=c.out ./... )
(cd service; go clean -cache; CGO_ENABLED=0 go test -run TestGoDog -v -coverprofile=c.out ./...)

# Linux only; populate env.sh with the hardware parameters
integration-test:
( cd test/integration; sh run.sh )

version:
go generate
go run core/semver/semver.go -f mk >semver.mk
make -f docker.mk version
(cd test/integration; sh run.sh)

gosec:
ifeq (, $(shell which gosec))
Expand All @@ -81,23 +56,11 @@ else
endif
@echo "Logs are stored at gosec.log, Outputfile at gosecresults.csv"

.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

go-code-tester:
curl -o go-code-tester -L https://raw.githubusercontent.com/dell/common-github-actions/main/go-code-tester/entrypoint.sh \
&& chmod +x go-code-tester
git clone --depth 1 git@github.com:CSM/actions.git temp-repo
cp temp-repo/go-code-tester/entrypoint.sh ./go-code-tester
chmod +x go-code-tester
rm -rf temp-repo

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"
mocks:
go generate ./...
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
# :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).

# CSI Driver for Dell PowerMax

[![Go Report Card](https://goreportcard.com/badge/github.com/dell/csi-powermax?style=flat-square)](https://goreportcard.com/report/github.com/dell/csi-powermax)
Expand Down Expand Up @@ -44,4 +61,3 @@ For a complete list of dependencies, please visit [Prerequisites](https://dell.g

## Documentation
For more detailed information on the driver, please refer to [Container Storage Modules documentation](https://dell.github.io/csm-docs/).

2 changes: 1 addition & 1 deletion core/semver/semver.go
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ var OSExit = func(code int) {
// GetExitError is a wrapper around exec.ExitError
var GetExitError = func(err error) (e *exec.ExitError, ok bool) {
e, ok = err.(*exec.ExitError)
return
return e, ok
}

// GetStatusError is a wrapper around syscall.WaitStatus
Expand Down
11 changes: 6 additions & 5 deletions csireverseproxy/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright © 2020-2025 Dell Inc. or its subsidiaries. All Rights Reserved.
# Copyright © 2020-2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -15,7 +15,7 @@
############################
ARG GOIMAGE
ARG BASEIMAGE
ARG GOPROXY
ARG VERSION="2.15.0"

FROM $GOIMAGE as builder

Expand All @@ -42,20 +42,21 @@ RUN mkdir -p /go/src/csireverseproxy
COPY . /go/src/csireverseproxy

WORKDIR /go/src/csireverseproxy
RUN CGO_ENABLED=0 go build
RUN CGO_ENABLED=0 go build -mod=vendor


############################
# STEP 2 build a small image
############################
FROM $BASEIMAGE as final
ARG VERSION
LABEL vendor="Dell Technologies" \
maintainer="Dell Technologies" \
name="csipowermax-reverseproxy" \
summary="CSI PowerMax Reverse Proxy" \
description="CSI PowerMax Reverse Proxy which helps manage connections with Unisphere for PowerMax" \
release="1.13.0" \
version="2.12.0" \
release="1.16.0" \
version=$VERSION \
license="Apache-2.0"
COPY licenses /licenses
# Import from builder.
Expand Down
38 changes: 9 additions & 29 deletions csireverseproxy/Makefile
Original file line number Diff line number Diff line change
@@ -1,42 +1,22 @@
# Copyright © 2020-2025 Dell Inc. or its subsidiaries. All Rights Reserved.
# Copyright © 2020-2026 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Dell Technologies, Dell and other trademarks are trademarks of Dell Inc.
# or its subsidiaries. Other trademarks may be trademarks of their respective
# owners.
#
include overrides.mk

include images.mk

run:
@./run.sh

format:
@gofmt -w -s .

clean:
rm -f cover.out coverage.txt
rm -rf vendor csm-common.mk csm-temp-repo
go clean

build:
CGO_ENABLED=0 go build

docker:
go run ../core/semver/semver.go -f mk >semver.mk
make -f docker.mk docker

docker-no-cache:
make -f docker.mk docker-no-cache

docker-push: docker
make -f docker.mk push
build: vendor
CGO_ENABLED=0 go build -mod=vendor

unit-test:
go test -v -coverprofile c1.out ./...

download-csm-common:
curl -O -L https://raw.githubusercontent.com/dell/csm/main/config/csm-common.mk
44 changes: 0 additions & 44 deletions csireverseproxy/docker.mk

This file was deleted.

Loading