Skip to content

Commit

Permalink
Release 1.5 (#13)
Browse files Browse the repository at this point in the history
Release 1.5
  • Loading branch information
kumarrprashant2005 committed Dec 15, 2020
1 parent f16597f commit 95dd037
Show file tree
Hide file tree
Showing 79 changed files with 2,784 additions and 3,037 deletions.
Binary file removed CSI Driver for Dell EMC PowerMax Product Guide.pdf
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion Dockerfile.build
Expand Up @@ -62,6 +62,6 @@ LABEL vendor="Dell Inc." \
name="csi-powermax" \
summary="CSI Driver for Dell EMC PowerMax" \
description="CSI Driver for provisioning persistent storage from Dell EMC PowerMax" \
version="1.4.0" \
version="1.5.0" \
license="Apache-2.0"
COPY csi-powermax/licenses /licenses
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -42,7 +42,7 @@ push: docker
make -f docker.mk push

# Windows or Linux; requires no hardware
unit-test:
unit-test: check
( cd service; go clean -cache; CGO_ENABLED=0 GO111MODULE=on go test -v -coverprofile=c.out ./... )

# Linux only; populate env.sh with the hardware parameters
Expand Down
5 changes: 5 additions & 0 deletions README.md
@@ -1,4 +1,9 @@
# CSI Driver for Dell EMC PowerMax
[![Go Report Card](https://goreportcard.com/badge/github.com/dell/csi-powermax)](https://goreportcard.com/report/github.com/dell/csi-powermax)
[![License](https://img.shields.io/github/license/dell/csi-powermax)](https://github.com/dell/csi-powermax/blob/master/LICENSE)
[![Docker](https://img.shields.io/docker/pulls/dellemc/csi-powermax.svg?logo=docker)](https://hub.docker.com/r/dellemc/csi-powermax)
[![Last Release](https://img.shields.io/github/v/release/dell/csi-powermax?label=latest&style=flat-square)](https://github.com/dell/csi-powermax/releases)

**Repository for CSI Driver for Dell EMC PowerMax development project**

## Description
Expand Down
21 changes: 21 additions & 0 deletions ReleaseNotes.md
@@ -0,0 +1,21 @@
# Release Notes - CSI PowerMax v1.5.0

## New Features/Changes
- Added support for OpenShift 4.5/4.6 with RHEL and CoreOS worker nodes
- Added support for Red Hat Enterprise Linux (RHEL) 7.9
- Added support for Ubuntu 20.04
- Added support for Docker EE 3.1
- Added support for Controller high availability (multiple-controllers)
- Added support for Topology
- Added support for mount options
- Changed driver base image to UBI 8.x

## Fixed Issues
There are no fixed issues in this release.

## Known Issues

| Issue | Workaround |
|-------|------------|
| Slow volume attached/detach | If your Kubernetes 1.17 or 1.18 cluster has a lot of VolumeAttachment objects, the attach/detach operations will be very slow. This is a known issue and affects all CSI plugins. It is tracked here: CSI VolumeAttachment slows pod startup time. To get around this problem you can upgrade to latest Kubernetes/OpenShift patches, which contains a partial fix: 1.17.8+, 1.18.5+|
| Delete Volume fails with error message: volume is part of masking view | This issue is due to limitations in Unisphere and occurs when Unisphere is overloaded. Currently, there is no workaround for this but can be avoided by making sure Unisphere is not overloaded during such operations. The Unisphere team is assessing a fix for this in a future Unisphere release|
4 changes: 2 additions & 2 deletions check.sh
Expand Up @@ -15,7 +15,7 @@ fmt_count() {
}

fmt() {
gofmt -d ./service ./csireverseproxy ./test/k8_integration | tee $FMT_TMPFILE
gofmt -d ./service ./csireverseproxy ./k8sutils ./test/k8_integration | tee $FMT_TMPFILE
cat $FMT_TMPFILE | wc -l > $FMT_COUNT_TMPFILE
if [ ! `cat $FMT_COUNT_TMPFILE` -eq "0" ]; then
echo Found `cat $FMT_COUNT_TMPFILE` formatting issue\(s\).
Expand All @@ -29,7 +29,7 @@ FMT_RETURN_CODE=$?
echo === Finished

echo === Vetting csi-powermax
CGO_ENABLED=0 go vet ${MOD_FLAGS} ./service/... ./test/k8_integration/...
CGO_ENABLED=0 go vet ${MOD_FLAGS} ./service/... ./k8sutils/... ./test/k8_integration/...
VET_RETURN_CODE=$?
echo === Finished

Expand Down
2 changes: 1 addition & 1 deletion csi-powermax.sh
Expand Up @@ -10,4 +10,4 @@ else
fi
[ -e $socket_file ] && rm $socket_file
fi
exec "/csi-powermax"
exec "/csi-powermax" "$@"
2 changes: 1 addition & 1 deletion csireverseproxy/Dockerfile
Expand Up @@ -38,7 +38,7 @@ LABEL vendor="Dell Inc." \
name="csipowermax-reverseproxy" \
summary="CSI PowerMax Reverse Proxy" \
description="CSI PowerMax Reverse Proxy which helps manage connections with Unisphere for PowerMax" \
version="1.0.0" \
version="1.1.0" \
license="Apache-2.0"
COPY licenses /licenses
# Import from builder.
Expand Down
1 change: 1 addition & 0 deletions csireverseproxy/go.sum
Expand Up @@ -42,6 +42,7 @@ github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cucumber/godog v0.10.0/go.mod h1:z2OZ6a3X0/YAKVqLfVzYBwFt3j6uSt3Xrqa7XTtcQE0=
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
Expand Down
2 changes: 1 addition & 1 deletion csireverseproxy/manifests/revproxy.yaml
Expand Up @@ -61,7 +61,7 @@ spec:
containers:
- name: powermax-revproxy
# Replace this with the built image name
image: dellemc/csipowermax-reverseproxy:v1.0.0.000R
image: dellemc/csipowermax-reverseproxy:v1.1.0.000R
imagePullPolicy: Always
env:
- name: X_CSI_REVPROXY_CONFIG_DIR
Expand Down
2 changes: 2 additions & 0 deletions dell-csi-helm-installer/.gitignore
@@ -0,0 +1,2 @@
images.manifest
images.tar
1 change: 1 addition & 0 deletions dell-csi-helm-installer/README.md
Expand Up @@ -20,6 +20,7 @@ Installing any of the Dell EMC CSI Drivers requires a few utilities to be instal
| ------------- | ----- |
| `kubectl` | Kubectl is used to validate that the Kubernetes system meets the requirements of the driver. |
| `helm` | Helm v3 is used as the deployment tool for Charts. See, [Install HELM 3](https://helm.sh/docs/intro/install/) for instructions to install HELM 3. |
| `sshpass` | sshpass is used to check certain pre-requisities in worker nodes (in chosen drivers). |


In order to use these tools, a valid `KUBECONFIG` is required. Ensure that either a valid configuration is in the default location or that the `KUBECONFIG` environment variable points to a valid confiugration before using these tools.
Expand Down
96 changes: 91 additions & 5 deletions dell-csi-helm-installer/common.sh
Expand Up @@ -16,27 +16,44 @@ YELLOW='\033[1;33m'
DARK_GRAY='\033[1;30m'
NC='\033[0m' # No Color

function decho() {
if [ -n "${DEBUGLOG}" ]; then
echo "$@" | tee -a "${DEBUGLOG}"
fi
}

function debuglog_only() {
if [ -n "${DEBUGLOG}" ]; then
echo "$@" >> "${DEBUGLOG}"
fi
}

function log() {
case $1 in
separator)
echo "------------------------------------------------------"
decho "------------------------------------------------------"
;;
error)
echo
decho
log separator
printf "${RED}Error: $2\n"
printf "${RED}Installation cannot continue${NC}\n"
debuglog_only "Error: $2"
debuglog_only "Installation cannot continue"
exit 1
;;
step)
printf "|\n|- %-65s" "$2"
debuglog_only "${2}"
;;
small_step)
printf "%-61s" "$2"
debuglog_only "${2}"
;;
section)
log separator
printf "> %s\n" "$2"
debuglog_only "${2}"
log separator
;;
smart_step)
Expand Down Expand Up @@ -91,7 +108,7 @@ function get_drivers() {
D="${1}"
TTT=$(pwd)
while read -r line; do
DDD=$(echo $line | awk -F '/' '{print $(NF-1)}')
DDD=$(decho $line | awk -F '/' '{print $(NF-1)}')
VALIDDRIVERS+=("$DDD")
done < <(find "${D}" -maxdepth 2 -type f -name Chart.yaml | sort)
}
Expand All @@ -104,11 +121,80 @@ function get_drivers() {
function get_release_name() {
local D="${1}"
if [ ! -z "${RELEASE}" ]; then
echo "${RELEASE}"
decho "${RELEASE}"
return
fi

local PREFIX="csi-"
R=${D#"$PREFIX"}
echo "${R}"
decho "${R}"
}

function run_command() {
local RC=0
if [ -n "${DEBUGLOG}" ]; then
local ME=$(basename "${0}")
echo "---------------" >> "${DEBUGLOG}"
echo "${ME}:${BASH_LINENO[0]} - Running command: $@" >> "${DEBUGLOG}"
debuglog_only "Results:"
eval "$@" | tee -a "${DEBUGLOG}"
RC=${PIPESTATUS[0]}
echo "---------------" >> "${DEBUGLOG}"
else
eval "$@"
RC=$?
fi
return $RC
}

# dump out information about a helm chart to the debug file
# takes a few arguments
# $1 the namespace
# $2 the release
function debuglog_helm_status() {
local NS="${1}"
local RLS="${2}"

debuglog_only "Getting information about Helm release: ${RLS}"
debuglog_only "****************"
debuglog_only "Helm Status:"
helm status "${RLS}" -n "${NS}" >> "${DEBUGLOG}"
debuglog_only "****************"
debuglog_only "Manifest"
helm get manifest "${RLS}" -n "${NS}" >> "${DEBUGLOG}"
debuglog_only "****************"
debuglog_only "Status of resources"
helm get manifest "${RLS}" -n "${NS}" | kubectl get -f - >> "${DEBUGLOG}"

}

# determines if the current KUBECONFIG is pointing to an OpenShift cluster
# echos "true" or "false"
function isOpenShift() {
# check if the securitycontextconstraints.security.openshift.io crd exists
run_command kubectl get crd | grep securitycontextconstraints.security.openshift.io --quiet >/dev/null 2>&1
local O=$?
if [[ ${O} == 0 ]]; then
# this is openshift
echo "true"
else
echo "false"
fi
}

# determines the version of OpenShift
# echos version, or empty string if not OpenShift
function OpenShiftVersion() {
# check if this is OpenShift
local O=$(isOpenShift)
if [ "${O}" == "false" ]; then
# this is not openshift
echo ""
else
local V=$(run_command kubectl get clusterversions -o jsonpath="{.items[*].status.desired.version}")
local MAJOR=$(echo "${V}" | awk -F '.' '{print $1}')
local MINOR=$(echo "${V}" | awk -F '.' '{print $2}')
echo "${MAJOR}.${MINOR}"
fi
}

0 comments on commit 95dd037

Please sign in to comment.