Skip to content

Commit 32dff4c

Browse files
Merge pull request kubernetes-csi#109 from gnufied/ocp-rebase-resizer
Bug 1855644: rebase resizer against 1.0 branch
2 parents e622a07 + 541911d commit 32dff4c

File tree

1,370 files changed

+125530
-130382
lines changed

Some content is hidden

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

1,370 files changed

+125530
-130382
lines changed

.cloudbuild.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
release-tools/cloudbuild.sh

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FROM gcr.io/distroless/static:latest
22
LABEL maintainers="Kubernetes Authors"
33
LABEL description="CSI External Resizer"
4+
ARG binary=./bin/csi-resizer
45

5-
COPY ./bin/csi-resizer csi-resizer
6+
COPY ${binary} csi-resizer
67
ENTRYPOINT ["/csi-resizer"]

README.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,9 @@ control-plane CSI RPC call or via node CSI RPC call or both as a two step proces
1414

1515
This information reflects the head of this branch.
1616

17-
| Compatible with CSI Version | Container Image | Recommended K8s Version |
18-
| ------------------------------------------------------------------------------------------ | -------------------------------| --------------- |
19-
| [CSI Spec v1.2.0](https://github.com/container-storage-interface/spec/releases/tag/v1.2.0) | quay.io/k8scsi/csi-resizer | 1.16 |
20-
21-
17+
| Compatible with CSI Version | Container Image | [Recommended K8s Version](https://kubernetes-csi.github.io/docs/kubernetes-compatibility.html#recommended-version) |
18+
| ------------------------------------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------ |
19+
| [CSI Spec v1.2.0](https://github.com/container-storage-interface/spec/releases/tag/v1.2.0) | quay.io/k8scsi/csi-resizer | 1.16 |
2220

2321
## Feature status
2422

@@ -68,15 +66,14 @@ Note that the external-resizer does not scale with more replicas. Only one exter
6866

6967
* All glog / klog arguments are supported, such as `-v <log level>` or `-alsologtostderr`.
7068

71-
7269
## Community, discussion, contribution, and support
7370

7471
Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).
7572

7673
You can reach the maintainers of this project at:
7774

78-
- [Slack](http://slack.k8s.io/)
79-
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-dev)
75+
* [Slack](http://slack.k8s.io/)
76+
* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-dev)
8077

8178
### Code of conduct
8279

cloudbuild.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
release-tools/cloudbuild.yaml

cmd/csi-resizer/main.go

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,14 @@ import (
2020
"context"
2121
"flag"
2222
"fmt"
23-
"k8s.io/client-go/util/workqueue"
23+
"k8s.io/client-go/kubernetes"
24+
"k8s.io/client-go/rest"
25+
"k8s.io/client-go/tools/clientcmd"
2426
"os"
2527
"time"
2628

29+
"k8s.io/client-go/util/workqueue"
30+
2731
"github.com/kubernetes-csi/csi-lib-utils/leaderelection"
2832
"github.com/kubernetes-csi/external-resizer/pkg/controller"
2933
"github.com/kubernetes-csi/external-resizer/pkg/resizer"
@@ -53,6 +57,11 @@ var (
5357
metricsAddress = flag.String("metrics-address", "", "The TCP network address where the prometheus metrics endpoint will listen (example: `:8080`). The default is empty string, which means metrics endpoint is disabled.")
5458
metricsPath = flag.String("metrics-path", "/metrics", "The HTTP path where prometheus metrics will be exposed. Default is `/metrics`.")
5559

60+
kubeAPIQPS = flag.Float64("kube-api-qps", 5, "QPS to use while communicating with the kubernetes apiserver. Defaults to 5.0.")
61+
kubeAPIBurst = flag.Int("kube-api-burst", 10, "Burst to use while communicating with the kubernetes apiserver. Defaults to 10.")
62+
63+
handleVolumeInUseError = flag.Bool("handle-volume-inuse-error", true, "Flag to turn on/off capability to handle volume in use error in resizer controller. Defaults to true if not set.")
64+
5665
version = "unknown"
5766
)
5867

@@ -67,7 +76,21 @@ func main() {
6776
}
6877
klog.Infof("Version : %s", version)
6978

70-
kubeClient, err := util.NewK8sClient(*master, *kubeConfig)
79+
var config *rest.Config
80+
var err error
81+
if *master != "" || *kubeConfig != "" {
82+
config, err = clientcmd.BuildConfigFromFlags(*master, *kubeConfig)
83+
} else {
84+
config, err = rest.InClusterConfig()
85+
}
86+
if err != nil {
87+
klog.Fatal(err.Error())
88+
}
89+
90+
config.QPS = float32(*kubeAPIQPS)
91+
config.Burst = *kubeAPIBurst
92+
93+
kubeClient, err := kubernetes.NewForConfig(config)
7194
if err != nil {
7295
klog.Fatal(err.Error())
7396
}
@@ -88,7 +111,7 @@ func main() {
88111
resizerName := csiResizer.Name()
89112
rc := controller.NewResizeController(resizerName, csiResizer, kubeClient, *resyncPeriod, informerFactory,
90113
workqueue.NewItemExponentialFailureRateLimiter(*retryIntervalStart, *retryIntervalMax),
91-
)
114+
*handleVolumeInUseError)
92115
run := func(ctx context.Context) {
93116
informerFactory.Start(wait.NeverStop)
94117
rc.Run(*workers, ctx)
@@ -99,7 +122,11 @@ func main() {
99122
run(context.TODO())
100123
} else {
101124
lockName := "external-resizer-" + util.SanitizeName(resizerName)
102-
le := leaderelection.NewLeaderElection(kubeClient, lockName, run)
125+
leKubeClient, err := kubernetes.NewForConfig(config)
126+
if err != nil {
127+
klog.Fatal(err.Error())
128+
}
129+
le := leaderelection.NewLeaderElection(leKubeClient, lockName, run)
103130

104131
if *leaderElectionNamespace != "" {
105132
le.WithNamespace(*leaderElectionNamespace)

deploy/kubernetes/rbac.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@ rules:
2929
# verbs: ["get", "list", "watch"]
3030
- apiGroups: [""]
3131
resources: ["persistentvolumes"]
32-
verbs: ["get", "list", "watch", "update", "patch"]
32+
verbs: ["get", "list", "watch", "patch"]
3333
- apiGroups: [""]
3434
resources: ["persistentvolumeclaims"]
3535
verbs: ["get", "list", "watch"]
36+
- apiGroups: [""]
37+
resources: ["pods"]
38+
verbs: ["get", "list", "watch"]
3639
- apiGroups: [""]
3740
resources: ["persistentvolumeclaims/status"]
38-
verbs: ["update", "patch"]
41+
verbs: ["patch"]
3942
- apiGroups: [""]
4043
resources: ["events"]
4144
verbs: ["list", "watch", "create", "update", "patch"]

go.mod

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,54 @@ go 1.12
44

55
require (
66
github.com/container-storage-interface/spec v1.2.0
7-
github.com/imdario/mergo v0.3.7 // indirect
7+
github.com/imdario/mergo v0.3.9 // indirect
88
github.com/kubernetes-csi/csi-lib-utils v0.7.0
9-
google.golang.org/grpc v1.26.0
10-
k8s.io/api v0.17.0
11-
k8s.io/apimachinery v0.17.1-beta.0
12-
k8s.io/client-go v0.17.0
13-
k8s.io/csi-translation-lib v0.17.0
9+
google.golang.org/grpc v1.28.0
10+
k8s.io/api v0.19.0-rc.2
11+
k8s.io/apimachinery v0.19.0-rc.2
12+
k8s.io/client-go v0.19.0-rc.2
13+
k8s.io/csi-translation-lib v0.19.0-rc.2
1414
k8s.io/klog v1.0.0
1515
)
1616

17-
replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.17.0
17+
replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.19.0-rc.2
1818

19-
replace k8s.io/apiserver => k8s.io/apiserver v0.17.0
19+
replace k8s.io/apiserver => k8s.io/apiserver v0.19.0-rc.2
2020

21-
replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.17.0
21+
replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.19.0-rc.2
2222

23-
replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.17.0
23+
replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.19.0-rc.2
2424

25-
replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.17.0
25+
replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.19.0-rc.2
2626

27-
replace k8s.io/code-generator => k8s.io/code-generator v0.17.1-beta.0
27+
replace k8s.io/code-generator => k8s.io/code-generator v0.19.0-rc.2
2828

29-
replace k8s.io/component-base => k8s.io/component-base v0.17.0
29+
replace k8s.io/component-base => k8s.io/component-base v0.19.0-rc.2
3030

31-
replace k8s.io/cri-api => k8s.io/cri-api v0.17.1-beta.0
31+
replace k8s.io/cri-api => k8s.io/cri-api v0.19.0-rc.2
3232

33-
replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.17.0
33+
replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.19.0-rc.2
3434

35-
replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.17.0
35+
replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.19.0-rc.2
3636

37-
replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.17.0
37+
replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.19.0-rc.2
3838

39-
replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.17.0
39+
replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.19.0-rc.2
4040

41-
replace k8s.io/kubectl => k8s.io/kubectl v0.17.0
41+
replace k8s.io/kubectl => k8s.io/kubectl v0.19.0-rc.2
4242

43-
replace k8s.io/kubelet => k8s.io/kubelet v0.17.0
43+
replace k8s.io/kubelet => k8s.io/kubelet v0.19.0-rc.2
4444

45-
replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.17.0
45+
replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.19.0-rc.2
4646

47-
replace k8s.io/metrics => k8s.io/metrics v0.17.0
47+
replace k8s.io/metrics => k8s.io/metrics v0.19.0-rc.2
4848

49-
replace k8s.io/node-api => k8s.io/node-api v0.17.0
49+
replace k8s.io/node-api => k8s.io/node-api v0.19.0-rc.2
5050

51-
replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.0
51+
replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.19.0-rc.2
5252

53-
replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.17.0
53+
replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.19.0-rc.2
5454

55-
replace k8s.io/sample-controller => k8s.io/sample-controller v0.17.0
55+
replace k8s.io/sample-controller => k8s.io/sample-controller v0.19.0-rc.2
5656

5757
replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.0.0-20190918203248-97c07dcbb623

0 commit comments

Comments
 (0)