Unverified Commit c7a91e1c authored by Derek Nola's avatar Derek Nola Committed by GitHub

Update to v1.20.15 (#4995)

* Backport https://github.com/k3s-io/k3s/pull/4861Signed-off-by: 's avatarDerek Nola <derek.nola@suse.com> * Update to v1.20.15 Signed-off-by: 's avatarDerek Nola <derek.nola@suse.com>
parent 29b4bd8a
...@@ -42,7 +42,7 @@ ENV GO111MODULE off ...@@ -42,7 +42,7 @@ ENV GO111MODULE off
ENV DAPPER_RUN_ARGS --privileged -v k3s-cache:/go/src/github.com/rancher/k3s/.cache -v trivy-cache:/root/.cache/trivy ENV DAPPER_RUN_ARGS --privileged -v k3s-cache:/go/src/github.com/rancher/k3s/.cache -v trivy-cache:/root/.cache/trivy
ENV DAPPER_ENV REPO TAG DRONE_TAG IMAGE_NAME SKIP_VALIDATE GCLOUD_AUTH GITHUB_TOKEN GOLANG ENV DAPPER_ENV REPO TAG DRONE_TAG IMAGE_NAME SKIP_VALIDATE GCLOUD_AUTH GITHUB_TOKEN GOLANG
ENV DAPPER_SOURCE /go/src/github.com/rancher/k3s/ ENV DAPPER_SOURCE /go/src/github.com/rancher/k3s/
ENV DAPPER_OUTPUT ./bin ./dist ./build/out ENV DAPPER_OUTPUT ./bin ./dist ./build/out ./build/static ./pkg/static ./pkg/deploy ./pkg/data
ENV DAPPER_DOCKER_SOCKET true ENV DAPPER_DOCKER_SOCKET true
ENV HOME ${DAPPER_SOURCE} ENV HOME ${DAPPER_SOURCE}
ENV CROSS true ENV CROSS true
......
...@@ -22,11 +22,6 @@ release: ...@@ -22,11 +22,6 @@ release:
.PHONY: $(TARGETS) .PHONY: $(TARGETS)
.PHONY: generate
generate: build/data
./scripts/download
go generate
build/data: build/data:
mkdir -p $@ mkdir -p $@
......
...@@ -38,34 +38,34 @@ replace ( ...@@ -38,34 +38,34 @@ replace (
google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63
google.golang.org/grpc => google.golang.org/grpc v1.27.1 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 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.14-k3s1 k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.15-k3s1
k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.14-k3s1 k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.15-k3s1
k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.14-k3s1 k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.15-k3s1
k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.14-k3s1 k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.15-k3s1
k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.14-k3s1 k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.15-k3s1
k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.14-k3s1 k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.15-k3s1
k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.14-k3s1 k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.15-k3s1
k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.14-k3s1 k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.15-k3s1
k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.14-k3s1 k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.15-k3s1
k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.14-k3s1 k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.15-k3s1
k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.14-k3s1 k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.15-k3s1
k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.14-k3s1 k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.15-k3s1
k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.14-k3s1 k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.15-k3s1
k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.14-k3s1 k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.15-k3s1
k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.14-k3s1 k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.15-k3s1
k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.14-k3s1 k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.15-k3s1
k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.14-k3s1 k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.15-k3s1
k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.14-k3s1 k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.15-k3s1
k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.14-k3s1 k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.15-k3s1
k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.14-k3s1 k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.15-k3s1
k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.14-k3s1 k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.15-k3s1
k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.14-k3s1 k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.15-k3s1
k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.14-k3s1 k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.15-k3s1
k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.14-k3s1 k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.15-k3s1
k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.14-k3s1 k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.15-k3s1
k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.14-k3s1 k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.15-k3s1
k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.14-k3s1 k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.15-k3s1
k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.14-k3s1 k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.15-k3s1
mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34 mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34
) )
...@@ -122,17 +122,17 @@ require ( ...@@ -122,17 +122,17 @@ require (
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887 golang.org/x/sys v0.0.0-20210426230700-d19ff857e887
google.golang.org/grpc v1.33.2 google.golang.org/grpc v1.33.2
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
k8s.io/api v0.20.14 k8s.io/api v0.20.15
k8s.io/apimachinery v0.20.14 k8s.io/apimachinery v0.20.15
k8s.io/apiserver v0.20.14 k8s.io/apiserver v0.20.15
k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
k8s.io/cloud-provider v0.20.14 k8s.io/cloud-provider v0.20.15
k8s.io/component-base v0.20.14 k8s.io/component-base v0.20.15
k8s.io/controller-manager v0.20.14 k8s.io/controller-manager v0.20.15
k8s.io/cri-api v0.20.14 k8s.io/cri-api v0.20.15
k8s.io/klog v1.0.0 k8s.io/klog v1.0.0
k8s.io/kubectl v0.20.14 k8s.io/kubectl v0.20.15
k8s.io/kubernetes v1.20.14 k8s.io/kubernetes v1.20.15
k8s.io/utils v0.0.0-20201110183641-67b214c5f920 k8s.io/utils v0.0.0-20201110183641-67b214c5f920
sigs.k8s.io/yaml v1.2.0 sigs.k8s.io/yaml v1.2.0
) )
...@@ -517,55 +517,55 @@ github.com/k3s-io/helm-controller v0.10.8 h1:O7zoqUBp3W+6+nRCUWNiAoQMzOX6xw9IsBD ...@@ -517,55 +517,55 @@ github.com/k3s-io/helm-controller v0.10.8 h1:O7zoqUBp3W+6+nRCUWNiAoQMzOX6xw9IsBD
github.com/k3s-io/helm-controller v0.10.8/go.mod h1:nZP8FH3KZrNNUf5r+SwwiMR63HS6lxdHdpHijgPfF74= github.com/k3s-io/helm-controller v0.10.8/go.mod h1:nZP8FH3KZrNNUf5r+SwwiMR63HS6lxdHdpHijgPfF74=
github.com/k3s-io/kine v0.6.5 h1:gYjkuVUUhuIMthIAQSecb2APSx+JZLFO/GWHbDp2NFI= github.com/k3s-io/kine v0.6.5 h1:gYjkuVUUhuIMthIAQSecb2APSx+JZLFO/GWHbDp2NFI=
github.com/k3s-io/kine v0.6.5/go.mod h1:+QI+2dFYzFaFEdhXz3jFcY5HoD0SNXtMI22SxYhD7jk= github.com/k3s-io/kine v0.6.5/go.mod h1:+QI+2dFYzFaFEdhXz3jFcY5HoD0SNXtMI22SxYhD7jk=
github.com/k3s-io/kubernetes v1.20.14-k3s1 h1:Zqjkof1/5rcoOAOmTaS0PX+6IGVBIIu31B/1TRX8+Co= github.com/k3s-io/kubernetes v1.20.15-k3s1 h1:VSVpbhH2nep5fMDeORHdD2ZwlAqfq5y1z48Iw3CwFs8=
github.com/k3s-io/kubernetes v1.20.14-k3s1/go.mod h1:maNGHPCYK0JpF3C4gI2AOAX0OlPCYsseIEd+wewVkuA= github.com/k3s-io/kubernetes v1.20.15-k3s1/go.mod h1:maNGHPCYK0JpF3C4gI2AOAX0OlPCYsseIEd+wewVkuA=
github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.14-k3s1 h1:8hof13SowyRdAzFFMxtNtwRdmuY6ftCK0adLryV51qM= github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.15-k3s1 h1:FwD+eB1a9HmdgvyRHfaalUVSokXeatKYugHE5NrQ4Zk=
github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.14-k3s1/go.mod h1:xNowlOuuxKUg8x7bAoYYuGvd/oPMqgQSZoKuThrP7LU= github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.15-k3s1/go.mod h1:xNowlOuuxKUg8x7bAoYYuGvd/oPMqgQSZoKuThrP7LU=
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.14-k3s1 h1:vklX1Aee9YFPYYCjkmW5l8nhddSJwNh6X71whq0pu9o= github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.15-k3s1 h1:EdvKZhTMGhqKnDs08huMM2QeNNA4OxbMl9KsyChW41U=
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.14-k3s1/go.mod h1:VJtpimoJzMqv1QycUs4bQJLuvHpE9gDbPsyll2i8YjU= github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.15-k3s1/go.mod h1:VJtpimoJzMqv1QycUs4bQJLuvHpE9gDbPsyll2i8YjU=
github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.14-k3s1 h1:gGaWXkSWl7nlYoAedE4PPpg8KC+n08ZstfP5DKFKrvk= github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.15-k3s1 h1:qriY6ZfyV3x8I1na+0Uf3dx8+akMwlAVoDh0knRwRMs=
github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.14-k3s1/go.mod h1:E3eXKx8mC+y5i+n18YJZ7jNgneHTIPTmbviL3TfSaxc= github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.15-k3s1/go.mod h1:E3eXKx8mC+y5i+n18YJZ7jNgneHTIPTmbviL3TfSaxc=
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.14-k3s1 h1:RJ5gDA7qibSIFXilm4w0R5aKGdC/Mcy4Yb4ruk4347w= github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.15-k3s1 h1:I94MoNL0Qng9gKMkfdt2neWG1j4J7fO3NryZwRaya9c=
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.14-k3s1/go.mod h1:NhDMNNUojgO9nCeJzHX8YjZEAZqW9JMUU/S/ZDBdZ10= github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.15-k3s1/go.mod h1:NhDMNNUojgO9nCeJzHX8YjZEAZqW9JMUU/S/ZDBdZ10=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.14-k3s1 h1:JPTU9h8pbPfXUv1cOqRQ6lcEFUD6JoYGXpZFPlse/DU= github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.15-k3s1 h1:cVrlL1gweLAwst3UQaOEM0MNr01Fmdjc0+lJUsV4jZU=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.14-k3s1/go.mod h1:9UDRf1+mqtjJUnm2kDAg1HWfpUjysps5gNYMPwwzCOI= github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.15-k3s1/go.mod h1:9UDRf1+mqtjJUnm2kDAg1HWfpUjysps5gNYMPwwzCOI=
github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.14-k3s1 h1:cia24tjpjl3y8WzMMjlmhK7smEoVW/ePd81I5YhYh+c= github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.15-k3s1 h1:l4FWRVyRXCJQZ4gwaWTc8YTxgXmMS/gVPgTmhv9vPVU=
github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.14-k3s1/go.mod h1:nzvMdnLq7ywRrzASzLV7EFKhudpng1G38F5XbVixASU= github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.15-k3s1/go.mod h1:nzvMdnLq7ywRrzASzLV7EFKhudpng1G38F5XbVixASU=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.14-k3s1 h1:y8loaTSTdjK+UFs8tcD7i8eYOixtdMv45/TXEBAn1+E= github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.15-k3s1 h1:H07PSR2jDDFcGnPIFAocMEXbgkddXfqhcQRSrLKACEk=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.14-k3s1/go.mod h1:PHIzADQFbVKfpb2K1IxHnNelXeeDHkXOR5Iz1E7OuUk= github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.15-k3s1/go.mod h1:PHIzADQFbVKfpb2K1IxHnNelXeeDHkXOR5Iz1E7OuUk=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.14-k3s1 h1:Le1F6+jeDk3haSp5NxiEwZDZjAazUwRoFv02a7CGShg= github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.15-k3s1 h1:Usvpk1/K2UpfONgCqgJHW+8OOLFxubxcU3Il6EV9NNk=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.14-k3s1/go.mod h1:spaI5+5c+1VReIDh7pGGs8ngDc3IoHwmTF8X+fTrP08= github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.15-k3s1/go.mod h1:spaI5+5c+1VReIDh7pGGs8ngDc3IoHwmTF8X+fTrP08=
github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.14-k3s1 h1:JuOPnD8mlivkkkaqcMTpclbrEYJK4/qumIPZbX5hP6U= github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.15-k3s1 h1:wDtiV6Xuh/nkgUaL3tHum8aH9aXx6NkpbK49lojQ3ws=
github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.14-k3s1/go.mod h1:y82mrMRkgq5PTj83SpgLtK69lENvKkeqijq4UghEQZ4= github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.15-k3s1/go.mod h1:y82mrMRkgq5PTj83SpgLtK69lENvKkeqijq4UghEQZ4=
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.14-k3s1 h1:gRR1gwfko4Qtdu1QQMlxCGtjocIIzHb8u6Unz5D0iPw= github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.15-k3s1 h1:t4/iwuhWVREJn6idZnduUeLEX06hX7mhrmKKDS7TVzQ=
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.14-k3s1/go.mod h1:8GInE8yyzLYFslW12FRnTl/9YkmR9f/GGzCYu8ANHCQ= github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.15-k3s1/go.mod h1:8GInE8yyzLYFslW12FRnTl/9YkmR9f/GGzCYu8ANHCQ=
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.14-k3s1 h1:2JJxYN11cb735ZHj8DcOX3Cp1CCySJDWNrSYOkaMZwo= github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.15-k3s1 h1:jB0C1msXrEZYVWlObaiJ+kpUr/WSNsOB+zy32vgzkGs=
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.14-k3s1/go.mod h1:pw+OH968rZrCvNZo0Eer3HGuPtKWS0dYbGot9aZ64Y4= github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.15-k3s1/go.mod h1:pw+OH968rZrCvNZo0Eer3HGuPtKWS0dYbGot9aZ64Y4=
github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.14-k3s1 h1:W7vdc4HyDabU9hJHDPDoRYaO48uU7u0zNiClFFOKs8U= github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.15-k3s1 h1:IyUrNai5AcUP/aS5Fm2c1RAWReLlJaXLf5t+QpZ2Jz0=
github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.14-k3s1/go.mod h1:9QKLqDYjrnFJFS+rSO1jIH00jff39O2VGuZFkAUZPuM= github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.15-k3s1/go.mod h1:9QKLqDYjrnFJFS+rSO1jIH00jff39O2VGuZFkAUZPuM=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.14-k3s1 h1:WkxG9qjwDCW3+lzPAsSXD6i5qQoGz7Cf2AXp4zJnI1c= github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.15-k3s1 h1:rMu3JAxHtS6Q+tBwgpy6PX3VjreC/mLfobajqVhx9PY=
github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.14-k3s1/go.mod h1:sUn/5gFGVe5vHOybvFlICWkiG5KV78bQ3YnW+6K+jJY= github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.15-k3s1/go.mod h1:sUn/5gFGVe5vHOybvFlICWkiG5KV78bQ3YnW+6K+jJY=
github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.14-k3s1 h1:modqs8EsS4mxtFtvNmcHHv+Ss2HNkSXzHB1p/2cTIsw= github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.15-k3s1 h1:axUNF+xPE2ovO/mNk5e4RPLz1cvXULIPGURY8FZoigw=
github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.14-k3s1/go.mod h1:Zicsc4aFIp+w3G/peRJVi5s2aJEZ9jQfGiG7ozhTXM4= github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.15-k3s1/go.mod h1:Zicsc4aFIp+w3G/peRJVi5s2aJEZ9jQfGiG7ozhTXM4=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.14-k3s1 h1:XmBefaNDQgjJVhvQ7BhDJbT1ZNnCyy0p+pmh0SoR9uo= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.15-k3s1 h1:tQOxQiWoPq6kN4B6G5flcurgOmid0M5QFgsa5M1lIso=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.14-k3s1/go.mod h1:dGHwWfmVHCCSkGbzm1+KKp448LNQR3HfANuNXH++lnA= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.15-k3s1/go.mod h1:dGHwWfmVHCCSkGbzm1+KKp448LNQR3HfANuNXH++lnA=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.14-k3s1 h1:ibmKyDd9yQ5zoR9mCYVMDAhydCr+5baF2QkAbqExK1g= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.15-k3s1 h1:OH/62M2bkex6F7M2yREGUjMXuv/d9jxrWYz1VFrUkbY=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.14-k3s1/go.mod h1:wwy8f7/wn8nH5uZq1RrbJmZoYRoFicaqndxs8vbsALA= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.15-k3s1/go.mod h1:wwy8f7/wn8nH5uZq1RrbJmZoYRoFicaqndxs8vbsALA=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.14-k3s1 h1:SXXocnbWneIHKhrQtQkA4DhtQEFlvQ6/EOTMFpXhN2g= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.15-k3s1 h1:bLzrMoar0mWJcn9R6LOz9yvOSZuA5r3UxfyFcH/MkFI=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.14-k3s1/go.mod h1:PWMBqO9xuXWJS8REJ8QWiouJzbiOwVVVT81ZTwYb2Nk= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.15-k3s1/go.mod h1:PWMBqO9xuXWJS8REJ8QWiouJzbiOwVVVT81ZTwYb2Nk=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.14-k3s1 h1:9HDAepkSvBxWLmLH+nQe4PDfeKz33Zl2bLbcBuPzQII= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.15-k3s1 h1:UGx5aDWcreea6M9Zcod51uWaOkIMO/xcejN9gmgShx4=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.14-k3s1/go.mod h1:KGBnJPnA0KkPNM8DFYa7IrEslOHOKUqewL+USqnG6fo= github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.15-k3s1/go.mod h1:KGBnJPnA0KkPNM8DFYa7IrEslOHOKUqewL+USqnG6fo=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.14-k3s1 h1:+53nGMhgjcdQxDbdyovSV+rjuuhkH0nhILk6quWUlUw= github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.15-k3s1 h1:oXnrQZzxMKUhSjyWM3CSXzn17Hi3TIX0II/EfpZNTM0=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.14-k3s1/go.mod h1:d1id22qiXLGVR/9f3KN/9AXoY6kTMj5qeghYUyNtmTI= github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.15-k3s1/go.mod h1:d1id22qiXLGVR/9f3KN/9AXoY6kTMj5qeghYUyNtmTI=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.14-k3s1 h1:gY4fLl6aRgn6EavY6Eh7+CNfM771LYULSR2b88d2z64= github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.15-k3s1 h1:ZJf79/TzmzO2DtivT9bYsgPRaEyOk7ZXAl7ZMx1KTpM=
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.14-k3s1/go.mod h1:avdvE67Z3Ewhy/mUZjo9ek8a5SYYQzVcL/cnYiU7tlo= github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.15-k3s1/go.mod h1:avdvE67Z3Ewhy/mUZjo9ek8a5SYYQzVcL/cnYiU7tlo=
github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.14-k3s1 h1:LjTxFwop9f41oIOAeRgBnZoFrNO8LPQuR+kv6fLE3u0= github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.15-k3s1 h1:6UTGkViw6O+Cdd5TO9Ehfl7OvZw9ZLf0DSXmQQhCc64=
github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.14-k3s1/go.mod h1:Ar3mk1+4I10WJg8SwpYKlK7hzsa9BPd8W0Stzxr90Q0= github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.15-k3s1/go.mod h1:Ar3mk1+4I10WJg8SwpYKlK7hzsa9BPd8W0Stzxr90Q0=
github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.14-k3s1 h1:uMyH94wM0tHDKkF0JtARDmd7PyetvGVPgJyxDSBaSJY= github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.15-k3s1 h1:/zw8+mXYW2NIPqZPDUTxUHlycgmtWiwTe802beE0TQQ=
github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.14-k3s1/go.mod h1:0Lx45qGvZm3dwobUa3Tib+i4yj3b5CbNRLvbLX4e1bw= github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.15-k3s1/go.mod h1:0Lx45qGvZm3dwobUa3Tib+i4yj3b5CbNRLvbLX4e1bw=
github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.14-k3s1 h1:UGUSmdIfcAkjUmCp4wkBNRn+oX04nfTZ1paJFK6Z3JI= github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.15-k3s1 h1:KMGJkotX8WK29g5ImWHan9GYJGCck2EuuAMw785BByE=
github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.14-k3s1/go.mod h1:mFeSjsWvLj55xUpwltalvolz49izW7J0N5RfoIHrKKY= github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.15-k3s1/go.mod h1:mFeSjsWvLj55xUpwltalvolz49izW7J0N5RfoIHrKKY=
github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.14-k3s1/go.mod h1:TTIyd68fEFbiCLXlHbYPm4bWi8llq4wkE8Sle/aDXUU= github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.15-k3s1/go.mod h1:TTIyd68fEFbiCLXlHbYPm4bWi8llq4wkE8Sle/aDXUU=
github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
......
...@@ -19,6 +19,7 @@ package admission ...@@ -19,6 +19,7 @@ package admission
import ( import (
"context" "context"
"fmt" "fmt"
"sync"
auditinternal "k8s.io/apiserver/pkg/apis/audit" auditinternal "k8s.io/apiserver/pkg/apis/audit"
"k8s.io/apiserver/pkg/audit" "k8s.io/apiserver/pkg/audit"
...@@ -27,6 +28,9 @@ import ( ...@@ -27,6 +28,9 @@ import (
// auditHandler logs annotations set by other admission handlers // auditHandler logs annotations set by other admission handlers
type auditHandler struct { type auditHandler struct {
Interface Interface
// TODO: move the lock near the Annotations field of the audit event so it is always protected from concurrent access.
// to protect the 'Annotations' map of the audit event from concurrent writes
mutex sync.Mutex
ae *auditinternal.Event ae *auditinternal.Event
} }
...@@ -42,10 +46,10 @@ func WithAudit(i Interface, ae *auditinternal.Event) Interface { ...@@ -42,10 +46,10 @@ func WithAudit(i Interface, ae *auditinternal.Event) Interface {
if i == nil { if i == nil {
return i return i
} }
return &auditHandler{i, ae} return &auditHandler{Interface: i, ae: ae}
} }
func (handler auditHandler) Admit(ctx context.Context, a Attributes, o ObjectInterfaces) error { func (handler *auditHandler) Admit(ctx context.Context, a Attributes, o ObjectInterfaces) error {
if !handler.Interface.Handles(a.GetOperation()) { if !handler.Interface.Handles(a.GetOperation()) {
return nil return nil
} }
...@@ -60,7 +64,7 @@ func (handler auditHandler) Admit(ctx context.Context, a Attributes, o ObjectInt ...@@ -60,7 +64,7 @@ func (handler auditHandler) Admit(ctx context.Context, a Attributes, o ObjectInt
return err return err
} }
func (handler auditHandler) Validate(ctx context.Context, a Attributes, o ObjectInterfaces) error { func (handler *auditHandler) Validate(ctx context.Context, a Attributes, o ObjectInterfaces) error {
if !handler.Interface.Handles(a.GetOperation()) { if !handler.Interface.Handles(a.GetOperation()) {
return nil return nil
} }
...@@ -84,10 +88,13 @@ func ensureAnnotationGetter(a Attributes) error { ...@@ -84,10 +88,13 @@ func ensureAnnotationGetter(a Attributes) error {
return fmt.Errorf("attributes must be an instance of privateAnnotationsGetter or AnnotationsGetter") return fmt.Errorf("attributes must be an instance of privateAnnotationsGetter or AnnotationsGetter")
} }
func (handler auditHandler) logAnnotations(a Attributes) { func (handler *auditHandler) logAnnotations(a Attributes) {
if handler.ae == nil { if handler.ae == nil {
return return
} }
handler.mutex.Lock()
defer handler.mutex.Unlock()
switch a := a.(type) { switch a := a.(type) {
case privateAnnotationsGetter: case privateAnnotationsGetter:
for key, value := range a.getAnnotations(handler.ae.Level) { for key, value := range a.getAnnotations(handler.ae.Level) {
......
...@@ -146,7 +146,7 @@ type timeoutWriter interface { ...@@ -146,7 +146,7 @@ type timeoutWriter interface {
} }
func newTimeoutWriter(w http.ResponseWriter) timeoutWriter { func newTimeoutWriter(w http.ResponseWriter) timeoutWriter {
base := &baseTimeoutWriter{w: w} base := &baseTimeoutWriter{w: w, handlerHeaders: w.Header().Clone()}
_, notifiable := w.(http.CloseNotifier) _, notifiable := w.(http.CloseNotifier)
_, hijackable := w.(http.Hijacker) _, hijackable := w.(http.Hijacker)
...@@ -166,6 +166,9 @@ func newTimeoutWriter(w http.ResponseWriter) timeoutWriter { ...@@ -166,6 +166,9 @@ func newTimeoutWriter(w http.ResponseWriter) timeoutWriter {
type baseTimeoutWriter struct { type baseTimeoutWriter struct {
w http.ResponseWriter w http.ResponseWriter
// headers written by the normal handler
handlerHeaders http.Header
mu sync.Mutex mu sync.Mutex
// if the timeout handler has timeout // if the timeout handler has timeout
timedOut bool timedOut bool
...@@ -183,7 +186,7 @@ func (tw *baseTimeoutWriter) Header() http.Header { ...@@ -183,7 +186,7 @@ func (tw *baseTimeoutWriter) Header() http.Header {
return http.Header{} return http.Header{}
} }
return tw.w.Header() return tw.handlerHeaders
} }
func (tw *baseTimeoutWriter) Write(p []byte) (int, error) { func (tw *baseTimeoutWriter) Write(p []byte) (int, error) {
...@@ -197,7 +200,10 @@ func (tw *baseTimeoutWriter) Write(p []byte) (int, error) { ...@@ -197,7 +200,10 @@ func (tw *baseTimeoutWriter) Write(p []byte) (int, error) {
return 0, http.ErrHijacked return 0, http.ErrHijacked
} }
if !tw.wroteHeader {
copyHeaders(tw.w.Header(), tw.handlerHeaders)
tw.wroteHeader = true tw.wroteHeader = true
}
return tw.w.Write(p) return tw.w.Write(p)
} }
...@@ -222,10 +228,17 @@ func (tw *baseTimeoutWriter) WriteHeader(code int) { ...@@ -222,10 +228,17 @@ func (tw *baseTimeoutWriter) WriteHeader(code int) {
return return
} }
copyHeaders(tw.w.Header(), tw.handlerHeaders)
tw.wroteHeader = true tw.wroteHeader = true
tw.w.WriteHeader(code) tw.w.WriteHeader(code)
} }
func copyHeaders(dst, src http.Header) {
for k, v := range src {
dst[k] = v
}
}
func (tw *baseTimeoutWriter) timeout(err *apierrors.StatusError) { func (tw *baseTimeoutWriter) timeout(err *apierrors.StatusError) {
tw.mu.Lock() tw.mu.Lock()
defer tw.mu.Unlock() defer tw.mu.Unlock()
......
...@@ -3,8 +3,8 @@ package version ...@@ -3,8 +3,8 @@ package version
var ( var (
gitMajor = "1" gitMajor = "1"
gitMinor = "20" gitMinor = "20"
gitVersion = "v1.20.14-k3s1" gitVersion = "v1.20.15-k3s1"
gitCommit = "c9ccd1687e39f0ae9ff460dbeed44d8a528d8f47" gitCommit = "5312135011ce191fcf1bd1aa6099f2d3d690f57e"
gitTreeState = "clean" gitTreeState = "clean"
buildDate = "2021-12-15T21:14:12Z" buildDate = "2022-01-19T23:16:01Z"
) )
...@@ -149,7 +149,10 @@ func (q *Type) Get() (item interface{}, shutdown bool) { ...@@ -149,7 +149,10 @@ func (q *Type) Get() (item interface{}, shutdown bool) {
return nil, true return nil, true
} }
item, q.queue = q.queue[0], q.queue[1:] item = q.queue[0]
// The underlying array still exists and reference this object, so the object will not be garbage collected.
q.queue[0] = nil
q.queue = q.queue[1:]
q.metrics.get(item) q.metrics.get(item)
......
...@@ -3,8 +3,8 @@ package version ...@@ -3,8 +3,8 @@ package version
var ( var (
gitMajor = "1" gitMajor = "1"
gitMinor = "20" gitMinor = "20"
gitVersion = "v1.20.14-k3s1" gitVersion = "v1.20.15-k3s1"
gitCommit = "c9ccd1687e39f0ae9ff460dbeed44d8a528d8f47" gitCommit = "5312135011ce191fcf1bd1aa6099f2d3d690f57e"
gitTreeState = "clean" gitTreeState = "clean"
buildDate = "2021-12-15T21:14:12Z" buildDate = "2022-01-19T23:16:01Z"
) )
...@@ -90,6 +90,9 @@ const ( ...@@ -90,6 +90,9 @@ const (
DefaultDummyDevice = "kube-ipvs0" DefaultDummyDevice = "kube-ipvs0"
connReuseMinSupportedKernelVersion = "4.1" connReuseMinSupportedKernelVersion = "4.1"
// https://github.com/torvalds/linux/commit/35dfb013149f74c2be1ff9c78f14e6a3cd1539d1
connReuseFixedKernelVersion = "5.9"
) )
// iptablesJumpChain is tables of iptables chains that ipvs proxier used to install iptables or cleanup iptables. // iptablesJumpChain is tables of iptables chains that ipvs proxier used to install iptables or cleanup iptables.
...@@ -387,6 +390,9 @@ func NewProxier(ipt utiliptables.Interface, ...@@ -387,6 +390,9 @@ func NewProxier(ipt utiliptables.Interface,
} }
if kernelVersion.LessThan(version.MustParseGeneric(connReuseMinSupportedKernelVersion)) { if kernelVersion.LessThan(version.MustParseGeneric(connReuseMinSupportedKernelVersion)) {
klog.Errorf("can't set sysctl %s, kernel version must be at least %s", sysctlConnReuse, connReuseMinSupportedKernelVersion) klog.Errorf("can't set sysctl %s, kernel version must be at least %s", sysctlConnReuse, connReuseMinSupportedKernelVersion)
} else if kernelVersion.AtLeast(version.MustParseGeneric(connReuseFixedKernelVersion)) {
// https://github.com/kubernetes/kubernetes/issues/93297
klog.V(2).InfoS("Left as-is", "sysctl", sysctlConnReuse)
} else { } else {
// Set the connection reuse mode // Set the connection reuse mode
if err := utilproxy.EnsureSysctl(sysctl, sysctlConnReuse, 0); err != nil { if err := utilproxy.EnsureSysctl(sysctl, sysctlConnReuse, 0); err != nil {
......
...@@ -545,6 +545,7 @@ func (p *PriorityQueue) getUnschedulablePodsWithMatchingAffinityTerm(pod *v1.Pod ...@@ -545,6 +545,7 @@ func (p *PriorityQueue) getUnschedulablePodsWithMatchingAffinityTerm(pod *v1.Pod
selector, err := metav1.LabelSelectorAsSelector(term.LabelSelector) selector, err := metav1.LabelSelectorAsSelector(term.LabelSelector)
if err != nil { if err != nil {
klog.Errorf("Error getting label selectors for pod: %v.", up.Name) klog.Errorf("Error getting label selectors for pod: %v.", up.Name)
continue
} }
if util.PodMatchesTermsNamespaceAndSelector(pod, namespaces, selector) { if util.PodMatchesTermsNamespaceAndSelector(pod, namespaces, selector) {
podsToMove = append(podsToMove, pInfo) podsToMove = append(podsToMove, pInfo)
......
...@@ -38,6 +38,9 @@ func GetNamespacesFromPodAffinityTerm(pod *v1.Pod, podAffinityTerm *v1.PodAffini ...@@ -38,6 +38,9 @@ func GetNamespacesFromPodAffinityTerm(pod *v1.Pod, podAffinityTerm *v1.PodAffini
// PodMatchesTermsNamespaceAndSelector returns true if the given <pod> // PodMatchesTermsNamespaceAndSelector returns true if the given <pod>
// matches the namespace and selector defined by <affinityPod>`s <term>. // matches the namespace and selector defined by <affinityPod>`s <term>.
func PodMatchesTermsNamespaceAndSelector(pod *v1.Pod, namespaces sets.String, selector labels.Selector) bool { func PodMatchesTermsNamespaceAndSelector(pod *v1.Pod, namespaces sets.String, selector labels.Selector) bool {
if selector == nil {
return false
}
if !namespaces.Has(pod.Namespace) { if !namespaces.Has(pod.Namespace) {
return false return false
} }
......
...@@ -98,6 +98,14 @@ const ( ...@@ -98,6 +98,14 @@ const (
// LabelFailureDomainBetaRegion failure-domain region label // LabelFailureDomainBetaRegion failure-domain region label
LabelFailureDomainBetaRegion = "failure-domain.beta.kubernetes.io/region" LabelFailureDomainBetaRegion = "failure-domain.beta.kubernetes.io/region"
// LabelNodeExcludeBalancers specifies that the node should not be considered as a target
// for external load-balancers which use nodes as a second hop (e.g. many cloud LBs which only
// understand nodes). For services that use externalTrafficPolicy=Local, this may mean that
// any backends on excluded nodes are not reachable by those external load-balancers.
// Implementations of this exclusion may vary based on provider. This label is honored starting
// in 1.16 when the ServiceNodeExclusion gate is on.
LabelNodeExcludeBalancers = "node.kubernetes.io/exclude-from-external-load-balancers"
) )
const ( const (
...@@ -281,6 +289,8 @@ type Cloud struct { ...@@ -281,6 +289,8 @@ type Cloud struct {
nodeResourceGroups map[string]string nodeResourceGroups map[string]string
// unmanagedNodes holds a list of nodes not managed by Azure cloud provider. // unmanagedNodes holds a list of nodes not managed by Azure cloud provider.
unmanagedNodes sets.String unmanagedNodes sets.String
// excludeLoadBalancerNodes holds a list of nodes that should be excluded from LoadBalancer.
excludeLoadBalancerNodes sets.String
// nodeInformerSynced is for determining if the informer has synced. // nodeInformerSynced is for determining if the informer has synced.
nodeInformerSynced cache.InformerSynced nodeInformerSynced cache.InformerSynced
...@@ -345,6 +355,7 @@ func NewCloudWithoutFeatureGates(configReader io.Reader) (*Cloud, error) { ...@@ -345,6 +355,7 @@ func NewCloudWithoutFeatureGates(configReader io.Reader) (*Cloud, error) {
nodeZones: map[string]sets.String{}, nodeZones: map[string]sets.String{},
nodeResourceGroups: map[string]string{}, nodeResourceGroups: map[string]string{},
unmanagedNodes: sets.NewString(), unmanagedNodes: sets.NewString(),
excludeLoadBalancerNodes: sets.NewString(),
routeCIDRs: map[string]string{}, routeCIDRs: map[string]string{},
} }
...@@ -748,8 +759,8 @@ func (az *Cloud) SetInformers(informerFactory informers.SharedInformerFactory) { ...@@ -748,8 +759,8 @@ func (az *Cloud) SetInformers(informerFactory informers.SharedInformerFactory) {
UpdateFunc: func(prev, obj interface{}) { UpdateFunc: func(prev, obj interface{}) {
prevNode := prev.(*v1.Node) prevNode := prev.(*v1.Node)
newNode := obj.(*v1.Node) newNode := obj.(*v1.Node)
if newNode.Labels[LabelFailureDomainBetaZone] == if newNode.Labels[v1.LabelTopologyZone] ==
prevNode.Labels[LabelFailureDomainBetaZone] { prevNode.Labels[v1.LabelTopologyZone] {
return return
} }
az.updateNodeCaches(prevNode, newNode) az.updateNodeCaches(prevNode, newNode)
...@@ -801,6 +812,12 @@ func (az *Cloud) updateNodeCaches(prevNode, newNode *v1.Node) { ...@@ -801,6 +812,12 @@ func (az *Cloud) updateNodeCaches(prevNode, newNode *v1.Node) {
managed, ok := prevNode.ObjectMeta.Labels[managedByAzureLabel] managed, ok := prevNode.ObjectMeta.Labels[managedByAzureLabel]
if ok && managed == "false" { if ok && managed == "false" {
az.unmanagedNodes.Delete(prevNode.ObjectMeta.Name) az.unmanagedNodes.Delete(prevNode.ObjectMeta.Name)
az.excludeLoadBalancerNodes.Delete(prevNode.ObjectMeta.Name)
}
// Remove from excludeLoadBalancerNodes cache.
if _, hasExcludeBalancerLabel := prevNode.ObjectMeta.Labels[LabelNodeExcludeBalancers]; hasExcludeBalancerLabel {
az.excludeLoadBalancerNodes.Delete(prevNode.ObjectMeta.Name)
} }
} }
...@@ -824,6 +841,12 @@ func (az *Cloud) updateNodeCaches(prevNode, newNode *v1.Node) { ...@@ -824,6 +841,12 @@ func (az *Cloud) updateNodeCaches(prevNode, newNode *v1.Node) {
managed, ok := newNode.ObjectMeta.Labels[managedByAzureLabel] managed, ok := newNode.ObjectMeta.Labels[managedByAzureLabel]
if ok && managed == "false" { if ok && managed == "false" {
az.unmanagedNodes.Insert(newNode.ObjectMeta.Name) az.unmanagedNodes.Insert(newNode.ObjectMeta.Name)
az.excludeLoadBalancerNodes.Insert(newNode.ObjectMeta.Name)
}
// Add to excludeLoadBalancerNodes cache.
if _, hasExcludeBalancerLabel := newNode.ObjectMeta.Labels[LabelNodeExcludeBalancers]; hasExcludeBalancerLabel {
az.excludeLoadBalancerNodes.Insert(newNode.ObjectMeta.Name)
} }
} }
} }
...@@ -913,16 +936,23 @@ func (az *Cloud) GetUnmanagedNodes() (sets.String, error) { ...@@ -913,16 +936,23 @@ func (az *Cloud) GetUnmanagedNodes() (sets.String, error) {
return sets.NewString(az.unmanagedNodes.List()...), nil return sets.NewString(az.unmanagedNodes.List()...), nil
} }
// ShouldNodeExcludedFromLoadBalancer returns true if node is unmanaged or in external resource group. // ShouldNodeExcludedFromLoadBalancer returns true if node is unmanaged, in external resource group or labeled with "node.kubernetes.io/exclude-from-external-load-balancers".
func (az *Cloud) ShouldNodeExcludedFromLoadBalancer(node *v1.Node) bool { func (az *Cloud) ShouldNodeExcludedFromLoadBalancer(nodeName string) (bool, error) {
labels := node.ObjectMeta.Labels // Kubelet won't set az.nodeInformerSynced, always return nil.
if rg, ok := labels[externalResourceGroupLabel]; ok && !strings.EqualFold(rg, az.ResourceGroup) { if az.nodeInformerSynced == nil {
return true return false, nil
} }
if managed, ok := labels[managedByAzureLabel]; ok && managed == "false" { az.nodeCachesLock.RLock()
return true defer az.nodeCachesLock.RUnlock()
if !az.nodeInformerSynced() {
return false, fmt.Errorf("node informer is not synced when trying to fetch node caches")
}
// Return true if the node is in external resource group.
if cachedRG, ok := az.nodeResourceGroups[nodeName]; ok && !strings.EqualFold(cachedRG, az.ResourceGroup) {
return true, nil
} }
return false return az.excludeLoadBalancerNodes.Has(nodeName), nil
} }
...@@ -69,6 +69,7 @@ func GetTestCloud(ctrl *gomock.Controller) (az *Cloud) { ...@@ -69,6 +69,7 @@ func GetTestCloud(ctrl *gomock.Controller) (az *Cloud) {
nodeInformerSynced: func() bool { return true }, nodeInformerSynced: func() bool { return true },
nodeResourceGroups: map[string]string{}, nodeResourceGroups: map[string]string{},
unmanagedNodes: sets.NewString(), unmanagedNodes: sets.NewString(),
excludeLoadBalancerNodes: sets.NewString(),
routeCIDRs: map[string]string{}, routeCIDRs: map[string]string{},
eventRecorder: &record.FakeRecorder{}, eventRecorder: &record.FakeRecorder{},
} }
......
...@@ -343,7 +343,7 @@ func (az *Cloud) cleanBackendpoolForPrimarySLB(primarySLB *network.LoadBalancer, ...@@ -343,7 +343,7 @@ func (az *Cloud) cleanBackendpoolForPrimarySLB(primarySLB *network.LoadBalancer,
}, },
} }
// decouple the backendPool from the node // decouple the backendPool from the node
err := az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, backendpoolToBeDeleted) err := az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, backendpoolToBeDeleted, true)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -1083,15 +1083,6 @@ func (az *Cloud) findFrontendIPConfigOfService( ...@@ -1083,15 +1083,6 @@ func (az *Cloud) findFrontendIPConfigOfService(
return nil, false, nil return nil, false, nil
} }
func nodeNameInNodes(nodeName string, nodes []*v1.Node) bool {
for _, node := range nodes {
if strings.EqualFold(nodeName, node.Name) {
return true
}
}
return false
}
// reconcileLoadBalancer ensures load balancer exists and the frontend ip config is setup. // reconcileLoadBalancer ensures load balancer exists and the frontend ip config is setup.
// This also reconciles the Service's Ports with the LoadBalancer config. // This also reconciles the Service's Ports with the LoadBalancer config.
// This entails adding rules/probes for expected Ports and removing stale rules/ports. // This entails adding rules/probes for expected Ports and removing stale rules/ports.
...@@ -1147,7 +1138,12 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, ...@@ -1147,7 +1138,12 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service,
// would not be in the `nodes` slice. We need to check the nodes that // 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 // have been added to the LB's backendpool, find the unwanted ones and
// delete them from the pool. // delete them from the pool.
if !nodeNameInNodes(nodeName, nodes) { shouldExcludeLoadBalancer, err := az.ShouldNodeExcludedFromLoadBalancer(nodeName)
if err != nil {
klog.Errorf("ShouldNodeExcludedFromLoadBalancer(%s) failed with error: %v", nodeName, err)
return nil, err
}
if shouldExcludeLoadBalancer {
klog.V(2).Infof("reconcileLoadBalancer for service (%s)(%t): lb backendpool - found unwanted node %s, decouple it from the LB", serviceName, wantLb, nodeName) klog.V(2).Infof("reconcileLoadBalancer for service (%s)(%t): lb backendpool - found unwanted node %s, decouple it from the LB", serviceName, wantLb, nodeName)
// construct a backendPool that only contains the IP config of the node to be deleted // construct a backendPool that only contains the IP config of the node to be deleted
backendIPConfigurationsToBeDeleted = append(backendIPConfigurationsToBeDeleted, network.InterfaceIPConfiguration{ID: to.StringPtr(ipConfID)}) backendIPConfigurationsToBeDeleted = append(backendIPConfigurationsToBeDeleted, network.InterfaceIPConfiguration{ID: to.StringPtr(ipConfID)})
...@@ -1164,7 +1160,7 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, ...@@ -1164,7 +1160,7 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service,
} }
vmSetName := az.mapLoadBalancerNameToVMSet(lbName, clusterName) vmSetName := az.mapLoadBalancerNameToVMSet(lbName, clusterName)
// decouple the backendPool from the node // decouple the backendPool from the node
err = az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, backendpoolToBeDeleted) err = az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, backendpoolToBeDeleted, false)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -1448,14 +1444,28 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, ...@@ -1448,14 +1444,28 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service,
// do nothing for availability set // do nothing for availability set
lb.BackendAddressPools = nil lb.BackendAddressPools = nil
} }
err := az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, lb.BackendAddressPools) err := az.VMSet.EnsureBackendPoolDeleted(service, lbBackendPoolID, vmSetName, lb.BackendAddressPools, true)
if err != nil { if err != nil {
klog.Errorf("EnsureBackendPoolDeleted(%s) for service %s failed: %v", lbBackendPoolID, serviceName, err) klog.Errorf("EnsureBackendPoolDeleted(%s) for service %s failed: %v", lbBackendPoolID, serviceName, err)
return nil, err return nil, err
} }
klog.V(10).Infof("EnsureBackendPoolDeleted(%s) for service %s: end", lbBackendPoolID, serviceName) klog.V(10).Infof("EnsureBackendPoolDeleted(%s) for service %s: end", lbBackendPoolID, serviceName)
// Remove the LB. existingLBs, err := az.ListLB(service)
if err != nil {
klog.Errorf("reconcileLoadBalancer: failed to list load balancer for service %q: %s", serviceName, err.Error())
return nil, err
}
foundLB := false
for _, existingLB := range existingLBs {
if strings.EqualFold(lbName, to.String(existingLB.Name)) {
foundLB = true
break
}
}
// Remove the LB if it exists.
if foundLB {
klog.V(10).Infof("reconcileLoadBalancer: az.DeleteLB(%q): start", lbName) klog.V(10).Infof("reconcileLoadBalancer: az.DeleteLB(%q): start", lbName)
err = az.DeleteLB(service, lbName) err = az.DeleteLB(service, lbName)
if err != nil { if err != nil {
...@@ -1464,6 +1474,7 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service, ...@@ -1464,6 +1474,7 @@ func (az *Cloud) reconcileLoadBalancer(clusterName string, service *v1.Service,
} }
klog.V(10).Infof("az.DeleteLB(%q): end", lbName) klog.V(10).Infof("az.DeleteLB(%q): end", lbName)
} }
}
} else { } else {
klog.V(2).Infof("reconcileLoadBalancer: reconcileLoadBalancer for service(%s): lb(%s) - updating", serviceName, lbName) klog.V(2).Infof("reconcileLoadBalancer: reconcileLoadBalancer for service(%s): lb(%s) - updating", serviceName, lbName)
err := az.CreateOrUpdateLB(service, *lb) err := az.CreateOrUpdateLB(service, *lb)
...@@ -1665,7 +1676,8 @@ func (az *Cloud) reconcileLoadBalancerRule( ...@@ -1665,7 +1676,8 @@ func (az *Cloud) reconcileLoadBalancerRule(
if probeProtocol == "" { if probeProtocol == "" {
probeProtocol = string(network.ProbeProtocolHTTP) probeProtocol = string(network.ProbeProtocolHTTP)
} }
if requestPath == "" { needRequestPath := strings.EqualFold(probeProtocol, string(network.ProbeProtocolHTTP)) || strings.EqualFold(probeProtocol, string(network.ProbeProtocolHTTPS))
if requestPath == "" && needRequestPath {
requestPath = podPresencePath requestPath = podPresencePath
} }
......
...@@ -914,7 +914,12 @@ func (as *availabilitySet) EnsureHostsInPool(service *v1.Service, nodes []*v1.No ...@@ -914,7 +914,12 @@ func (as *availabilitySet) EnsureHostsInPool(service *v1.Service, nodes []*v1.No
continue continue
} }
if as.ShouldNodeExcludedFromLoadBalancer(node) { shouldExcludeLoadBalancer, err := as.ShouldNodeExcludedFromLoadBalancer(localNodeName)
if err != nil {
klog.Errorf("ShouldNodeExcludedFromLoadBalancer(%s) failed with error: %v", localNodeName, err)
return err
}
if shouldExcludeLoadBalancer {
klog.V(4).Infof("Excluding unmanaged/external-resource-group node %q", localNodeName) klog.V(4).Infof("Excluding unmanaged/external-resource-group node %q", localNodeName)
continue continue
} }
...@@ -939,7 +944,7 @@ func (as *availabilitySet) EnsureHostsInPool(service *v1.Service, nodes []*v1.No ...@@ -939,7 +944,7 @@ func (as *availabilitySet) EnsureHostsInPool(service *v1.Service, nodes []*v1.No
} }
// EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified nodes. // EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified nodes.
func (as *availabilitySet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool) error { func (as *availabilitySet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool, deleteFromVMSet bool) error {
// Returns nil if backend address pools already deleted. // Returns nil if backend address pools already deleted.
if backendAddressPools == nil { if backendAddressPools == nil {
return nil return nil
......
...@@ -64,7 +64,7 @@ type VMSet interface { ...@@ -64,7 +64,7 @@ type VMSet interface {
// participating in the specified LoadBalancer Backend Pool. // participating in the specified LoadBalancer Backend Pool.
EnsureHostInPool(service *v1.Service, nodeName types.NodeName, backendPoolID string, vmSetName string, isInternal bool) (string, string, string, *compute.VirtualMachineScaleSetVM, error) EnsureHostInPool(service *v1.Service, nodeName types.NodeName, backendPoolID string, vmSetName string, isInternal bool) (string, string, string, *compute.VirtualMachineScaleSetVM, error)
// EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified nodes. // EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified nodes.
EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool) error EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool, deleteFromVMSet bool) error
// AttachDisk attaches a vhd to vm. The vhd must exist, can be identified by diskName, diskURI, and lun. // AttachDisk attaches a vhd to vm. The vhd must exist, can be identified by diskName, diskURI, and lun.
AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, lun int32, cachingMode compute.CachingTypes, diskEncryptionSetID string, writeAcceleratorEnabled bool) error AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, lun int32, cachingMode compute.CachingTypes, diskEncryptionSetID string, writeAcceleratorEnabled bool) error
......
...@@ -743,11 +743,16 @@ func (ss *scaleSet) getAgentPoolScaleSets(nodes []*v1.Node) (*[]string, error) { ...@@ -743,11 +743,16 @@ func (ss *scaleSet) getAgentPoolScaleSets(nodes []*v1.Node) (*[]string, error) {
continue continue
} }
if ss.ShouldNodeExcludedFromLoadBalancer(nodes[nx]) { nodeName := nodes[nx].Name
shouldExcludeLoadBalancer, err := ss.ShouldNodeExcludedFromLoadBalancer(nodeName)
if err != nil {
klog.Errorf("ShouldNodeExcludedFromLoadBalancer(%s) failed with error: %v", nodeName, err)
return nil, err
}
if shouldExcludeLoadBalancer {
continue continue
} }
nodeName := nodes[nx].Name
ssName, _, _, err := ss.getVmssVM(nodeName, azcache.CacheReadTypeDefault) ssName, _, _, err := ss.getVmssVM(nodeName, azcache.CacheReadTypeDefault)
if err != nil { if err != nil {
return nil, err return nil, err
...@@ -1105,7 +1110,12 @@ func (ss *scaleSet) ensureVMSSInPool(service *v1.Service, nodes []*v1.Node, back ...@@ -1105,7 +1110,12 @@ func (ss *scaleSet) ensureVMSSInPool(service *v1.Service, nodes []*v1.Node, back
continue continue
} }
if ss.ShouldNodeExcludedFromLoadBalancer(node) { shouldExcludeLoadBalancer, err := ss.ShouldNodeExcludedFromLoadBalancer(node.Name)
if err != nil {
klog.Errorf("ShouldNodeExcludedFromLoadBalancer(%s) failed with error: %v", node.Name, err)
return err
}
if shouldExcludeLoadBalancer {
klog.V(4).Infof("Excluding unmanaged/external-resource-group node %q", node.Name) klog.V(4).Infof("Excluding unmanaged/external-resource-group node %q", node.Name)
continue continue
} }
...@@ -1248,7 +1258,12 @@ func (ss *scaleSet) EnsureHostsInPool(service *v1.Service, nodes []*v1.Node, bac ...@@ -1248,7 +1258,12 @@ func (ss *scaleSet) EnsureHostsInPool(service *v1.Service, nodes []*v1.Node, bac
continue continue
} }
if ss.ShouldNodeExcludedFromLoadBalancer(node) { shouldExcludeLoadBalancer, err := ss.ShouldNodeExcludedFromLoadBalancer(localNodeName)
if err != nil {
klog.Errorf("ShouldNodeExcludedFromLoadBalancer(%s) failed with error: %v", localNodeName, err)
return err
}
if shouldExcludeLoadBalancer {
klog.V(4).Infof("Excluding unmanaged/external-resource-group node %q", localNodeName) klog.V(4).Infof("Excluding unmanaged/external-resource-group node %q", localNodeName)
continue continue
} }
...@@ -1569,7 +1584,7 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromVMSS(service *v1.Service, backen ...@@ -1569,7 +1584,7 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromVMSS(service *v1.Service, backen
} }
// EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified nodes. // EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified nodes.
func (ss *scaleSet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool) error { func (ss *scaleSet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool, deleteFromVMSet bool) error {
// Returns nil if backend address pools already deleted. // Returns nil if backend address pools already deleted.
if backendAddressPools == nil { if backendAddressPools == nil {
return nil return nil
...@@ -1681,10 +1696,12 @@ func (ss *scaleSet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID, ...@@ -1681,10 +1696,12 @@ func (ss *scaleSet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID,
} }
// Ensure the backendPoolID is also deleted on VMSS itself. // Ensure the backendPoolID is also deleted on VMSS itself.
if deleteFromVMSet {
err := ss.ensureBackendPoolDeletedFromVMSS(service, backendPoolID, vmSetName, ipConfigurationIDs) err := ss.ensureBackendPoolDeletedFromVMSS(service, backendPoolID, vmSetName, ipConfigurationIDs)
if err != nil { if err != nil {
return err return err
} }
}
isOperationSucceeded = true isOperationSucceeded = true
return nil return nil
......
...@@ -1382,7 +1382,7 @@ gopkg.in/warnings.v0 ...@@ -1382,7 +1382,7 @@ gopkg.in/warnings.v0
gopkg.in/yaml.v2 gopkg.in/yaml.v2
# gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 # gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
gopkg.in/yaml.v3 gopkg.in/yaml.v3
# k8s.io/api v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.14-k3s1 # k8s.io/api v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.15-k3s1
## explicit ## explicit
k8s.io/api/admission/v1 k8s.io/api/admission/v1
k8s.io/api/admission/v1beta1 k8s.io/api/admission/v1beta1
...@@ -1430,7 +1430,7 @@ k8s.io/api/scheduling/v1beta1 ...@@ -1430,7 +1430,7 @@ k8s.io/api/scheduling/v1beta1
k8s.io/api/storage/v1 k8s.io/api/storage/v1
k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1alpha1
k8s.io/api/storage/v1beta1 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.14-k3s1 # k8s.io/apiextensions-apiserver v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.15-k3s1
k8s.io/apiextensions-apiserver/pkg/apihelpers k8s.io/apiextensions-apiserver/pkg/apihelpers
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install
...@@ -1470,7 +1470,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi ...@@ -1470,7 +1470,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi
k8s.io/apiextensions-apiserver/pkg/registry/customresource k8s.io/apiextensions-apiserver/pkg/registry/customresource
k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor
k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition
# k8s.io/apimachinery v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.14-k3s1 # k8s.io/apimachinery v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.15-k3s1
## explicit ## explicit
k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/equality
k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/api/errors
...@@ -1534,7 +1534,7 @@ k8s.io/apimachinery/pkg/watch ...@@ -1534,7 +1534,7 @@ k8s.io/apimachinery/pkg/watch
k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/json
k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/netutil
k8s.io/apimachinery/third_party/forked/golang/reflect k8s.io/apimachinery/third_party/forked/golang/reflect
# k8s.io/apiserver v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.14-k3s1 # k8s.io/apiserver v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.15-k3s1
## explicit ## explicit
k8s.io/apiserver/pkg/admission k8s.io/apiserver/pkg/admission
k8s.io/apiserver/pkg/admission/configuration k8s.io/apiserver/pkg/admission/configuration
...@@ -1673,7 +1673,7 @@ k8s.io/apiserver/plugin/pkg/audit/webhook ...@@ -1673,7 +1673,7 @@ k8s.io/apiserver/plugin/pkg/audit/webhook
k8s.io/apiserver/plugin/pkg/authenticator/token/oidc k8s.io/apiserver/plugin/pkg/authenticator/token/oidc
k8s.io/apiserver/plugin/pkg/authenticator/token/webhook k8s.io/apiserver/plugin/pkg/authenticator/token/webhook
k8s.io/apiserver/plugin/pkg/authorizer/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.14-k3s1 # k8s.io/cli-runtime v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.15-k3s1
k8s.io/cli-runtime/pkg/genericclioptions k8s.io/cli-runtime/pkg/genericclioptions
k8s.io/cli-runtime/pkg/kustomize k8s.io/cli-runtime/pkg/kustomize
k8s.io/cli-runtime/pkg/kustomize/k8sdeps k8s.io/cli-runtime/pkg/kustomize/k8sdeps
...@@ -1686,7 +1686,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch ...@@ -1686,7 +1686,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch
k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator
k8s.io/cli-runtime/pkg/printers k8s.io/cli-runtime/pkg/printers
k8s.io/cli-runtime/pkg/resource 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.14-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.15-k3s1
## explicit ## explicit
k8s.io/client-go/discovery k8s.io/client-go/discovery
k8s.io/client-go/discovery/cached k8s.io/client-go/discovery/cached
...@@ -1933,7 +1933,7 @@ k8s.io/client-go/util/jsonpath ...@@ -1933,7 +1933,7 @@ k8s.io/client-go/util/jsonpath
k8s.io/client-go/util/keyutil k8s.io/client-go/util/keyutil
k8s.io/client-go/util/retry k8s.io/client-go/util/retry
k8s.io/client-go/util/workqueue k8s.io/client-go/util/workqueue
# k8s.io/cloud-provider v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.14-k3s1 # k8s.io/cloud-provider v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.15-k3s1
## explicit ## explicit
k8s.io/cloud-provider k8s.io/cloud-provider
k8s.io/cloud-provider/api k8s.io/cloud-provider/api
...@@ -1954,13 +1954,13 @@ k8s.io/cloud-provider/service/helpers ...@@ -1954,13 +1954,13 @@ k8s.io/cloud-provider/service/helpers
k8s.io/cloud-provider/volume k8s.io/cloud-provider/volume
k8s.io/cloud-provider/volume/errors k8s.io/cloud-provider/volume/errors
k8s.io/cloud-provider/volume/helpers 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.14-k3s1 # k8s.io/cluster-bootstrap v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.15-k3s1
k8s.io/cluster-bootstrap/token/api k8s.io/cluster-bootstrap/token/api
k8s.io/cluster-bootstrap/token/jws k8s.io/cluster-bootstrap/token/jws
k8s.io/cluster-bootstrap/token/util k8s.io/cluster-bootstrap/token/util
k8s.io/cluster-bootstrap/util/secrets k8s.io/cluster-bootstrap/util/secrets
k8s.io/cluster-bootstrap/util/tokens 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.14-k3s1 # k8s.io/code-generator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.15-k3s1
k8s.io/code-generator/cmd/client-gen/args k8s.io/code-generator/cmd/client-gen/args
k8s.io/code-generator/cmd/client-gen/generators k8s.io/code-generator/cmd/client-gen/generators
k8s.io/code-generator/cmd/client-gen/generators/fake k8s.io/code-generator/cmd/client-gen/generators/fake
...@@ -1975,7 +1975,7 @@ k8s.io/code-generator/cmd/lister-gen/args ...@@ -1975,7 +1975,7 @@ k8s.io/code-generator/cmd/lister-gen/args
k8s.io/code-generator/cmd/lister-gen/generators k8s.io/code-generator/cmd/lister-gen/generators
k8s.io/code-generator/pkg/namer k8s.io/code-generator/pkg/namer
k8s.io/code-generator/pkg/util k8s.io/code-generator/pkg/util
# k8s.io/component-base v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.14-k3s1 # k8s.io/component-base v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.15-k3s1
## explicit ## explicit
k8s.io/component-base/cli/flag k8s.io/component-base/cli/flag
k8s.io/component-base/cli/globalflag k8s.io/component-base/cli/globalflag
...@@ -2001,13 +2001,13 @@ k8s.io/component-base/metrics/testutil ...@@ -2001,13 +2001,13 @@ k8s.io/component-base/metrics/testutil
k8s.io/component-base/term k8s.io/component-base/term
k8s.io/component-base/version k8s.io/component-base/version
k8s.io/component-base/version/verflag 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.14-k3s1 # k8s.io/component-helpers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.15-k3s1
k8s.io/component-helpers/apimachinery/lease k8s.io/component-helpers/apimachinery/lease
k8s.io/component-helpers/auth/rbac/reconciliation k8s.io/component-helpers/auth/rbac/reconciliation
k8s.io/component-helpers/auth/rbac/validation k8s.io/component-helpers/auth/rbac/validation
k8s.io/component-helpers/scheduling/corev1 k8s.io/component-helpers/scheduling/corev1
k8s.io/component-helpers/scheduling/corev1/nodeaffinity k8s.io/component-helpers/scheduling/corev1/nodeaffinity
# k8s.io/controller-manager v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.14-k3s1 # k8s.io/controller-manager v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.15-k3s1
## explicit ## explicit
k8s.io/controller-manager/app k8s.io/controller-manager/app
k8s.io/controller-manager/config k8s.io/controller-manager/config
...@@ -2017,11 +2017,11 @@ k8s.io/controller-manager/pkg/clientbuilder ...@@ -2017,11 +2017,11 @@ k8s.io/controller-manager/pkg/clientbuilder
k8s.io/controller-manager/pkg/features k8s.io/controller-manager/pkg/features
k8s.io/controller-manager/pkg/features/register k8s.io/controller-manager/pkg/features/register
k8s.io/controller-manager/pkg/informerfactory k8s.io/controller-manager/pkg/informerfactory
# k8s.io/cri-api v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.14-k3s1 # k8s.io/cri-api v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.15-k3s1
## explicit ## explicit
k8s.io/cri-api/pkg/apis k8s.io/cri-api/pkg/apis
k8s.io/cri-api/pkg/apis/runtime/v1alpha2 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.14-k3s1 # k8s.io/csi-translation-lib v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.15-k3s1
k8s.io/csi-translation-lib k8s.io/csi-translation-lib
k8s.io/csi-translation-lib/plugins k8s.io/csi-translation-lib/plugins
# k8s.io/gengo v0.0.0-20201113003025-83324d819ded # k8s.io/gengo v0.0.0-20201113003025-83324d819ded
...@@ -2039,7 +2039,7 @@ k8s.io/heapster/metrics/api/v1/types ...@@ -2039,7 +2039,7 @@ k8s.io/heapster/metrics/api/v1/types
k8s.io/klog k8s.io/klog
# k8s.io/klog/v2 v2.4.0 # k8s.io/klog/v2 v2.4.0
k8s.io/klog/v2 k8s.io/klog/v2
# k8s.io/kube-aggregator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.14-k3s1 # k8s.io/kube-aggregator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.15-k3s1
k8s.io/kube-aggregator/pkg/apis/apiregistration k8s.io/kube-aggregator/pkg/apis/apiregistration
k8s.io/kube-aggregator/pkg/apis/apiregistration/install k8s.io/kube-aggregator/pkg/apis/apiregistration/install
k8s.io/kube-aggregator/pkg/apis/apiregistration/v1 k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
...@@ -2067,7 +2067,7 @@ k8s.io/kube-aggregator/pkg/controllers/status ...@@ -2067,7 +2067,7 @@ k8s.io/kube-aggregator/pkg/controllers/status
k8s.io/kube-aggregator/pkg/registry/apiservice k8s.io/kube-aggregator/pkg/registry/apiservice
k8s.io/kube-aggregator/pkg/registry/apiservice/etcd k8s.io/kube-aggregator/pkg/registry/apiservice/etcd
k8s.io/kube-aggregator/pkg/registry/apiservice/rest 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.14-k3s1 # k8s.io/kube-controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.15-k3s1
k8s.io/kube-controller-manager/config/v1alpha1 k8s.io/kube-controller-manager/config/v1alpha1
# k8s.io/kube-openapi v0.0.0-20211110013926-83f114cd0513 # k8s.io/kube-openapi v0.0.0-20211110013926-83f114cd0513
k8s.io/kube-openapi/pkg/aggregator k8s.io/kube-openapi/pkg/aggregator
...@@ -2083,13 +2083,13 @@ k8s.io/kube-openapi/pkg/validation/spec ...@@ -2083,13 +2083,13 @@ k8s.io/kube-openapi/pkg/validation/spec
k8s.io/kube-openapi/pkg/validation/strfmt k8s.io/kube-openapi/pkg/validation/strfmt
k8s.io/kube-openapi/pkg/validation/strfmt/bson k8s.io/kube-openapi/pkg/validation/strfmt/bson
k8s.io/kube-openapi/pkg/validation/validate 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.14-k3s1 # k8s.io/kube-proxy v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.15-k3s1
k8s.io/kube-proxy/config/v1alpha1 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.14-k3s1 # k8s.io/kube-scheduler v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.15-k3s1
k8s.io/kube-scheduler/config/v1 k8s.io/kube-scheduler/config/v1
k8s.io/kube-scheduler/config/v1beta1 k8s.io/kube-scheduler/config/v1beta1
k8s.io/kube-scheduler/extender/v1 k8s.io/kube-scheduler/extender/v1
# k8s.io/kubectl v0.20.14 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.14-k3s1 # k8s.io/kubectl v0.20.15 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.15-k3s1
## explicit ## explicit
k8s.io/kubectl/pkg/apps k8s.io/kubectl/pkg/apps
k8s.io/kubectl/pkg/cmd k8s.io/kubectl/pkg/cmd
...@@ -2167,7 +2167,7 @@ k8s.io/kubectl/pkg/util/storage ...@@ -2167,7 +2167,7 @@ k8s.io/kubectl/pkg/util/storage
k8s.io/kubectl/pkg/util/templates k8s.io/kubectl/pkg/util/templates
k8s.io/kubectl/pkg/util/term k8s.io/kubectl/pkg/util/term
k8s.io/kubectl/pkg/validation k8s.io/kubectl/pkg/validation
# k8s.io/kubelet v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.14-k3s1 # k8s.io/kubelet v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.15-k3s1
k8s.io/kubelet/config/v1alpha1 k8s.io/kubelet/config/v1alpha1
k8s.io/kubelet/config/v1beta1 k8s.io/kubelet/config/v1beta1
k8s.io/kubelet/pkg/apis/credentialprovider k8s.io/kubelet/pkg/apis/credentialprovider
...@@ -2178,7 +2178,7 @@ k8s.io/kubelet/pkg/apis/pluginregistration/v1 ...@@ -2178,7 +2178,7 @@ k8s.io/kubelet/pkg/apis/pluginregistration/v1
k8s.io/kubelet/pkg/apis/podresources/v1 k8s.io/kubelet/pkg/apis/podresources/v1
k8s.io/kubelet/pkg/apis/podresources/v1alpha1 k8s.io/kubelet/pkg/apis/podresources/v1alpha1
k8s.io/kubelet/pkg/apis/stats/v1alpha1 k8s.io/kubelet/pkg/apis/stats/v1alpha1
# k8s.io/kubernetes v1.20.14 => github.com/k3s-io/kubernetes v1.20.14-k3s1 # k8s.io/kubernetes v1.20.15 => github.com/k3s-io/kubernetes v1.20.15-k3s1
## explicit ## explicit
k8s.io/kubernetes/cmd/kube-apiserver/app k8s.io/kubernetes/cmd/kube-apiserver/app
k8s.io/kubernetes/cmd/kube-apiserver/app/options k8s.io/kubernetes/cmd/kube-apiserver/app/options
...@@ -2898,7 +2898,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph ...@@ -2898,7 +2898,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/internal/linear
k8s.io/kubernetes/third_party/forked/gonum/graph/simple k8s.io/kubernetes/third_party/forked/gonum/graph/simple
k8s.io/kubernetes/third_party/forked/gonum/graph/traverse 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.14-k3s1 # k8s.io/legacy-cloud-providers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.15-k3s1
k8s.io/legacy-cloud-providers/aws k8s.io/legacy-cloud-providers/aws
k8s.io/legacy-cloud-providers/azure k8s.io/legacy-cloud-providers/azure
k8s.io/legacy-cloud-providers/azure/auth k8s.io/legacy-cloud-providers/azure/auth
...@@ -2940,7 +2940,7 @@ k8s.io/legacy-cloud-providers/openstack ...@@ -2940,7 +2940,7 @@ k8s.io/legacy-cloud-providers/openstack
k8s.io/legacy-cloud-providers/vsphere k8s.io/legacy-cloud-providers/vsphere
k8s.io/legacy-cloud-providers/vsphere/vclib k8s.io/legacy-cloud-providers/vsphere/vclib
k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers 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.14-k3s1 # k8s.io/metrics v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.15-k3s1
k8s.io/metrics/pkg/apis/custom_metrics k8s.io/metrics/pkg/apis/custom_metrics
k8s.io/metrics/pkg/apis/custom_metrics/v1beta1 k8s.io/metrics/pkg/apis/custom_metrics/v1beta1
k8s.io/metrics/pkg/apis/custom_metrics/v1beta2 k8s.io/metrics/pkg/apis/custom_metrics/v1beta2
...@@ -2956,7 +2956,7 @@ k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1 ...@@ -2956,7 +2956,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
k8s.io/metrics/pkg/client/custom_metrics/scheme k8s.io/metrics/pkg/client/custom_metrics/scheme
k8s.io/metrics/pkg/client/external_metrics 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.14-k3s1 # k8s.io/mount-utils v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.15-k3s1
k8s.io/mount-utils k8s.io/mount-utils
# k8s.io/utils v0.0.0-20201110183641-67b214c5f920 # k8s.io/utils v0.0.0-20201110183641-67b214c5f920
## explicit ## explicit
...@@ -3044,32 +3044,32 @@ sigs.k8s.io/yaml ...@@ -3044,32 +3044,32 @@ sigs.k8s.io/yaml
# google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 # google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63
# google.golang.org/grpc => google.golang.org/grpc v1.27.1 # 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 # 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.14-k3s1 # k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.20.15-k3s1
# k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.14-k3s1 # k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.20.15-k3s1
# k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.14-k3s1 # k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.20.15-k3s1
# k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.14-k3s1 # k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.20.15-k3s1
# k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.14-k3s1 # k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.20.15-k3s1
# k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.14-k3s1 # k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.20.15-k3s1
# k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.14-k3s1 # k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.20.15-k3s1
# k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.14-k3s1 # k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.20.15-k3s1
# k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.14-k3s1 # k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.20.15-k3s1
# k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.14-k3s1 # k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.20.15-k3s1
# k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.14-k3s1 # k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.20.15-k3s1
# k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.14-k3s1 # k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.20.15-k3s1
# k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.14-k3s1 # k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.20.15-k3s1
# k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.14-k3s1 # k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.20.15-k3s1
# k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.14-k3s1 # k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.20.15-k3s1
# k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.14-k3s1 # k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.20.15-k3s1
# k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.14-k3s1 # k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.20.15-k3s1
# k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.14-k3s1 # k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.20.15-k3s1
# k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.14-k3s1 # k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.20.15-k3s1
# k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.14-k3s1 # k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.20.15-k3s1
# k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.14-k3s1 # k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.20.15-k3s1
# k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.14-k3s1 # k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.20.15-k3s1
# k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.14-k3s1 # k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.20.15-k3s1
# k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.14-k3s1 # k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.20.15-k3s1
# k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.14-k3s1 # k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.20.15-k3s1
# k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.14-k3s1 # k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.20.15-k3s1
# k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.14-k3s1 # k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.20.15-k3s1
# k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.14-k3s1 # k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.20.15-k3s1
# mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34 # mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment