From 1d4adb0301b9a63ceec8cabb11b309e061f43d5f Mon Sep 17 00:00:00 2001 From: Brad Davidson Date: Wed, 13 Jan 2021 16:37:06 -0800 Subject: [PATCH] Update Kubernetes to v1.20.2-k3s1 Signed-off-by: Brad Davidson --- go.mod | 66 +++++----- go.sum | 117 +++++++++-------- .../cadvisor/container/containerd/client.go | 7 +- .../go-windows-terminal-sequences/LICENSE | 9 -- .../go-windows-terminal-sequences/README.md | 42 ------ .../go-windows-terminal-sequences/go.mod | 1 - .../sequences.go | 35 ----- .../sequences_dummy.go | 11 -- .../cri-tools/cmd/crictl/container.go | 24 +++- .../cri-tools/cmd/crictl/sandbox.go | 29 +++-- .../cri-tools/cmd/crictl/util.go | 9 ++ vendor/github.com/sirupsen/logrus/.gitignore | 2 + .../github.com/sirupsen/logrus/buffer_pool.go | 52 ++++++++ vendor/github.com/sirupsen/logrus/entry.go | 14 +- vendor/github.com/sirupsen/logrus/exported.go | 45 +++++++ vendor/github.com/sirupsen/logrus/go.mod | 3 +- vendor/github.com/sirupsen/logrus/go.sum | 6 +- vendor/github.com/sirupsen/logrus/logger.go | 54 +++++++- .../sirupsen/logrus/terminal_check_windows.go | 29 ++--- vendor/github.com/urfave/cli/v2/README.md | 10 +- vendor/github.com/urfave/cli/v2/app.go | 36 +++--- vendor/github.com/urfave/cli/v2/command.go | 3 +- vendor/github.com/urfave/cli/v2/errors.go | 28 ++-- vendor/github.com/urfave/cli/v2/fish.go | 4 + .../urfave/cli/v2/flag_string_slice.go | 11 +- .../urfave/cli/v2/flag_timestamp.go | 4 +- vendor/github.com/urfave/cli/v2/go.mod | 2 +- vendor/github.com/urfave/cli/v2/go.sum | 4 +- vendor/github.com/urfave/cli/v2/help.go | 30 ++++- vendor/github.com/urfave/cli/v2/template.go | 6 +- .../plugin/resourcequota/controller.go | 5 +- .../apiserver/pkg/quota/v1/resources.go | 11 ++ .../k8s.io/apiserver/pkg/server/filters/BUILD | 7 + .../apiserver/pkg/util/flowcontrol/BUILD | 1 + .../apiserver/pkg/util/flowcontrol/OWNERS | 15 +++ .../pkg/util/flowcontrol/apf_controller.go | 17 ++- .../pkg/util/flowcontrol/apf_filter.go | 19 ++- .../fairqueuing/queueset/queueset.go | 11 +- .../metrics/sample_and_watermark.go | 16 +-- vendor/k8s.io/client-go/pkg/version/base.go | 6 +- vendor/k8s.io/component-base/version/base.go | 6 +- .../pkg/kubelet/cm/cpumanager/cpu_manager.go | 3 + .../k8s.io/kubernetes/pkg/kubelet/kubelet.go | 3 + .../kubernetes/pkg/kubelet/kubelet_pods.go | 2 +- .../kubernetes/pkg/kubelet/server/server.go | 1 + .../pkg/kubelet/stats/cri_stats_provider.go | 21 ++- .../kubernetes/pkg/kubelet/stats/helper.go | 21 +++ .../pkg/volume/azure_file/azure_file.go | 7 +- .../pkg/volume/azure_file/azure_provision.go | 2 +- .../pkg/volume/azure_file/azure_util.go | 19 +++ .../azure/azure_loadbalancer.go | 6 +- .../azure/azure_standard.go | 37 ++++-- .../gce/gce_loadbalancer_internal.go | 13 +- vendor/modules.txt | 120 +++++++++--------- 54 files changed, 669 insertions(+), 393 deletions(-) delete mode 100644 vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE delete mode 100644 vendor/github.com/konsorten/go-windows-terminal-sequences/README.md delete mode 100644 vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod delete mode 100644 vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go delete mode 100644 vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go create mode 100644 vendor/github.com/sirupsen/logrus/buffer_pool.go create mode 100644 vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS diff --git a/go.mod b/go.mod index f5f27d65cb..32ff98ba90 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ replace ( github.com/docker/libnetwork => github.com/docker/libnetwork v0.8.0-dev.2.0.20190624125649-f0e46a78ea34 github.com/golang/protobuf => github.com/golang/protobuf v1.3.5 github.com/juju/errors => github.com/k3s-io/nocode v0.0.0-20200630202308-cb097102c09f - github.com/kubernetes-sigs/cri-tools => github.com/k3s-io/cri-tools v1.19.0-k3s1 + github.com/kubernetes-sigs/cri-tools => github.com/k3s-io/cri-tools v1.20.0-k3s1 github.com/matryer/moq => github.com/rancher/moq v0.0.0-20190404221404-ee5226d43009 github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.0-rc92 github.com/opencontainers/runtime-spec => github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 @@ -32,34 +32,34 @@ replace ( google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 google.golang.org/grpc => google.golang.org/grpc v1.27.1 gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.2.2 - k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.0-k3s1 - k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.0-k3s1 - k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.0-k3s1 - k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.0-k3s1 - k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.0-k3s1 - k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.0-k3s1 - k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.0-k3s1 - k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.0-k3s1 - k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.0-k3s1 - k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.0-k3s1 - k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.0-k3s1 - k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.0-k3s1 - k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.0-k3s1 - k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.0-k3s1 - k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.0-k3s1 - k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.0-k3s1 - k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.0-k3s1 - k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.0-k3s1 - k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.0-k3s1 - k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.0-k3s1 - k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.0-k3s1 - k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.0-k3s1 - k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.0-k3s1 - k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.0-k3s1 - k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.0-k3s1 - k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.0-k3s1 - k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.0-k3s1 - k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.0-k3s1 + k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.2-k3s1 + k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.2-k3s1 + k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.2-k3s1 + k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.2-k3s1 + k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.2-k3s1 + k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.2-k3s1 + k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.2-k3s1 + k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.2-k3s1 + k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.2-k3s1 + k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.2-k3s1 + k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.2-k3s1 + k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.2-k3s1 + k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.2-k3s1 + k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.2-k3s1 + k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.2-k3s1 + k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.2-k3s1 + k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.2-k3s1 + k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.2-k3s1 + k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.2-k3s1 + k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.2-k3s1 + k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.2-k3s1 + k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.2-k3s1 + k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.2-k3s1 + k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.2-k3s1 + k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.2-k3s1 + k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.2-k3s1 + k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.2-k3s1 + k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.2-k3s1 mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34 ) @@ -73,7 +73,7 @@ require ( github.com/coreos/flannel v0.12.0 github.com/coreos/go-iptables v0.4.5 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f - github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible + github.com/docker/docker v20.10.0-beta1.0.20201108103107-c7109494fe65+incompatible github.com/erikdubbelboer/gspt v0.0.0-20190125194910-e68493906b83 github.com/frankban/quicktest v1.10.2 // indirect github.com/go-bindata/go-bindata v3.1.2+incompatible @@ -98,7 +98,7 @@ require ( github.com/rancher/wrangler-api v0.6.0 github.com/robfig/cron/v3 v3.0.1 github.com/rootless-containers/rootlesskit v0.10.0 - github.com/sirupsen/logrus v1.6.0 + github.com/sirupsen/logrus v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.6.1 github.com/tchap/go-patricia v2.3.0+incompatible // indirect @@ -107,7 +107,7 @@ require ( golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b golang.org/x/sys v0.0.0-20201112073958-5cba982894dd - google.golang.org/grpc v1.31.1 + google.golang.org/grpc v1.33.2 gopkg.in/yaml.v2 v2.3.0 k8s.io/api v0.19.0 k8s.io/apimachinery v0.19.0 @@ -119,6 +119,6 @@ require ( k8s.io/cri-api v0.19.0 k8s.io/klog v1.0.0 k8s.io/kubectl v0.0.0 - k8s.io/kubernetes v1.20.0 + k8s.io/kubernetes v1.20.2 sigs.k8s.io/yaml v1.2.0 ) diff --git a/go.sum b/go.sum index ec6ec5170b..4563332d62 100644 --- a/go.sum +++ b/go.sum @@ -388,8 +388,8 @@ github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA// github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.38.5 h1:XOvqjL2+xMEuDORcLMv77NystZvQB7YgGxcKpRul/vE= -github.com/google/cadvisor v0.38.5/go.mod h1:1OFB9sOOMkBdUBGCO/1SArawTnDscgMzTodacVDe8mA= +github.com/google/cadvisor v0.38.6 h1:5vu8NaOqsBKF6wOxBLeDPD7hcmxfg/4I5NZGYXK7gIo= +github.com/google/cadvisor v0.38.6/go.mod h1:1OFB9sOOMkBdUBGCO/1SArawTnDscgMzTodacVDe8mA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -510,8 +510,8 @@ github.com/k3s-io/containerd v1.4.3-k3s1 h1:4n8gpBDXa6IpinjzSl+uJsTPfg0l0Dus6zZB github.com/k3s-io/containerd v1.4.3-k3s1/go.mod h1:SQt4M1HhVTRsIIYHCfaelw8OGnk1FAkZbfiCx1WpkvE= github.com/k3s-io/cri v1.4.0-k3s.2 h1:HiJLH0P7k6sSJwbzjPwIN0CeY0iA6bKlb7OyThMiaEo= github.com/k3s-io/cri v1.4.0-k3s.2/go.mod h1:fGPUUHMKQik/vIegSe05DtX/m4miovdtvVLqRUFAkK0= -github.com/k3s-io/cri-tools v1.19.0-k3s1 h1:FQ1iURavoP3rE/GqND/f3aIL1X59IpFQCRnDhiwzcZ8= -github.com/k3s-io/cri-tools v1.19.0-k3s1/go.mod h1:bitvtZRi5F7t505Yw3zPzp22LOao1lqJKHfx6x0hnpw= +github.com/k3s-io/cri-tools v1.20.0-k3s1 h1:pd6/NWvCwMeBiBvvkGSCBQHlVJFQ5Vj2f1oXXIA18RY= +github.com/k3s-io/cri-tools v1.20.0-k3s1/go.mod h1:APtxWLVkA6SNZxmG5/ETT3QAxG0BptTtFc8EywLSdLQ= github.com/k3s-io/etcd v0.5.0-alpha.5.0.20201208200253-50621aee4aea h1:7cwby0GoNAi8IsVrT0q+JfQpB6V76ZaEGhj6qts/mvU= github.com/k3s-io/etcd v0.5.0-alpha.5.0.20201208200253-50621aee4aea/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= github.com/k3s-io/flannel v0.12.0-k3s2 h1:KEfj4fe+P0qINcYZxo5/C0cga2XBEfeV4nhKrUGDyCg= @@ -524,55 +524,55 @@ github.com/k3s-io/helm-controller v0.8.3 h1:GWxavyMz7Bw2ClxH5okkeOL8o5U6IBK7uauc github.com/k3s-io/helm-controller v0.8.3/go.mod h1:nZP8FH3KZrNNUf5r+SwwiMR63HS6lxdHdpHijgPfF74= github.com/k3s-io/kine v0.6.0 h1:4l7wjgCxb2oD+7Hyf3xIhkGd/6s1sXpRFdQiyy+7Ki8= github.com/k3s-io/kine v0.6.0/go.mod h1:rzCs93+rQHZGOiewMd84PDrER92QeZ6eeHbWkfEy4+w= -github.com/k3s-io/kubernetes v1.20.0-k3s1 h1:m/p4cZPfNoyMiGTMySXRITuHHlWMi6Ts9NLp6yNP97w= -github.com/k3s-io/kubernetes v1.20.0-k3s1/go.mod h1:/xrHGNfoQphtkhZvyd5bA1lRmz+QkDVmBZu+O8QMoek= -github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.0-k3s1 h1:uyG3GPTDy/gGw2FNLNCYp1quNaMEV9WM2aaY5DNN5G8= -github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.0-k3s1/go.mod h1:WITCNA3qJC44dfLg1s/kdEQ51akGrwqOKkMnN7XoKXE= -github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.0-k3s1 h1:jleOazq9s7tYq7OB9EN0rnHAW6KsnuRuvm5bG0ZeaYA= -github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.0-k3s1/go.mod h1:A5mDfmENvCI0QodhAc0ipXV1aI5JUiZoJkA7BvHs9EQ= -github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.0-k3s1 h1:VmkhueKhC9tcN+13wAhbAhWRL9iXje9KreEB6wxmB0U= -github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.0-k3s1/go.mod h1:0y+U/8BmQoVgMGE+0/gge588aGi4gmbN3lxoCG+3ADo= -github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.0-k3s1 h1:skVR6Qlksgj7H7ymTgtTqd8VpKOr+/ANQGb2q8ycnXI= -github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.0-k3s1/go.mod h1:NsoqXeT+WOthrid9HxmbcdWoodnkGiwyPN2n3Xl4mzk= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.0-k3s1 h1:k/gsbR8VR4Z0S+AduEiC3O9E6rQGhlRZ22d5Bo4KgCA= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.0-k3s1/go.mod h1:nlZrhzrCcFv6W/jOigxyAFPNDg3aMkPDT2W62PpcGWI= -github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.0-k3s1 h1:HbAYDUviGPMU/gZAHvVKe/gRmrqqryvGBCDkXds96IA= -github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.0-k3s1/go.mod h1:aYCqdW6DxKJzKkgoUBLWHRy9L2PEEMBfHfl79/Dw3vU= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.0-k3s1 h1:KKh8qyR4lSmbajcnX0UdqGqgJCSI0LHjr0Oto/uIs90= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.0-k3s1/go.mod h1:PHIzADQFbVKfpb2K1IxHnNelXeeDHkXOR5Iz1E7OuUk= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.0-k3s1 h1:kBJ2GLFRcm4yUCfWgCDGyuRzfcEHeYi+ce0RAw/96L8= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.0-k3s1/go.mod h1:spaI5+5c+1VReIDh7pGGs8ngDc3IoHwmTF8X+fTrP08= -github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.0-k3s1 h1:GqWOzuSGkTNxq7/e4ANw9OzJjMhx4jaiYjniVLEYE2Q= -github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.0-k3s1/go.mod h1:2R6qHsMnv/qydEgHBJ0z6r44uWkFoHzV5/GWbFxqwic= -github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.0-k3s1 h1:viJMxCxCVkF7UcYWbRc/WccBS/+dqH+N1pTI+U+y+yQ= -github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.0-k3s1/go.mod h1:8GInE8yyzLYFslW12FRnTl/9YkmR9f/GGzCYu8ANHCQ= -github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.0-k3s1 h1:JcD/wV3JG0zB73AR3kZKqkQsfH0gUaqo8OrfwOEWV+8= -github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.0-k3s1/go.mod h1:pw+OH968rZrCvNZo0Eer3HGuPtKWS0dYbGot9aZ64Y4= -github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.0-k3s1 h1:6r8uHTI1N+PCfMXPK3SaNCu8RMz6abANpV67LwK/a58= -github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.0-k3s1/go.mod h1:9QKLqDYjrnFJFS+rSO1jIH00jff39O2VGuZFkAUZPuM= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.0-k3s1 h1:UpsLPkkvs+njgMEAj9NTY8LNOutmivKOSb/8ScRKGfU= -github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.0-k3s1/go.mod h1:4xhnGOFiv9lkvENieScdSfcQHzXH9DR6QZRrCH0amMo= -github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.0-k3s1 h1:U4531uudbW2C0V/ICU1abJRS2AI/LffCT4IYxOMvR1U= -github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.0-k3s1/go.mod h1:Zicsc4aFIp+w3G/peRJVi5s2aJEZ9jQfGiG7ozhTXM4= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.0-k3s1 h1:lmo+YGPTY6p1TgDyMna1ocXsnCzsnruifRLkig87p64= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.0-k3s1/go.mod h1:tQfIsKxDtV4B9JCUmG6Aum06bboy50wSjeAQvQ3rw2E= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.0-k3s1 h1:ym0o+Zzn63tqsjSgnCm91Z1uXXGdhfo9LNGGxCWy+r8= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.0-k3s1/go.mod h1:wwy8f7/wn8nH5uZq1RrbJmZoYRoFicaqndxs8vbsALA= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.0-k3s1 h1:ms2wSA94T1KIIxo0p6VxoKKh50jJv/U5OT+tOOGSA4I= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.0-k3s1/go.mod h1:PWMBqO9xuXWJS8REJ8QWiouJzbiOwVVVT81ZTwYb2Nk= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.0-k3s1 h1:HiLUeIXOr44gBKMyyc8dly1SHmOZQUWjxJjZIaGSE7Q= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.0-k3s1/go.mod h1:KGBnJPnA0KkPNM8DFYa7IrEslOHOKUqewL+USqnG6fo= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.0-k3s1 h1:tlHHMiB3Bjs/NhueKexSwiOuEmLEnlGcA+DiJ6Uq97U= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.0-k3s1/go.mod h1:34qOOg9yrR23GRMMunyDE4ngDYnz6Q7/T607q/qWnfM= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.0-k3s1 h1:ipva+Xg3KsAaIBW1HnCthH9hLPVOHvGtbLvNAVcc3xA= -github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.0-k3s1/go.mod h1:B80sNAi0WQAEMuil1AWJk58uBTWbeaB2rpalid8bwVA= -github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.0-k3s1 h1:rKUcDBiCzmNe27+eD2uCJcXOwCvqQQJ1fOE0j6igg7k= -github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.0-k3s1/go.mod h1:Ar3mk1+4I10WJg8SwpYKlK7hzsa9BPd8W0Stzxr90Q0= -github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.0-k3s1 h1:CKx1P8WjYf6KSl1uUmBM4occ0RHHFkBDpllxKXUEqwg= -github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.0-k3s1/go.mod h1:L4m/Vfo6CeUk2HBd8mEcYDLksPqbYuu5Nn+DKU2qvUQ= -github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.0-k3s1 h1:cjBHHTyMJ+rThmLCpspub0rvz/p7Y3k+ERJNh7OcIUE= -github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.0-k3s1/go.mod h1:mFeSjsWvLj55xUpwltalvolz49izW7J0N5RfoIHrKKY= -github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.0-k3s1/go.mod h1:bbMx+Jiwi0GviI8UoqNJ5fpjNfCYBbu8plusmJAVvck= +github.com/k3s-io/kubernetes v1.20.2-k3s1 h1:z0Iqn2XPITD/0kCZ0h6IK/j/Gm3shiKoWgCgOqbdalo= +github.com/k3s-io/kubernetes v1.20.2-k3s1/go.mod h1:v2E/T5A+ikBt81n9HZ8VVns5IXSsMHP1ITIFuHY3d5s= +github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.2-k3s1 h1:HCMlr6q4zY6F1OQgTzBVYOpOzEzudxwd2IQDRZO7Vmw= +github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.2-k3s1/go.mod h1:WITCNA3qJC44dfLg1s/kdEQ51akGrwqOKkMnN7XoKXE= +github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.2-k3s1 h1:AouMiWpEVCur/ndBVPS16gN72lZXZsLNoXefJdsCU9c= +github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.2-k3s1/go.mod h1:A5mDfmENvCI0QodhAc0ipXV1aI5JUiZoJkA7BvHs9EQ= +github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.2-k3s1 h1:1MS9XHHAVpRPnFogBpz5zxY1eV3h5paVO9esekmNoDI= +github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.2-k3s1/go.mod h1:0y+U/8BmQoVgMGE+0/gge588aGi4gmbN3lxoCG+3ADo= +github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.2-k3s1 h1:XtapVXr6neBNhf1bajvh9MHzfJkD7Od4i+0mOaxpxpc= +github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.2-k3s1/go.mod h1:NsoqXeT+WOthrid9HxmbcdWoodnkGiwyPN2n3Xl4mzk= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.2-k3s1 h1:hTpT+J4KeDqah93ZEYxMQlyTlDjljC9n8ll5wnU9Z7s= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.2-k3s1/go.mod h1:nlZrhzrCcFv6W/jOigxyAFPNDg3aMkPDT2W62PpcGWI= +github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.2-k3s1 h1:80VWRcsuFD6YqfM2JW8sPeHLrH5C+AVvxP+b9lN9mFE= +github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.2-k3s1/go.mod h1:aYCqdW6DxKJzKkgoUBLWHRy9L2PEEMBfHfl79/Dw3vU= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.2-k3s1 h1:p3KZun8y8+SDFgsd0mAjxY2JIHCgdtUXFsPdQF/MTqc= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.2-k3s1/go.mod h1:PHIzADQFbVKfpb2K1IxHnNelXeeDHkXOR5Iz1E7OuUk= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.2-k3s1 h1:vZJVLIMCmTkK7QwS8a+IDMN9rHVYXs6ihcABr6t9ms0= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.2-k3s1/go.mod h1:spaI5+5c+1VReIDh7pGGs8ngDc3IoHwmTF8X+fTrP08= +github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.2-k3s1 h1:Jt5+rjXlT7vJLNN+6UwoxtHUTC2BLKQbjbGtIygeyx8= +github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.2-k3s1/go.mod h1:2R6qHsMnv/qydEgHBJ0z6r44uWkFoHzV5/GWbFxqwic= +github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.2-k3s1 h1:gxO0jPyEb0n8kPBQvBCv2tqt+EElnCHJ+QH7mbS/8o4= +github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.2-k3s1/go.mod h1:8GInE8yyzLYFslW12FRnTl/9YkmR9f/GGzCYu8ANHCQ= +github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.2-k3s1 h1:8w9wN1xXWXb7q4tpL/vuJpwtrfHTnkqb4HDz2EITdmY= +github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.2-k3s1/go.mod h1:pw+OH968rZrCvNZo0Eer3HGuPtKWS0dYbGot9aZ64Y4= +github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.2-k3s1 h1:wAvb3TJOsHkOdt++dSwvXXA77FdxZCV+0tXe+Hw4Baw= +github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.2-k3s1/go.mod h1:9QKLqDYjrnFJFS+rSO1jIH00jff39O2VGuZFkAUZPuM= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.2-k3s1 h1:iFipsOSnXlWTMipEeexwd4ZK5ZlyhIgKhRrti9YRm9g= +github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.2-k3s1/go.mod h1:4xhnGOFiv9lkvENieScdSfcQHzXH9DR6QZRrCH0amMo= +github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.2-k3s1 h1:/IZqL+k7UW4ryPn0ggxj0WEXcdrgK0LcQdh061pyQqA= +github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.2-k3s1/go.mod h1:Zicsc4aFIp+w3G/peRJVi5s2aJEZ9jQfGiG7ozhTXM4= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.2-k3s1 h1:qdiL8+94fQ4Eyq0YTVIRyMZUIm8JqHKEy/6jIgdKAMw= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.2-k3s1/go.mod h1:tQfIsKxDtV4B9JCUmG6Aum06bboy50wSjeAQvQ3rw2E= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.2-k3s1 h1:vfDSMrzYZX4YkRApgdu21I97fGP4jw3ksd0kLaLtU20= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.2-k3s1/go.mod h1:wwy8f7/wn8nH5uZq1RrbJmZoYRoFicaqndxs8vbsALA= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.2-k3s1 h1:hTHrnFN62BHxhwmZjixFK6+LcUj/M5HNbvENofAn+jY= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.2-k3s1/go.mod h1:PWMBqO9xuXWJS8REJ8QWiouJzbiOwVVVT81ZTwYb2Nk= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.2-k3s1 h1:ac3hDcDQxk+wiiwrLC6fKEOrQk8Q/i1/LKpGaOTeGGY= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.2-k3s1/go.mod h1:KGBnJPnA0KkPNM8DFYa7IrEslOHOKUqewL+USqnG6fo= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.2-k3s1 h1:VZIvrlDdOUpexNvxrMtQpjEXK79o5+8iclZi/0Sxwo8= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.2-k3s1/go.mod h1:34qOOg9yrR23GRMMunyDE4ngDYnz6Q7/T607q/qWnfM= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.2-k3s1 h1:ItXuGAfFESwrKHiktE4wvjkqMniZB8AvskyNSWrpDiw= +github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.2-k3s1/go.mod h1:B80sNAi0WQAEMuil1AWJk58uBTWbeaB2rpalid8bwVA= +github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.2-k3s1 h1:0qlQuZr5A6izAULoQbReMXCYg5zBu3qcTr8WC4FSvHg= +github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.2-k3s1/go.mod h1:Ar3mk1+4I10WJg8SwpYKlK7hzsa9BPd8W0Stzxr90Q0= +github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.2-k3s1 h1:D7rQ4q2n9iXIP5YRnU2QDgs9gsTL+qiG68qAUMRNONw= +github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.2-k3s1/go.mod h1:L4m/Vfo6CeUk2HBd8mEcYDLksPqbYuu5Nn+DKU2qvUQ= +github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.2-k3s1 h1:90py2hYmmEcBcsAprsEh+ANhPcqEh4T4/iHO38yull8= +github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.2-k3s1/go.mod h1:mFeSjsWvLj55xUpwltalvolz49izW7J0N5RfoIHrKKY= +github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.2-k3s1/go.mod h1:bbMx+Jiwi0GviI8UoqNJ5fpjNfCYBbu8plusmJAVvck= github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= @@ -692,8 +692,8 @@ github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.14.2 h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M= +github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -701,6 +701,8 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.3 h1:gph6h/qe9GSUw1NhH1gp+qb+h8rXD8Cy60Z32Qw3ELA= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -809,6 +811,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= @@ -870,6 +874,8 @@ github.com/urfave/cli v1.22.2 h1:gsqYFH8bb9ekPA12kRo0hfjngWQjkJPlN9R0N78BoUo= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4= github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= +github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vishvananda/netlink v0.0.0-20170220200719-fe3b5664d23a/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= @@ -1089,6 +1095,7 @@ gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/google/cadvisor/container/containerd/client.go b/vendor/github.com/google/cadvisor/container/containerd/client.go index 986476385f..47eaffad7b 100644 --- a/vendor/github.com/google/cadvisor/container/containerd/client.go +++ b/vendor/github.com/google/cadvisor/container/containerd/client.go @@ -65,11 +65,10 @@ func Client(address, namespace string) (ContainerdClient, error) { tryConn.Close() connParams := grpc.ConnectParams{ - Backoff: backoff.Config{ - BaseDelay: baseBackoffDelay, - MaxDelay: maxBackoffDelay, - }, + Backoff: backoff.DefaultConfig, } + connParams.Backoff.BaseDelay = baseBackoffDelay + connParams.Backoff.MaxDelay = maxBackoffDelay gopts := []grpc.DialOption{ grpc.WithInsecure(), grpc.WithContextDialer(dialer.ContextDialer), diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE b/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE deleted file mode 100644 index 14127cd831..0000000000 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -(The MIT License) - -Copyright (c) 2017 marvin + konsorten GmbH (open-source@konsorten.de) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md b/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md deleted file mode 100644 index 09a4a35c9b..0000000000 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Windows Terminal Sequences - -This library allow for enabling Windows terminal color support for Go. - -See [Console Virtual Terminal Sequences](https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences) for details. - -## Usage - -```go -import ( - "syscall" - - sequences "github.com/konsorten/go-windows-terminal-sequences" -) - -func main() { - sequences.EnableVirtualTerminalProcessing(syscall.Stdout, true) -} - -``` - -## Authors - -The tool is sponsored by the [marvin + konsorten GmbH](http://www.konsorten.de). - -We thank all the authors who provided code to this library: - -* Felix Kollmann -* Nicolas Perraut -* @dirty49374 - -## License - -(The MIT License) - -Copyright (c) 2018 marvin + konsorten GmbH (open-source@konsorten.de) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod b/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod deleted file mode 100644 index 716c613125..0000000000 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/konsorten/go-windows-terminal-sequences diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go b/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go deleted file mode 100644 index 57f530ae83..0000000000 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go +++ /dev/null @@ -1,35 +0,0 @@ -// +build windows - -package sequences - -import ( - "syscall" -) - -var ( - kernel32Dll *syscall.LazyDLL = syscall.NewLazyDLL("Kernel32.dll") - setConsoleMode *syscall.LazyProc = kernel32Dll.NewProc("SetConsoleMode") -) - -func EnableVirtualTerminalProcessing(stream syscall.Handle, enable bool) error { - const ENABLE_VIRTUAL_TERMINAL_PROCESSING uint32 = 0x4 - - var mode uint32 - err := syscall.GetConsoleMode(syscall.Stdout, &mode) - if err != nil { - return err - } - - if enable { - mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING - } else { - mode &^= ENABLE_VIRTUAL_TERMINAL_PROCESSING - } - - ret, _, err := setConsoleMode.Call(uintptr(stream), uintptr(mode)) - if ret == 0 { - return err - } - - return nil -} diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go b/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go deleted file mode 100644 index df61a6f2f6..0000000000 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go +++ /dev/null @@ -1,11 +0,0 @@ -// +build linux darwin - -package sequences - -import ( - "fmt" -) - -func EnableVirtualTerminalProcessing(stream uintptr, enable bool) error { - return fmt.Errorf("windows only package") -} diff --git a/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/container.go b/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/container.go index 46830aff88..1bb21efb3f 100644 --- a/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/container.go +++ b/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/container.go @@ -57,6 +57,9 @@ type runOptions struct { // podConfig is path to the config for sandbox podConfig string + // the create timeout + timeout time.Duration + // the image pull options *pullOptions } @@ -120,7 +123,11 @@ var createContainerCommand = &cli.Command{ Name: "create", Usage: "Create a new container", ArgsUsage: "POD container-config.[json|yaml] pod-config.[json|yaml]", - Flags: createPullFlags, + Flags: append(createPullFlags, &cli.DurationFlag{ + Name: "cancel-timeout", + Aliases: []string{"T"}, + Usage: "Seconds to wait for a container create request to complete before cancelling the request", + }), Action: func(context *cli.Context) error { if context.Args().Len() != 3 { @@ -159,6 +166,7 @@ var createContainerCommand = &cli.Command{ creds: context.String("creds"), auth: context.String("auth"), }, + timeout: context.Duration("cancel-timeout"), }, } @@ -265,7 +273,6 @@ var stopContainerCommand = &cli.Command{ &cli.Int64Flag{ Name: "timeout", Aliases: []string{"t"}, - Value: 10, Usage: "Seconds to wait to kill the container after a graceful stop is requested", }, }, @@ -530,6 +537,10 @@ var runContainerCommand = &cli.Command{ Name: "runtime", Aliases: []string{"r"}, Usage: "Runtime handler to use. Available options are defined by the container runtime.", + }, &cli.DurationFlag{ + Name: "timeout", + Aliases: []string{"t"}, + Usage: "Seconds to wait for a container create request before cancelling the request", }), Action: func(context *cli.Context) error { @@ -569,6 +580,7 @@ var runContainerCommand = &cli.Command{ creds: context.String("creds"), auth: context.String("auth"), }, + timeout: context.Duration("timeout"), } err = RunContainer(imageClient, runtimeClient, opts, context.String("runtime")) @@ -591,7 +603,9 @@ func RunContainer( if err != nil { return errors.Wrap(err, "load podSandboxConfig") } - podID, err := RunPodSandbox(rClient, podSandboxConfig, runtime) + // set the timeout for the RunPodSandbox request to 0, because the + // timeout option is documented as being for container creation. + podID, err := RunPodSandbox(rClient, podSandboxConfig, runtime, 0) if err != nil { return errors.Wrap(err, "run pod sandbox") } @@ -655,7 +669,9 @@ func CreateContainer( SandboxConfig: podConfig, } logrus.Debugf("CreateContainerRequest: %v", request) - r, err := rClient.CreateContainer(context.Background(), request) + ctx, cancel := ctxWithTimeout(opts.timeout) + defer cancel() + r, err := rClient.CreateContainer(ctx, request) logrus.Debugf("CreateContainerResponse: %v", r) if err != nil { return "", err diff --git a/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/sandbox.go b/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/sandbox.go index 49c0901a95..4fed769baf 100644 --- a/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/sandbox.go +++ b/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/sandbox.go @@ -52,6 +52,12 @@ var runPodCommand = &cli.Command{ Aliases: []string{"r"}, Usage: "Runtime handler to use. Available options are defined by the container runtime.", }, + &cli.DurationFlag{ + Name: "cancel-timeout", + Aliases: []string{"T"}, + Value: 0, + Usage: "Seconds to wait for a run pod sandbox request to complete before cancelling the request", + }, }, Action: func(context *cli.Context) error { @@ -72,7 +78,7 @@ var runPodCommand = &cli.Command{ } // Test RuntimeServiceClient.RunPodSandbox - podID, err := RunPodSandbox(runtimeClient, podSandboxConfig, context.String("runtime")) + podID, err := RunPodSandbox(runtimeClient, podSandboxConfig, context.String("runtime"), context.Duration("cancel-timeout")) if err != nil { return errors.Wrap(err, "run pod sandbox") } @@ -149,25 +155,26 @@ var removePodCommand = &cli.Command{ funcs := []func() error{} for _, id := range ids { + podId := id funcs = append(funcs, func() error { resp, err := runtimeClient.PodSandboxStatus(context.Background(), - &pb.PodSandboxStatusRequest{PodSandboxId: id}) + &pb.PodSandboxStatusRequest{PodSandboxId: podId}) if err != nil { - return errors.Wrapf(err, "getting sandbox status of pod %q", id) + return errors.Wrapf(err, "getting sandbox status of pod %q", podId) } if resp.Status.State == pb.PodSandboxState_SANDBOX_READY { if ctx.Bool("force") { - if err := StopPodSandbox(runtimeClient, id); err != nil { - return errors.Wrapf(err, "stopping the pod sandbox %q failed", id) + if err := StopPodSandbox(runtimeClient, podId); err != nil { + return errors.Wrapf(err, "stopping the pod sandbox %q failed", podId) } } else { - return errors.Errorf("pod sandbox %q is running, please stop it first", id) + return errors.Errorf("pod sandbox %q is running, please stop it first", podId) } } - err = RemovePodSandbox(runtimeClient, id) + err = RemovePodSandbox(runtimeClient, podId) if err != nil { - return errors.Wrapf(err, "removing the pod sandbox %q", id) + return errors.Wrapf(err, "removing the pod sandbox %q", podId) } return nil @@ -314,13 +321,15 @@ var listPodCommand = &cli.Command{ // RunPodSandbox sends a RunPodSandboxRequest to the server, and parses // the returned RunPodSandboxResponse. -func RunPodSandbox(client pb.RuntimeServiceClient, config *pb.PodSandboxConfig, runtime string) (string, error) { +func RunPodSandbox(client pb.RuntimeServiceClient, config *pb.PodSandboxConfig, runtime string, timeout time.Duration) (string, error) { request := &pb.RunPodSandboxRequest{ Config: config, RuntimeHandler: runtime, } logrus.Debugf("RunPodSandboxRequest: %v", request) - r, err := client.RunPodSandbox(context.Background(), request) + ctx, cancel := ctxWithTimeout(timeout) + defer cancel() + r, err := client.RunPodSandbox(ctx, request) logrus.Debugf("RunPodSandboxResponse: %v", r) if err != nil { return "", err diff --git a/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/util.go b/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/util.go index 1616f4d51e..d2824af45e 100644 --- a/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/util.go +++ b/vendor/github.com/kubernetes-sigs/cri-tools/cmd/crictl/util.go @@ -18,6 +18,7 @@ package crictl import ( "bytes" + "context" "encoding/json" "fmt" "os" @@ -25,6 +26,7 @@ import ( "regexp" "sort" "strings" + "time" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" @@ -342,3 +344,10 @@ func matchesImage(imageClient pb.ImageServiceClient, image string, containerImag } return r1.Image.Id == r2.Image.Id, nil } + +func ctxWithTimeout(timeout time.Duration) (context.Context, context.CancelFunc) { + if timeout == 0 { + return context.Background(), func() {} + } + return context.WithTimeout(context.Background(), timeout) +} diff --git a/vendor/github.com/sirupsen/logrus/.gitignore b/vendor/github.com/sirupsen/logrus/.gitignore index 6b7d7d1e8b..1fb13abebe 100644 --- a/vendor/github.com/sirupsen/logrus/.gitignore +++ b/vendor/github.com/sirupsen/logrus/.gitignore @@ -1,2 +1,4 @@ logrus vendor + +.idea/ diff --git a/vendor/github.com/sirupsen/logrus/buffer_pool.go b/vendor/github.com/sirupsen/logrus/buffer_pool.go new file mode 100644 index 0000000000..4545dec07d --- /dev/null +++ b/vendor/github.com/sirupsen/logrus/buffer_pool.go @@ -0,0 +1,52 @@ +package logrus + +import ( + "bytes" + "sync" +) + +var ( + bufferPool BufferPool +) + +type BufferPool interface { + Put(*bytes.Buffer) + Get() *bytes.Buffer +} + +type defaultPool struct { + pool *sync.Pool +} + +func (p *defaultPool) Put(buf *bytes.Buffer) { + p.pool.Put(buf) +} + +func (p *defaultPool) Get() *bytes.Buffer { + return p.pool.Get().(*bytes.Buffer) +} + +func getBuffer() *bytes.Buffer { + return bufferPool.Get() +} + +func putBuffer(buf *bytes.Buffer) { + buf.Reset() + bufferPool.Put(buf) +} + +// SetBufferPool allows to replace the default logrus buffer pool +// to better meets the specific needs of an application. +func SetBufferPool(bp BufferPool) { + bufferPool = bp +} + +func init() { + SetBufferPool(&defaultPool{ + pool: &sync.Pool{ + New: func() interface{} { + return new(bytes.Buffer) + }, + }, + }) +} diff --git a/vendor/github.com/sirupsen/logrus/entry.go b/vendor/github.com/sirupsen/logrus/entry.go index f6e062a346..5a5cbfe7c8 100644 --- a/vendor/github.com/sirupsen/logrus/entry.go +++ b/vendor/github.com/sirupsen/logrus/entry.go @@ -13,7 +13,6 @@ import ( ) var ( - bufferPool *sync.Pool // qualified package name, cached at first use logrusPackage string @@ -31,12 +30,6 @@ const ( ) func init() { - bufferPool = &sync.Pool{ - New: func() interface{} { - return new(bytes.Buffer) - }, - } - // start at the bottom of the stack before the package-name cache is primed minimumCallerDepth = 1 } @@ -243,9 +236,12 @@ func (entry Entry) log(level Level, msg string) { entry.fireHooks() - buffer = bufferPool.Get().(*bytes.Buffer) + buffer = getBuffer() + defer func() { + entry.Buffer = nil + putBuffer(buffer) + }() buffer.Reset() - defer bufferPool.Put(buffer) entry.Buffer = buffer entry.write() diff --git a/vendor/github.com/sirupsen/logrus/exported.go b/vendor/github.com/sirupsen/logrus/exported.go index 42b04f6c80..017c30ce67 100644 --- a/vendor/github.com/sirupsen/logrus/exported.go +++ b/vendor/github.com/sirupsen/logrus/exported.go @@ -134,6 +134,51 @@ func Fatal(args ...interface{}) { std.Fatal(args...) } +// TraceFn logs a message from a func at level Trace on the standard logger. +func TraceFn(fn LogFunction) { + std.TraceFn(fn) +} + +// DebugFn logs a message from a func at level Debug on the standard logger. +func DebugFn(fn LogFunction) { + std.DebugFn(fn) +} + +// PrintFn logs a message from a func at level Info on the standard logger. +func PrintFn(fn LogFunction) { + std.PrintFn(fn) +} + +// InfoFn logs a message from a func at level Info on the standard logger. +func InfoFn(fn LogFunction) { + std.InfoFn(fn) +} + +// WarnFn logs a message from a func at level Warn on the standard logger. +func WarnFn(fn LogFunction) { + std.WarnFn(fn) +} + +// WarningFn logs a message from a func at level Warn on the standard logger. +func WarningFn(fn LogFunction) { + std.WarningFn(fn) +} + +// ErrorFn logs a message from a func at level Error on the standard logger. +func ErrorFn(fn LogFunction) { + std.ErrorFn(fn) +} + +// PanicFn logs a message from a func at level Panic on the standard logger. +func PanicFn(fn LogFunction) { + std.PanicFn(fn) +} + +// FatalFn logs a message from a func at level Fatal on the standard logger then the process will exit with status set to 1. +func FatalFn(fn LogFunction) { + std.FatalFn(fn) +} + // Tracef logs a message at level Trace on the standard logger. func Tracef(format string, args ...interface{}) { std.Tracef(format, args...) diff --git a/vendor/github.com/sirupsen/logrus/go.mod b/vendor/github.com/sirupsen/logrus/go.mod index d41329679f..b3919d5eab 100644 --- a/vendor/github.com/sirupsen/logrus/go.mod +++ b/vendor/github.com/sirupsen/logrus/go.mod @@ -2,10 +2,9 @@ module github.com/sirupsen/logrus require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.3 github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/testify v1.2.2 - golang.org/x/sys v0.0.0-20190422165155-953cdadca894 + golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 ) go 1.13 diff --git a/vendor/github.com/sirupsen/logrus/go.sum b/vendor/github.com/sirupsen/logrus/go.sum index 49c690f238..1edc143bed 100644 --- a/vendor/github.com/sirupsen/logrus/go.sum +++ b/vendor/github.com/sirupsen/logrus/go.sum @@ -1,12 +1,10 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/sirupsen/logrus/logger.go b/vendor/github.com/sirupsen/logrus/logger.go index 6fdda748e4..dbf627c975 100644 --- a/vendor/github.com/sirupsen/logrus/logger.go +++ b/vendor/github.com/sirupsen/logrus/logger.go @@ -9,6 +9,11 @@ import ( "time" ) +// LogFunction For big messages, it can be more efficient to pass a function +// and only call it if the log level is actually enables rather than +// generating the log message and then checking if the level is enabled +type LogFunction func()[]interface{} + type Logger struct { // The logs are `io.Copy`'d to this in a mutex. It's common to set this to a // file, or leave it default which is `os.Stderr`. You can also set this to @@ -70,7 +75,7 @@ func (mw *MutexWrap) Disable() { // // var log = &logrus.Logger{ // Out: os.Stderr, -// Formatter: new(logrus.JSONFormatter), +// Formatter: new(logrus.TextFormatter), // Hooks: make(logrus.LevelHooks), // Level: logrus.DebugLevel, // } @@ -195,6 +200,14 @@ func (logger *Logger) Log(level Level, args ...interface{}) { } } +func (logger *Logger) LogFn(level Level, fn LogFunction) { + if logger.IsLevelEnabled(level) { + entry := logger.newEntry() + entry.Log(level, fn()...) + logger.releaseEntry(entry) + } +} + func (logger *Logger) Trace(args ...interface{}) { logger.Log(TraceLevel, args...) } @@ -234,6 +247,45 @@ func (logger *Logger) Panic(args ...interface{}) { logger.Log(PanicLevel, args...) } +func (logger *Logger) TraceFn(fn LogFunction) { + logger.LogFn(TraceLevel, fn) +} + +func (logger *Logger) DebugFn(fn LogFunction) { + logger.LogFn(DebugLevel, fn) +} + +func (logger *Logger) InfoFn(fn LogFunction) { + logger.LogFn(InfoLevel, fn) +} + +func (logger *Logger) PrintFn(fn LogFunction) { + entry := logger.newEntry() + entry.Print(fn()...) + logger.releaseEntry(entry) +} + +func (logger *Logger) WarnFn(fn LogFunction) { + logger.LogFn(WarnLevel, fn) +} + +func (logger *Logger) WarningFn(fn LogFunction) { + logger.WarnFn(fn) +} + +func (logger *Logger) ErrorFn(fn LogFunction) { + logger.LogFn(ErrorLevel, fn) +} + +func (logger *Logger) FatalFn(fn LogFunction) { + logger.LogFn(FatalLevel, fn) + logger.Exit(1) +} + +func (logger *Logger) PanicFn(fn LogFunction) { + logger.LogFn(PanicLevel, fn) +} + func (logger *Logger) Logln(level Level, args ...interface{}) { if logger.IsLevelEnabled(level) { entry := logger.newEntry() diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_windows.go b/vendor/github.com/sirupsen/logrus/terminal_check_windows.go index 572889db21..2879eb50ea 100644 --- a/vendor/github.com/sirupsen/logrus/terminal_check_windows.go +++ b/vendor/github.com/sirupsen/logrus/terminal_check_windows.go @@ -5,30 +5,23 @@ package logrus import ( "io" "os" - "syscall" - sequences "github.com/konsorten/go-windows-terminal-sequences" + "golang.org/x/sys/windows" ) -func initTerminal(w io.Writer) { - switch v := w.(type) { - case *os.File: - sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true) - } -} - func checkIfTerminal(w io.Writer) bool { - var ret bool switch v := w.(type) { case *os.File: + handle := windows.Handle(v.Fd()) var mode uint32 - err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode) - ret = (err == nil) - default: - ret = false + if err := windows.GetConsoleMode(handle, &mode); err != nil { + return false + } + mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING + if err := windows.SetConsoleMode(handle, mode); err != nil { + return false + } + return true } - if ret { - initTerminal(w) - } - return ret + return false } diff --git a/vendor/github.com/urfave/cli/v2/README.md b/vendor/github.com/urfave/cli/v2/README.md index c9237fbc6d..408668bc3e 100644 --- a/vendor/github.com/urfave/cli/v2/README.md +++ b/vendor/github.com/urfave/cli/v2/README.md @@ -17,11 +17,15 @@ Usage documentation exists for each major version. Don't know what version you'r - `v2` - [./docs/v2/manual.md](./docs/v2/manual.md) - `v1` - [./docs/v1/manual.md](./docs/v1/manual.md) +Guides for migrating to newer versions: + +- `v1-to-v2` - [./docs/migrate-v1-to-v2.md](./docs/migrate-v1-to-v2.md) + ## Installation -Make sure you have a working Go environment. Go version 1.11+ is supported. [See the install instructions for Go](http://golang.org/doc/install.html). +Using this package requires a working Go environment. [See the install instructions for Go](http://golang.org/doc/install.html). -Go Modules are strongly recommended when using this package. [See the go blog guide on using Go Modules](https://blog.golang.org/using-go-modules). +Go Modules are required when using this package. [See the go blog guide on using Go Modules](https://blog.golang.org/using-go-modules). ### Using `v2` releases @@ -63,4 +67,4 @@ export PATH=$PATH:$GOPATH/bin cli is tested against multiple versions of Go on Linux, and against the latest released version of Go on OS X and Windows. This project uses Github Actions for -builds. For more build info, please look at the [./.github/workflows/cli.yml](https://github.com/urfave/cli/blob/master/.github/workflows/cli.yml). +builds. To see our currently supported go versions and platforms, look at the [./.github/workflows/cli.yml](https://github.com/urfave/cli/blob/master/.github/workflows/cli.yml). diff --git a/vendor/github.com/urfave/cli/v2/app.go b/vendor/github.com/urfave/cli/v2/app.go index d0c8f84e2c..f801fce910 100644 --- a/vendor/github.com/urfave/cli/v2/app.go +++ b/vendor/github.com/urfave/cli/v2/app.go @@ -64,7 +64,7 @@ type App struct { Action ActionFunc // Execute this function if the proper command cannot be found CommandNotFound CommandNotFoundFunc - // Execute this function if an usage error occurs + // Execute this function if a usage error occurs OnUsageError OnUsageErrorFunc // Compilation date Compiled time.Time @@ -72,12 +72,15 @@ type App struct { Authors []*Author // Copyright of the binary if any Copyright string + // Reader reader to write input to (useful for tests) + Reader io.Reader // Writer writer to write output to Writer io.Writer // ErrWriter writes error output ErrWriter io.Writer - // Execute this function to handle ExitErrors. If not provided, HandleExitCoder is provided to - // function as a default, so this is optional. + // ExitErrHandler processes any error encountered while running an App before + // it is returned to the caller. If no function is provided, HandleExitCoder + // is used as the default behavior. ExitErrHandler ExitErrHandlerFunc // Other custom info Metadata map[string]interface{} @@ -116,7 +119,9 @@ func NewApp() *App { BashComplete: DefaultAppComplete, Action: helpCommand.Action, Compiled: compileTime(), + Reader: os.Stdin, Writer: os.Stdout, + ErrWriter: os.Stderr, } } @@ -158,10 +163,18 @@ func (a *App) Setup() { a.Compiled = compileTime() } + if a.Reader == nil { + a.Reader = os.Stdin + } + if a.Writer == nil { a.Writer = os.Stdout } + if a.ErrWriter == nil { + a.ErrWriter = os.Stderr + } + var newCommands []*Command for _, c := range a.Commands { @@ -195,10 +208,6 @@ func (a *App) Setup() { if a.Metadata == nil { a.Metadata = make(map[string]interface{}) } - - if a.Writer == nil { - a.Writer = os.Stdout - } } func (a *App) newFlagSet() (*flag.FlagSet, error) { @@ -290,8 +299,6 @@ func (a *App) RunContext(ctx context.Context, arguments []string) (err error) { if a.Before != nil { beforeErr := a.Before(context) if beforeErr != nil { - _, _ = fmt.Fprintf(a.Writer, "%v\n\n", beforeErr) - _ = ShowAppHelp(context) a.handleExitCoder(context, beforeErr) err = beforeErr return err @@ -325,7 +332,7 @@ func (a *App) RunContext(ctx context.Context, arguments []string) (err error) { // code in the cli.ExitCoder func (a *App) RunAndExitOnError() { if err := a.Run(os.Args); err != nil { - _, _ = fmt.Fprintln(a.errWriter(), err) + _, _ = fmt.Fprintln(a.ErrWriter, err) OsExiter(1) } } @@ -479,15 +486,6 @@ func (a *App) VisibleFlags() []Flag { return visibleFlags(a.Flags) } -func (a *App) errWriter() io.Writer { - // When the app ErrWriter is nil use the package level one. - if a.ErrWriter == nil { - return ErrWriter - } - - return a.ErrWriter -} - func (a *App) appendFlag(fl Flag) { if !hasFlag(a.Flags, fl) { a.Flags = append(a.Flags, fl) diff --git a/vendor/github.com/urfave/cli/v2/command.go b/vendor/github.com/urfave/cli/v2/command.go index 95840f32e8..dda2f49a0a 100644 --- a/vendor/github.com/urfave/cli/v2/command.go +++ b/vendor/github.com/urfave/cli/v2/command.go @@ -150,7 +150,6 @@ func (c *Command) Run(ctx *Context) (err error) { if c.Before != nil { err = c.Before(context) if err != nil { - _ = ShowCommandHelp(context, c.Name) context.App.handleExitCoder(context, err) return err } @@ -242,7 +241,7 @@ func (c *Command) startApp(ctx *Context) error { app.HideHelpCommand = c.HideHelpCommand app.Version = ctx.App.Version - app.HideVersion = ctx.App.HideVersion + app.HideVersion = true app.Compiled = ctx.App.Compiled app.Writer = ctx.App.Writer app.ErrWriter = ctx.App.ErrWriter diff --git a/vendor/github.com/urfave/cli/v2/errors.go b/vendor/github.com/urfave/cli/v2/errors.go index 344b4361e9..751ef9b166 100644 --- a/vendor/github.com/urfave/cli/v2/errors.go +++ b/vendor/github.com/urfave/cli/v2/errors.go @@ -17,11 +17,10 @@ var ErrWriter io.Writer = os.Stderr // MultiError is an error that wraps multiple errors. type MultiError interface { error - // Errors returns a copy of the errors slice Errors() []error } -// NewMultiError creates a new MultiError. Pass in one or more errors. +// newMultiError creates a new MultiError. Pass in one or more errors. func newMultiError(err ...error) MultiError { ret := multiError(err) return &ret @@ -65,13 +64,20 @@ type exitError struct { message interface{} } -// NewExitError makes a new *exitError +// NewExitError calls Exit to create a new ExitCoder. +// +// Deprecated: This function is a duplicate of Exit and will eventually be removed. func NewExitError(message interface{}, exitCode int) ExitCoder { return Exit(message, exitCode) } -// Exit wraps a message and exit code into an ExitCoder suitable for handling by -// HandleExitCoder +// Exit wraps a message and exit code into an error, which by default is +// handled with a call to os.Exit during default error handling. +// +// This is the simplest way to trigger a non-zero exit code for an App without +// having to call os.Exit manually. During testing, this behavior can be avoided +// by overiding the ExitErrHandler function on an App or the package-global +// OsExiter function. func Exit(message interface{}, exitCode int) ExitCoder { return &exitError{ message: message, @@ -87,10 +93,14 @@ func (ee *exitError) ExitCode() int { return ee.exitCode } -// HandleExitCoder checks if the error fulfills the ExitCoder interface, and if -// so prints the error to stderr (if it is non-empty) and calls OsExiter with the -// given exit code. If the given error is a MultiError, then this func is -// called on all members of the Errors slice and calls OsExiter with the last exit code. +// HandleExitCoder handles errors implementing ExitCoder by printing their +// message and calling OsExiter with the given exit code. +// +// If the given error instead implements MultiError, each error will be checked +// for the ExitCoder interface, and OsExiter will be called with the last exit +// code found, or exit code 1 if no ExitCoder is found. +// +// This function is the default error-handling behavior for an App. func HandleExitCoder(err error) { if err == nil { return diff --git a/vendor/github.com/urfave/cli/v2/fish.go b/vendor/github.com/urfave/cli/v2/fish.go index 67122c9fe7..588e070eab 100644 --- a/vendor/github.com/urfave/cli/v2/fish.go +++ b/vendor/github.com/urfave/cli/v2/fish.go @@ -171,6 +171,10 @@ func fishAddFileFlag(flag Flag, completion *strings.Builder) { if f.TakesFile { return } + case *PathFlag: + if f.TakesFile { + return + } } completion.WriteString(" -f") } diff --git a/vendor/github.com/urfave/cli/v2/flag_string_slice.go b/vendor/github.com/urfave/cli/v2/flag_string_slice.go index ac363bf609..35497032cb 100644 --- a/vendor/github.com/urfave/cli/v2/flag_string_slice.go +++ b/vendor/github.com/urfave/cli/v2/flag_string_slice.go @@ -116,8 +116,17 @@ func (f *StringSliceFlag) GetValue() string { // Apply populates the flag given the flag set and environment func (f *StringSliceFlag) Apply(set *flag.FlagSet) error { + + if f.Destination != nil && f.Value != nil { + f.Destination.slice = make([]string, len(f.Value.slice)) + copy(f.Destination.slice, f.Value.slice) + + } + if val, ok := flagFromEnvOrFile(f.EnvVars, f.FilePath); ok { - f.Value = &StringSlice{} + if f.Value == nil { + f.Value = &StringSlice{} + } destination := f.Value if f.Destination != nil { destination = f.Destination diff --git a/vendor/github.com/urfave/cli/v2/flag_timestamp.go b/vendor/github.com/urfave/cli/v2/flag_timestamp.go index 9fac1d1e26..0382a6b9dc 100644 --- a/vendor/github.com/urfave/cli/v2/flag_timestamp.go +++ b/vendor/github.com/urfave/cli/v2/flag_timestamp.go @@ -118,7 +118,9 @@ func (f *TimestampFlag) Apply(set *flag.FlagSet) error { if f.Layout == "" { return fmt.Errorf("timestamp Layout is required") } - f.Value = &Timestamp{} + if f.Value == nil { + f.Value = &Timestamp{} + } f.Value.SetLayout(f.Layout) if val, ok := flagFromEnvOrFile(f.EnvVars, f.FilePath); ok { diff --git a/vendor/github.com/urfave/cli/v2/go.mod b/vendor/github.com/urfave/cli/v2/go.mod index c38d41c14b..1139664326 100644 --- a/vendor/github.com/urfave/cli/v2/go.mod +++ b/vendor/github.com/urfave/cli/v2/go.mod @@ -5,5 +5,5 @@ go 1.11 require ( github.com/BurntSushi/toml v0.3.1 github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d - gopkg.in/yaml.v2 v2.2.2 + gopkg.in/yaml.v2 v2.2.3 ) diff --git a/vendor/github.com/urfave/cli/v2/go.sum b/vendor/github.com/urfave/cli/v2/go.sum index ef121ff5db..663ad72768 100644 --- a/vendor/github.com/urfave/cli/v2/go.sum +++ b/vendor/github.com/urfave/cli/v2/go.sum @@ -10,5 +10,5 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5I github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3 h1:fvjTMHxHEw/mxHbtzPi3JCcKXQRAnQTBRo6YCJSVHKI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/urfave/cli/v2/help.go b/vendor/github.com/urfave/cli/v2/help.go index c1e974a481..0a421ee99a 100644 --- a/vendor/github.com/urfave/cli/v2/help.go +++ b/vendor/github.com/urfave/cli/v2/help.go @@ -72,13 +72,13 @@ func ShowAppHelpAndExit(c *Context, exitCode int) { // ShowAppHelp is an action that displays the help. func ShowAppHelp(c *Context) error { - template := c.App.CustomAppHelpTemplate - if template == "" { - template = AppHelpTemplate + tpl := c.App.CustomAppHelpTemplate + if tpl == "" { + tpl = AppHelpTemplate } if c.App.ExtraInfo == nil { - HelpPrinter(c.App.Writer, template, c.App) + HelpPrinter(c.App.Writer, tpl, c.App) return nil } @@ -87,7 +87,7 @@ func ShowAppHelp(c *Context) error { "ExtraInfo": c.App.ExtraInfo, } } - HelpPrinterCustom(c.App.Writer, template, c.App, customAppData()) + HelpPrinterCustom(c.App.Writer, tpl, c.App, customAppData()) return nil } @@ -214,6 +214,12 @@ func ShowCommandHelp(ctx *Context, command string) error { return nil } +// ShowSubcommandHelpAndExit - Prints help for the given subcommand and exits with exit code. +func ShowSubcommandHelpAndExit(c *Context, exitCode int) { + _ = ShowSubcommandHelp(c) + os.Exit(exitCode) +} + // ShowSubcommandHelp prints help for the given subcommand func ShowSubcommandHelp(c *Context) error { if c == nil { @@ -263,7 +269,10 @@ func ShowCommandCompletions(ctx *Context, command string) { // allow using arbitrary functions in template rendering. func printHelpCustom(out io.Writer, templ string, data interface{}, customFuncs map[string]interface{}) { funcMap := template.FuncMap{ - "join": strings.Join, + "join": strings.Join, + "indent": indent, + "nindent": nindent, + "trim": strings.TrimSpace, } for key, value := range customFuncs { funcMap[key] = value @@ -366,3 +375,12 @@ func checkCommandCompletions(c *Context, name string) bool { ShowCommandCompletions(c, name) return true } + +func indent(spaces int, v string) string { + pad := strings.Repeat(" ", spaces) + return pad + strings.Replace(v, "\n", "\n"+pad, -1) +} + +func nindent(spaces int, v string) string { + return "\n" + indent(spaces, v) +} diff --git a/vendor/github.com/urfave/cli/v2/template.go b/vendor/github.com/urfave/cli/v2/template.go index aee3e0494f..31c03f81c7 100644 --- a/vendor/github.com/urfave/cli/v2/template.go +++ b/vendor/github.com/urfave/cli/v2/template.go @@ -13,7 +13,7 @@ VERSION: {{.Version}}{{end}}{{end}}{{if .Description}} DESCRIPTION: - {{.Description}}{{end}}{{if len .Authors}} + {{.Description | nindent 3 | trim}}{{end}}{{if len .Authors}} AUTHOR{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}: {{range $index, $author := .Authors}}{{if $index}} @@ -45,7 +45,7 @@ CATEGORY: {{.Category}}{{end}}{{if .Description}} DESCRIPTION: - {{.Description}}{{end}}{{if .VisibleFlags}} + {{.Description | nindent 3 | trim}}{{end}}{{if .VisibleFlags}} OPTIONS: {{range .VisibleFlags}}{{.}} @@ -62,7 +62,7 @@ USAGE: {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}} command{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Description}} DESCRIPTION: - {{.Description}}{{end}} + {{.Description | nindent 3 | trim}}{{end}} COMMANDS:{{range .VisibleCategories}}{{if .Name}} {{.Name}}:{{range .VisibleCommands}} diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/controller.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/controller.go index 622c7bcfd5..51d3123eab 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/controller.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/controller.go @@ -510,7 +510,10 @@ func CheckRequest(quotas []corev1.ResourceQuota, a admission.Attributes, evaluat } } - if quota.IsZero(deltaUsage) { + // ignore items in deltaUsage with zero usage + deltaUsage = quota.RemoveZeros(deltaUsage) + // if there is no remaining non-zero usage, short-circuit and return + if len(deltaUsage) == 0 { return quotas, nil } diff --git a/vendor/k8s.io/apiserver/pkg/quota/v1/resources.go b/vendor/k8s.io/apiserver/pkg/quota/v1/resources.go index 3c2927d738..b664719209 100644 --- a/vendor/k8s.io/apiserver/pkg/quota/v1/resources.go +++ b/vendor/k8s.io/apiserver/pkg/quota/v1/resources.go @@ -226,6 +226,17 @@ func IsZero(a corev1.ResourceList) bool { return true } +// RemoveZeros returns a new resource list that only has no zero values +func RemoveZeros(a corev1.ResourceList) corev1.ResourceList { + result := corev1.ResourceList{} + for key, value := range a { + if !value.IsZero() { + result[key] = value + } + } + return result +} + // IsNegative returns the set of resource names that have a negative value. func IsNegative(a corev1.ResourceList) []corev1.ResourceName { results := []corev1.ResourceName{} diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/BUILD b/vendor/k8s.io/apiserver/pkg/server/filters/BUILD index 831549636c..5d5cefaf63 100644 --- a/vendor/k8s.io/apiserver/pkg/server/filters/BUILD +++ b/vendor/k8s.io/apiserver/pkg/server/filters/BUILD @@ -21,10 +21,13 @@ go_test( "//staging/src/k8s.io/api/flowcontrol/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap:go_default_library", "//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/filters:go_default_library", @@ -34,7 +37,11 @@ go_test( "//staging/src/k8s.io/apiserver/pkg/util/flowcontrol:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/flowcontrol/metrics:go_default_library", + "//staging/src/k8s.io/client-go/informers:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library", + "//staging/src/k8s.io/component-base/metrics/testutil:go_default_library", "//vendor/golang.org/x/net/http2:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD index 52ec0b6a57..84af7fe0e2 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/BUILD @@ -78,6 +78,7 @@ go_test( "//staging/src/k8s.io/api/flowcontrol/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap:go_default_library", "//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS new file mode 100644 index 0000000000..50a230fcad --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- lavalamp +- deads2k +- yue9944882 +- MikeSpreitzer +reviewers: +- lavalamp +- deads2k +- yue9944882 +- MikeSpreitzer +labels: +- sig/api-machinery +- area/apiserver diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go index 2f93df73d3..ef55aa2f07 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_controller.go @@ -34,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/labels" apitypes "k8s.io/apimachinery/pkg/types" apierrors "k8s.io/apimachinery/pkg/util/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" fcboot "k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap" "k8s.io/apiserver/pkg/authentication/user" @@ -244,14 +245,28 @@ func (cfgCtlr *configController) updateObservations() { } } +// used from the unit tests only. +func (cfgCtlr *configController) getPriorityLevelState(plName string) *priorityLevelState { + cfgCtlr.lock.Lock() + defer cfgCtlr.lock.Unlock() + return cfgCtlr.priorityLevelStates[plName] +} + func (cfgCtlr *configController) Run(stopCh <-chan struct{}) error { + defer utilruntime.HandleCrash() + + // Let the config worker stop when we are done defer cfgCtlr.configQueue.ShutDown() + klog.Info("Starting API Priority and Fairness config controller") if ok := cache.WaitForCacheSync(stopCh, cfgCtlr.plInformerSynced, cfgCtlr.fsInformerSynced); !ok { return fmt.Errorf("Never achieved initial sync") } + klog.Info("Running API Priority and Fairness config worker") - wait.Until(cfgCtlr.runWorker, time.Second, stopCh) + go wait.Until(cfgCtlr.runWorker, time.Second, stopCh) + + <-stopCh klog.Info("Shutting down API Priority and Fairness config worker") return nil } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go index 327d50c148..ffd6c9fa48 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/apf_filter.go @@ -112,21 +112,28 @@ func (cfgCtlr *configController) Handle(ctx context.Context, requestDigest Reque } klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, queued=%v", requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt, queued) var executed bool - idle := req.Finish(func() { + idle, panicking := true, true + defer func() { + klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, queued=%v, Finish() => panicking=%v idle=%v", + requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt, queued, panicking, idle) + if idle { + cfgCtlr.maybeReap(pl.Name) + } + }() + idle = req.Finish(func() { if queued { metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } metrics.AddDispatch(pl.Name, fs.Name) executed = true startExecutionTime := time.Now() + defer func() { + metrics.ObserveExecutionDuration(pl.Name, fs.Name, time.Since(startExecutionTime)) + }() execFn() - metrics.ObserveExecutionDuration(pl.Name, fs.Name, time.Since(startExecutionTime)) }) if queued && !executed { metrics.ObserveWaitingDuration(pl.Name, fs.Name, strconv.FormatBool(req != nil), time.Since(startWaitingTime)) } - klog.V(7).Infof("Handle(%#+v) => fsName=%q, distMethod=%#+v, plName=%q, isExempt=%v, queued=%v, Finish() => idle=%v", requestDigest, fs.Name, fs.Spec.DistinguisherMethod, pl.Name, isExempt, queued, idle) - if idle { - cfgCtlr.maybeReap(pl.Name) - } + panicking = false } diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go index b61d8ce7d0..1d540a28f9 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go @@ -316,8 +316,15 @@ func (req *request) Finish(execFn func()) bool { if !exec { return idle } - execFn() - return req.qs.finishRequestAndDispatchAsMuchAsPossible(req) + func() { + defer func() { + idle = req.qs.finishRequestAndDispatchAsMuchAsPossible(req) + }() + + execFn() + }() + + return idle } func (req *request) wait() (bool, bool) { diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go index aade70093a..43bd13adb0 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go @@ -160,17 +160,14 @@ func (saw *sampleAndWaterMarkHistograms) SetX1(x1 float64) { } func (saw *sampleAndWaterMarkHistograms) innerSet(updateXOrX1 func()) { - var when time.Time - var whenInt int64 - var acc sampleAndWaterMarkAccumulator - var wellOrdered bool - func() { + when, whenInt, acc, wellOrdered := func() (time.Time, int64, sampleAndWaterMarkAccumulator, bool) { saw.Lock() defer saw.Unlock() - when = saw.clock.Now() - whenInt = saw.quantize(when) - acc = saw.sampleAndWaterMarkAccumulator - wellOrdered = !when.Before(acc.lastSet) + // Moved these variables here to tiptoe around https://github.com/golang/go/issues/43570 for #97685 + when := saw.clock.Now() + whenInt := saw.quantize(when) + acc := saw.sampleAndWaterMarkAccumulator + wellOrdered := !when.Before(acc.lastSet) updateXOrX1() saw.relX = saw.x / saw.x1 if wellOrdered { @@ -195,6 +192,7 @@ func (saw *sampleAndWaterMarkHistograms) innerSet(updateXOrX1 func()) { } else if saw.relX > saw.hiRelX { saw.hiRelX = saw.relX } + return when, whenInt, acc, wellOrdered }() if !wellOrdered { lastSetS := acc.lastSet.String() diff --git a/vendor/k8s.io/client-go/pkg/version/base.go b/vendor/k8s.io/client-go/pkg/version/base.go index fd0783b444..5133e250f7 100644 --- a/vendor/k8s.io/client-go/pkg/version/base.go +++ b/vendor/k8s.io/client-go/pkg/version/base.go @@ -3,8 +3,8 @@ package version var ( gitMajor = "1" gitMinor = "20" - gitVersion = "v1.20.0-k3s1" - gitCommit = "3559625e27197f60bcc39c4b3ecffc80bad7785e" + gitVersion = "v1.20.2-k3s1" + gitCommit = "426bcc7128ac615e92181e084eafdef3b0206d76" gitTreeState = "clean" - buildDate = "2020-12-08T20:42:55Z" + buildDate = "2021-01-13T19:38:13Z" ) diff --git a/vendor/k8s.io/component-base/version/base.go b/vendor/k8s.io/component-base/version/base.go index fd0783b444..5133e250f7 100644 --- a/vendor/k8s.io/component-base/version/base.go +++ b/vendor/k8s.io/component-base/version/base.go @@ -3,8 +3,8 @@ package version var ( gitMajor = "1" gitMinor = "20" - gitVersion = "v1.20.0-k3s1" - gitCommit = "3559625e27197f60bcc39c4b3ecffc80bad7785e" + gitVersion = "v1.20.2-k3s1" + gitCommit = "426bcc7128ac615e92181e084eafdef3b0206d76" gitTreeState = "clean" - buildDate = "2020-12-08T20:42:55Z" + buildDate = "2021-01-13T19:38:13Z" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go index cab52ccaf7..44368efc44 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go @@ -402,6 +402,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec continue } + m.Lock() if cstatus.State.Terminated != nil { // The container is terminated but we can't call m.RemoveContainer() // here because it could remove the allocated cpuset for the container @@ -412,6 +413,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec if err == nil { klog.Warningf("[cpumanager] reconcileState: ignoring terminated container (pod: %s, container id: %s)", pod.Name, containerID) } + m.Unlock() continue } @@ -419,6 +421,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec // Idempotently add it to the containerMap incase it is missing. // This can happen after a kubelet restart, for example. m.containerMap.Add(string(pod.UID), container.Name, containerID) + m.Unlock() cset := m.state.GetCPUSetOrDefault(string(pod.UID), container.Name) if cset.IsEmpty() { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index c5c6f0c9e4..9cb92eda68 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -551,6 +551,9 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, if err != nil { return nil, err } + // Avoid collector collects it as a timestamped metric + // See PR #95210 and #97006 for more details. + machineInfo.Timestamp = time.Time{} klet.setCachedMachineInfo(machineInfo) imageBackOff := flowcontrol.NewBackOff(backOffPeriod, MaxContainerBackOff) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go index dfd60bd85a..713d9f1a0a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go @@ -150,7 +150,7 @@ func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, h mountEtcHostsFile = mountEtcHostsFile && (mount.MountPath != etcHostsPath) vol, ok := podVolumes[mount.Name] if !ok || vol.Mounter == nil { - klog.Errorf("Mount cannot be satisfied for container %q, because the volume is missing or the volume mounter is nil: %+v", container.Name, mount) + klog.Errorf("Mount cannot be satisfied for container %q, because the volume is missing (ok=%v) or the volume mounter (vol.Mounter) is nil (vol=%+v): %+v", container.Name, ok, vol, mount) return nil, cleanupAction, fmt.Errorf("cannot find volume %q to mount into container %q", mount.Name, container.Name) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go index fb8c7e12e7..2b033e2ca6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go @@ -367,6 +367,7 @@ func (s *Server) InstallDefaultHandlers(enableCAdvisorJSONEndpoints bool) { Recursive: true, } r.RawMustRegister(metrics.NewPrometheusCollector(prometheusHostAdapter{s.host}, containerPrometheusLabelsFunc(s.host), includedMetrics, clock.RealClock{}, cadvisorOpts)) + r.RawMustRegister(metrics.NewPrometheusMachineCollector(prometheusHostAdapter{s.host}, includedMetrics)) s.restfulCont.Handle(cadvisorMetricsPath, compbasemetrics.HandlerFor(r, compbasemetrics.HandlerOpts{ErrorHandling: compbasemetrics.ContinueOnError}), ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go index 32802f9b82..c3affac015 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go @@ -292,7 +292,7 @@ func (p *criStatsProvider) ListPodCPUAndMemoryStats() ([]statsapi.PodStats, erro if !caFound { klog.V(4).Infof("Unable to find cadvisor stats for %q", containerID) } else { - p.addCadvisorContainerStats(cs, &caStats) + p.addCadvisorContainerCPUAndMemoryStats(cs, &caStats) } ps.Containers = append(ps.Containers, *cs) } @@ -785,6 +785,25 @@ func (p *criStatsProvider) addCadvisorContainerStats( cs.UserDefinedMetrics = cadvisorInfoToUserDefinedMetrics(caPodStats) } + cpu, memory := cadvisorInfoToCPUandMemoryStats(caPodStats) + if cpu != nil { + cs.CPU = cpu + } + if memory != nil { + cs.Memory = memory + } + accelerators := cadvisorInfoToAcceleratorStats(caPodStats) + cs.Accelerators = accelerators +} + +func (p *criStatsProvider) addCadvisorContainerCPUAndMemoryStats( + cs *statsapi.ContainerStats, + caPodStats *cadvisorapiv2.ContainerInfo, +) { + if caPodStats.Spec.HasCustomMetrics { + cs.UserDefinedMetrics = cadvisorInfoToUserDefinedMetrics(caPodStats) + } + cpu, memory := cadvisorInfoToCPUandMemoryStats(caPodStats) if cpu != nil { cs.CPU = cpu diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go index 8618b36e01..9e68b96bb9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go @@ -153,6 +153,27 @@ func cadvisorInfoToContainerCPUAndMemoryStats(name string, info *cadvisorapiv2.C return result } +// cadvisorInfoToAcceleratorStats returns the statsapi.AcceleratorStats converted from +// the container info from cadvisor. +func cadvisorInfoToAcceleratorStats(info *cadvisorapiv2.ContainerInfo) []statsapi.AcceleratorStats { + cstat, found := latestContainerStats(info) + if !found || cstat.Accelerators == nil { + return nil + } + var result []statsapi.AcceleratorStats + for _, acc := range cstat.Accelerators { + result = append(result, statsapi.AcceleratorStats{ + Make: acc.Make, + Model: acc.Model, + ID: acc.ID, + MemoryTotal: acc.MemoryTotal, + MemoryUsed: acc.MemoryUsed, + DutyCycle: acc.DutyCycle, + }) + } + return result +} + func cadvisorInfoToProcessStats(info *cadvisorapiv2.ContainerInfo) *statsapi.ProcessStats { cstat, found := latestContainerStats(info) if !found || cstat.Processes == nil { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go index 5723a44a48..95e88c14a9 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go @@ -55,7 +55,8 @@ var _ volume.PersistentVolumePlugin = &azureFilePlugin{} var _ volume.ExpandableVolumePlugin = &azureFilePlugin{} const ( - azureFilePluginName = "kubernetes.io/azure-file" + azureFilePluginName = "kubernetes.io/azure-file" + defaultSecretNamespace = "default" ) func getPath(uid types.UID, volName string, host volume.VolumeHost) string { @@ -115,7 +116,7 @@ func (plugin *azureFilePlugin) newMounterInternal(spec *volume.Spec, pod *v1.Pod if err != nil { return nil, err } - secretName, secretNamespace, err := getSecretNameAndNamespace(spec, pod.Namespace) + secretName, secretNamespace, err := getSecretNameAndNamespace(spec, defaultSecretNamespace) if err != nil { // Log-and-continue instead of returning an error for now // due to unspecified backwards compatibility concerns (a subject to revise) @@ -173,7 +174,7 @@ func (plugin *azureFilePlugin) ExpandVolumeDevice( resourceGroup = spec.PersistentVolume.ObjectMeta.Annotations[resourceGroupAnnotation] } - secretName, secretNamespace, err := getSecretNameAndNamespace(spec, spec.PersistentVolume.Spec.ClaimRef.Namespace) + secretName, secretNamespace, err := getSecretNameAndNamespace(spec, defaultSecretNamespace) if err != nil { return oldSize, err } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_provision.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_provision.go index d547fc6e9b..6b4c8f834a 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_provision.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_provision.go @@ -79,7 +79,7 @@ func (plugin *azureFilePlugin) newDeleterInternal(spec *volume.Spec, util azureU return nil, fmt.Errorf("invalid PV spec") } - secretName, secretNamespace, err := getSecretNameAndNamespace(spec, spec.PersistentVolume.Spec.ClaimRef.Namespace) + secretName, secretNamespace, err := getSecretNameAndNamespace(spec, defaultSecretNamespace) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_util.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_util.go index eab56cb563..017f1ac220 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_util.go @@ -34,9 +34,12 @@ const ( dirMode = "dir_mode" gid = "gid" vers = "vers" + actimeo = "actimeo" + mfsymlinks = "mfsymlinks" defaultFileMode = "0777" defaultDirMode = "0777" defaultVers = "3.0" + defaultActimeo = "30" ) // Abstract interface to azure file operations. @@ -106,6 +109,8 @@ func appendDefaultMountOptions(mountOptions []string, fsGroup *int64) []string { dirModeFlag := false versFlag := false gidFlag := false + actimeoFlag := false + mfsymlinksFlag := false for _, mountOption := range mountOptions { if strings.HasPrefix(mountOption, fileMode) { @@ -120,6 +125,12 @@ func appendDefaultMountOptions(mountOptions []string, fsGroup *int64) []string { if strings.HasPrefix(mountOption, gid) { gidFlag = true } + if strings.HasPrefix(mountOption, actimeo) { + actimeoFlag = true + } + if strings.HasPrefix(mountOption, mfsymlinks) { + mfsymlinksFlag = true + } } allMountOptions := mountOptions @@ -138,5 +149,13 @@ func appendDefaultMountOptions(mountOptions []string, fsGroup *int64) []string { if !gidFlag && fsGroup != nil { allMountOptions = append(allMountOptions, fmt.Sprintf("%s=%d", gid, *fsGroup)) } + + if !actimeoFlag { + allMountOptions = append(allMountOptions, fmt.Sprintf("%s=%s", actimeo, defaultActimeo)) + } + + if !mfsymlinksFlag { + allMountOptions = append(allMountOptions, mfsymlinks) + } return allMountOptions } diff --git a/vendor/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go b/vendor/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go index e78b24425c..da75a051a7 100644 --- a/vendor/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go +++ b/vendor/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go @@ -317,7 +317,7 @@ func (az *Cloud) cleanBackendpoolForPrimarySLB(primarySLB *network.LoadBalancer, return nil, err } primaryVMSetName := az.VMSet.GetPrimaryVMSetName() - if !strings.EqualFold(primaryVMSetName, vmSetName) { + if !strings.EqualFold(primaryVMSetName, vmSetName) && vmSetName != "" { klog.V(2).Infof("cleanBackendpoolForPrimarySLB: found unwanted vmSet %s, decouple it from the LB", vmSetName) // construct a backendPool that only contains the IP config of the node to be deleted interfaceIPConfigToBeDeleted := network.InterfaceIPConfiguration{ @@ -1133,6 +1133,10 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, if err != nil { return nil, err } + if nodeName == "" { + // VM may under deletion + continue + } // If a node is not supposed to be included in the LB, it // would not be in the `nodes` slice. We need to check the nodes that // have been added to the LB's backendpool, find the unwanted ones and diff --git a/vendor/k8s.io/legacy-cloud-providers/azure/azure_standard.go b/vendor/k8s.io/legacy-cloud-providers/azure/azure_standard.go index 007bfc41cd..6f9fdb6dc9 100644 --- a/vendor/k8s.io/legacy-cloud-providers/azure/azure_standard.go +++ b/vendor/k8s.io/legacy-cloud-providers/azure/azure_standard.go @@ -76,7 +76,8 @@ var ( providerIDRE = regexp.MustCompile(`.*/subscriptions/(?:.*)/Microsoft.Compute/virtualMachines/(.+)$`) backendPoolIDRE = regexp.MustCompile(`^/subscriptions/(?:.*)/resourceGroups/(?:.*)/providers/Microsoft.Network/loadBalancers/(.+)/backendAddressPools/(?:.*)`) nicResourceGroupRE = regexp.MustCompile(`.*/subscriptions/(?:.*)/resourceGroups/(.+)/providers/Microsoft.Network/networkInterfaces/(?:.*)`) - nicIDRE = regexp.MustCompile(`/subscriptions/(?:.*)/resourceGroups/(?:.+)/providers/Microsoft.Network/networkInterfaces/(.+)-nic-(.+)/ipConfigurations/(?:.*)`) + nicIDRE = regexp.MustCompile(`(?i)/subscriptions/(?:.*)/resourceGroups/(.+)/providers/Microsoft.Network/networkInterfaces/(.+)/ipConfigurations/(?:.*)`) + vmIDRE = regexp.MustCompile(`(?i)/subscriptions/(?:.*)/resourceGroups/(?:.*)/providers/Microsoft.Compute/virtualMachines/(.+)`) vmasIDRE = regexp.MustCompile(`/subscriptions/(?:.*)/resourceGroups/(?:.*)/providers/Microsoft.Compute/availabilitySets/(.+)`) ) @@ -1055,24 +1056,44 @@ func (as *availabilitySet) GetNodeNameByIPConfigurationID(ipConfigurationID stri return "", "", fmt.Errorf("invalid ip config ID %s", ipConfigurationID) } - prefix := matches[1] - suffix := matches[2] - nodeName := fmt.Sprintf("%s-%s", prefix, suffix) + nicResourceGroup, nicName := matches[1], matches[2] + if nicResourceGroup == "" || nicName == "" { + return "", "", fmt.Errorf("invalid ip config ID %s", ipConfigurationID) + } + nic, rerr := as.InterfacesClient.Get(context.Background(), nicResourceGroup, nicName, "") + if rerr != nil { + return "", "", fmt.Errorf("GetNodeNameByIPConfigurationID(%s): failed to get interface of name %s: %s", ipConfigurationID, nicName, rerr.Error().Error()) + } + vmID := "" + if nic.InterfacePropertiesFormat != nil && nic.VirtualMachine != nil { + vmID = to.String(nic.VirtualMachine.ID) + } + if vmID == "" { + klog.V(2).Infof("GetNodeNameByIPConfigurationID(%s): empty vmID", ipConfigurationID) + return "", "", nil + } - vm, err := as.getVirtualMachine(types.NodeName(nodeName), azcache.CacheReadTypeDefault) + matches = vmIDRE.FindStringSubmatch(vmID) + if len(matches) != 2 { + return "", "", fmt.Errorf("invalid virtual machine ID %s", vmID) + } + vmName := matches[1] + + vm, err := as.getVirtualMachine(types.NodeName(vmName), azcache.CacheReadTypeDefault) if err != nil { - return "", "", fmt.Errorf("cannot get the virtual machine by node name %s", nodeName) + return "", "", fmt.Errorf("cannot get the virtual machine by node name %s", vmName) } asID := "" if vm.VirtualMachineProperties != nil && vm.AvailabilitySet != nil { asID = to.String(vm.AvailabilitySet.ID) } if asID == "" { - return "", "", fmt.Errorf("cannot get the availability set ID from the virtual machine with node name %s", nodeName) + return vmName, "", nil } + asName, err := getAvailabilitySetNameByID(asID) if err != nil { return "", "", fmt.Errorf("cannot get the availability set name by the availability set ID %s", asID) } - return nodeName, strings.ToLower(asName), nil + return vmName, strings.ToLower(asName), nil } diff --git a/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go b/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go index cf35e1a342..a39ca0d3c3 100644 --- a/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go +++ b/vendor/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go @@ -166,6 +166,12 @@ func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v return nil, err } klog.V(2).Infof("ensureInternalLoadBalancer(%v): reserved IP %q for the forwarding rule", loadBalancerName, ipToUse) + defer func() { + // Release the address if all resources were created successfully, or if we error out. + if err := addrMgr.ReleaseAddress(); err != nil { + klog.Errorf("ensureInternalLoadBalancer: failed to release address reservation, possibly causing an orphan: %v", err) + } + }() } // Ensure firewall rules if necessary @@ -224,13 +230,6 @@ func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v g.clearPreviousInternalResources(svc, loadBalancerName, existingBackendService, backendServiceName, hcName) } - if addrMgr != nil { - // Now that the controller knows the forwarding rule exists, we can release the address. - if err := addrMgr.ReleaseAddress(); err != nil { - klog.Errorf("ensureInternalLoadBalancer: failed to release address reservation, possibly causing an orphan: %v", err) - } - } - // Get the most recent forwarding rule for the address. updatedFwdRule, err := g.GetRegionForwardingRule(loadBalancerName, g.region) if err != nil { diff --git a/vendor/modules.txt b/vendor/modules.txt index 1eb5af5b20..a75253681a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -428,7 +428,7 @@ github.com/dgrijalva/jwt-go github.com/docker/distribution/digestset github.com/docker/distribution/reference github.com/docker/distribution/registry/api/errcode -# github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible => github.com/docker/docker v17.12.0-ce-rc1.0.20200310163718-4634ce647cf2+incompatible +# github.com/docker/docker v20.10.0-beta1.0.20201108103107-c7109494fe65+incompatible => github.com/docker/docker v17.12.0-ce-rc1.0.20200310163718-4634ce647cf2+incompatible ## explicit github.com/docker/docker/api github.com/docker/docker/api/types @@ -544,7 +544,7 @@ github.com/golang/protobuf/ptypes/timestamp github.com/golang/protobuf/ptypes/wrappers # github.com/google/btree v1.0.0 github.com/google/btree -# github.com/google/cadvisor v0.38.5 +# github.com/google/cadvisor v0.38.6 github.com/google/cadvisor/accelerators github.com/google/cadvisor/cache/memory github.com/google/cadvisor/collector @@ -705,9 +705,7 @@ github.com/k3s-io/kine/pkg/server github.com/k3s-io/kine/pkg/tls # github.com/karrick/godirwalk v1.16.1 github.com/karrick/godirwalk -# github.com/konsorten/go-windows-terminal-sequences v1.0.3 -github.com/konsorten/go-windows-terminal-sequences -# github.com/kubernetes-sigs/cri-tools v0.0.0-00010101000000-000000000000 => github.com/k3s-io/cri-tools v1.19.0-k3s1 +# github.com/kubernetes-sigs/cri-tools v0.0.0-00010101000000-000000000000 => github.com/k3s-io/cri-tools v1.20.0-k3s1 ## explicit github.com/kubernetes-sigs/cri-tools/cmd/crictl github.com/kubernetes-sigs/cri-tools/pkg/common @@ -932,7 +930,7 @@ github.com/satori/go.uuid github.com/seccomp/libseccomp-golang # github.com/shurcooL/sanitized_anchor_name v1.0.0 github.com/shurcooL/sanitized_anchor_name -# github.com/sirupsen/logrus v1.6.0 +# github.com/sirupsen/logrus v1.7.0 ## explicit github.com/sirupsen/logrus # github.com/soheilhy/cmux v0.1.4 @@ -958,7 +956,7 @@ github.com/tmc/grpc-websocket-proxy/wsproxy # github.com/urfave/cli v1.22.2 ## explicit github.com/urfave/cli -# github.com/urfave/cli/v2 v2.2.0 +# github.com/urfave/cli/v2 v2.3.0 github.com/urfave/cli/v2 # github.com/vishvananda/netlink v1.1.0 github.com/vishvananda/netlink @@ -1269,7 +1267,7 @@ google.golang.org/appengine/urlfetch google.golang.org/genproto/googleapis/api/httpbody google.golang.org/genproto/googleapis/rpc/status google.golang.org/genproto/protobuf/field_mask -# google.golang.org/grpc v1.31.1 => google.golang.org/grpc v1.27.1 +# google.golang.org/grpc v1.33.2 => google.golang.org/grpc v1.27.1 ## explicit google.golang.org/grpc google.golang.org/grpc/attributes @@ -1332,7 +1330,7 @@ gopkg.in/warnings.v0 gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 gopkg.in/yaml.v3 -# k8s.io/api v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.0-k3s1 +# k8s.io/api v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.2-k3s1 ## explicit k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 @@ -1380,7 +1378,7 @@ k8s.io/api/scheduling/v1beta1 k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 -# k8s.io/apiextensions-apiserver v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.0-k3s1 +# k8s.io/apiextensions-apiserver v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.2-k3s1 k8s.io/apiextensions-apiserver/pkg/apihelpers k8s.io/apiextensions-apiserver/pkg/apis/apiextensions k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install @@ -1420,7 +1418,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi k8s.io/apiextensions-apiserver/pkg/registry/customresource k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition -# k8s.io/apimachinery v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.0-k3s1 +# k8s.io/apimachinery v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.2-k3s1 ## explicit k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -1484,7 +1482,7 @@ k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/apiserver v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.0-k3s1 +# k8s.io/apiserver v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.2-k3s1 ## explicit k8s.io/apiserver/pkg/admission k8s.io/apiserver/pkg/admission/configuration @@ -1623,7 +1621,7 @@ k8s.io/apiserver/plugin/pkg/audit/webhook k8s.io/apiserver/plugin/pkg/authenticator/token/oidc k8s.io/apiserver/plugin/pkg/authenticator/token/webhook k8s.io/apiserver/plugin/pkg/authorizer/webhook -# k8s.io/cli-runtime v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.0-k3s1 +# k8s.io/cli-runtime v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.2-k3s1 k8s.io/cli-runtime/pkg/genericclioptions k8s.io/cli-runtime/pkg/kustomize k8s.io/cli-runtime/pkg/kustomize/k8sdeps @@ -1636,7 +1634,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator k8s.io/cli-runtime/pkg/printers k8s.io/cli-runtime/pkg/resource -# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.0-k3s1 +# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.2-k3s1 ## explicit k8s.io/client-go/discovery k8s.io/client-go/discovery/cached @@ -1883,7 +1881,7 @@ k8s.io/client-go/util/jsonpath k8s.io/client-go/util/keyutil k8s.io/client-go/util/retry k8s.io/client-go/util/workqueue -# k8s.io/cloud-provider v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.0-k3s1 +# k8s.io/cloud-provider v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.2-k3s1 ## explicit k8s.io/cloud-provider k8s.io/cloud-provider/api @@ -1904,13 +1902,13 @@ k8s.io/cloud-provider/service/helpers k8s.io/cloud-provider/volume k8s.io/cloud-provider/volume/errors k8s.io/cloud-provider/volume/helpers -# k8s.io/cluster-bootstrap v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.0-k3s1 +# k8s.io/cluster-bootstrap v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.2-k3s1 k8s.io/cluster-bootstrap/token/api k8s.io/cluster-bootstrap/token/jws k8s.io/cluster-bootstrap/token/util k8s.io/cluster-bootstrap/util/secrets k8s.io/cluster-bootstrap/util/tokens -# k8s.io/code-generator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.0-k3s1 +# k8s.io/code-generator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.2-k3s1 k8s.io/code-generator/cmd/client-gen/args k8s.io/code-generator/cmd/client-gen/generators k8s.io/code-generator/cmd/client-gen/generators/fake @@ -1925,7 +1923,7 @@ k8s.io/code-generator/cmd/lister-gen/args k8s.io/code-generator/cmd/lister-gen/generators k8s.io/code-generator/pkg/namer k8s.io/code-generator/pkg/util -# k8s.io/component-base v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.0-k3s1 +# k8s.io/component-base v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.2-k3s1 ## explicit k8s.io/component-base/cli/flag k8s.io/component-base/cli/globalflag @@ -1951,13 +1949,13 @@ k8s.io/component-base/metrics/testutil k8s.io/component-base/term k8s.io/component-base/version k8s.io/component-base/version/verflag -# k8s.io/component-helpers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.0-k3s1 +# k8s.io/component-helpers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.2-k3s1 k8s.io/component-helpers/apimachinery/lease k8s.io/component-helpers/auth/rbac/reconciliation k8s.io/component-helpers/auth/rbac/validation k8s.io/component-helpers/scheduling/corev1 k8s.io/component-helpers/scheduling/corev1/nodeaffinity -# k8s.io/controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.0-k3s1 +# k8s.io/controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.2-k3s1 ## explicit k8s.io/controller-manager/app k8s.io/controller-manager/config @@ -1967,11 +1965,11 @@ k8s.io/controller-manager/pkg/clientbuilder k8s.io/controller-manager/pkg/features k8s.io/controller-manager/pkg/features/register k8s.io/controller-manager/pkg/informerfactory -# k8s.io/cri-api v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.0-k3s1 +# k8s.io/cri-api v0.19.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.2-k3s1 ## explicit k8s.io/cri-api/pkg/apis k8s.io/cri-api/pkg/apis/runtime/v1alpha2 -# k8s.io/csi-translation-lib v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.0-k3s1 +# k8s.io/csi-translation-lib v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.2-k3s1 k8s.io/csi-translation-lib k8s.io/csi-translation-lib/plugins # k8s.io/gengo v0.0.0-20201113003025-83324d819ded @@ -1989,7 +1987,7 @@ k8s.io/heapster/metrics/api/v1/types k8s.io/klog # k8s.io/klog/v2 v2.4.0 k8s.io/klog/v2 -# k8s.io/kube-aggregator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.0-k3s1 +# k8s.io/kube-aggregator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.2-k3s1 k8s.io/kube-aggregator/pkg/apis/apiregistration k8s.io/kube-aggregator/pkg/apis/apiregistration/install k8s.io/kube-aggregator/pkg/apis/apiregistration/v1 @@ -2017,7 +2015,7 @@ k8s.io/kube-aggregator/pkg/controllers/status k8s.io/kube-aggregator/pkg/registry/apiservice k8s.io/kube-aggregator/pkg/registry/apiservice/etcd k8s.io/kube-aggregator/pkg/registry/apiservice/rest -# k8s.io/kube-controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.0-k3s1 +# k8s.io/kube-controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.2-k3s1 k8s.io/kube-controller-manager/config/v1alpha1 # k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd k8s.io/kube-openapi/pkg/aggregator @@ -2033,13 +2031,13 @@ k8s.io/kube-openapi/pkg/validation/spec k8s.io/kube-openapi/pkg/validation/strfmt k8s.io/kube-openapi/pkg/validation/strfmt/bson k8s.io/kube-openapi/pkg/validation/validate -# k8s.io/kube-proxy v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.0-k3s1 +# k8s.io/kube-proxy v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.2-k3s1 k8s.io/kube-proxy/config/v1alpha1 -# k8s.io/kube-scheduler v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.0-k3s1 +# k8s.io/kube-scheduler v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.2-k3s1 k8s.io/kube-scheduler/config/v1 k8s.io/kube-scheduler/config/v1beta1 k8s.io/kube-scheduler/extender/v1 -# k8s.io/kubectl v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.0-k3s1 +# k8s.io/kubectl v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.2-k3s1 ## explicit k8s.io/kubectl/pkg/apps k8s.io/kubectl/pkg/cmd @@ -2117,7 +2115,7 @@ k8s.io/kubectl/pkg/util/storage k8s.io/kubectl/pkg/util/templates k8s.io/kubectl/pkg/util/term k8s.io/kubectl/pkg/validation -# k8s.io/kubelet v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.0-k3s1 +# k8s.io/kubelet v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.2-k3s1 k8s.io/kubelet/config/v1alpha1 k8s.io/kubelet/config/v1beta1 k8s.io/kubelet/pkg/apis/credentialprovider @@ -2128,7 +2126,7 @@ k8s.io/kubelet/pkg/apis/pluginregistration/v1 k8s.io/kubelet/pkg/apis/podresources/v1 k8s.io/kubelet/pkg/apis/podresources/v1alpha1 k8s.io/kubelet/pkg/apis/stats/v1alpha1 -# k8s.io/kubernetes v1.20.0 => github.com/k3s-io/kubernetes v1.20.0-k3s1 +# k8s.io/kubernetes v1.20.2 => github.com/k3s-io/kubernetes v1.20.2-k3s1 ## explicit k8s.io/kubernetes/cmd/kube-apiserver/app k8s.io/kubernetes/cmd/kube-apiserver/app/options @@ -2848,7 +2846,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph k8s.io/kubernetes/third_party/forked/gonum/graph/internal/linear k8s.io/kubernetes/third_party/forked/gonum/graph/simple k8s.io/kubernetes/third_party/forked/gonum/graph/traverse -# k8s.io/legacy-cloud-providers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.0-k3s1 +# k8s.io/legacy-cloud-providers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.2-k3s1 k8s.io/legacy-cloud-providers/aws k8s.io/legacy-cloud-providers/azure k8s.io/legacy-cloud-providers/azure/auth @@ -2890,7 +2888,7 @@ k8s.io/legacy-cloud-providers/openstack k8s.io/legacy-cloud-providers/vsphere k8s.io/legacy-cloud-providers/vsphere/vclib k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers -# k8s.io/metrics v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.0-k3s1 +# k8s.io/metrics v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.2-k3s1 k8s.io/metrics/pkg/apis/custom_metrics k8s.io/metrics/pkg/apis/custom_metrics/v1beta1 k8s.io/metrics/pkg/apis/custom_metrics/v1beta2 @@ -2906,7 +2904,7 @@ k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1 k8s.io/metrics/pkg/client/custom_metrics k8s.io/metrics/pkg/client/custom_metrics/scheme k8s.io/metrics/pkg/client/external_metrics -# k8s.io/mount-utils v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.0-k3s1 +# k8s.io/mount-utils v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.2-k3s1 k8s.io/mount-utils # k8s.io/utils v0.0.0-20201110183641-67b214c5f920 k8s.io/utils/buffer @@ -2977,7 +2975,7 @@ sigs.k8s.io/yaml # github.com/docker/libnetwork => github.com/docker/libnetwork v0.8.0-dev.2.0.20190624125649-f0e46a78ea34 # github.com/golang/protobuf => github.com/golang/protobuf v1.3.5 # github.com/juju/errors => github.com/k3s-io/nocode v0.0.0-20200630202308-cb097102c09f -# github.com/kubernetes-sigs/cri-tools => github.com/k3s-io/cri-tools v1.19.0-k3s1 +# github.com/kubernetes-sigs/cri-tools => github.com/k3s-io/cri-tools v1.20.0-k3s1 # github.com/matryer/moq => github.com/rancher/moq v0.0.0-20190404221404-ee5226d43009 # github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.0-rc92 # github.com/opencontainers/runtime-spec => github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 @@ -2988,32 +2986,32 @@ sigs.k8s.io/yaml # google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 # google.golang.org/grpc => google.golang.org/grpc v1.27.1 # gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.2.2 -# k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.0-k3s1 -# k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.0-k3s1 -# k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.0-k3s1 -# k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.0-k3s1 -# k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.0-k3s1 -# k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.0-k3s1 -# k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.0-k3s1 -# k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.0-k3s1 -# k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.0-k3s1 -# k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.0-k3s1 -# k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.0-k3s1 -# k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.0-k3s1 -# k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.0-k3s1 -# k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.0-k3s1 -# k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.0-k3s1 -# k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.0-k3s1 -# k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.0-k3s1 -# k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.0-k3s1 -# k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.0-k3s1 -# k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.0-k3s1 -# k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.0-k3s1 -# k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.0-k3s1 -# k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.0-k3s1 -# k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.0-k3s1 -# k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.0-k3s1 -# k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.0-k3s1 -# k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.0-k3s1 -# k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.0-k3s1 +# k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.2-k3s1 +# k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.2-k3s1 +# k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.2-k3s1 +# k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.2-k3s1 +# k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.2-k3s1 +# k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.2-k3s1 +# k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.2-k3s1 +# k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.2-k3s1 +# k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.2-k3s1 +# k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.2-k3s1 +# k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.2-k3s1 +# k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.2-k3s1 +# k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.2-k3s1 +# k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.2-k3s1 +# k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.2-k3s1 +# k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.2-k3s1 +# k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.2-k3s1 +# k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.2-k3s1 +# k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.2-k3s1 +# k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.2-k3s1 +# k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.2-k3s1 +# k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.2-k3s1 +# k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.2-k3s1 +# k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.2-k3s1 +# k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.2-k3s1 +# k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.2-k3s1 +# k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.2-k3s1 +# k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.2-k3s1 # mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34