Skip to content

Commit 053d606

Browse files
committed
feat: bring you own service accounts in helm install
1 parent 5820d90 commit 053d606

12 files changed

+57
-37
lines changed

charts/README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,13 @@ The following table lists the configurable parameters of the latest Azure Blob S
6868
| `image.csiResizer.pullPolicy` | csi-resizer image pull policy | IfNotPresent |
6969
| `imagePullSecrets` | Specify docker-registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
7070
| `serviceAccount.create` | whether create service account of csi-blob-controller | true |
71+
| `serviceAccount.controller` | name of service account for csi-blob-controller | csi-blob-controller-sa |
72+
| `serviceAccount.node` | name of service account for csi-blob-node | csi-blob-node-sa |
7173
| `rbac.create` | whether create rbac of csi-blob-controller | true |
74+
| `controller.name` | name of driver deployment | `csi-blob-controller`
7275
| `controller.replicas` | the replicas of csi-blob-controller | 2 |
73-
| `controller.metricsPort` | metrics port of csi-blob-controller | 29634 |
76+
| `controller.metricsPort` | metrics port of csi-blob-controller | `29634` |
77+
| `controller.livenessProbe.healthPort ` | health check port for liveness probe | `29632` |
7478
| `controller.runOnMaster` | run controller on master node | false |
7579
| `controller.logLevel` | controller driver log level | `5` |
7680
| `controller.resources.csiProvisioner.limits.cpu` | csi-provisioner cpu limits | 100m |
@@ -92,7 +96,9 @@ The following table lists the configurable parameters of the latest Azure Blob S
9296
| `controller.affinity` | controller pod affinity | {} |
9397
| `controller.nodeSelector` | controller pod node selector | {} |
9498
| `controller.tolerations` | controller pod tolerations | [] |
95-
| `node.metricsPort` | metrics port of csi-blob-node | 29635 |
99+
| `node.name` | name of driver daemonset | `csi-blob-node`
100+
| `node.metricsPort` | metrics port of csi-blob-node | `29635` |
101+
| `node.livenessProbe.healthPort ` | health check port for liveness probe | `29633` |
96102
| `node.logLevel` | node driver log level | `5` |
97103
| `node.enableBlobfuseProxy` | node enable blobfuse-proxy | false |
98104
| `node.blobfuseCachePath` | blobfuse cache path(`tmp-path`) | `/mnt` |
120 Bytes
Binary file not shown.

charts/latest/blob-csi-driver/templates/csi-blob-controller.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
kind: Deployment
22
apiVersion: apps/v1
33
metadata:
4-
name: csi-blob-controller
4+
name: {{ .Values.controller.name }}
55
namespace: {{ .Release.Namespace }}
66
{{ include "blob.labels" . | indent 2 }}
77
spec:
88
replicas: {{ .Values.controller.replicas }}
99
selector:
1010
matchLabels:
11-
app: csi-blob-controller
11+
app: {{ .Values.controller.name }}
1212
template:
1313
metadata:
1414
{{ include "blob.labels" . | indent 6 }}
15-
app: csi-blob-controller
15+
app: {{ .Values.controller.name }}
1616
{{- if .Values.podLabels }}
1717
{{- toYaml .Values.podLabels | nindent 8 }}
1818
{{- end }}
@@ -30,7 +30,7 @@ spec:
3030
{{ toYaml .Values.imagePullSecrets | indent 8 }}
3131
{{- end }}
3232
hostNetwork: true
33-
serviceAccountName: csi-blob-controller-sa
33+
serviceAccountName: {{ .Values.serviceAccount.controller }}
3434
nodeSelector:
3535
kubernetes.io/os: linux
3636
{{- if .Values.controller.runOnMaster}}
@@ -66,7 +66,7 @@ spec:
6666
args:
6767
- --csi-address=/csi/csi.sock
6868
- --probe-timeout=3s
69-
- --health-port=29632
69+
- --health-port={{ .Values.controller.livenessProbe.healthPort }}
7070
imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }}
7171
volumeMounts:
7272
- name: socket-dir
@@ -80,7 +80,7 @@ spec:
8080
- "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}"
8181
- "--drivername={{ .Values.driver.name }}"
8282
ports:
83-
- containerPort: 29632
83+
- containerPort: {{ .Values.controller.livenessProbe.healthPort }}
8484
name: healthz
8585
protocol: TCP
8686
- containerPort: {{ .Values.controller.metricsPort }}

charts/latest/blob-csi-driver/templates/csi-blob-node.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
kind: DaemonSet
22
apiVersion: apps/v1
33
metadata:
4-
name: csi-blob-node
4+
name: {{ .Values.node.name }}
55
namespace: {{ .Release.Namespace }}
66
{{ include "blob.labels" . | indent 2 }}
77
spec:
88
selector:
99
matchLabels:
10-
app: csi-blob-node
10+
app: {{ .Values.node.name }}
1111
template:
1212
metadata:
1313
{{ include "blob.labels" . | indent 6 }}
14-
app: csi-blob-node
14+
app: {{ .Values.node.name }}
1515
{{- if .Values.podLabels }}
1616
{{- toYaml .Values.podLabels | nindent 8 }}
1717
{{- end }}
@@ -26,7 +26,7 @@ spec:
2626
{{- end }}
2727
hostNetwork: true
2828
dnsPolicy: ClusterFirstWithHostNet
29-
serviceAccountName: csi-blob-node-sa
29+
serviceAccountName: {{ .Values.serviceAccount.node }}
3030
nodeSelector:
3131
kubernetes.io/os: linux
3232
{{- with .Values.node.nodeSelector }}
@@ -94,7 +94,7 @@ spec:
9494
- "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}"
9595
- "--drivername={{ .Values.driver.name }}"
9696
ports:
97-
- containerPort: 29633
97+
- containerPort: {{ .Values.node.livenessProbe.healthPort }}
9898
name: healthz
9999
protocol: TCP
100100
livenessProbe:

charts/latest/blob-csi-driver/templates/rbac-csi-blob-controller.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
kind: ClusterRole
33
apiVersion: rbac.authorization.k8s.io/v1
44
metadata:
5-
name: blob-external-provisioner-role
5+
name: {{ .Values.rbac.name }}-external-provisioner-role
66
{{ include "blob.labels" . | indent 2 }}
77
rules:
88
- apiGroups: [""]
@@ -32,23 +32,23 @@ rules:
3232
kind: ClusterRoleBinding
3333
apiVersion: rbac.authorization.k8s.io/v1
3434
metadata:
35-
name: blob-csi-provisioner-binding
35+
name: {{ .Values.rbac.name }}-csi-provisioner-binding
3636
{{ include "blob.labels" . | indent 2 }}
3737
subjects:
3838
- kind: ServiceAccount
39-
name: csi-blob-controller-sa
39+
name: {{ .Values.serviceAccount.controller }}
4040
namespace: {{ .Release.Namespace }}
4141
roleRef:
4242
kind: ClusterRole
43-
name: blob-external-provisioner-role
43+
name: {{ .Values.rbac.name }}-external-provisioner-role
4444
apiGroup: rbac.authorization.k8s.io
4545

4646
---
4747

4848
kind: ClusterRole
4949
apiVersion: rbac.authorization.k8s.io/v1
5050
metadata:
51-
name: blob-external-resizer-role
51+
name: {{ .Values.rbac.name }}-external-resizer-role
5252
{{ include "blob.labels" . | indent 2 }}
5353
rules:
5454
- apiGroups: [""]
@@ -70,22 +70,22 @@ rules:
7070
kind: ClusterRoleBinding
7171
apiVersion: rbac.authorization.k8s.io/v1
7272
metadata:
73-
name: blob-csi-resizer-role
73+
name: {{ .Values.rbac.name }}-csi-resizer-role
7474
{{ include "blob.labels" . | indent 2 }}
7575
subjects:
7676
- kind: ServiceAccount
77-
name: csi-blob-controller-sa
77+
name: {{ .Values.serviceAccount.controller }}
7878
namespace: {{ .Release.Namespace }}
7979
roleRef:
8080
kind: ClusterRole
81-
name: blob-external-resizer-role
81+
name: {{ .Values.rbac.name }}-external-resizer-role
8282
apiGroup: rbac.authorization.k8s.io
8383

8484
---
8585
kind: ClusterRole
8686
apiVersion: rbac.authorization.k8s.io/v1
8787
metadata:
88-
name: csi-blob-controller-secret-role
88+
name: csi-{{ .Values.rbac.name }}-controller-secret-role
8989
rules:
9090
- apiGroups: [""]
9191
resources: ["secrets"]
@@ -95,13 +95,13 @@ rules:
9595
kind: ClusterRoleBinding
9696
apiVersion: rbac.authorization.k8s.io/v1
9797
metadata:
98-
name: csi-blob-controller-secret-binding
98+
name: csi-{{ .Values.rbac.name }}-controller-secret-binding
9999
subjects:
100100
- kind: ServiceAccount
101-
name: csi-blob-controller-sa
101+
name: {{ .Values.serviceAccount.controller }}
102102
namespace: {{ .Release.Namespace }}
103103
roleRef:
104104
kind: ClusterRole
105-
name: csi-blob-controller-secret-role
105+
name: csi-{{ .Values.rbac.name }}-controller-secret-role
106106
apiGroup: rbac.authorization.k8s.io
107107
{{ end }}

charts/latest/blob-csi-driver/templates/rbac-csi-blob-node.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
kind: ClusterRole
44
apiVersion: rbac.authorization.k8s.io/v1
55
metadata:
6-
name: csi-blob-node-secret-role
6+
name: csi-{{ .Values.rbac.name }}-node-secret-role
77
rules:
88
- apiGroups: [""]
99
resources: ["secrets"]
@@ -13,13 +13,13 @@ rules:
1313
kind: ClusterRoleBinding
1414
apiVersion: rbac.authorization.k8s.io/v1
1515
metadata:
16-
name: csi-blob-node-secret-binding
16+
name: csi-{{ .Values.rbac.name }}-node-secret-binding
1717
subjects:
1818
- kind: ServiceAccount
19-
name: csi-blob-node-sa
19+
name: {{ .Values.serviceAccount.node }}
2020
namespace: {{ .Release.Namespace }}
2121
roleRef:
2222
kind: ClusterRole
23-
name: csi-blob-node-secret-role
23+
name: csi-{{ .Values.rbac.name }}-node-secret-role
2424
apiGroup: rbac.authorization.k8s.io
2525
{{ end }}

charts/latest/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: v1
33
kind: ServiceAccount
44
metadata:
5-
name: csi-blob-controller-sa
5+
name: {{ .Values.serviceAccount.controller }}
66
namespace: {{ .Release.Namespace }}
77
{{ include "blob.labels" . | indent 2 }}
88
{{- end -}}

charts/latest/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
apiVersion: v1
33
kind: ServiceAccount
44
metadata:
5-
name: csi-blob-node-sa
5+
name: {{ .Values.serviceAccount.node }}
66
namespace: {{ .Release.Namespace }}
77
{{ include "blob.labels" . | indent 2 }}
88
{{- end -}}

charts/latest/blob-csi-driver/values.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,19 @@ imagePullSecrets: []
2626
# - name: myRegistryKeySecretName
2727

2828
serviceAccount:
29-
create: true
29+
create: true # When true, service accounts will be created for you. Set to false if you want to use your own.
30+
controller: csi-blob-controller-sa # Name of Service Account to be created or used
31+
node: csi-blob-node-sa # Name of Service Account to be created or used
3032

3133
rbac:
3234
create: true
35+
name: blob
3336

3437
controller:
38+
name: csi-blob-controller
3539
metricsPort: 29634
40+
livenessProbe:
41+
healthPort: 29632
3642
replicas: 2
3743
runOnMaster: false
3844
logLevel: 5
@@ -78,7 +84,10 @@ controller:
7884
effect: "NoSchedule"
7985

8086
node:
87+
name: csi-blob-node
8188
metricsPort: 29635
89+
livenessProbe:
90+
healthPort: 29633
8291
logLevel: 5
8392
enableBlobfuseProxy: false
8493
blobfuseCachePath: /mnt

test/external-e2e/run.sh

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
set -xe
1818

1919
PROJECT_ROOT=$(git rev-parse --show-toplevel)
20+
DRIVER="test"
2021

2122
install_ginkgo () {
2223
apt update -y
@@ -33,8 +34,12 @@ setup_e2e_binaries() {
3334
export EXTRA_HELM_OPTIONS="--set feature.enableFSGroupPolicy=true"
3435
fi
3536

36-
# install csi driver
37+
# test on alternative driver name
38+
EXTRA_HELM_OPTIONS=$EXTRA_HELM_OPTIONS" --set driver.name=$DRIVER.csi.azure.com --set controller.name=csi-$DRIVER-controller --set node.name=csi-$DRIVER-node"
39+
sed -i "s/blob.csi.azure.com/$DRIVER.csi.azure.com/g" deploy/example/storageclass-blobfuse.yaml
40+
sed -i "s/blob.csi.azure.com/$DRIVER.csi.azure.com/g" deploy/example/storageclass-blob-nfs.yaml
3741
make e2e-bootstrap
42+
sed -i "s/csi-blob-controller/csi-$DRIVER-controller/g" deploy/example/metrics/csi-blob-controller-svc.yaml
3843
make create-metrics-svc
3944
}
4045

@@ -53,7 +58,7 @@ mkdir -p /tmp/csi
5358
if [ ! -z ${EXTERNAL_E2E_TEST_BLOBFUSE} ]; then
5459
echo "begin to run blobfuse tests ...."
5560
cp deploy/example/storageclass-blobfuse.yaml /tmp/csi/storageclass.yaml
56-
ginkgo -p --progress --v -focus='External.Storage.*blob.csi.azure.com' \
61+
ginkgo -p --progress --v -focus="External.Storage.*$DRIVER.csi.azure.com" \
5762
-skip='\[Disruptive\]|\[Slow\]|allow exec of files on the volume|unmount after the subpath directory is deleted' kubernetes/test/bin/e2e.test -- \
5863
-storage.testdriver=$PROJECT_ROOT/test/external-e2e/testdriver-blobfuse.yaml \
5964
--kubeconfig=$KUBECONFIG
@@ -62,7 +67,7 @@ fi
6267
if [ ! -z ${EXTERNAL_E2E_TEST_NFS} ]; then
6368
echo "begin to run NFSv3 tests ...."
6469
cp deploy/example/storageclass-blob-nfs.yaml /tmp/csi/storageclass.yaml
65-
ginkgo -p --progress --v -focus='External.Storage.*blob.csi.azure.com' \
70+
ginkgo -p --progress --v -focus="External.Storage.*$DRIVER.csi.azure.com" \
6671
-skip='\[Disruptive\]|\[Slow\]|pod created with an initial fsgroup, volume contents ownership changed in first pod, new pod with same fsgroup skips ownership changes to the volume contents' kubernetes/test/bin/e2e.test -- \
6772
-storage.testdriver=$PROJECT_ROOT/test/external-e2e/testdriver-nfs.yaml \
6873
--kubeconfig=$KUBECONFIG

0 commit comments

Comments
 (0)