Skip to content

Commit edc398a

Browse files
Merge pull request #20 from rhrmo/rebase-1.17.0
STOR-2263: Rebase to upstream v1.17.0 for OCP 4.19
2 parents 5b090da + 2263a2a commit edc398a

File tree

127 files changed

+14235
-5096
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+14235
-5096
lines changed

Makefile

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ include release-tools/build.make
2929
GIT_COMMIT := $(shell git rev-parse HEAD)
3030
REGISTRY ?= andyzhangx
3131
REGISTRY_NAME := $(shell echo $(REGISTRY) | sed "s/.azurecr.io//g")
32-
IMAGE_VERSION ?= v1.16.0
32+
IMAGE_VERSION ?= v1.17.0
3333
VERSION ?= latest
3434
# Use a custom version for E2E tests if we are testing in CI
3535
ifdef CI
@@ -44,7 +44,7 @@ BUILD_DATE := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
4444
endif
4545
LDFLAGS = -X ${PKG}/pkg/smb.driverVersion=${IMAGE_VERSION} -X ${PKG}/pkg/smb.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/smb.buildDate=${BUILD_DATE}
4646
EXT_LDFLAGS = -s -w -extldflags "-static"
47-
E2E_HELM_OPTIONS ?= --set image.smb.repository=$(REGISTRY)/$(IMAGENAME) --set image.smb.tag=$(IMAGE_VERSION)
47+
E2E_HELM_OPTIONS ?= --set image.smb.repository=$(REGISTRY)/$(IMAGENAME) --set image.smb.tag=$(IMAGE_VERSION) --set controller.runOnControlPlane=true
4848
E2E_HELM_OPTIONS += ${EXTRA_HELM_OPTIONS}
4949
# Generate all combination of all OS, ARCH, and OSVERSIONS for iteration
5050
ALL_OS = linux windows
@@ -102,11 +102,16 @@ e2e-test:
102102

103103
.PHONY: e2e-bootstrap
104104
e2e-bootstrap: install-helm
105+
ifdef WINDOWS_USE_HOST_PROCESS_CONTAINERS
106+
(docker pull $(IMAGE_TAG) && docker pull $(IMAGE_TAG)-windows-hp) || make container-all push-manifest
107+
else
105108
docker pull $(IMAGE_TAG) || make container-all push-manifest
109+
endif
106110
ifdef TEST_WINDOWS
107111
helm upgrade csi-driver-smb charts/$(VERSION)/csi-driver-smb --namespace kube-system --wait --timeout=15m -v=5 --debug --install \
108112
${E2E_HELM_OPTIONS} \
109113
--set windows.enabled=true \
114+
--set windows.useHostProcessContainers=${WINDOWS_USE_HOST_PROCESS_CONTAINERS} \
110115
--set linux.enabled=false \
111116
--set controller.replicas=1 \
112117
--set controller.logLevel=6 \
@@ -162,6 +167,24 @@ container-windows:
162167
-t $(IMAGE_TAG)-windows-$(OSVERSION)-$(ARCH) --build-arg OSVERSION=$(OSVERSION) \
163168
--provenance=false --sbom=false \
164169
--build-arg ARCH=$(ARCH) -f ./cmd/smbplugin/Dockerfile.Windows .
170+
# workaround: only build hostprocess image once
171+
ifdef WINDOWS_USE_HOST_PROCESS_CONTAINERS
172+
ifeq ($(OSVERSION),ltsc2022)
173+
$(MAKE) container-windows-hostprocess
174+
$(MAKE) container-windows-hostprocess-latest
175+
endif
176+
endif
177+
178+
# Set --provenance=false to not generate the provenance (which is what causes the multi-platform index to be generated, even for a single platform).
179+
.PHONY: container-windows-hostprocess
180+
container-windows-hostprocess:
181+
docker buildx build --pull --output=type=$(OUTPUT_TYPE) --platform="windows/$(ARCH)" --provenance=false --sbom=false \
182+
-t $(IMAGE_TAG)-windows-hp -f ./cmd/smbplugin/Dockerfile.WindowsHostProcess .
183+
184+
.PHONY: container-windows-hostprocess-latest
185+
container-windows-hostprocess-latest:
186+
docker buildx build --pull --output=type=$(OUTPUT_TYPE) --platform="windows/$(ARCH)" --provenance=false --sbom=false \
187+
-t $(IMAGE_TAG_LATEST)-windows-hp -f ./cmd/smbplugin/Dockerfile.WindowsHostProcess .
165188

166189
.PHONY: container-all
167190
container-all: smb-windows
@@ -206,14 +229,18 @@ ifdef PUBLISH
206229
done; \
207230
done
208231
docker manifest inspect $(IMAGE_TAG_LATEST)
232+
docker manifest create --amend $(IMAGE_TAG_LATEST)-windows-hp $(IMAGE_TAG_LATEST)-windows-hp
233+
docker manifest inspect $(IMAGE_TAG_LATEST)-windows-hp
209234
endif
210235

211236
.PHONY: push-latest
212237
push-latest:
213238
ifdef CI
214239
docker manifest push --purge $(IMAGE_TAG_LATEST)
240+
docker manifest push --purge $(IMAGE_TAG_LATEST)-windows-hp
215241
else
216242
docker push $(IMAGE_TAG_LATEST)
243+
docker push $(IMAGE_TAG_LATEST)-windows-hp
217244
endif
218245

219246
.PHONY: install-smb-provisioner

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/csi-driver-smb)](https://artifacthub.io/packages/search?repo=csi-driver-smb)
66

77
### About
8-
This driver allows Kubernetes to access [SMB](https://wiki.wireshark.org/SMB) server on both Linux and Windows nodes, plugin name: `smb.csi.k8s.io`. The driver requires existing and already configured SMB server, it supports dynamic provisioning of Persistent Volumes via Persistent Volume Claims by creating a new sub directory under SMB server.
8+
This driver allows Kubernetes to access [SMB](https://wiki.wireshark.org/SMB) server on both Linux and Windows nodes, plugin name: `smb.csi.k8s.io`. The driver requires existing configured SMB server, it supports dynamic provisioning of Persistent Volumes via Persistent Volume Claims by creating a new sub directory under SMB server.
99

1010
### Project status: GA
1111

1212
### Container Images & Kubernetes Compatibility:
1313
|Driver Version | supported k8s version | supported [Windows csi-proxy](https://github.com/kubernetes-csi/csi-proxy) version |
1414
|---------------|-----------------------|-------------------------------------|
1515
|master branch | 1.21+ | v0.2.2+ |
16+
|v1.17.0 | 1.21+ | v0.2.2+ |
1617
|v1.16.0 | 1.21+ | v0.2.2+ |
1718
|v1.15.0 | 1.21+ | v0.2.2+ |
18-
|v1.14.0 | 1.21+ | v0.2.2+ |
1919

2020
### Driver parameters
2121
Please refer to `smb.csi.k8s.io` [driver parameters](./docs/driver-parameters.md)

charts/README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,13 @@
88

99
- run smb-controller on control plane node: `--set controller.runOnControlPlane=true`
1010
- Microk8s based kubernetes recommended settings:
11-
- `--set linux.kubelet="/var/snap/microk8s/common/var/lib/kubelet"` - sets correct path to microk8s kubelet even
12-
though a user has a folder link to it.
11+
- `--set linux.kubelet="/var/snap/microk8s/common/var/lib/kubelet"` - sets correct path to microk8s kubelet even though a user has a folder link to it.
1312

1413
### install a specific version
1514

1615
```console
1716
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
18-
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.16.0
17+
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.17.0
1918
```
2019

2120
### install driver with customized driver name, deployment name
@@ -52,13 +51,13 @@ The following table lists the configurable parameters of the latest SMB CSI Driv
5251
| `image.smb.repository` | csi-driver-smb docker image | `gcr.io/k8s-staging-sig-storage/smbplugin` |
5352
| `image.smb.tag` | csi-driver-smb docker image tag | `canary` |
5453
| `image.smb.pullPolicy` | csi-driver-smb image pull policy | `IfNotPresent` |
55-
| `image.csiProvisioner.tag` | csi-provisioner docker image tag | `v5.0.2` |
54+
| `image.csiProvisioner.tag` | csi-provisioner docker image tag | `v5.2.0` |
5655
| `image.csiProvisioner.pullPolicy` | csi-provisioner image pull policy | `IfNotPresent` |
5756
| `image.livenessProbe.repository` | liveness-probe docker image | `/livenessprobe` |
58-
| `image.livenessProbe.tag` | liveness-probe docker image tag | `v2.13.1` |
57+
| `image.livenessProbe.tag` | liveness-probe docker image tag | `v2.15.0` |
5958
| `image.livenessProbe.pullPolicy` | liveness-probe image pull policy | `IfNotPresent` |
6059
| `image.nodeDriverRegistrar.repository` | csi-node-driver-registrar docker image | `/csi-node-driver-registrar` |
61-
| `image.nodeDriverRegistrar.tag` | csi-node-driver-registrar docker image tag | `v2.11.1` |
60+
| `image.nodeDriverRegistrar.tag` | csi-node-driver-registrar docker image tag | `v2.13.0` |
6261
| `image.nodeDriverRegistrar.pullPolicy` | csi-node-driver-registrar image pull policy | `IfNotPresent` |
6362
| `imagePullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
6463
| `serviceAccount.create` | whether create service account of csi-smb-controller | `true` |
@@ -77,7 +76,7 @@ The following table lists the configurable parameters of the latest SMB CSI Driv
7776
| `controller.workingMountDir` | working directory for provisioner to mount smb shares temporarily | `/tmp` |
7877
| `controller.runOnMaster` | run controller on master node | `false` |
7978
| `controller.runOnControlPlane` | run controller on control plane node | `false` |
80-
| `controller.resources.csiProvisioner.limits.memory` | csi-provisioner memory limits | `100Mi` |
79+
| `controller.resources.csiProvisioner.limits.memory` | csi-provisioner memory limits | `400Mi` |
8180
| `controller.resources.csiProvisioner.requests.cpu` | csi-provisioner cpu requests limits | `10m` |
8281
| `controller.resources.csiProvisioner.requests.memory` | csi-provisioner memory requests limits | `20Mi` |
8382
| `controller.resources.livenessProbe.limits.memory` | liveness-probe memory limits | `300Mi` |
@@ -86,7 +85,7 @@ The following table lists the configurable parameters of the latest SMB CSI Driv
8685
| `controller.resources.smb.limits.memory` | smb-csi-driver memory limits | `200Mi` |
8786
| `controller.resources.smb.requests.cpu` | smb-csi-driver cpu requests limits | `10m` |
8887
| `controller.resources.smb.requests.memory` | smb-csi-driver memory requests limits | `20Mi` |
89-
| `controller.resources.csiResizer.limits.memory` | csi-resizer memory limits | `300Mi` |
88+
| `controller.resources.csiResizer.limits.memory` | csi-resizer memory limits | `400Mi` |
9089
| `controller.resources.csiResizer.requests.cpu` | csi-resizer cpu requests limits | `10m` |
9190
| `controller.resources.csiResizer.requests.memory` | csi-resizer memory requests limits | `20Mi` |
9291
| `controller.affinity` | controller pod affinity | `{}` |
@@ -112,7 +111,8 @@ The following table lists the configurable parameters of the latest SMB CSI Driv
112111
| `linux.resources.smb.limits.memory` | smb-csi-driver memory limits | `200Mi` |
113112
| `linux.resources.smb.requests.cpu` | smb-csi-driver cpu requests limits | `10m` |
114113
| `linux.resources.smb.requests.memory` | smb-csi-driver memory requests limits | `20Mi` |
115-
| `windows.enabled` | whether enable windows feature | `false` |
114+
| `windows.enabled` | whether enable windows feature | `true` |
115+
| `windows.useHostProcessContainers` | whether deploy driver daemonset with HostProcess containers on windows | `true` |
116116
| `windows.dsName` | name of driver daemonset on windows | `csi-smb-node-win` |
117117
| `windows.removeSMBMappingDuringUnmount` | remove SMBMapping during unmount on Windows node windows | `true` |
118118
| `windows.resources.livenessProbe.limits.memory` | liveness-probe memory limits | `200Mi` |
@@ -127,6 +127,7 @@ The following table lists the configurable parameters of the latest SMB CSI Driv
127127
| `windows.kubelet` | configure kubelet directory path on Windows agent node | `'C:\var\lib\kubelet'` |
128128

129129
### Csi Proxy support on windows
130+
> if you have set `windows.useHostProcessContainers` as `true`, csi-proxy is not needed by CSI driver.
130131
131132
The helm can setup the host-process deamonset for the csi proxy, by setting windows.csiproxy.enabled to true.
132133

0 commit comments

Comments
 (0)