Skip to content

Commit

Permalink
Merge pull request #6 from dell/release-1.2.0
Browse files Browse the repository at this point in the history
csi-isilon 1.2.0 release
  • Loading branch information
bpjain2004 authored Jun 19, 2020
2 parents 67121ff + 244602f commit d59d971
Show file tree
Hide file tree
Showing 43 changed files with 1,259 additions and 116 deletions.
Binary file modified CSI Driver for Dell EMC Isilon Product Guide.pdf
Binary file not shown.
Binary file modified CSI Driver for Dell EMC Isilon Release Notes.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ RUN yum install -y numactl
RUN yum install -y xfsprogs
RUN yum install -y e4fsprogs
RUN yum install -y nfs-utils
RUN yum --enablerepo=cr update -y
RUN yum clean all
COPY "csi-isilon" .
ENTRYPOINT ["/csi-isilon"]
435 changes: 387 additions & 48 deletions README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ require (
github.com/akutz/gournal v0.5.0
github.com/container-storage-interface/spec v1.1.0
github.com/dell/gofsutil v1.1.0
github.com/dell/goisilon v1.1.0
github.com/dell/goisilon v1.2.0
github.com/golang/protobuf v1.3.2
github.com/google/uuid v1.1.1
github.com/gorilla/mux v1.7.3
Expand Down
6 changes: 2 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dell/gofsutil v1.1.0 h1:bIi/hCqdkWIL1owEKHOZ/+FF8DbDwTZ70OM4YMTR1/o=
github.com/dell/gofsutil v1.1.0/go.mod h1:48eHpMRl0+07uGEnQ7/RE6pTOAVEl74utlGjd0QX/Os=
github.com/dell/goisilon v1.0.0 h1:MBr2olqHvi9JsFYELEsaBOSYF0R6FssMNzgeuzfcCvw=
github.com/dell/goisilon v1.0.0/go.mod h1:FnAVgQNR6ijG888MC9TlWV2t8IazURs4WM73ZNBQaSI=
github.com/dell/goisilon v1.1.0 h1:QeAwVL2Pgdu5J5clVvdAJUQH8zESI1wUR2HCC1/hpmk=
github.com/dell/goisilon v1.1.0/go.mod h1:FnAVgQNR6ijG888MC9TlWV2t8IazURs4WM73ZNBQaSI=
github.com/dell/goisilon v1.2.0 h1:7TrBGCimSUN78DHVGDED3Z8U9YEJUDvBUmAloM3efRU=
github.com/dell/goisilon v1.2.0/go.mod h1:FnAVgQNR6ijG888MC9TlWV2t8IazURs4WM73ZNBQaSI=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
Expand Down
4 changes: 2 additions & 2 deletions helm/csi-isilon/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: csi-isilon
version: 1.1.0
appVersion: 1.1.0
version: 1.2.0
appVersion: 1.2.0
description: |
Isilon CSI (Container Storage Interface) driver Kubernetes
integration. This chart includes everything required to provision via CSI as
Expand Down
23 changes: 20 additions & 3 deletions helm/csi-isilon/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,16 @@ Add the repo (if you haven't already):
$ helm repo add isilon https://isilon.github.io/charts
```

Install the driver:
Install the driver using helm 2:
```bash
$ helm install --values myvalues.yaml --name isilon-csi --namespace isilon ./csi-isilon
```

Install the driver using helm 3:
```bash
$ helm install isilon --values myvalues.yaml --namespace isilon ./csi-isilon
```

## Introduction

This chart bootstraps the Isilon driver on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
Expand All @@ -23,25 +28,37 @@ This chart bootstraps the Isilon driver on a [Kubernetes](http://kubernetes.io)

## Installing the Chart

To install the chart with the release name `isilon`:
To install the chart with the release name `isilon` using helm 2:

```bash
$ helm install --values myvalues.yaml --name isilon --namespace isilon ./csi-isilon
```
> **Tip**: List all releases using `helm list`
To install the chart with the release name `isilon` using helm 3:

```bash
$ helm install isilon --values myvalues.yaml --namespace isilon ./csi-isilon
```

There are a number of required values that must be set either via the command-line or a [`values.yaml`](values.yaml) file. Those values are listed in the configuration section below.

## Uninstalling the Chart

To uninstall/delete the `my-release` deployment:
To uninstall/delete the `my-release` deployment using helm 2:

```bash
$ helm delete isilon [--purge]
```

The command removes all the Kubernetes components associated with the chart and deletes the release. The purge option also removes the provisioned release name, so that the name itself can also be reused.

To uninstall/delete the `my-release` deployment using helm 3:

```bash
$ helm delete -n isilon isilon
```

## Configuration

The following table lists the primary configurable parameters of the Isilon driver chart and their default values. More detailed information can be found in the [`values.yaml`](values.yaml) file in this repository.
Expand Down
23 changes: 23 additions & 0 deletions helm/csi-isilon/k8s-1.14-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
kubeversion: "v1.14"

# IT IS RECOMMENDED YOU DO NOT CHANGE THE IMAGES TO BE DOWNLOADED.
images:
# "images.attacher" defines the container images used for the csi attacher
# container.
attacher: quay.io/k8scsi/csi-attacher:v1.1.1 #doesn't work with CSI 0.3.0 driver

# "images.provisioner" defines the container images used for the csi provisioner
# container.
provisioner: quay.io/k8scsi/csi-provisioner:v1.2.1 #doesn't work with CSI 0.3.0 driver

# "images.snapshotter" defines the container image used for the csi snapshotter
snapshotter: quay.io/k8scsi/csi-snapshotter:v1.2.0

# "images.registrar" defines the container images used for the csi registrar
# container.
registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.1.0 #doesn't work with CSI 0.3.0 driver

# "images.resizer" defines the container images used for the csi resizer
# container.
resizer: quay.io/k8scsi/csi-resizer:v0.1.0 #doesn't work with CSI 0.3.0 driver

23 changes: 23 additions & 0 deletions helm/csi-isilon/k8s-1.16-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
kubeversion: "v1.16"

# IT IS RECOMMENDED YOU DO NOT CHANGE THE IMAGES TO BE DOWNLOADED.
images:
# "images.attacher" defines the container images used for the csi attacher
# container.
attacher: quay.io/k8scsi/csi-attacher:v2.0.0 #doesn't work with CSI 0.3.0 driver

# "images.provisioner" defines the container images used for the csi provisioner
# container.
provisioner: quay.io/k8scsi/csi-provisioner:v1.4.0 #doesn't work with CSI 0.3.0 driver

# "images.snapshotter" defines the container image used for the csi snapshotter
snapshotter: quay.io/k8scsi/csi-snapshotter:v1.2.2

# "images.registrar" defines the container images used for the csi registrar
# container.
registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 #doesn't work with CSI 0.3.0 driver

# "images.resizer" defines the container images used for the csi resizer
# container.
resizer: quay.io/k8scsi/csi-resizer:v0.5.0 #doesn't work with CSI 0.3.0 driver

28 changes: 26 additions & 2 deletions helm/csi-isilon/templates/controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ rules:
verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
resources: ["volumeattachments"]
verbs: ["get", "list", "watch", "update"]
verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["csi.storage.k8s.io"]
resources: ["csinodeinfos"]
verbs: ["get", "list", "watch"]
Expand All @@ -52,6 +52,13 @@ rules:
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
verbs: ["create", "list", "watch", "delete"]
# below for resizer
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["update", "patch"]
- apiGroups: [""]
resources: ["persistentvolumeclaims/status"]
verbs: ["update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
Expand All @@ -67,20 +74,37 @@ roleRef:
apiGroup: rbac.authorization.k8s.io
---
kind: StatefulSet
apiVersion: apps/v1beta1
apiVersion: apps/v1
metadata:
name: {{ .Release.Name }}-controller
namespace: {{ .Release.Namespace }}
spec:
selector:
matchLabels:
app: {{ .Release.Name }}-controller
serviceName: {{ .Release.Name }}-controller
replicas: {{ required "Must provide the number of controller instances to create." .Values.controllerCount }}
selector:
matchLabels:
app: {{ .Release.Name }}-controller
template:
metadata:
labels:
app: {{ .Release.Name }}-controller
spec:
serviceAccount: {{ .Release.Name }}-controller
containers:
- name: resizer
image: {{ required "Must provide the CSI resizer container image." .Values.images.resizer }}
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
env:
- name: ADDRESS
value: /var/run/csi/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: attacher
image: {{ required "Must provide the CSI attacher container image." .Values.images.attacher }}
args:
Expand Down
8 changes: 5 additions & 3 deletions helm/csi-isilon/templates/node.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ roleRef:
apiGroup: rbac.authorization.k8s.io
---
kind: DaemonSet
apiVersion: apps/v1beta2
apiVersion: apps/v1
metadata:
name: {{ .Release.Name }}-node
namespace: {{ .Release.Namespace }}
Expand Down Expand Up @@ -115,7 +115,9 @@ spec:
fieldRef:
fieldPath: status.hostIP
- name: SSL_CERT_DIR
value: /certs
value: /certs
- name: X_CSI_ISI_QUOTA_ENABLED
value: "{{ .Values.enableQuota }}"
volumeMounts:
- name: driver-path
mountPath: /var/lib/kubelet/plugins/csi-isilon
Expand Down Expand Up @@ -174,4 +176,4 @@ spec:
type: Directory
- name: certs
secret:
secretName: {{ .Release.Name }}-certs
secretName: {{ .Release.Name }}-certs
1 change: 1 addition & 0 deletions helm/csi-isilon/templates/storageclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ metadata:
storageclass.beta.kubernetes.io/is-default-class: {{ .Values.storageClass.isDefault | quote }}
provisioner: csi-isilon.dellemc.com
reclaimPolicy: {{ required "Must provide a storage class reclaim policy." .Values.storageClass.reclaimPolicy }}
allowVolumeExpansion: true
parameters:
AccessZone: {{ required "Must provide an access zone." .Values.storageClass.accessZone }}
IsiPath: {{ required "Must provide an isiPath." .Values.storageClass.isiPath }}
Expand Down
19 changes: 2 additions & 17 deletions helm/csi-isilon/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,23 +68,8 @@ storageClass:
# the "Root clients" field (when true) or "Clients" field (when false) of the NFS export
rootClientEnabled: "false"

# IT IS RECOMMENDED YOU DO NOT CHANGE THE IMAGES TO BE DONLOADED.
# IT IS RECOMMENDED YOU DO NOT CHANGE THE IMAGES TO BE DOWNLOADED.
images:
# "images.driver" defines the container images used for the driver container.
driver: dellemc/csi-isilon:v1.1.0

# "images.attacher" defines the container images used for the csi attacher
# container.
attacher: quay.io/k8scsi/csi-attacher:v1.1.1 #doesn't work with CSI 0.3.0 driver

# "images.provisioner" defines the container images used for the csi provisioner
# container.
provisioner: quay.io/k8scsi/csi-provisioner:v1.2.1 #doesn't work with CSI 0.3.0 driver

# "images.snapshotter" defines the container image used for the csi snapshotter
snapshotter: quay.io/k8scsi/csi-snapshotter:v1.2.0

# "images.registrar" defines the container images used for the csi registrar
# container.
registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.1.0 #doesn't work with CSI 0.3.0 driver
driver: dellemc/csi-isilon:v1.2.0

16 changes: 15 additions & 1 deletion helm/install.isilon
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#/bin/bash

# Get the kubernetes major and minor version numbers.
kMajorVersion=$(kubectl version | grep 'Server Version' | sed -e 's/^.*Major:"//' -e 's/",.*//')
kMinorVersion=$(kubectl version | grep 'Server Version' | sed -e 's/^.*Minor:"//' -e 's/\+\?",.*//')

# Verify the kubernetes installation has the feature gates needed.
sh ./verify.kubernetes
rc=$?
Expand All @@ -22,7 +27,16 @@ if [ $? -ne 0 ];
kubectl create -f ./emptysecret.yaml
fi

helm install --values myvalues.yaml --name isilon --namespace isilon ./csi-isilon
helm version | grep "v3." --quiet
if [ $? -eq 0 ]
then
echo "Installing using helm version 3"
helm install isilon --values myvalues.yaml --values csi-isilon/k8s-${kMajorVersion}.${kMinorVersion}-values.yaml --namespace isilon ./csi-isilon
else
echo "Installing using helm version 2"
helm install --values myvalues.yaml --values csi-isilon/k8s-${kMajorVersion}.${kMinorVersion}-values.yaml --name isilon --namespace isilon ./csi-isilon
fi

sleep 10
kubectl get pods --namespace isilon
sleep 5
Expand Down
2 changes: 1 addition & 1 deletion helm/secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ data:
# set username to the base64 encoded username
username: YWRtaW4=
# set password to the base64 encoded password
password: UGFzc3dvcmQxMjMh
password: SXMxbDBu
13 changes: 11 additions & 2 deletions helm/uninstall.isilon
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
#!/bin/bash
helm delete --purge isilon
helm version | grep "v3." --quiet
if [ $? -eq 0 ]
then
echo "Uninstalling using helm version 3"
helm delete -n isilon isilon
else
echo "Uninstalling using helm version 2"
helm delete --purge isilon
fi

sleep 10
kubectl get pods -n isilon
kubectl get volumesnapshotclass | grep isilon-snapclass --quiet
if [ $? -eq 0 ];
then kubectl delete volumesnapshotclass isilon-snapclass
fi
fi
14 changes: 7 additions & 7 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,36 +35,36 @@ func main() {
provider.New())
}

const usage = ` X_CSI_ISILON_ENDPOINT
const usage = ` X_CSI_ISI_ENDPOINT
Specifies the HTTPS endpoint for the Isilon REST API server. This parameter is
required when running the Controller service.
The default value is empty.
X_CSI_ISILON_PORT
X_CSI_ISI_PORT
Specifies the HTTPS port number for the Isilon REST API server.
The default value is 8080.
X_CSI_ISILON_USER
X_CSI_ISI_USER
Specifies the user name when authenticating to the Isilon REST API server.
The default value is admin.
X_CSI_ISILON_PASSWORD
Specifies the password of the user defined by X_CSI_ISILON_USER to use
X_CSI_ISI_PASSWORD
Specifies the password of the user defined by X_CSI_ISI_USER to use
when authenticating to the Isilon REST API server. This parameter is required
when running the Controller service.
The default value is empty.
X_CSI_ISILON_INSECURE
X_CSI_ISI_INSECURE
Specifies that the ISILON Gateway's hostname and certificate chain
should not be verified.
The default value is false.
X_CSI_ISILON_SYSTEMNAME
X_CSI_ISI_SYSTEMNAME
Specifies the name of the Isilon system to interact with.
The default value is default.
Expand Down
Loading

0 comments on commit d59d971

Please sign in to comment.