Skip to content

Commit c1fe33f

Browse files
authored
Merge pull request #347 from andyzhangx/affinity-nodeselector
feat: add affinity, nodeSelector, runOnControlPlane in chart config
2 parents cfb2766 + 7c06c6b commit c1fe33f

File tree

7 files changed

+30
-4
lines changed

7 files changed

+30
-4
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ REGISTRY_NAME ?= $(shell echo $(REGISTRY) | sed "s/.azurecr.io//g")
4242
IMAGE_TAG = $(REGISTRY)/$(IMAGENAME):$(IMAGE_VERSION)
4343
IMAGE_TAG_LATEST = $(REGISTRY)/$(IMAGENAME):latest
4444

45-
E2E_HELM_OPTIONS ?= --set image.nfs.repository=$(REGISTRY)/$(IMAGENAME) --set image.nfs.tag=$(IMAGE_VERSION) --set image.nfs.pullPolicy=Always --set feature.enableInlineVolume=true --set controller.runOnMaster=true
45+
E2E_HELM_OPTIONS ?= --set image.nfs.repository=$(REGISTRY)/$(IMAGENAME) --set image.nfs.tag=$(IMAGE_VERSION) --set image.nfs.pullPolicy=Always --set feature.enableInlineVolume=true
4646
E2E_HELM_OPTIONS += ${EXTRA_HELM_OPTIONS}
4747

4848
# Output type of docker buildx build

charts/README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
- [install Helm](https://helm.sh/docs/intro/quickstart/#install-helm)
55

66
### Tips
7-
- make controller only run on master node: `--set controller.runOnMaster=true`
7+
- run controller on control plane node: `--set controller.runOnControlPlane=true`
88
- set replica of controller as `2`: `--set controller.replicas=2`
99

1010
### install a specific version
@@ -57,10 +57,13 @@ The following table lists the configurable parameters of the latest NFS CSI Driv
5757
| `serviceAccount.create` | whether create service account of csi-nfs-controller | `true` |
5858
| `rbac.create` | whether create rbac of csi-nfs-controller | `true` |
5959
| `controller.replicas` | replica number of csi-nfs-controller | `1` |
60-
| `controller.runOnMaster` | run controller on master node | `false` |
60+
| `controller.runOnMaster` | run controller on master node(deprecated on k8s 1.25+) |`false` |
61+
| `controller.runOnControlPlane` | run controller on control plane node |`false` |
6162
| `controller.dnsPolicy` | dnsPolicy of controller driver, available values: `Default`, `ClusterFirstWithHostNet`, `ClusterFirst` | `Default` |
6263
| `controller.logLevel` | controller driver log level |`5` |
6364
| `controller.workingMountDir` | working directory for provisioner to mount nfs shares temporarily | `/tmp` |
65+
| `controller.affinity` | controller pod affinity | `{}` |
66+
| `controller.nodeSelector` | controller pod node selector | `{}` |
6467
| `controller.tolerations` | controller pod tolerations | |
6568
| `controller.resources.csiProvisioner.limits.memory` | csi-provisioner memory limits | 100Mi |
6669
| `controller.resources.csiProvisioner.requests.cpu` | csi-provisioner cpu requests limits | 10m |
@@ -76,6 +79,8 @@ The following table lists the configurable parameters of the latest NFS CSI Driv
7679
| `node.maxUnavailable` | `maxUnavailable` value of driver node daemonset | `1`
7780
| `node.logLevel` | node driver log level |`5` |
7881
| `node.livenessProbe.healthPort ` | the health check port for liveness probe |`29653` |
82+
| `node.affinity` | node pod affinity | {} |
83+
| `node.nodeSelector` | node pod node selector | `{}` |
7984
| `node.tolerations` | node pod tolerations | |
8085
| `node.resources.livenessProbe.limits.memory` | liveness-probe memory limits | 100Mi |
8186
| `node.resources.livenessProbe.requests.cpu` | liveness-probe cpu requests limits | 10m |
68 Bytes
Binary file not shown.

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,21 @@ spec:
2222
hostNetwork: true # controller also needs to mount nfs to create dir
2323
dnsPolicy: {{ .Values.controller.dnsPolicy }}
2424
serviceAccountName: {{ .Values.serviceAccount.controller }}
25+
{{- with .Values.controller.affinity }}
26+
affinity:
27+
{{ toYaml . | indent 8 }}
28+
{{- end }}
2529
nodeSelector:
2630
kubernetes.io/os: linux
2731
{{- if .Values.controller.runOnMaster}}
2832
node-role.kubernetes.io/master: ""
2933
{{- end}}
34+
{{- if .Values.controller.runOnControlPlane}}
35+
node-role.kubernetes.io/control-plane: ""
36+
{{- end}}
37+
{{- with .Values.controller.nodeSelector }}
38+
{{ toYaml . | indent 8 }}
39+
{{- end }}
3040
priorityClassName: system-cluster-critical
3141
{{- with .Values.controller.tolerations }}
3242
tolerations:

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,15 @@ spec:
2525
hostNetwork: true # original nfs connection would be broken without hostNetwork setting
2626
dnsPolicy: {{ .Values.controller.dnsPolicy }}
2727
serviceAccountName: csi-nfs-node-sa
28+
{{- with .Values.node.affinity }}
29+
affinity:
30+
{{ toYaml . | indent 8 }}
31+
{{- end }}
2832
nodeSelector:
2933
kubernetes.io/os: linux
34+
{{- with .Values.node.nodeSelector }}
35+
{{ toYaml . | indent 8 }}
36+
{{- end }}
3037
{{- with .Values.node.tolerations }}
3138
tolerations:
3239
{{ toYaml . | indent 8 }}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ controller:
4444
logLevel: 5
4545
workingMountDir: "/tmp"
4646
dnsPolicy: Default # available values: Default, ClusterFirstWithHostNet, ClusterFirst
47+
affinity: {}
48+
nodeSelector: {}
4749
tolerations:
4850
- key: "node-role.kubernetes.io/master"
4951
operator: "Exists"
@@ -81,6 +83,8 @@ node:
8183
logLevel: 5
8284
livenessProbe:
8385
healthPort: 29653
86+
affinity: {}
87+
nodeSelector: {}
8488
tolerations:
8589
- operator: "Exists"
8690
resources:

test/external-e2e/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ setup_e2e_binaries() {
2929
curl -sL https://storage.googleapis.com/kubernetes-release/release/v1.24.0/kubernetes-test-linux-amd64.tar.gz --output e2e-tests.tar.gz
3030
tar -xvf e2e-tests.tar.gz && rm e2e-tests.tar.gz
3131

32-
export EXTRA_HELM_OPTIONS="--set driver.name=$DRIVER.csi.k8s.io --set controller.name=csi-$DRIVER-controller --set node.name=csi-$DRIVER-node --set feature.enableInlineVolume=true --set controller.runOnMaster=true"
32+
export EXTRA_HELM_OPTIONS="--set driver.name=$DRIVER.csi.k8s.io --set controller.name=csi-$DRIVER-controller --set node.name=csi-$DRIVER-node --set feature.enableInlineVolume=true"
3333

3434
# test on alternative driver name
3535
sed -i "s/nfs.csi.k8s.io/$DRIVER.csi.k8s.io/g" deploy/example/storageclass-nfs.yaml

0 commit comments

Comments
 (0)