From 60dcf6e36aa333908df4287cb5b45733a329ac09 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 27 Jan 2021 11:43:57 +0100 Subject: [PATCH 1/2] deploy: update images, add Kubernetes 1.20 Kubernetes 1.17 is no longer supported and by updating to 1.18 as minimal version we can use the GA CSIDriver v1 API. Also, all sidecar and driver images get updated. The CSI hostpath image update is important because the recently added health check sidecar depends on the new version. Kubernetes 1.20 is where officially the v1 snapshotter API is introduced. Therefore the new deployment for it also uses the external-snapshotter 4.x and the v1 APIs. --- deploy/kubernetes-1.17/README.md | 2 - deploy/kubernetes-1.18 | 1 - deploy/kubernetes-1.18/README.md | 2 + .../deploy.sh | 0 .../hostpath/csi-hostpath-attacher.yaml | 2 +- .../hostpath/csi-hostpath-driverinfo.yaml | 2 +- .../hostpath/csi-hostpath-plugin.yaml | 4 +- .../hostpath/csi-hostpath-provisioner.yaml | 2 +- .../hostpath/csi-hostpath-resizer.yaml | 2 +- .../hostpath/csi-hostpath-snapshotter.yaml | 2 +- .../hostpath/csi-hostpath-testing.yaml | 0 .../csi-hostpath-snapshotclass.yaml | 0 .../test-driver.yaml | 0 deploy/kubernetes-1.20/README.md | 3 + deploy/kubernetes-1.20/deploy.sh | 1 + .../hostpath/csi-hostpath-attacher.yaml | 46 +++++ .../hostpath/csi-hostpath-driverinfo.yaml | 12 ++ .../hostpath/csi-hostpath-plugin.yaml | 170 ++++++++++++++++++ .../hostpath/csi-hostpath-provisioner.yaml | 46 +++++ .../hostpath/csi-hostpath-resizer.yaml | 45 +++++ .../hostpath/csi-hostpath-snapshotter.yaml | 45 +++++ .../hostpath/csi-hostpath-testing.yaml | 64 +++++++ .../csi-hostpath-snapshotclass.yaml | 8 + deploy/kubernetes-1.20/test-driver.yaml | 22 +++ deploy/kubernetes-latest | 2 +- 25 files changed, 472 insertions(+), 11 deletions(-) delete mode 100644 deploy/kubernetes-1.17/README.md delete mode 120000 deploy/kubernetes-1.18 create mode 100644 deploy/kubernetes-1.18/README.md rename deploy/{kubernetes-1.17 => kubernetes-1.18}/deploy.sh (100%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-attacher.yaml (95%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-driverinfo.yaml (89%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-plugin.yaml (97%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-provisioner.yaml (95%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-resizer.yaml (95%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-snapshotter.yaml (95%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/hostpath/csi-hostpath-testing.yaml (100%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/snapshotter/csi-hostpath-snapshotclass.yaml (100%) rename deploy/{kubernetes-1.17 => kubernetes-1.18}/test-driver.yaml (100%) create mode 100644 deploy/kubernetes-1.20/README.md create mode 120000 deploy/kubernetes-1.20/deploy.sh create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-attacher.yaml create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-driverinfo.yaml create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-plugin.yaml create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-provisioner.yaml create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-resizer.yaml create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-snapshotter.yaml create mode 100644 deploy/kubernetes-1.20/hostpath/csi-hostpath-testing.yaml create mode 100644 deploy/kubernetes-1.20/snapshotter/csi-hostpath-snapshotclass.yaml create mode 100644 deploy/kubernetes-1.20/test-driver.yaml diff --git a/deploy/kubernetes-1.17/README.md b/deploy/kubernetes-1.17/README.md deleted file mode 100644 index bd0c91749..000000000 --- a/deploy/kubernetes-1.17/README.md +++ /dev/null @@ -1,2 +0,0 @@ -The deployment for Kubernetes 1.17 uses VolumeSnapshot Beta CRDs and thus is incompatible -with Kubernetes < 1.17 when the VolumeSnapshot CRDs were Alpha. diff --git a/deploy/kubernetes-1.18 b/deploy/kubernetes-1.18 deleted file mode 120000 index 588027544..000000000 --- a/deploy/kubernetes-1.18 +++ /dev/null @@ -1 +0,0 @@ -kubernetes-1.17 \ No newline at end of file diff --git a/deploy/kubernetes-1.18/README.md b/deploy/kubernetes-1.18/README.md new file mode 100644 index 000000000..5b71686e7 --- /dev/null +++ b/deploy/kubernetes-1.18/README.md @@ -0,0 +1,2 @@ +The deployment for Kubernetes 1.18 uses CSIDriver v1 and +thus is incompatible with Kubernetes < 1.18. diff --git a/deploy/kubernetes-1.17/deploy.sh b/deploy/kubernetes-1.18/deploy.sh similarity index 100% rename from deploy/kubernetes-1.17/deploy.sh rename to deploy/kubernetes-1.18/deploy.sh diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-attacher.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-attacher.yaml similarity index 95% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-attacher.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-attacher.yaml index e9c21f99e..6c5a14a14 100644 --- a/deploy/kubernetes-1.17/hostpath/csi-hostpath-attacher.yaml +++ b/deploy/kubernetes-1.18/hostpath/csi-hostpath-attacher.yaml @@ -26,7 +26,7 @@ spec: serviceAccountName: csi-attacher containers: - name: csi-attacher - image: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + image: k8s.gcr.io/sig-storage/csi-attacher:v3.1.0 args: - --v=5 - --csi-address=/csi/csi.sock diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-driverinfo.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-driverinfo.yaml similarity index 89% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-driverinfo.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-driverinfo.yaml index 47d6486be..6fcdad133 100644 --- a/deploy/kubernetes-1.17/hostpath/csi-hostpath-driverinfo.yaml +++ b/deploy/kubernetes-1.18/hostpath/csi-hostpath-driverinfo.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: CSIDriver metadata: name: hostpath.csi.k8s.io diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-plugin.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-plugin.yaml similarity index 97% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-plugin.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-plugin.yaml index 75dd4a255..d7ec6dff7 100644 --- a/deploy/kubernetes-1.17/hostpath/csi-hostpath-plugin.yaml +++ b/deploy/kubernetes-1.18/hostpath/csi-hostpath-plugin.yaml @@ -91,7 +91,7 @@ spec: name: csi-data-dir - name: hostpath - image: k8s.gcr.io/sig-storage/hostpathplugin:v1.4.0 + image: k8s.gcr.io/sig-storage/hostpathplugin:v1.5.0 args: - "--drivername=hostpath.csi.k8s.io" - "--v=5" @@ -136,7 +136,7 @@ spec: volumeMounts: - mountPath: /csi name: socket-dir - image: k8s.gcr.io/sig-storage/livenessprobe:v2.1.0 + image: k8s.gcr.io/sig-storage/livenessprobe:v2.2.0 args: - --csi-address=/csi/csi.sock - --health-port=9898 diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-provisioner.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-provisioner.yaml similarity index 95% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-provisioner.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-provisioner.yaml index fca9d500a..82ddeb00f 100644 --- a/deploy/kubernetes-1.17/hostpath/csi-hostpath-provisioner.yaml +++ b/deploy/kubernetes-1.18/hostpath/csi-hostpath-provisioner.yaml @@ -26,7 +26,7 @@ spec: serviceAccountName: csi-provisioner containers: - name: csi-provisioner - image: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + image: k8s.gcr.io/sig-storage/csi-provisioner:v2.1.0 args: - -v=5 - --csi-address=/csi/csi.sock diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-resizer.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-resizer.yaml similarity index 95% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-resizer.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-resizer.yaml index 40f72e4d7..524f9ed4f 100644 --- a/deploy/kubernetes-1.17/hostpath/csi-hostpath-resizer.yaml +++ b/deploy/kubernetes-1.18/hostpath/csi-hostpath-resizer.yaml @@ -26,7 +26,7 @@ spec: serviceAccountName: csi-resizer containers: - name: csi-resizer - image: k8s.gcr.io/sig-storage/csi-resizer:v1.0.0 + image: k8s.gcr.io/sig-storage/csi-resizer:v1.1.0 args: - -v=5 - -csi-address=/csi/csi.sock diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-snapshotter.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-snapshotter.yaml similarity index 95% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-snapshotter.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-snapshotter.yaml index 1ea826c2c..b9685eb65 100644 --- a/deploy/kubernetes-1.17/hostpath/csi-hostpath-snapshotter.yaml +++ b/deploy/kubernetes-1.18/hostpath/csi-hostpath-snapshotter.yaml @@ -26,7 +26,7 @@ spec: serviceAccount: csi-snapshotter containers: - name: csi-snapshotter - image: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.0 + image: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.3 args: - -v=5 - --csi-address=/csi/csi.sock diff --git a/deploy/kubernetes-1.17/hostpath/csi-hostpath-testing.yaml b/deploy/kubernetes-1.18/hostpath/csi-hostpath-testing.yaml similarity index 100% rename from deploy/kubernetes-1.17/hostpath/csi-hostpath-testing.yaml rename to deploy/kubernetes-1.18/hostpath/csi-hostpath-testing.yaml diff --git a/deploy/kubernetes-1.17/snapshotter/csi-hostpath-snapshotclass.yaml b/deploy/kubernetes-1.18/snapshotter/csi-hostpath-snapshotclass.yaml similarity index 100% rename from deploy/kubernetes-1.17/snapshotter/csi-hostpath-snapshotclass.yaml rename to deploy/kubernetes-1.18/snapshotter/csi-hostpath-snapshotclass.yaml diff --git a/deploy/kubernetes-1.17/test-driver.yaml b/deploy/kubernetes-1.18/test-driver.yaml similarity index 100% rename from deploy/kubernetes-1.17/test-driver.yaml rename to deploy/kubernetes-1.18/test-driver.yaml diff --git a/deploy/kubernetes-1.20/README.md b/deploy/kubernetes-1.20/README.md new file mode 100644 index 000000000..cebcb92d7 --- /dev/null +++ b/deploy/kubernetes-1.20/README.md @@ -0,0 +1,3 @@ +The deployment for Kubernetes 1.20 uses the CSI snapshotter sidecar +4.x and thus is incompatible with Kubernetes clusters where older +snapshotter CRDs are installed. diff --git a/deploy/kubernetes-1.20/deploy.sh b/deploy/kubernetes-1.20/deploy.sh new file mode 120000 index 000000000..589c43f62 --- /dev/null +++ b/deploy/kubernetes-1.20/deploy.sh @@ -0,0 +1 @@ +../util/deploy-hostpath.sh \ No newline at end of file diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-attacher.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-attacher.yaml new file mode 100644 index 000000000..6c5a14a14 --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-attacher.yaml @@ -0,0 +1,46 @@ +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: csi-hostpath-attacher +spec: + serviceName: "csi-hostpath-attacher" + replicas: 1 + selector: + matchLabels: + app: csi-hostpath-attacher + template: + metadata: + labels: + app: csi-hostpath-attacher + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - csi-hostpathplugin + topologyKey: kubernetes.io/hostname + serviceAccountName: csi-attacher + containers: + - name: csi-attacher + image: k8s.gcr.io/sig-storage/csi-attacher:v3.1.0 + args: + - --v=5 + - --csi-address=/csi/csi.sock + securityContext: + # This is necessary only for systems with SELinux, where + # non-privileged sidecar containers cannot access unix domain socket + # created by privileged CSI driver container. + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/csi-hostpath + type: DirectoryOrCreate + name: socket-dir diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-driverinfo.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-driverinfo.yaml new file mode 100644 index 000000000..6fcdad133 --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-driverinfo.yaml @@ -0,0 +1,12 @@ +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: hostpath.csi.k8s.io +spec: + # Supports persistent and ephemeral inline volumes. + volumeLifecycleModes: + - Persistent + - Ephemeral + # To determine at runtime which mode a volume uses, pod info and its + # "csi.storage.k8s.io/ephemeral" entry are needed. + podInfoOnMount: true diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-plugin.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-plugin.yaml new file mode 100644 index 000000000..d7ec6dff7 --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-plugin.yaml @@ -0,0 +1,170 @@ +# Service defined here, plus serviceName below in StatefulSet, +# are needed only because of condition explained in +# https://github.com/kubernetes/kubernetes/issues/69608 + +kind: Service +apiVersion: v1 +metadata: + name: csi-hostpathplugin + labels: + app: csi-hostpathplugin +spec: + selector: + app: csi-hostpathplugin + ports: + - name: dummy + port: 12345 +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: csi-hostpathplugin +spec: + serviceName: "csi-hostpathplugin" + # One replica only: + # Host path driver only works when everything runs + # on a single node. We achieve that by starting it once and then + # co-locate all other pods via inter-pod affinity + replicas: 1 + selector: + matchLabels: + app: csi-hostpathplugin + template: + metadata: + labels: + app: csi-hostpathplugin + spec: + serviceAccount: csi-external-health-monitor-controller + containers: + - name: csi-external-health-monitor-agent + image: k8s.gcr.io/sig-storage/csi-external-health-monitor-agent:v0.2.0 + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: ADDRESS + value: /csi/csi.sock + imagePullPolicy: "IfNotPresent" + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: csi-external-health-monitor-controller + image: k8s.gcr.io/sig-storage/csi-external-health-monitor-controller:v0.2.0 + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + env: + - name: ADDRESS + value: /csi/csi.sock + imagePullPolicy: "IfNotPresent" + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: node-driver-registrar + image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 + args: + - --v=5 + - --csi-address=/csi/csi.sock + - --kubelet-registration-path=/var/lib/kubelet/plugins/csi-hostpath/csi.sock + securityContext: + # This is necessary only for systems with SELinux, where + # non-privileged sidecar containers cannot access unix domain socket + # created by privileged CSI driver container. + privileged: true + env: + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /registration + name: registration-dir + - mountPath: /csi-data-dir + name: csi-data-dir + + - name: hostpath + image: k8s.gcr.io/sig-storage/hostpathplugin:v1.5.0 + args: + - "--drivername=hostpath.csi.k8s.io" + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + env: + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + securityContext: + privileged: true + ports: + - containerPort: 9898 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 10 + timeoutSeconds: 3 + periodSeconds: 2 + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /var/lib/kubelet/pods + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /var/lib/kubelet/plugins + mountPropagation: Bidirectional + name: plugins-dir + - mountPath: /csi-data-dir + name: csi-data-dir + - mountPath: /dev + name: dev-dir + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: k8s.gcr.io/sig-storage/livenessprobe:v2.2.0 + args: + - --csi-address=/csi/csi.sock + - --health-port=9898 + + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/csi-hostpath + type: DirectoryOrCreate + name: socket-dir + - hostPath: + path: /var/lib/kubelet/pods + type: DirectoryOrCreate + name: mountpoint-dir + - hostPath: + path: /var/lib/kubelet/plugins_registry + type: Directory + name: registration-dir + - hostPath: + path: /var/lib/kubelet/plugins + type: Directory + name: plugins-dir + - hostPath: + # 'path' is where PV data is persisted on host. + # using /tmp is also possible while the PVs will not available after plugin container recreation or host reboot + path: /var/lib/csi-hostpath-data/ + type: DirectoryOrCreate + name: csi-data-dir + - hostPath: + path: /dev + type: Directory + name: dev-dir diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-provisioner.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-provisioner.yaml new file mode 100644 index 000000000..82ddeb00f --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-provisioner.yaml @@ -0,0 +1,46 @@ +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: csi-hostpath-provisioner +spec: + serviceName: "csi-hostpath-provisioner" + replicas: 1 + selector: + matchLabels: + app: csi-hostpath-provisioner + template: + metadata: + labels: + app: csi-hostpath-provisioner + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - csi-hostpathplugin + topologyKey: kubernetes.io/hostname + serviceAccountName: csi-provisioner + containers: + - name: csi-provisioner + image: k8s.gcr.io/sig-storage/csi-provisioner:v2.1.0 + args: + - -v=5 + - --csi-address=/csi/csi.sock + - --feature-gates=Topology=true + securityContext: + # This is necessary only for systems with SELinux, where + # non-privileged sidecar containers cannot access unix domain socket + # created by privileged CSI driver container. + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/csi-hostpath + type: DirectoryOrCreate + name: socket-dir diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-resizer.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-resizer.yaml new file mode 100644 index 000000000..524f9ed4f --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-resizer.yaml @@ -0,0 +1,45 @@ +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: csi-hostpath-resizer +spec: + serviceName: "csi-hostpath-resizer" + replicas: 1 + selector: + matchLabels: + app: csi-hostpath-resizer + template: + metadata: + labels: + app: csi-hostpath-resizer + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - csi-hostpathplugin + topologyKey: kubernetes.io/hostname + serviceAccountName: csi-resizer + containers: + - name: csi-resizer + image: k8s.gcr.io/sig-storage/csi-resizer:v1.1.0 + args: + - -v=5 + - -csi-address=/csi/csi.sock + securityContext: + # This is necessary only for systems with SELinux, where + # non-privileged sidecar containers cannot access unix domain socket + # created by privileged CSI driver container. + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/csi-hostpath + type: DirectoryOrCreate + name: socket-dir diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-snapshotter.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-snapshotter.yaml new file mode 100644 index 000000000..3a61d9e14 --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-snapshotter.yaml @@ -0,0 +1,45 @@ +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: csi-hostpath-snapshotter +spec: + serviceName: "csi-hostpath-snapshotter" + replicas: 1 + selector: + matchLabels: + app: csi-hostpath-snapshotter + template: + metadata: + labels: + app: csi-hostpath-snapshotter + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - csi-hostpathplugin + topologyKey: kubernetes.io/hostname + serviceAccount: csi-snapshotter + containers: + - name: csi-snapshotter + image: k8s.gcr.io/sig-storage/csi-snapshotter:v4.0.0 + args: + - -v=5 + - --csi-address=/csi/csi.sock + securityContext: + # This is necessary only for systems with SELinux, where + # non-privileged sidecar containers cannot access unix domain socket + # created by privileged CSI driver container. + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/csi-hostpath + type: DirectoryOrCreate + name: socket-dir diff --git a/deploy/kubernetes-1.20/hostpath/csi-hostpath-testing.yaml b/deploy/kubernetes-1.20/hostpath/csi-hostpath-testing.yaml new file mode 100644 index 000000000..188a5bde8 --- /dev/null +++ b/deploy/kubernetes-1.20/hostpath/csi-hostpath-testing.yaml @@ -0,0 +1,64 @@ +# WARNING: this is only for testing purposes. Do not install in a production +# cluster. +# +# This exposes the hostpath's Unix domain csi.sock as a TCP port to the +# outside world. The mapping from Unix domain socket to TCP is done +# by socat. +# +# This is useful for testing with csi-sanity or csc. + +apiVersion: v1 +kind: Service +metadata: + name: hostpath-service +spec: + type: NodePort + selector: + app: csi-hostpath-socat + ports: + - port: 10000 # fixed port inside the pod, dynamically allocated port outside +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: csi-hostpath-socat +spec: + serviceName: "csi-hostpath-socat" + replicas: 1 + selector: + matchLabels: + app: csi-hostpath-socat + template: + metadata: + labels: + app: csi-hostpath-socat + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - csi-hostpathplugin + topologyKey: kubernetes.io/hostname + containers: + - name: socat + image: alpine/socat:1.0.3 + args: + - tcp-listen:10000,fork,reuseaddr + - unix-connect:/csi/csi.sock + securityContext: + # This is necessary only for systems with SELinux, where + # non-privileged sidecar containers cannot access unix domain socket + # created by privileged CSI driver container. + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/csi-hostpath + type: DirectoryOrCreate + name: socket-dir diff --git a/deploy/kubernetes-1.20/snapshotter/csi-hostpath-snapshotclass.yaml b/deploy/kubernetes-1.20/snapshotter/csi-hostpath-snapshotclass.yaml new file mode 100644 index 000000000..2f8d02cd2 --- /dev/null +++ b/deploy/kubernetes-1.20/snapshotter/csi-hostpath-snapshotclass.yaml @@ -0,0 +1,8 @@ +# Usage of the v1 API implies that the cluster must have +# external-snapshotter v4.x installed. +apiVersion: snapshot.storage.k8s.io/v1 +kind: VolumeSnapshotClass +metadata: + name: csi-hostpath-snapclass +driver: hostpath.csi.k8s.io #csi-hostpath +deletionPolicy: Delete diff --git a/deploy/kubernetes-1.20/test-driver.yaml b/deploy/kubernetes-1.20/test-driver.yaml new file mode 100644 index 000000000..7133f20dc --- /dev/null +++ b/deploy/kubernetes-1.20/test-driver.yaml @@ -0,0 +1,22 @@ +# This file describes how to test this deployment of the CSI hostpath driver +# using the Kubernetes 1.17 E2E test suite. For details see: +# https://github.com/kubernetes/kubernetes/tree/v1.17.0/test/e2e/storage/external + +StorageClass: + FromName: true +SnapshotClass: + FromName: true +DriverInfo: + Name: hostpath.csi.k8s.io + SupportedSizeRange: + Min: 1Mi + Capabilities: + block: true + controllerExpansion: true + exec: true + multipods: true + nodeExpansion: true + persistence: true + singleNodeVolume: true + snapshotDataSource: true + topology: true diff --git a/deploy/kubernetes-latest b/deploy/kubernetes-latest index 207e3298c..721e0c620 120000 --- a/deploy/kubernetes-latest +++ b/deploy/kubernetes-latest @@ -1 +1 @@ -kubernetes-1.19 \ No newline at end of file +kubernetes-1.20 \ No newline at end of file From 2100403467101738ba1c5c1160798f87ef1756e5 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 27 Jan 2021 13:41:16 +0100 Subject: [PATCH 2/2] release: v1.5.0 --- CHANGELOG/CHANGELOG-1.5.md | 428 +++++++++++++++++++++++++++++++++++++ 1 file changed, 428 insertions(+) create mode 100644 CHANGELOG/CHANGELOG-1.5.md diff --git a/CHANGELOG/CHANGELOG-1.5.md b/CHANGELOG/CHANGELOG-1.5.md new file mode 100644 index 000000000..103214094 --- /dev/null +++ b/CHANGELOG/CHANGELOG-1.5.md @@ -0,0 +1,428 @@ +# Release notes for v1.5.0 + +[Documentation](https://kubernetes-csi.github.io) + +# Changelog since v1.4.0 + +## Changes by Kind + +### Feature + * Support external-health-monitor feature in hostpath driver ([#210](https://github.com/kubernetes-csi/csi-driver-host-path/pull/210), [@fengzixu](https://github.com/fengzixu)) + +### Bug or Regression + * Add topology to the CreateVolumeResponse for existing volumes ([#231](https://github.com/kubernetes-csi/csi-driver-host-path/pull/231), [@Jiawei0227](https://github.com/Jiawei0227)) + * Make raw block PVC creation from VolumeSnapshot idempotent. ([#220](https://github.com/kubernetes-csi/csi-driver-host-path/pull/220), [@RaunakShah](https://github.com/RaunakShah)) + +### Other (Cleanup or Flake) + * Remove Service object from YAML files ([#196](https://github.com/kubernetes-csi/csi-driver-host-path/pull/196), [@Kartik494](https://github.com/Kartik494)) + * Update of all dependencies ([#230](https://github.com/kubernetes-csi/csi-driver-host-path/pull/230), [@pohly](https://github.com/pohly)) + * Update sidecar images to the latest releases and add 1.19 deployment ([#200](https://github.com/kubernetes-csi/csi-driver-host-path/pull/200), [@msau42](https://github.com/msau42)) + * Update sidecar images to the latest releases and add 1.20 deployment ([#238](https://github.com/kubernetes-csi/csi-driver-host-path/pull/238), [@pohly](https://github.com/pohly)) + +## Dependencies + +### Added +- bitbucket.org/bertimus9/systemstat: 0eeff89 +- cloud.google.com/go/bigquery: v1.4.0 +- cloud.google.com/go/datastore: v1.1.0 +- cloud.google.com/go/firestore: v1.1.0 +- cloud.google.com/go/pubsub: v1.2.0 +- cloud.google.com/go/storage: v1.6.0 +- dmitri.shuralyov.com/gpu/mtl: 666a987 +- github.com/Azure/azure-sdk-for-go: [v43.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/tree/v43.0.0) +- github.com/Azure/go-ansiterm: [d6e3b33](https://github.com/Azure/go-ansiterm/tree/d6e3b33) +- github.com/Azure/go-autorest/autorest/adal: [v0.9.5](https://github.com/Azure/go-autorest/autorest/adal/tree/v0.9.5) +- github.com/Azure/go-autorest/autorest/date: [v0.3.0](https://github.com/Azure/go-autorest/autorest/date/tree/v0.3.0) +- github.com/Azure/go-autorest/autorest/mocks: [v0.4.1](https://github.com/Azure/go-autorest/autorest/mocks/tree/v0.4.1) +- github.com/Azure/go-autorest/autorest/to: [v0.2.0](https://github.com/Azure/go-autorest/autorest/to/tree/v0.2.0) +- github.com/Azure/go-autorest/autorest/validation: [v0.1.0](https://github.com/Azure/go-autorest/autorest/validation/tree/v0.1.0) +- github.com/Azure/go-autorest/autorest: [v0.11.1](https://github.com/Azure/go-autorest/autorest/tree/v0.11.1) +- github.com/Azure/go-autorest/logger: [v0.2.0](https://github.com/Azure/go-autorest/logger/tree/v0.2.0) +- github.com/Azure/go-autorest/tracing: [v0.6.0](https://github.com/Azure/go-autorest/tracing/tree/v0.6.0) +- github.com/Azure/go-autorest: [v14.2.0+incompatible](https://github.com/Azure/go-autorest/tree/v14.2.0) +- github.com/BurntSushi/xgb: [27f1227](https://github.com/BurntSushi/xgb/tree/27f1227) +- github.com/GoogleCloudPlatform/k8s-cloud-provider: [7901bc8](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/tree/7901bc8) +- github.com/JeffAshton/win_pdh: [76bb4ee](https://github.com/JeffAshton/win_pdh/tree/76bb4ee) +- github.com/MakeNowJust/heredoc: [bb23615](https://github.com/MakeNowJust/heredoc/tree/bb23615) +- github.com/Microsoft/go-winio: [v0.4.15](https://github.com/Microsoft/go-winio/tree/v0.4.15) +- github.com/Microsoft/hcsshim: [5eafd15](https://github.com/Microsoft/hcsshim/tree/5eafd15) +- github.com/NYTimes/gziphandler: [56545f4](https://github.com/NYTimes/gziphandler/tree/56545f4) +- github.com/OneOfOne/xxhash: [v1.2.2](https://github.com/OneOfOne/xxhash/tree/v1.2.2) +- github.com/PuerkitoBio/purell: [v1.1.1](https://github.com/PuerkitoBio/purell/tree/v1.1.1) +- github.com/PuerkitoBio/urlesc: [de5bf2a](https://github.com/PuerkitoBio/urlesc/tree/de5bf2a) +- github.com/agnivade/levenshtein: [v1.0.1](https://github.com/agnivade/levenshtein/tree/v1.0.1) +- github.com/ajstarks/svgo: [644b8db](https://github.com/ajstarks/svgo/tree/644b8db) +- github.com/alecthomas/template: [fb15b89](https://github.com/alecthomas/template/tree/fb15b89) +- github.com/alecthomas/units: [c3de453](https://github.com/alecthomas/units/tree/c3de453) +- github.com/andreyvit/diff: [c7f18ee](https://github.com/andreyvit/diff/tree/c7f18ee) +- github.com/armon/circbuf: [bbbad09](https://github.com/armon/circbuf/tree/bbbad09) +- github.com/armon/consul-api: [eb2c6b5](https://github.com/armon/consul-api/tree/eb2c6b5) +- github.com/armon/go-metrics: [f0300d1](https://github.com/armon/go-metrics/tree/f0300d1) +- github.com/armon/go-radix: [7fddfc3](https://github.com/armon/go-radix/tree/7fddfc3) +- github.com/asaskevich/govalidator: [f61b66f](https://github.com/asaskevich/govalidator/tree/f61b66f) +- github.com/auth0/go-jwt-middleware: [5493cab](https://github.com/auth0/go-jwt-middleware/tree/5493cab) +- github.com/aws/aws-sdk-go: [v1.35.24](https://github.com/aws/aws-sdk-go/tree/v1.35.24) +- github.com/beorn7/perks: [v1.0.1](https://github.com/beorn7/perks/tree/v1.0.1) +- github.com/bgentry/speakeasy: [v0.1.0](https://github.com/bgentry/speakeasy/tree/v0.1.0) +- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) +- github.com/bketelsen/crypt: [5cbc8cc](https://github.com/bketelsen/crypt/tree/5cbc8cc) +- github.com/blang/semver: [v3.5.1+incompatible](https://github.com/blang/semver/tree/v3.5.1) +- github.com/boltdb/bolt: [v1.3.1](https://github.com/boltdb/bolt/tree/v1.3.1) +- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) +- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) +- github.com/cespare/xxhash/v2: [v2.1.1](https://github.com/cespare/xxhash/v2/tree/v2.1.1) +- github.com/cespare/xxhash: [v1.1.0](https://github.com/cespare/xxhash/tree/v1.1.0) +- github.com/chai2010/gettext-go: [c6fed77](https://github.com/chai2010/gettext-go/tree/c6fed77) +- github.com/checkpoint-restore/go-criu/v4: [v4.1.0](https://github.com/checkpoint-restore/go-criu/v4/tree/v4.1.0) +- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) +- github.com/chzyer/logex: [v1.1.10](https://github.com/chzyer/logex/tree/v1.1.10) +- github.com/chzyer/readline: [2972be2](https://github.com/chzyer/readline/tree/2972be2) +- github.com/chzyer/test: [a1ea475](https://github.com/chzyer/test/tree/a1ea475) +- github.com/cilium/ebpf: [1c8d4c9](https://github.com/cilium/ebpf/tree/1c8d4c9) +- github.com/clusterhq/flocker-go: [2b8b725](https://github.com/clusterhq/flocker-go/tree/2b8b725) +- github.com/cncf/udpa/go: [efcf912](https://github.com/cncf/udpa/go/tree/efcf912) +- github.com/cockroachdb/datadriven: [80d97fb](https://github.com/cockroachdb/datadriven/tree/80d97fb) +- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) +- github.com/containerd/cgroups: [0dbf7f0](https://github.com/containerd/cgroups/tree/0dbf7f0) +- github.com/containerd/console: [v1.0.0](https://github.com/containerd/console/tree/v1.0.0) +- github.com/containerd/containerd: [v1.4.1](https://github.com/containerd/containerd/tree/v1.4.1) +- github.com/containerd/continuity: [aaeac12](https://github.com/containerd/continuity/tree/aaeac12) +- github.com/containerd/fifo: [a9fb20d](https://github.com/containerd/fifo/tree/a9fb20d) +- github.com/containerd/go-runc: [5a6d9f3](https://github.com/containerd/go-runc/tree/5a6d9f3) +- github.com/containerd/ttrpc: [v1.0.2](https://github.com/containerd/ttrpc/tree/v1.0.2) +- github.com/containerd/typeurl: [v1.0.1](https://github.com/containerd/typeurl/tree/v1.0.1) +- github.com/containernetworking/cni: [v0.8.0](https://github.com/containernetworking/cni/tree/v0.8.0) +- github.com/coredns/corefile-migration: [v1.0.10](https://github.com/coredns/corefile-migration/tree/v1.0.10) +- github.com/coreos/bbolt: [v1.3.2](https://github.com/coreos/bbolt/tree/v1.3.2) +- github.com/coreos/etcd: [v3.3.13+incompatible](https://github.com/coreos/etcd/tree/v3.3.13) +- github.com/coreos/go-oidc: [v2.1.0+incompatible](https://github.com/coreos/go-oidc/tree/v2.1.0) +- github.com/coreos/go-semver: [v0.3.0](https://github.com/coreos/go-semver/tree/v0.3.0) +- github.com/coreos/go-systemd/v22: [v22.1.0](https://github.com/coreos/go-systemd/v22/tree/v22.1.0) +- github.com/coreos/go-systemd: [95778df](https://github.com/coreos/go-systemd/tree/95778df) +- github.com/coreos/pkg: [399ea9e](https://github.com/coreos/pkg/tree/399ea9e) +- github.com/cpuguy83/go-md2man/v2: [v2.0.0](https://github.com/cpuguy83/go-md2man/v2/tree/v2.0.0) +- github.com/creack/pty: [v1.1.7](https://github.com/creack/pty/tree/v1.1.7) +- github.com/cyphar/filepath-securejoin: [v0.2.2](https://github.com/cyphar/filepath-securejoin/tree/v0.2.2) +- github.com/daviddengcn/go-colortext: [511bcaf](https://github.com/daviddengcn/go-colortext/tree/511bcaf) +- github.com/dgrijalva/jwt-go: [v3.2.0+incompatible](https://github.com/dgrijalva/jwt-go/tree/v3.2.0) +- github.com/dgryski/go-sip13: [e10d5fe](https://github.com/dgryski/go-sip13/tree/e10d5fe) +- github.com/dnaeon/go-vcr: [v1.0.1](https://github.com/dnaeon/go-vcr/tree/v1.0.1) +- github.com/docker/distribution: [v2.7.1+incompatible](https://github.com/docker/distribution/tree/v2.7.1) +- github.com/docker/docker: [bd33bbf](https://github.com/docker/docker/tree/bd33bbf) +- github.com/docker/go-connections: [v0.4.0](https://github.com/docker/go-connections/tree/v0.4.0) +- github.com/docker/go-units: [v0.4.0](https://github.com/docker/go-units/tree/v0.4.0) +- github.com/docker/spdystream: [449fdfc](https://github.com/docker/spdystream/tree/449fdfc) +- github.com/docopt/docopt-go: [ee0de3b](https://github.com/docopt/docopt-go/tree/ee0de3b) +- github.com/dustin/go-humanize: [v1.0.0](https://github.com/dustin/go-humanize/tree/v1.0.0) +- github.com/elazarl/goproxy: [947c36d](https://github.com/elazarl/goproxy/tree/947c36d) +- github.com/emicklei/go-restful: [v2.9.5+incompatible](https://github.com/emicklei/go-restful/tree/v2.9.5) +- github.com/euank/go-kmsg-parser: [v2.0.0+incompatible](https://github.com/euank/go-kmsg-parser/tree/v2.0.0) +- github.com/evanphx/json-patch: [v4.9.0+incompatible](https://github.com/evanphx/json-patch/tree/v4.9.0) +- github.com/exponent-io/jsonpath: [d6023ce](https://github.com/exponent-io/jsonpath/tree/d6023ce) +- github.com/fatih/camelcase: [v1.0.0](https://github.com/fatih/camelcase/tree/v1.0.0) +- github.com/fatih/color: [v1.7.0](https://github.com/fatih/color/tree/v1.7.0) +- github.com/flynn/go-shlex: [3f9db97](https://github.com/flynn/go-shlex/tree/3f9db97) +- github.com/fogleman/gg: [0403632](https://github.com/fogleman/gg/tree/0403632) +- github.com/form3tech-oss/jwt-go: [v3.2.2+incompatible](https://github.com/form3tech-oss/jwt-go/tree/v3.2.2) +- github.com/fsnotify/fsnotify: [v1.4.9](https://github.com/fsnotify/fsnotify/tree/v1.4.9) +- github.com/fvbommel/sortorder: [v1.0.1](https://github.com/fvbommel/sortorder/tree/v1.0.1) +- github.com/ghodss/yaml: [v1.0.0](https://github.com/ghodss/yaml/tree/v1.0.0) +- github.com/globalsign/mgo: [eeefdec](https://github.com/globalsign/mgo/tree/eeefdec) +- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) +- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) +- github.com/go-gl/glfw/v3.3/glfw: [6f7a984](https://github.com/go-gl/glfw/v3.3/glfw/tree/6f7a984) +- github.com/go-gl/glfw: [e6da0ac](https://github.com/go-gl/glfw/tree/e6da0ac) +- github.com/go-kit/kit: [v0.9.0](https://github.com/go-kit/kit/tree/v0.9.0) +- github.com/go-logfmt/logfmt: [v0.4.0](https://github.com/go-logfmt/logfmt/tree/v0.4.0) +- github.com/go-logr/logr: [v0.3.0](https://github.com/go-logr/logr/tree/v0.3.0) +- github.com/go-openapi/analysis: [v0.19.5](https://github.com/go-openapi/analysis/tree/v0.19.5) +- github.com/go-openapi/errors: [v0.19.2](https://github.com/go-openapi/errors/tree/v0.19.2) +- github.com/go-openapi/jsonpointer: [v0.19.3](https://github.com/go-openapi/jsonpointer/tree/v0.19.3) +- github.com/go-openapi/jsonreference: [v0.19.3](https://github.com/go-openapi/jsonreference/tree/v0.19.3) +- github.com/go-openapi/loads: [v0.19.4](https://github.com/go-openapi/loads/tree/v0.19.4) +- github.com/go-openapi/runtime: [v0.19.4](https://github.com/go-openapi/runtime/tree/v0.19.4) +- github.com/go-openapi/spec: [v0.19.3](https://github.com/go-openapi/spec/tree/v0.19.3) +- github.com/go-openapi/strfmt: [v0.19.3](https://github.com/go-openapi/strfmt/tree/v0.19.3) +- github.com/go-openapi/swag: [v0.19.5](https://github.com/go-openapi/swag/tree/v0.19.5) +- github.com/go-openapi/validate: [v0.19.5](https://github.com/go-openapi/validate/tree/v0.19.5) +- github.com/go-ozzo/ozzo-validation: [v3.5.0+incompatible](https://github.com/go-ozzo/ozzo-validation/tree/v3.5.0) +- github.com/go-stack/stack: [v1.8.0](https://github.com/go-stack/stack/tree/v1.8.0) +- github.com/godbus/dbus/v5: [v5.0.3](https://github.com/godbus/dbus/v5/tree/v5.0.3) +- github.com/gogo/protobuf: [v1.3.1](https://github.com/gogo/protobuf/tree/v1.3.1) +- github.com/golang/freetype: [e2365df](https://github.com/golang/freetype/tree/e2365df) +- github.com/golang/groupcache: [8c9f03a](https://github.com/golang/groupcache/tree/8c9f03a) +- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) +- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) +- github.com/golangplus/testing: [af21d9c](https://github.com/golangplus/testing/tree/af21d9c) +- github.com/google/btree: [v1.0.0](https://github.com/google/btree/tree/v1.0.0) +- github.com/google/cadvisor: [v0.38.5](https://github.com/google/cadvisor/tree/v0.38.5) +- github.com/google/gofuzz: [v1.1.0](https://github.com/google/gofuzz/tree/v1.1.0) +- github.com/google/martian: [v2.1.0+incompatible](https://github.com/google/martian/tree/v2.1.0) +- github.com/google/pprof: [1ebb73c](https://github.com/google/pprof/tree/1ebb73c) +- github.com/google/renameio: [v0.1.0](https://github.com/google/renameio/tree/v0.1.0) +- github.com/googleapis/gax-go/v2: [v2.0.5](https://github.com/googleapis/gax-go/v2/tree/v2.0.5) +- github.com/googleapis/gnostic: [v0.4.1](https://github.com/googleapis/gnostic/tree/v0.4.1) +- github.com/gophercloud/gophercloud: [v0.1.0](https://github.com/gophercloud/gophercloud/tree/v0.1.0) +- github.com/gopherjs/gopherjs: [0766667](https://github.com/gopherjs/gopherjs/tree/0766667) +- github.com/gorilla/context: [v1.1.1](https://github.com/gorilla/context/tree/v1.1.1) +- github.com/gorilla/mux: [v1.8.0](https://github.com/gorilla/mux/tree/v1.8.0) +- github.com/gorilla/websocket: [v1.4.2](https://github.com/gorilla/websocket/tree/v1.4.2) +- github.com/gregjones/httpcache: [9cad4c3](https://github.com/gregjones/httpcache/tree/9cad4c3) +- github.com/grpc-ecosystem/go-grpc-middleware: [f849b54](https://github.com/grpc-ecosystem/go-grpc-middleware/tree/f849b54) +- github.com/grpc-ecosystem/go-grpc-prometheus: [v1.2.0](https://github.com/grpc-ecosystem/go-grpc-prometheus/tree/v1.2.0) +- github.com/grpc-ecosystem/grpc-gateway: [v1.9.5](https://github.com/grpc-ecosystem/grpc-gateway/tree/v1.9.5) +- github.com/hashicorp/consul/api: [v1.1.0](https://github.com/hashicorp/consul/api/tree/v1.1.0) +- github.com/hashicorp/consul/sdk: [v0.1.1](https://github.com/hashicorp/consul/sdk/tree/v0.1.1) +- github.com/hashicorp/errwrap: [v1.0.0](https://github.com/hashicorp/errwrap/tree/v1.0.0) +- github.com/hashicorp/go-cleanhttp: [v0.5.1](https://github.com/hashicorp/go-cleanhttp/tree/v0.5.1) +- github.com/hashicorp/go-immutable-radix: [v1.0.0](https://github.com/hashicorp/go-immutable-radix/tree/v1.0.0) +- github.com/hashicorp/go-msgpack: [v0.5.3](https://github.com/hashicorp/go-msgpack/tree/v0.5.3) +- github.com/hashicorp/go-multierror: [v1.0.0](https://github.com/hashicorp/go-multierror/tree/v1.0.0) +- github.com/hashicorp/go-rootcerts: [v1.0.0](https://github.com/hashicorp/go-rootcerts/tree/v1.0.0) +- github.com/hashicorp/go-sockaddr: [v1.0.0](https://github.com/hashicorp/go-sockaddr/tree/v1.0.0) +- github.com/hashicorp/go-syslog: [v1.0.0](https://github.com/hashicorp/go-syslog/tree/v1.0.0) +- github.com/hashicorp/go-uuid: [v1.0.1](https://github.com/hashicorp/go-uuid/tree/v1.0.1) +- github.com/hashicorp/go.net: [v0.0.1](https://github.com/hashicorp/go.net/tree/v0.0.1) +- github.com/hashicorp/golang-lru: [v0.5.1](https://github.com/hashicorp/golang-lru/tree/v0.5.1) +- github.com/hashicorp/hcl: [v1.0.0](https://github.com/hashicorp/hcl/tree/v1.0.0) +- github.com/hashicorp/logutils: [v1.0.0](https://github.com/hashicorp/logutils/tree/v1.0.0) +- github.com/hashicorp/mdns: [v1.0.0](https://github.com/hashicorp/mdns/tree/v1.0.0) +- github.com/hashicorp/memberlist: [v0.1.3](https://github.com/hashicorp/memberlist/tree/v0.1.3) +- github.com/hashicorp/serf: [v0.8.2](https://github.com/hashicorp/serf/tree/v0.8.2) +- github.com/heketi/heketi: [c2e2a4a](https://github.com/heketi/heketi/tree/c2e2a4a) +- github.com/heketi/tests: [f3775cb](https://github.com/heketi/tests/tree/f3775cb) +- github.com/hpcloud/tail: [v1.0.0](https://github.com/hpcloud/tail/tree/v1.0.0) +- github.com/ianlancetaylor/demangle: [5e5cf60](https://github.com/ianlancetaylor/demangle/tree/5e5cf60) +- github.com/imdario/mergo: [v0.3.5](https://github.com/imdario/mergo/tree/v0.3.5) +- github.com/inconshreveable/mousetrap: [v1.0.0](https://github.com/inconshreveable/mousetrap/tree/v1.0.0) +- github.com/ishidawataru/sctp: [7c296d4](https://github.com/ishidawataru/sctp/tree/7c296d4) +- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) +- github.com/jmespath/go-jmespath/internal/testify: [v1.5.1](https://github.com/jmespath/go-jmespath/internal/testify/tree/v1.5.1) +- github.com/jmespath/go-jmespath: [v0.4.0](https://github.com/jmespath/go-jmespath/tree/v0.4.0) +- github.com/jonboulle/clockwork: [v0.1.0](https://github.com/jonboulle/clockwork/tree/v0.1.0) +- github.com/json-iterator/go: [v1.1.10](https://github.com/json-iterator/go/tree/v1.1.10) +- github.com/jstemmer/go-junit-report: [v0.9.1](https://github.com/jstemmer/go-junit-report/tree/v0.9.1) +- github.com/jtolds/gls: [v4.20.0+incompatible](https://github.com/jtolds/gls/tree/v4.20.0) +- github.com/julienschmidt/httprouter: [v1.2.0](https://github.com/julienschmidt/httprouter/tree/v1.2.0) +- github.com/jung-kurt/gofpdf: [24315ac](https://github.com/jung-kurt/gofpdf/tree/24315ac) +- github.com/karrick/godirwalk: [v1.16.1](https://github.com/karrick/godirwalk/tree/v1.16.1) +- github.com/kisielk/errcheck: [v1.2.0](https://github.com/kisielk/errcheck/tree/v1.2.0) +- github.com/kisielk/gotool: [v1.0.0](https://github.com/kisielk/gotool/tree/v1.0.0) +- github.com/klauspost/cpuid: [v1.2.0](https://github.com/klauspost/cpuid/tree/v1.2.0) +- github.com/konsorten/go-windows-terminal-sequences: [v1.0.3](https://github.com/konsorten/go-windows-terminal-sequences/tree/v1.0.3) +- github.com/kr/logfmt: [b84e30a](https://github.com/kr/logfmt/tree/b84e30a) +- github.com/kr/pretty: [v0.2.0](https://github.com/kr/pretty/tree/v0.2.0) +- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) +- github.com/kr/text: [v0.1.0](https://github.com/kr/text/tree/v0.1.0) +- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) +- github.com/libopenstorage/openstorage: [v1.0.0](https://github.com/libopenstorage/openstorage/tree/v1.0.0) +- github.com/liggitt/tabwriter: [89fcab3](https://github.com/liggitt/tabwriter/tree/89fcab3) +- github.com/lithammer/dedent: [v1.1.0](https://github.com/lithammer/dedent/tree/v1.1.0) +- github.com/lpabon/godbc: [v0.1.1](https://github.com/lpabon/godbc/tree/v0.1.1) +- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) +- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) +- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) +- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) +- github.com/magiconair/properties: [v1.8.1](https://github.com/magiconair/properties/tree/v1.8.1) +- github.com/mailru/easyjson: [v0.7.0](https://github.com/mailru/easyjson/tree/v0.7.0) +- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) +- github.com/mattn/go-colorable: [v0.0.9](https://github.com/mattn/go-colorable/tree/v0.0.9) +- github.com/mattn/go-isatty: [v0.0.4](https://github.com/mattn/go-isatty/tree/v0.0.4) +- github.com/mattn/go-runewidth: [v0.0.2](https://github.com/mattn/go-runewidth/tree/v0.0.2) +- github.com/matttproud/golang_protobuf_extensions: [c182aff](https://github.com/matttproud/golang_protobuf_extensions/tree/c182aff) +- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) +- github.com/miekg/dns: [v1.1.4](https://github.com/miekg/dns/tree/v1.1.4) +- github.com/mindprince/gonvml: [9ebdce4](https://github.com/mindprince/gonvml/tree/9ebdce4) +- github.com/mistifyio/go-zfs: [f784269](https://github.com/mistifyio/go-zfs/tree/f784269) +- github.com/mitchellh/cli: [v1.0.0](https://github.com/mitchellh/cli/tree/v1.0.0) +- github.com/mitchellh/go-homedir: [v1.1.0](https://github.com/mitchellh/go-homedir/tree/v1.1.0) +- github.com/mitchellh/go-testing-interface: [v1.0.0](https://github.com/mitchellh/go-testing-interface/tree/v1.0.0) +- github.com/mitchellh/go-wordwrap: [v1.0.0](https://github.com/mitchellh/go-wordwrap/tree/v1.0.0) +- github.com/mitchellh/gox: [v0.4.0](https://github.com/mitchellh/gox/tree/v0.4.0) +- github.com/mitchellh/iochan: [v1.0.0](https://github.com/mitchellh/iochan/tree/v1.0.0) +- github.com/mitchellh/mapstructure: [v1.1.2](https://github.com/mitchellh/mapstructure/tree/v1.1.2) +- github.com/moby/ipvs: [v1.0.1](https://github.com/moby/ipvs/tree/v1.0.1) +- github.com/moby/sys/mountinfo: [v0.1.3](https://github.com/moby/sys/mountinfo/tree/v0.1.3) +- github.com/moby/term: [672ec06](https://github.com/moby/term/tree/672ec06) +- github.com/modern-go/concurrent: [bacd9c7](https://github.com/modern-go/concurrent/tree/bacd9c7) +- github.com/modern-go/reflect2: [v1.0.1](https://github.com/modern-go/reflect2/tree/v1.0.1) +- github.com/mohae/deepcopy: [491d360](https://github.com/mohae/deepcopy/tree/491d360) +- github.com/morikuni/aec: [v1.0.0](https://github.com/morikuni/aec/tree/v1.0.0) +- github.com/mrunalp/fileutils: [abd8a0e](https://github.com/mrunalp/fileutils/tree/abd8a0e) +- github.com/munnerz/goautoneg: [a7dc8b6](https://github.com/munnerz/goautoneg/tree/a7dc8b6) +- github.com/mvdan/xurls: [v1.1.0](https://github.com/mvdan/xurls/tree/v1.1.0) +- github.com/mwitkow/go-conntrack: [cc309e4](https://github.com/mwitkow/go-conntrack/tree/cc309e4) +- github.com/mxk/go-flowrate: [cca7078](https://github.com/mxk/go-flowrate/tree/cca7078) +- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) +- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) +- github.com/oklog/ulid: [v1.3.1](https://github.com/oklog/ulid/tree/v1.3.1) +- github.com/olekukonko/tablewriter: [a0225b3](https://github.com/olekukonko/tablewriter/tree/a0225b3) +- github.com/onsi/ginkgo: [v1.11.0](https://github.com/onsi/ginkgo/tree/v1.11.0) +- github.com/onsi/gomega: [v1.7.0](https://github.com/onsi/gomega/tree/v1.7.0) +- github.com/opencontainers/go-digest: [v1.0.0](https://github.com/opencontainers/go-digest/tree/v1.0.0) +- github.com/opencontainers/image-spec: [v1.0.1](https://github.com/opencontainers/image-spec/tree/v1.0.1) +- github.com/opencontainers/runc: [v1.0.0-rc92](https://github.com/opencontainers/runc/tree/v1.0.0-rc92) +- github.com/opencontainers/runtime-spec: [4d89ac9](https://github.com/opencontainers/runtime-spec/tree/4d89ac9) +- github.com/opencontainers/selinux: [v1.6.0](https://github.com/opencontainers/selinux/tree/v1.6.0) +- github.com/pascaldekloe/goe: [57f6aae](https://github.com/pascaldekloe/goe/tree/57f6aae) +- github.com/pelletier/go-toml: [v1.2.0](https://github.com/pelletier/go-toml/tree/v1.2.0) +- github.com/peterbourgon/diskv: [v2.0.1+incompatible](https://github.com/peterbourgon/diskv/tree/v2.0.1) +- github.com/pkg/errors: [v0.9.1](https://github.com/pkg/errors/tree/v0.9.1) +- github.com/posener/complete: [v1.1.1](https://github.com/posener/complete/tree/v1.1.1) +- github.com/pquerna/cachecontrol: [0dec1b3](https://github.com/pquerna/cachecontrol/tree/0dec1b3) +- github.com/prometheus/client_golang: [v1.7.1](https://github.com/prometheus/client_golang/tree/v1.7.1) +- github.com/prometheus/common: [v0.10.0](https://github.com/prometheus/common/tree/v0.10.0) +- github.com/prometheus/procfs: [v0.2.0](https://github.com/prometheus/procfs/tree/v0.2.0) +- github.com/prometheus/tsdb: [v0.7.1](https://github.com/prometheus/tsdb/tree/v0.7.1) +- github.com/quobyte/api: [v0.1.8](https://github.com/quobyte/api/tree/v0.1.8) +- github.com/remyoudompheng/bigfft: [52369c6](https://github.com/remyoudompheng/bigfft/tree/52369c6) +- github.com/robfig/cron: [v1.1.0](https://github.com/robfig/cron/tree/v1.1.0) +- github.com/rogpeppe/fastuuid: [6724a57](https://github.com/rogpeppe/fastuuid/tree/6724a57) +- github.com/rogpeppe/go-internal: [v1.3.0](https://github.com/rogpeppe/go-internal/tree/v1.3.0) +- github.com/rubiojr/go-vhd: [02e2102](https://github.com/rubiojr/go-vhd/tree/02e2102) +- github.com/russross/blackfriday/v2: [v2.0.1](https://github.com/russross/blackfriday/v2/tree/v2.0.1) +- github.com/russross/blackfriday: [v1.5.2](https://github.com/russross/blackfriday/tree/v1.5.2) +- github.com/ryanuber/columnize: [9b3edd6](https://github.com/ryanuber/columnize/tree/9b3edd6) +- github.com/satori/go.uuid: [v1.2.0](https://github.com/satori/go.uuid/tree/v1.2.0) +- github.com/sean-/seed: [e2103e2](https://github.com/sean-/seed/tree/e2103e2) +- github.com/seccomp/libseccomp-golang: [v0.9.1](https://github.com/seccomp/libseccomp-golang/tree/v0.9.1) +- github.com/sergi/go-diff: [v1.0.0](https://github.com/sergi/go-diff/tree/v1.0.0) +- github.com/shurcooL/sanitized_anchor_name: [v1.0.0](https://github.com/shurcooL/sanitized_anchor_name/tree/v1.0.0) +- github.com/sirupsen/logrus: [v1.6.0](https://github.com/sirupsen/logrus/tree/v1.6.0) +- github.com/smartystreets/assertions: [b2de0cb](https://github.com/smartystreets/assertions/tree/b2de0cb) +- github.com/smartystreets/goconvey: [v1.6.4](https://github.com/smartystreets/goconvey/tree/v1.6.4) +- github.com/soheilhy/cmux: [v0.1.4](https://github.com/soheilhy/cmux/tree/v0.1.4) +- github.com/spaolacci/murmur3: [f09979e](https://github.com/spaolacci/murmur3/tree/f09979e) +- github.com/spf13/cast: [v1.3.0](https://github.com/spf13/cast/tree/v1.3.0) +- github.com/spf13/cobra: [v1.1.1](https://github.com/spf13/cobra/tree/v1.1.1) +- github.com/spf13/jwalterweatherman: [v1.1.0](https://github.com/spf13/jwalterweatherman/tree/v1.1.0) +- github.com/spf13/pflag: [v1.0.5](https://github.com/spf13/pflag/tree/v1.0.5) +- github.com/spf13/viper: [v1.7.0](https://github.com/spf13/viper/tree/v1.7.0) +- github.com/storageos/go-api: [v2.2.0+incompatible](https://github.com/storageos/go-api/tree/v2.2.0) +- github.com/subosito/gotenv: [v1.2.0](https://github.com/subosito/gotenv/tree/v1.2.0) +- github.com/syndtr/gocapability: [d983527](https://github.com/syndtr/gocapability/tree/d983527) +- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) +- github.com/tidwall/pretty: [v1.0.0](https://github.com/tidwall/pretty/tree/v1.0.0) +- github.com/tmc/grpc-websocket-proxy: [0ad062e](https://github.com/tmc/grpc-websocket-proxy/tree/0ad062e) +- github.com/ugorji/go: [v1.1.4](https://github.com/ugorji/go/tree/v1.1.4) +- github.com/urfave/cli: [v1.22.2](https://github.com/urfave/cli/tree/v1.22.2) +- github.com/urfave/negroni: [v1.0.0](https://github.com/urfave/negroni/tree/v1.0.0) +- github.com/vektah/gqlparser: [v1.1.2](https://github.com/vektah/gqlparser/tree/v1.1.2) +- github.com/vishvananda/netlink: [v1.1.0](https://github.com/vishvananda/netlink/tree/v1.1.0) +- github.com/vishvananda/netns: [db3c7e5](https://github.com/vishvananda/netns/tree/db3c7e5) +- github.com/vmware/govmomi: [v0.20.3](https://github.com/vmware/govmomi/tree/v0.20.3) +- github.com/willf/bitset: [d5bec33](https://github.com/willf/bitset/tree/d5bec33) +- github.com/xiang90/probing: [43a291a](https://github.com/xiang90/probing/tree/43a291a) +- github.com/xordataexchange/crypt: [b2862e3](https://github.com/xordataexchange/crypt/tree/b2862e3) +- github.com/yuin/goldmark: [v1.1.27](https://github.com/yuin/goldmark/tree/v1.1.27) +- go.etcd.io/bbolt: v1.3.5 +- go.etcd.io/etcd: dd1b699 +- go.mongodb.org/mongo-driver: v1.1.2 +- go.opencensus.io: v0.22.3 +- go.uber.org/atomic: v1.4.0 +- go.uber.org/multierr: v1.1.0 +- go.uber.org/zap: v1.10.0 +- golang.org/x/image: cff245a +- golang.org/x/mobile: d2bd2a2 +- golang.org/x/mod: v0.3.0 +- golang.org/x/term: 7de9c90 +- golang.org/x/time: 3af7569 +- golang.org/x/xerrors: 5ec99f8 +- gonum.org/v1/gonum: v0.6.2 +- gonum.org/v1/netlib: 7672324 +- gonum.org/v1/plot: e2840ee +- google.golang.org/api: v0.20.0 +- google.golang.org/protobuf: v1.25.0 +- gopkg.in/alecthomas/kingpin.v2: v2.2.6 +- gopkg.in/cheggaaa/pb.v1: v1.0.25 +- gopkg.in/errgo.v2: v2.1.0 +- gopkg.in/fsnotify.v1: v1.4.7 +- gopkg.in/gcfg.v1: v1.2.0 +- gopkg.in/inf.v0: v0.9.1 +- gopkg.in/ini.v1: v1.51.0 +- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 +- gopkg.in/natefinch/lumberjack.v2: v2.0.0 +- gopkg.in/resty.v1: v1.12.0 +- gopkg.in/square/go-jose.v2: v2.2.2 +- gopkg.in/tomb.v1: dd63297 +- gopkg.in/warnings.v0: v0.1.1 +- gopkg.in/yaml.v3: 9f266ea +- gotest.tools/v3: v3.0.2 +- gotest.tools: v2.2.0+incompatible +- k8s.io/api: v0.20.0 +- k8s.io/apiextensions-apiserver: v0.20.0 +- k8s.io/apiserver: v0.20.0 +- k8s.io/cli-runtime: v0.20.0 +- k8s.io/client-go: v0.20.0 +- k8s.io/cloud-provider: v0.20.0 +- k8s.io/cluster-bootstrap: v0.20.0 +- k8s.io/code-generator: v0.20.1-rc.0 +- k8s.io/component-base: v0.20.0 +- k8s.io/component-helpers: v0.20.0 +- k8s.io/controller-manager: v0.20.0 +- k8s.io/cri-api: v0.20.1-rc.0 +- k8s.io/csi-translation-lib: v0.20.0 +- k8s.io/gengo: 83324d8 +- k8s.io/heapster: v1.2.0-beta.1 +- k8s.io/klog/v2: v2.4.0 +- k8s.io/kube-aggregator: v0.20.0 +- k8s.io/kube-controller-manager: v0.20.0 +- k8s.io/kube-openapi: d219536 +- k8s.io/kube-proxy: v0.20.0 +- k8s.io/kube-scheduler: v0.20.0 +- k8s.io/kubectl: v0.20.0 +- k8s.io/kubelet: v0.20.0 +- k8s.io/legacy-cloud-providers: v0.20.0 +- k8s.io/metrics: v0.20.0 +- k8s.io/mount-utils: v0.20.1-rc.0 +- k8s.io/sample-apiserver: v0.20.0 +- k8s.io/system-validators: v1.2.0 +- modernc.org/cc: v1.0.0 +- modernc.org/golex: v1.0.0 +- modernc.org/mathutil: v1.0.0 +- modernc.org/strutil: v1.0.0 +- modernc.org/xc: v1.0.0 +- rsc.io/binaryregexp: v0.2.0 +- rsc.io/pdf: v0.1.1 +- rsc.io/quote/v3: v3.1.0 +- rsc.io/sampler: v1.3.0 +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.14 +- sigs.k8s.io/kustomize: v2.0.3+incompatible +- sigs.k8s.io/structured-merge-diff/v4: v4.0.2 +- sigs.k8s.io/yaml: v1.2.0 + +### Changed +- cloud.google.com/go: v0.26.0 → v0.54.0 +- github.com/container-storage-interface/spec: [v1.2.0 → v1.3.0](https://github.com/container-storage-interface/spec/compare/v1.2.0...v1.3.0) +- github.com/davecgh/go-spew: [v1.1.0 → v1.1.1](https://github.com/davecgh/go-spew/compare/v1.1.0...v1.1.1) +- github.com/envoyproxy/go-control-plane: [5f8ba28 → v0.9.7](https://github.com/envoyproxy/go-control-plane/compare/5f8ba28...v0.9.7) +- github.com/golang/mock: [v1.1.1 → v1.4.1](https://github.com/golang/mock/compare/v1.1.1...v1.4.1) +- github.com/golang/protobuf: [v1.3.2 → v1.4.3](https://github.com/golang/protobuf/compare/v1.3.2...v1.4.3) +- github.com/google/go-cmp: [v0.2.0 → v0.5.2](https://github.com/google/go-cmp/compare/v0.2.0...v0.5.2) +- github.com/google/uuid: [v1.0.0 → v1.1.2](https://github.com/google/uuid/compare/v1.0.0...v1.1.2) +- github.com/kubernetes-csi/csi-lib-utils: [v0.3.0 → v0.9.0](https://github.com/kubernetes-csi/csi-lib-utils/compare/v0.3.0...v0.9.0) +- github.com/pborman/uuid: [adf5a74 → v1.2.1](https://github.com/pborman/uuid/compare/adf5a74...v1.2.1) +- github.com/prometheus/client_model: [14fe0d1 → v0.2.0](https://github.com/prometheus/client_model/compare/14fe0d1...v0.2.0) +- github.com/stretchr/objx: [v0.1.0 → v0.2.0](https://github.com/stretchr/objx/compare/v0.1.0...v0.2.0) +- github.com/stretchr/testify: [v1.4.0 → v1.6.1](https://github.com/stretchr/testify/compare/v1.4.0...v1.6.1) +- golang.org/x/crypto: c2843e0 → 7f63de1 +- golang.org/x/exp: 509febe → 6cc2880 +- golang.org/x/lint: d0100b6 → 738671d +- golang.org/x/net: d888771 → ac852fb +- golang.org/x/oauth2: d2e6202 → bf48bf1 +- golang.org/x/sync: 1122301 → cd5d95a +- golang.org/x/sys: d0b11bd → d4d67f9 +- golang.org/x/text: v0.3.0 → v0.3.4 +- golang.org/x/tools: 2c0ae70 → c1934b7 +- google.golang.org/appengine: v1.4.0 → v1.6.5 +- google.golang.org/genproto: 24fa4b2 → f927205 +- google.golang.org/grpc: v1.26.0 → v1.34.0 +- gopkg.in/check.v1: 20d25e2 → 41f04d3 +- gopkg.in/yaml.v2: v2.2.2 → v2.2.8 +- honnef.co/go/tools: ea95bdf → v0.0.1-2020.1.3 +- k8s.io/apimachinery: 2a7c930 → v0.21.0-alpha.0 +- k8s.io/kubernetes: v1.12.2 → v1.20.0 +- k8s.io/utils: 1bd4f38 → 67b214c + +### Removed +_Nothing has changed._