Skip to content

Commit cfb126e

Browse files
authored
Node code updates for multipath device cleanup after use (#392)
* upgrade k8s version to v1.26.1 Signed-off-by: Yussuf Shaikh <[email protected]> * use mount-utils instead of deprecated utils/mount Signed-off-by: Yussuf Shaikh <[email protected]> * check for block volumes in NodeExpandVolume Signed-off-by: Yussuf Shaikh <[email protected]> * switch to dmsetup and multipathd for disk scan Signed-off-by: Yussuf Shaikh <[email protected]> * added cleanup before creating device Signed-off-by: Yussuf Shaikh <[email protected]> * added multipath utils to yum install list Signed-off-by: Yussuf Shaikh <[email protected]> * add mutex for multipath commands and populated paths before remove multipath device Signed-off-by: Yussuf Shaikh <[email protected]> * add logic to delete stale scsi disks Signed-off-by: Yussuf Shaikh <[email protected]> * do not run cleanup for search disk every time in parallel Signed-off-by: Yussuf Shaikh <[email protected]> * device and multipath refactoring Signed-off-by: Yussuf Shaikh <[email protected]> * fix the UT runs for mount and driver Signed-off-by: Yussuf Shaikh <[email protected]> * add device pkg mocks for running ut Signed-off-by: Yussuf Shaikh <[email protected]> * fix all node operations ut Signed-off-by: Yussuf Shaikh <[email protected]> * fix some test failure related to unstage Signed-off-by: Yussuf Shaikh <[email protected]> * get rid of staging device logic Signed-off-by: Yussuf Shaikh <[email protected]> * fix some review comments Signed-off-by: Yussuf Shaikh <[email protected]> * some code refactoring Signed-off-by: Yussuf Shaikh <[email protected]> * fix golangci-lint verify errors Signed-off-by: Yussuf Shaikh <[email protected]> --------- Signed-off-by: Yussuf Shaikh <[email protected]>
1 parent 8aa520c commit cfb126e

File tree

19 files changed

+1417
-886
lines changed

19 files changed

+1417
-886
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ ENTRYPOINT ["/ibm-powervs-block-csi-driver"]
2929

3030
# centos base image
3131
FROM --platform=$TARGETPLATFORM quay.io/centos/centos:stream8 AS centos-base
32-
RUN yum install -y util-linux nfs-utils e2fsprogs xfsprogs ca-certificates && yum clean all && rm -rf /var/cache/yum
32+
RUN yum install -y util-linux nfs-utils e2fsprogs xfsprogs ca-certificates device-mapper-multipath && yum clean all && rm -rf /var/cache/yum
3333
COPY --from=builder /go/src/sigs.k8s.io/ibm-powervs-block-csi-driver/bin/* /
3434
ENTRYPOINT ["/ibm-powervs-block-csi-driver"]

go.mod

Lines changed: 70 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
github.com/IBM-Cloud/power-go-client v1.2.3
77
github.com/IBM/go-sdk-core/v5 v5.13.2
88
github.com/IBM/platform-services-go-sdk v0.37.4
9-
github.com/container-storage-interface/spec v1.6.0
9+
github.com/container-storage-interface/spec v1.7.0
1010
github.com/davecgh/go-spew v1.1.1
1111
github.com/golang/mock v1.6.0
1212
github.com/kubernetes-csi/csi-test v2.2.0+incompatible
@@ -16,46 +16,39 @@ require (
1616
golang.org/x/sys v0.8.0
1717
google.golang.org/grpc v1.55.0
1818
gopkg.in/gcfg.v1 v1.2.3
19-
k8s.io/api v0.25.4
20-
k8s.io/apimachinery v0.25.4
21-
k8s.io/client-go v1.25.4
19+
k8s.io/api v0.26.1
20+
k8s.io/apimachinery v0.26.1
21+
k8s.io/client-go v1.26.1
2222
k8s.io/klog v1.0.0
2323
k8s.io/klog/v2 v2.100.1
24-
k8s.io/kubernetes v1.25.4
25-
k8s.io/mount-utils v0.25.4
24+
k8s.io/kubernetes v1.26.1
25+
k8s.io/mount-utils v0.26.1
2626
k8s.io/pod-security-admission v0.0.0
27-
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed
28-
sigs.k8s.io/controller-runtime v0.13.1
27+
k8s.io/utils v0.0.0-20221128185143-99ec85e7a448
28+
sigs.k8s.io/controller-runtime v0.14.6
2929
)
3030

3131
require (
32-
cloud.google.com/go/compute v1.18.0 // indirect
33-
cloud.google.com/go/compute/metadata v0.2.3 // indirect
34-
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
35-
github.com/Azure/go-autorest/autorest v0.11.27 // indirect
36-
github.com/Azure/go-autorest/autorest/adal v0.9.20 // indirect
37-
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
38-
github.com/Azure/go-autorest/logger v0.2.1 // indirect
39-
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
40-
github.com/PuerkitoBio/purell v1.1.1 // indirect
41-
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
4232
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
43-
github.com/aws/aws-sdk-go v1.38.49 // indirect
33+
github.com/aws/aws-sdk-go v1.44.116 // indirect
4434
github.com/beorn7/perks v1.0.1 // indirect
4535
github.com/blang/semver/v4 v4.0.0 // indirect
36+
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
4637
github.com/cespare/xxhash/v2 v2.2.0 // indirect
4738
github.com/docker/distribution v2.8.1+incompatible // indirect
48-
github.com/emicklei/go-restful/v3 v3.8.0 // indirect
39+
github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484 // indirect
40+
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
4941
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
5042
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
51-
github.com/felixge/httpsnoop v1.0.1 // indirect
43+
github.com/felixge/httpsnoop v1.0.3 // indirect
5244
github.com/fsnotify/fsnotify v1.6.0 // indirect
5345
github.com/go-logr/logr v1.2.3 // indirect
46+
github.com/go-logr/stdr v1.2.2 // indirect
5447
github.com/go-logr/zapr v1.2.3 // indirect
5548
github.com/go-openapi/analysis v0.21.2 // indirect
5649
github.com/go-openapi/errors v0.20.3 // indirect
5750
github.com/go-openapi/jsonpointer v0.19.5 // indirect
58-
github.com/go-openapi/jsonreference v0.19.6 // indirect
51+
github.com/go-openapi/jsonreference v0.20.0 // indirect
5952
github.com/go-openapi/loads v0.21.1 // indirect
6053
github.com/go-openapi/runtime v0.23.0 // indirect
6154
github.com/go-openapi/spec v0.20.4 // indirect
@@ -67,28 +60,27 @@ require (
6760
github.com/go-playground/validator/v10 v10.13.0 // indirect
6861
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
6962
github.com/gogo/protobuf v1.3.2 // indirect
70-
github.com/golang-jwt/jwt/v4 v4.2.0 // indirect
7163
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
7264
github.com/golang/protobuf v1.5.3 // indirect
7365
github.com/google/gnostic v0.5.7-v3refs // indirect
7466
github.com/google/go-cmp v0.5.9 // indirect
7567
github.com/google/gofuzz v1.1.0 // indirect
76-
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
68+
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect
7769
github.com/google/uuid v1.3.0 // indirect
78-
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
70+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
7971
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
8072
github.com/hashicorp/go-retryablehttp v0.7.2 // indirect
8173
github.com/imdario/mergo v0.3.12 // indirect
82-
github.com/inconshreveable/mousetrap v1.0.0 // indirect
74+
github.com/inconshreveable/mousetrap v1.0.1 // indirect
8375
github.com/jmespath/go-jmespath v0.4.0 // indirect
8476
github.com/josharian/intern v1.0.0 // indirect
8577
github.com/json-iterator/go v1.1.12 // indirect
8678
github.com/leodido/go-urn v1.2.3 // indirect
8779
github.com/mailru/easyjson v0.7.7 // indirect
88-
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
80+
github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect
8981
github.com/mitchellh/mapstructure v1.5.0 // indirect
9082
github.com/moby/spdystream v0.2.0 // indirect
91-
github.com/moby/sys/mountinfo v0.6.0 // indirect
83+
github.com/moby/sys/mountinfo v0.6.2 // indirect
9284
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
9385
github.com/modern-go/reflect2 v1.0.2 // indirect
9486
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
@@ -98,32 +90,31 @@ require (
9890
github.com/opencontainers/go-digest v1.0.0 // indirect
9991
github.com/opencontainers/selinux v1.10.0 // indirect
10092
github.com/opentracing/opentracing-go v1.2.0 // indirect
101-
github.com/prometheus/client_golang v1.12.2 // indirect
102-
github.com/prometheus/client_model v0.2.0 // indirect
103-
github.com/prometheus/common v0.32.1 // indirect
104-
github.com/prometheus/procfs v0.7.3 // indirect
105-
github.com/spf13/cobra v1.4.0 // indirect
93+
github.com/prometheus/client_golang v1.14.0 // indirect
94+
github.com/prometheus/client_model v0.3.0 // indirect
95+
github.com/prometheus/common v0.37.0 // indirect
96+
github.com/prometheus/procfs v0.8.0 // indirect
97+
github.com/spf13/cobra v1.6.0 // indirect
10698
github.com/spf13/pflag v1.0.5 // indirect
10799
go.mongodb.org/mongo-driver v1.11.3 // indirect
108-
go.opentelemetry.io/contrib v0.20.0 // indirect
109-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 // indirect
110-
go.opentelemetry.io/otel v0.20.0 // indirect
111-
go.opentelemetry.io/otel/exporters/otlp v0.20.0 // indirect
112-
go.opentelemetry.io/otel/metric v0.20.0 // indirect
113-
go.opentelemetry.io/otel/sdk v0.20.0 // indirect
114-
go.opentelemetry.io/otel/sdk/export/metric v0.20.0 // indirect
115-
go.opentelemetry.io/otel/sdk/metric v0.20.0 // indirect
116-
go.opentelemetry.io/otel/trace v0.20.0 // indirect
117-
go.opentelemetry.io/proto/otlp v0.7.0 // indirect
100+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.0 // indirect
101+
go.opentelemetry.io/otel v1.10.0 // indirect
102+
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
103+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
104+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
105+
go.opentelemetry.io/otel/metric v0.31.0 // indirect
106+
go.opentelemetry.io/otel/sdk v1.10.0 // indirect
107+
go.opentelemetry.io/otel/trace v1.10.0 // indirect
108+
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
118109
go.uber.org/atomic v1.7.0 // indirect
119110
go.uber.org/multierr v1.6.0 // indirect
120-
go.uber.org/zap v1.21.0 // indirect
111+
go.uber.org/zap v1.24.0 // indirect
121112
golang.org/x/crypto v0.7.0 // indirect
122113
golang.org/x/net v0.8.0 // indirect
123114
golang.org/x/oauth2 v0.6.0 // indirect
124115
golang.org/x/term v0.6.0 // indirect
125116
golang.org/x/text v0.8.0 // indirect
126-
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
117+
golang.org/x/time v0.3.0 // indirect
127118
golang.org/x/tools v0.7.0 // indirect
128119
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
129120
google.golang.org/appengine v1.6.7 // indirect
@@ -134,48 +125,47 @@ require (
134125
gopkg.in/warnings.v0 v0.1.1 // indirect
135126
gopkg.in/yaml.v2 v2.4.0 // indirect
136127
gopkg.in/yaml.v3 v3.0.1 // indirect
137-
k8s.io/apiextensions-apiserver v0.25.0 // indirect
138-
k8s.io/apiserver v0.25.4 // indirect
128+
k8s.io/apiextensions-apiserver v0.26.1 // indirect
129+
k8s.io/apiserver v0.26.1 // indirect
139130
k8s.io/cloud-provider v0.0.0 // indirect
140-
k8s.io/component-base v0.25.4 // indirect
141-
k8s.io/component-helpers v0.25.4 // indirect
142-
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect
131+
k8s.io/component-base v0.26.1 // indirect
132+
k8s.io/component-helpers v0.26.1 // indirect
133+
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect
143134
k8s.io/kubectl v0.0.0 // indirect
144-
k8s.io/kubelet v0.0.0 // indirect
145-
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.33 // indirect
135+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.35 // indirect
146136
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
147137
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
148138
sigs.k8s.io/yaml v1.3.0 // indirect
149139
)
150140

151141
replace (
152-
k8s.io/api => k8s.io/api v0.25.4
153-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.4
154-
k8s.io/apimachinery => k8s.io/apimachinery v0.25.4
155-
k8s.io/apiserver => k8s.io/apiserver v0.25.4
156-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.4
157-
k8s.io/client-go => k8s.io/client-go v0.25.4
158-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.25.4
159-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.25.4
160-
k8s.io/code-generator => k8s.io/code-generator v0.25.4
161-
k8s.io/component-base => k8s.io/component-base v0.25.4
162-
k8s.io/component-helpers => k8s.io/component-helpers v0.25.4
163-
k8s.io/controller-manager => k8s.io/controller-manager v0.25.4
164-
k8s.io/cri-api => k8s.io/cri-api v0.25.4
165-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.25.4
166-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.25.4
167-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.25.4
168-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.25.4
169-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.25.4
170-
k8s.io/kubectl => k8s.io/kubectl v0.25.4
171-
k8s.io/kubelet => k8s.io/kubelet v0.25.4
172-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.25.4
173-
k8s.io/metrics => k8s.io/metrics v0.25.4
174-
k8s.io/mount-utils => k8s.io/mount-utils v0.25.4
175-
k8s.io/node-api => k8s.io/node-api v0.25.4
176-
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.25.4
177-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.25.4
178-
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.25.4
179-
k8s.io/sample-controller => k8s.io/sample-controller v0.25.4
142+
k8s.io/api => k8s.io/api v0.26.1
143+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.1
144+
k8s.io/apimachinery => k8s.io/apimachinery v0.26.1
145+
k8s.io/apiserver => k8s.io/apiserver v0.26.1
146+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.1
147+
k8s.io/client-go => k8s.io/client-go v0.26.1
148+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.1
149+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.1
150+
k8s.io/code-generator => k8s.io/code-generator v0.26.1
151+
k8s.io/component-base => k8s.io/component-base v0.26.1
152+
k8s.io/component-helpers => k8s.io/component-helpers v0.26.1
153+
k8s.io/controller-manager => k8s.io/controller-manager v0.26.1
154+
k8s.io/cri-api => k8s.io/cri-api v0.26.1
155+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.1
156+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.1
157+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.1
158+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.1
159+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.1
160+
k8s.io/kubectl => k8s.io/kubectl v0.26.1
161+
k8s.io/kubelet => k8s.io/kubelet v0.26.1
162+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.1
163+
k8s.io/metrics => k8s.io/metrics v0.26.1
164+
k8s.io/mount-utils => k8s.io/mount-utils v0.26.1
165+
k8s.io/node-api => k8s.io/node-api v0.26.1
166+
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.26.1
167+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.1
168+
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.1
169+
k8s.io/sample-controller => k8s.io/sample-controller v0.26.1
180170
vbom.ml/util => github.com/fvbommel/util v0.0.0-20180919145318-efcd4e0f9787
181171
)

0 commit comments

Comments
 (0)