Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug 2052757: [4.9] PVs are not being cleaned up after PVC deletion #40

Merged
merged 100 commits into from
Feb 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
b02823e
Add option EKS to getting-started.md
brunsgaard Dec 16, 2019
0c28d96
changed chart config and lables to support more configuration values
HaveFun83 Feb 27, 2020
7516792
added helm v3/v2 to generation and verify script
HaveFun83 Feb 27, 2020
ffb87a2
added new generated examples for helm v2/v3
HaveFun83 Feb 27, 2020
3635d9b
adjusted example helm values
HaveFun83 Feb 27, 2020
1b102dc
adjusted changelog and readme for helm v2/v3
HaveFun83 Feb 27, 2020
3004ec8
changed image version to v2.3.4
HaveFun83 Feb 27, 2020
25f1e2b
Merge pull request #162 from brunsgaard/master
k8s-ci-robot Mar 5, 2020
1c1d3dc
changed lib script helm for template generation
HaveFun83 Mar 14, 2020
73cda4c
Merge pull request #179 from HaveFun83/helm-chart-rework-v2
k8s-ci-robot Mar 16, 2020
ce8f17d
use go mod: vendor changes
cofyc Apr 14, 2020
bb5c950
use go mod: non-vendor changes
cofyc Apr 14, 2020
81b1957
Merge pull request #184 from cofyc/gomods
k8s-ci-robot Apr 15, 2020
6d9b17c
Fix broken link in "Getting Started"
AliMirlou Apr 12, 2020
9790017
Merge pull request #183 from AliMirlou/patch-1
k8s-ci-robot Apr 16, 2020
f46da07
feat: add namePattern field
andyzhangx May 20, 2020
cd56ec6
Merge pull request #187 from andyzhangx/device-name-matching
k8s-ci-robot May 21, 2020
88a8c03
doc: add github template
andyzhangx May 21, 2020
edf7c64
feat: add helm support on namePattern field
andyzhangx May 22, 2020
965a271
Merge pull request #188 from andyzhangx/add-template
k8s-ci-robot May 22, 2020
0c83bc3
Merge pull request #189 from andyzhangx/namepattern-doc
k8s-ci-robot May 22, 2020
02b1138
test: add CI to enable code coverage data
andyzhangx May 22, 2020
80cc8e6
Merge pull request #190 from andyzhangx/travis
k8s-ci-robot May 22, 2020
33b1ca3
doc: add code coverage and license check
andyzhangx May 22, 2020
df7c8e9
doc: remove license check first
andyzhangx May 22, 2020
7c788f2
Merge pull request #191 from andyzhangx/patch-1
k8s-ci-robot May 22, 2020
0b6059d
doc: add namePattern example
andyzhangx May 23, 2020
1267a9f
update get-started with AKS
andyzhangx May 23, 2020
0a747ab
Merge pull request #192 from andyzhangx/namePattern-example
k8s-ci-robot May 25, 2020
e70b6eb
Merge pull request #193 from andyzhangx/patch-2
k8s-ci-robot May 25, 2020
92f4f43
Fix typo in README.md title
dvaldivia May 28, 2020
40a667f
Merge pull request #196 from dvaldivia/fix-typo
k8s-ci-robot May 29, 2020
b8ea57e
fix namePattern syntax error if value is * when use helm to create co…
vistamin Jun 5, 2020
aa8b09b
Merge pull request #198 from vistamin/fix-helm-templates-error
k8s-ci-robot Jun 8, 2020
8919dbe
Fix blkdiscard script
rbtcollins Jun 17, 2020
0c7700e
Merge pull request #200 from cognitedata/blkdiscard
k8s-ci-robot Jun 19, 2020
5e1ccf0
Add affinty to helm chart
AdheipSingh Jun 22, 2020
7f141ce
Merge pull request #205 from AdheipSingh/affinity
k8s-ci-robot Jun 23, 2020
7e5d6a6
Add gcloud build configuration
cofyc Jul 6, 2020
b0c1f3e
Merge pull request #206 from cofyc/fix153
k8s-ci-robot Jul 6, 2020
2b55b96
Run GKE e2e with kubetest2-gke
cofyc Jul 17, 2020
a791a6a
run the go get in a temporary directory
cofyc Jul 17, 2020
632a773
Merge pull request #207 from cofyc/fix166
k8s-ci-robot Jul 20, 2020
a3fbfa3
install all kubetest2 binaries
cofyc Aug 9, 2020
e48d361
OWNERS: move dhirajh to emeritus_approvers
nikhita Aug 10, 2020
09def18
Merge pull request #210 from cofyc/kubetest2
k8s-ci-robot Aug 10, 2020
0571436
gke: use non-default network
cofyc Aug 11, 2020
1352c76
[helm] cleanup chart
dungdm93 Jul 18, 2020
e973fe8
[helm] don't quote if unnecessary
dungdm93 Jul 18, 2020
8ab9047
[helm] daemon always defind ports
dungdm93 Jul 18, 2020
7c33eb7
Merge pull request #212 from cofyc/fix-gke-job
k8s-ci-robot Aug 11, 2020
b417bab
Merge pull request #211 from nikhita/cleanup-owners
k8s-ci-robot Aug 12, 2020
21a749d
[helm] update-generated.sh
dungdm93 Jul 20, 2020
473cdc5
Merge pull request #208 from dungdm93/update-chart
k8s-ci-robot Aug 14, 2020
608eaf0
Add daemonset.podAnnotations and daemonset.podLabels to Helm chart
jnschaeffer Aug 13, 2020
57506e2
Merge pull request #213 from jnschaeffer/add-pod-annotations-labels
k8s-ci-robot Aug 17, 2020
f59d26f
Bump golang.org/x/text to 0.3.3
jsafrane Aug 17, 2020
e846862
Merge pull request #214 from jsafrane/bump-text
k8s-ci-robot Aug 17, 2020
84298ae
add notes for rancher
cofyc Aug 19, 2020
59bbfb0
Merge pull request #215 from cofyc/rancher
k8s-ci-robot Aug 20, 2020
cff92d5
Fix for command example for getting disk UUID
nakkoh Sep 20, 2020
22e0578
Merge pull request #218 from nakkoh/fix_command_for_getting_diskuuid
k8s-ci-robot Sep 21, 2020
2cf9d98
improv: Add opt-out for `/dev` volume in the chart
maybe-sybr Sep 23, 2020
24488af
Merge pull request #219 from maybe-sybr/improv/chart-dev-volume-opt-out
k8s-ci-robot Sep 23, 2020
382ca6e
improv: Accept `labelsForPV` elements in the chart
maybe-sybr Sep 23, 2020
f18e856
improv: Allow unprivileged provisioner in chart
maybe-sybr Sep 24, 2020
62925c8
Merge pull request #221 from maybe-sybr/improv/chart-unprivileged
k8s-ci-robot Sep 24, 2020
cd0f51b
handle deletedFinalStateUnknown object when receiving PV delete event
loveRhythm1990 Sep 25, 2020
42935c0
Merge pull request #222 from loveRhythm1990/master
k8s-ci-robot Sep 25, 2020
24293df
Merge pull request #220 from maybe-sybr/improv/chart-labels-for-pv
k8s-ci-robot Nov 3, 2020
78cb246
Add LKE Option
Dec 1, 2020
0a3cd0f
release 2.4.0
cofyc Dec 1, 2020
7cde96a
prefer k8s.gcr.io/sig-storage registry
cofyc Dec 2, 2020
986045b
Merge pull request #229 from cofyc/fix223
k8s-ci-robot Dec 2, 2020
85e82da
v2.4.0: update CHANGELOG.md
cofyc Dec 2, 2020
efecc12
Merge pull request #231 from cofyc/bugfix
cofyc Dec 2, 2020
db74ef7
Merge pull request #230 from rsyracuse/get-started-lke
k8s-ci-robot Jan 28, 2021
be57c42
change log level to V5 when dicovering path not match pattern
hellogdc Feb 5, 2021
03f33ce
Merge pull request #235 from hellogdc/myfeature
k8s-ci-robot Feb 7, 2021
bd54455
Update Klog to V2 and adding vendor files
Jan 28, 2021
029bd72
Merge pull request #234 from Kartik494/UpdateKlogV2
k8s-ci-robot Feb 18, 2021
375b92d
upgrade base image to k8s.gcr.io/build-image/debian-base-${ARCH}:bust…
cofyc Feb 18, 2021
0b8751f
Merge pull request #238 from cofyc/upgrade-base-image
k8s-ci-robot Mar 6, 2021
5e0d299
Update to use the new preferred registry location, k8s.gcr.io, as
buccella Mar 8, 2021
28a5897
Merge pull request #242 from buccella/master
k8s-ci-robot Mar 8, 2021
3825ac4
Update Image and did correction in Link
Mar 4, 2021
4c2ff39
Merge pull request #241 from Kartik494/updateImage
k8s-ci-robot Mar 9, 2021
f1d9557
Prevent users from accidentally creating multiple volumes backed by t…
davidmccormick Mar 22, 2021
7e65639
Cache all volumes matching the nodename when the UseNodeNameOnly opti…
davidmccormick Mar 30, 2021
d614897
(docs) update Helm README.md
vladdoster Apr 4, 2021
b8ccb20
Update image regsitry to gcr
Mar 17, 2021
39417b8
Merge pull request #244 from Kartik494/update_registry
k8s-ci-robot Apr 6, 2021
418c6a8
Merge pull request #248 from vladdoster/patch-1
k8s-ci-robot Apr 6, 2021
7ec1511
Match node names exactly but allow prefix matching of the provisioner…
davidmccormick Apr 8, 2021
7edde8b
Rebase Kubernetes to 1.21
jsafrane Apr 13, 2021
a4541af
Merge pull request #249 from jsafrane/rebase-kube-1.21
k8s-ci-robot Apr 14, 2021
c96e27d
Merge pull request #246 from davidmccormick/prevent-duplicate-volumes
k8s-ci-robot Apr 14, 2021
0828888
Merge remote-tracking branch 'openshift/release-4.9' into rebase-4.9-…
dobsonj Feb 9, 2022
d5e5515
carry: Re-apply downstream changes for OWNERS, Dockerfiles, Makefile, CI
dobsonj Feb 9, 2022
ae69be8
carry: Prevent cleaning released volumes more than once
dobsonj Feb 9, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .ci-operator.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
build_root_image:
name: release
namespace: openshift
tag: golang-1.11
tag: rhel-8-release-golang-1.16-openshift-4.9
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# HEAD

# [v2.4.0](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/releases/tag/v2.4.0)

Image updates:

- add `namePattern` field to filter volumes
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.

REGISTRY ?= quay.io/external_storage
REGISTRY ?= k8s.gcr.io/sig-storage
VERSION ?= latest
GOVERSION ?= 1.13.9
GOVERSION ?= 1.16.1
ARCH ?= amd64

ALL_ARCH = amd64 arm arm64 ppc64le s390x
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ Also see [known issues](KNOWN_ISSUES.md) and [CHANGELOG](CHANGELOG.md).

* New PV.NodeAffinity field added.
* **Important:** Alpha PV NodeAffinity annotation is deprecated. Users must manually update
their PVs to use the new NodeAffinity field or run a [one-time update job](utils/update-pv-to-beta).
their PVs to use the new NodeAffinity field or run a [one-time update job](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/tree/master/cmd/utils/update-pv-to-beta).
* Alpha: Raw block support added.

### 1.9: Alpha
Expand Down
5 changes: 3 additions & 2 deletions cmd/local-volume-provisioner/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package main

import (
"context"
"flag"
"log"
"math/rand"
Expand All @@ -26,7 +27,7 @@ import (

"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"k8s.io/klog"
"k8s.io/klog/v2"
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/common"
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/controller"
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/deleter"
Expand Down Expand Up @@ -119,7 +120,7 @@ func getNode(client *kubernetes.Clientset, name string) *v1.Node {
var retries int

for {
node, err := client.CoreV1().Nodes().Get(name, metav1.GetOptions{})
node, err := client.CoreV1().Nodes().Get(context.TODO(), name, metav1.GetOptions{})
if err == nil {
return node
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/utils/update-pv-to-beta/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.

ifeq ($(REGISTRY),)
REGISTRY = quay.io/external_storage/
REGISTRY = k8s.gcr.io/sig-storage/
endif

ifeq ($(VERSION),)
Expand Down
2 changes: 1 addition & 1 deletion cmd/utils/update-pv-to-beta/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Pod Template:
Service Account: local-storage-update
Containers:
updater:
Image: quay.io/external_storage/local-volume-update-pv-to-beta:latest
Image: k8s.gcr.io/sig-storage/local-volume-update-pv-to-beta:latest
Port: <none>
Host Port: <none>
Environment: <none>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ spec:
restartPolicy: Never
containers:
- name: updater
image: quay.io/external_storage/local-volume-update-pv-to-beta:latest
image: k8s.gcr.io/sig-storage/local-volume-update-pv-to-beta:latest
env:
# If you want provisioner to use a kubeconfig file to access API server, instead of the default
# in-cluster config, then specify the following environment variable:
Expand Down
7 changes: 4 additions & 3 deletions cmd/utils/update-pv-to-beta/update_pv_na_to_beta.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@ limitations under the License.
package main

import (
"context"
"encoding/json"
"flag"
"fmt"

"github.com/golang/glog"
"sigs.k8s.io/sig-storage-local-static-provisioner/pkg/common"

"k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
Expand Down Expand Up @@ -56,7 +57,7 @@ func updateLocalPVAlphaAnn(client *kubernetes.Clientset, pv *v1.PersistentVolume
}

glog.Infof("Updating local PV(%s), node affinity is: %v", pv.Name, pv.Annotations[common.AlphaStorageNodeAffinityAnnotation])
_, err = client.CoreV1().PersistentVolumes().Update(pvClone)
_, err = client.CoreV1().PersistentVolumes().Update(context.TODO(), pvClone, metav1.UpdateOptions{})
if err != nil {
if errors.IsNotFound(err) {
glog.Errorf("PV(%s) seems to have been deleted", pv.Name)
Expand All @@ -69,7 +70,7 @@ func updateLocalPVAlphaAnn(client *kubernetes.Clientset, pv *v1.PersistentVolume
}

func startSwitchingLocalPVAlphaAnn(client *kubernetes.Clientset) error {
pvs, err := client.CoreV1().PersistentVolumes().List(metav1.ListOptions{})
pvs, err := client.CoreV1().PersistentVolumes().List(context.TODO(), metav1.ListOptions{})
if err != nil {
glog.Errorf("list PVs error: %v", err)
}
Expand Down
6 changes: 3 additions & 3 deletions deployment/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.

ARG ARCH=amd64
ARG GOVERSION=1.13.9
ARG GOVERSION=1.16.1
FROM golang:$GOVERSION-alpine as builder
ARG OS=linux
ARG ARCH=amd64
Expand All @@ -23,8 +23,8 @@ RUN echo "OS: $OS ARCH: $ARCH"
RUN GO111MODULE=off CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -a -ldflags '-extldflags "-static"' -o _output/${OS}/${ARCH}/local-volume-provisioner ./cmd/local-volume-provisioner

# For security, we use kubernetes community maintained debian base image.
# https://github.com/kubernetes/kubernetes/blob/master/build/debian-base/
FROM k8s.gcr.io/debian-base-${ARCH}:v1.0.0
# https://github.com/kubernetes/release/tree/master/images/build/debian-base
FROM k8s.gcr.io/build-image/debian-base-${ARCH}:buster-v1.4.0
ARG OS=linux
ARG ARCH=amd64

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ spec:
spec:
serviceAccountName: local-storage-admin
containers:
- image: "quay.io/external_storage/local-volume-provisioner:v2.1.0"
- image: "k8s.gcr.io/sig-storage/local-volume-provisioner:v2.4.0"
imagePullPolicy: "Always"
name: provisioner
securityContext:
Expand Down
9 changes: 7 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ on older versions, please see version links under
* [Option 3: Baremetal environments](#option-3-baremetal-environments)
* [Option 4: Local test cluster](#option-4-local-test-cluster)
* [Option 5: EKS (experimental)](#option-5-eks-experimental)
* [Option 6: AKS](#option-6-aks)
* [Option 6: AKS](#option-6-aks)
* [Option 7: LKE](#option-7-lke)
- [Step 2: Creating a StorageClass (1.9+)](#step-2-creating-a-storageclass-19)
- [Step 3: Creating local persistent volumes](#step-3-creating-local-persistent-volumes)
* [Option 1: Using the local volume static provisioner](#option-1-using-the-local-volume-static-provisioner)
Expand Down Expand Up @@ -111,7 +112,7 @@ for more information.

[eks-nvme-ssd-provisioner](https://github.com/brunsgaard/eks-nvme-ssd-provisioner)
runs as a DaemonSet and will automatically format and mount the requested local
NVMe SSDs.
NVMe SSDs.

**Note:** This project mounts disks in `/pv-disks/$uuid`. There is a
working example of storage local static provisioner resources in the
Expand All @@ -120,6 +121,10 @@ eks-nvme-ssd-provisioner repo.
#### Option 6: AKS
See [Local Persistent Volume support on Azure](https://github.com/Azure/kubernetes-volume-drivers/tree/master/local) for more information.

### Option 7: LKE

LKE clusters can be created with custom Node Pools using the [Linode API](https://www.linode.com/docs/products/tools/linode-api/). For more information, see the [LKE Endpoints Collection](https://www.linode.com/docs/api/linode-kubernetes-engine-lke).

### Step 2: Creating a StorageClass (1.9+)

To delay volume binding until pod scheduling and to handle multiple local PVs in
Expand Down
108 changes: 43 additions & 65 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,70 +5,48 @@ go 1.13
require (
github.com/ghodss/yaml v1.0.0
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/onsi/ginkgo v1.11.0
github.com/onsi/gomega v1.8.1
github.com/prometheus/client_golang v1.0.0
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b // indirect
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5
golang.org/x/text v0.3.3 // indirect
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
gopkg.in/yaml.v2 v2.2.8
k8s.io/api v0.17.0
k8s.io/apimachinery v0.17.0
k8s.io/apiserver v0.17.0
k8s.io/client-go v0.17.0
k8s.io/component-base v0.17.0
k8s.io/klog v1.0.0
k8s.io/kubernetes v1.17.0
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
sigs.k8s.io/sig-storage-lib-external-provisioner v4.1.0+incompatible
github.com/onsi/ginkgo v1.12.0
github.com/onsi/gomega v1.9.0
github.com/prometheus/client_golang v1.7.1
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073
gopkg.in/yaml.v2 v2.4.0
k8s.io/api v0.21.0
k8s.io/apimachinery v0.21.0
k8s.io/apiserver v0.21.0
k8s.io/client-go v0.21.0
k8s.io/component-base v0.21.0
k8s.io/klog/v2 v2.8.0
k8s.io/kubernetes v1.21.0
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0
)

replace k8s.io/api => k8s.io/api v0.17.0

replace k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.17.0

replace k8s.io/apimachinery => k8s.io/apimachinery v0.17.0

replace k8s.io/apiserver => k8s.io/apiserver v0.17.0

replace k8s.io/cli-runtime => k8s.io/cli-runtime v0.17.0

replace k8s.io/client-go => k8s.io/client-go v0.17.0

replace k8s.io/cloud-provider => k8s.io/cloud-provider v0.17.0

replace k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.17.0

replace k8s.io/code-generator => k8s.io/code-generator v0.17.0

replace k8s.io/component-base => k8s.io/component-base v0.17.0

replace k8s.io/cri-api => k8s.io/cri-api v0.17.0

replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.17.0

replace k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.17.0

replace k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.17.0

replace k8s.io/kube-proxy => k8s.io/kube-proxy v0.17.0

replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.17.0

replace k8s.io/kubectl => k8s.io/kubectl v0.17.0

replace k8s.io/kubelet => k8s.io/kubelet v0.17.0

replace k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.17.0

replace k8s.io/metrics => k8s.io/metrics v0.17.0

replace k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.0

replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.17.0

replace k8s.io/sample-controller => k8s.io/sample-controller v0.17.0

replace k8s.io/node-api => k8s.io/node-api v0.17.0
replace (
k8s.io/api => k8s.io/api v0.21.0
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
k8s.io/apiserver => k8s.io/apiserver v0.21.0
k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0
k8s.io/client-go => k8s.io/client-go v0.21.0
k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0
k8s.io/code-generator => k8s.io/code-generator v0.21.0
k8s.io/component-base => k8s.io/component-base v0.21.0
k8s.io/component-helpers => k8s.io/component-helpers v0.21.0
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
k8s.io/cri-api => k8s.io/cri-api v0.21.0
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0
k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0
k8s.io/kubectl => k8s.io/kubectl v0.21.0
k8s.io/kubelet => k8s.io/kubelet v0.21.0
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0
k8s.io/metrics => k8s.io/metrics v0.21.0
k8s.io/mount-utils => k8s.io/mount-utils v0.21.0
k8s.io/node-api => k8s.io/node-api v0.21.0
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.21.0
k8s.io/sample-controller => k8s.io/sample-controller v0.21.0
)