Update k8s dependencies to v1.21.0

This commit is contained in:
Ciprian Hacman 2021-04-09 08:01:01 +03:00
parent 6f302f0ea7
commit 676f442c72
22 changed files with 311 additions and 209 deletions

68
go.mod
View File

@ -2,36 +2,36 @@ module k8s.io/kops
go 1.16 go 1.16
// Version kubernetes-1.21.0-rc.0 => tag v0.21.0-rc.0 // Version kubernetes-1.21.0 => tag v0.21.0
// This should match hack/go.mod // This should match hack/go.mod
replace k8s.io/code-generator => k8s.io/code-generator v0.21.0-rc.0 replace k8s.io/code-generator => k8s.io/code-generator v0.21.0
replace ( replace (
k8s.io/api => k8s.io/api v0.21.0-rc.0 k8s.io/api => k8s.io/api v0.21.0
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0-rc.0 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0-rc.0 k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
k8s.io/apiserver => k8s.io/apiserver v0.21.0-rc.0 k8s.io/apiserver => k8s.io/apiserver v0.21.0
k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0-rc.0 k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0
k8s.io/client-go => k8s.io/client-go v0.21.0-rc.0 k8s.io/client-go => k8s.io/client-go v0.21.0
k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0-rc.0 k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0-rc.0 k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0
k8s.io/component-base => k8s.io/component-base v0.21.0-rc.0 k8s.io/component-base => k8s.io/component-base v0.21.0
k8s.io/component-helpers => k8s.io/component-helpers v0.21.0-rc.0 k8s.io/component-helpers => k8s.io/component-helpers v0.21.0
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0-rc.0 k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
k8s.io/cri-api => k8s.io/cri-api v0.21.0-rc.0 k8s.io/cri-api => k8s.io/cri-api v0.21.0
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0-rc.0 k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0-rc.0 k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0-rc.0 k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0
k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0-rc.0 k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0-rc.0 k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0
k8s.io/kubectl => k8s.io/kubectl v0.21.0-rc.0 k8s.io/kubectl => k8s.io/kubectl v0.21.0
k8s.io/kubelet => k8s.io/kubelet v0.21.0-rc.0 k8s.io/kubelet => k8s.io/kubelet v0.21.0
k8s.io/kubernetes => k8s.io/kubernetes v1.21.0-rc.0 k8s.io/kubernetes => k8s.io/kubernetes v1.21.0
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0-rc.0 k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0
k8s.io/metrics => k8s.io/metrics v0.21.0-rc.0 k8s.io/metrics => k8s.io/metrics v0.21.0
k8s.io/mount-utils => k8s.io/mount-utils v0.21.0-rc.0 k8s.io/mount-utils => k8s.io/mount-utils v0.21.0
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0-rc.0 k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0
) )
require ( require (
@ -84,18 +84,18 @@ require (
gopkg.in/inf.v0 v0.9.1 gopkg.in/inf.v0 v0.9.1
gopkg.in/square/go-jose.v2 v2.5.1 gopkg.in/square/go-jose.v2 v2.5.1
helm.sh/helm/v3 v3.5.1 helm.sh/helm/v3 v3.5.1
k8s.io/api v0.21.0-rc.0 k8s.io/api v0.21.0
k8s.io/apimachinery v0.21.0-rc.0 k8s.io/apimachinery v0.21.0
k8s.io/cli-runtime v0.21.0-rc.0 k8s.io/cli-runtime v0.21.0
k8s.io/client-go v0.21.0-rc.0 k8s.io/client-go v0.21.0
k8s.io/cloud-provider-openstack v1.20.2 k8s.io/cloud-provider-openstack v1.20.2
k8s.io/component-base v0.21.0-rc.0 k8s.io/component-base v0.21.0
k8s.io/gengo v0.0.0-20210203185629-de9496dff47b k8s.io/gengo v0.0.0-20210203185629-de9496dff47b
k8s.io/klog/v2 v2.8.0 k8s.io/klog/v2 v2.8.0
k8s.io/kubectl v0.21.0-rc.0 k8s.io/kubectl v0.21.0
k8s.io/legacy-cloud-providers v0.21.0-rc.0 k8s.io/legacy-cloud-providers v0.21.0
k8s.io/utils v0.0.0-20210305010621-2afb4311ab10 k8s.io/utils v0.0.0-20210305010621-2afb4311ab10
rsc.io/letsencrypt v0.0.3 // indirect rsc.io/letsencrypt v0.0.3 // indirect
sigs.k8s.io/controller-runtime v0.8.2-0.20210311152821-b125a18163e1 sigs.k8s.io/controller-runtime v0.9.0-alpha.1
sigs.k8s.io/yaml v1.2.0 sigs.k8s.io/yaml v1.2.0
) )

74
go.sum
View File

@ -1723,30 +1723,30 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
k8s.io/api v0.21.0-rc.0 h1:t/kW96KdNJNamYNqxaxRirahK+FaWJQ6BJPbXm5Jb+o= k8s.io/api v0.21.0 h1:gu5iGF4V6tfVCQ/R+8Hc0h7H1JuEhzyEi9S4R5LM8+Y=
k8s.io/api v0.21.0-rc.0/go.mod h1:Dkc/ZauWJrgZhjOjeBgW89xZQiTBJA2RaBKYHXPsi2Y= k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU=
k8s.io/apiextensions-apiserver v0.21.0-rc.0 h1:gxeak4PvTBhuiZagZRFv9WyNnAdG39/VCmI9XTwVCRk= k8s.io/apiextensions-apiserver v0.21.0 h1:Nd4uBuweg6ImzbxkC1W7xUNZcCV/8Vt10iTdTIVF3hw=
k8s.io/apiextensions-apiserver v0.21.0-rc.0/go.mod h1:ItIoMBJU1gy93Qwr/B2699r4b0VmZqAOU+15BvozxMY= k8s.io/apiextensions-apiserver v0.21.0/go.mod h1:gsQGNtGkc/YoDG9loKI0V+oLZM4ljRPjc/sql5tmvzc=
k8s.io/apimachinery v0.21.0-rc.0 h1:m9dyzHb8QZAHOZKIz2SiabSif1oLsfgrnwiago/9xJA= k8s.io/apimachinery v0.21.0 h1:3Fx+41if+IRavNcKOz09FwEXDBG6ORh6iMsTSelhkMA=
k8s.io/apimachinery v0.21.0-rc.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
k8s.io/apiserver v0.21.0-rc.0/go.mod h1:QlW7+1CZTZtAcKvJ34/n4DIb8sC93FeQpkd1KSU+Sok= k8s.io/apiserver v0.21.0/go.mod h1:w2YSn4/WIwYuxG5zJmcqtRdtqgW/J2JRgFAqps3bBpg=
k8s.io/cli-runtime v0.21.0-rc.0 h1:M2cLtWR/LvuSSK8uhdTppcjyd/tqi3Dz5ZiOVfrhDHE= k8s.io/cli-runtime v0.21.0 h1:/V2Kkxtf6x5NI2z+Sd/mIrq4FQyQ8jzZAUD6N5RnN7Y=
k8s.io/cli-runtime v0.21.0-rc.0/go.mod h1:Gp9Njd5Z9IayPHKL8AKVVMrdzHrMHN+WnGMHYC7Lsds= k8s.io/cli-runtime v0.21.0/go.mod h1:XoaHP93mGPF37MkLbjGVYqg3S1MnsFdKtiA/RZzzxOo=
k8s.io/client-go v0.21.0-rc.0 h1:lsPZHT1ZniXJcwg2udlaTOhAT8wf7BE0rn9Vj0+LWMA= k8s.io/client-go v0.21.0 h1:n0zzzJsAQmJngpC0IhgFcApZyoGXPrDIAD601HD09ag=
k8s.io/client-go v0.21.0-rc.0/go.mod h1:zU5HY/bSOKH3YOqoge9nFvICgrpeSdJu8DQ4fkjKIZk= k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA=
k8s.io/cloud-provider v0.21.0-rc.0 h1:rQU/7MbH0P1eNcr+NinAU7j/Cwn59bt1DLgjUHti4m0= k8s.io/cloud-provider v0.21.0 h1:NSTS+czpv6LQAaIpY/VUghsT4oj62hYmQPErkDKTzKU=
k8s.io/cloud-provider v0.21.0-rc.0/go.mod h1:dXTEXZuesbZ0g2tXButYQlr5mVnQ6lmWGJyODVXKFTY= k8s.io/cloud-provider v0.21.0/go.mod h1:z17TQgu3JgUFjcgby8sj5X86YdVK5Pbt+jm/eYMZU9M=
k8s.io/cloud-provider-openstack v1.20.2 h1:gQpJQyU40nNjghgtF2WPTqdjcOw1O7OWYZJ9m1Hlq1c= k8s.io/cloud-provider-openstack v1.20.2 h1:gQpJQyU40nNjghgtF2WPTqdjcOw1O7OWYZJ9m1Hlq1c=
k8s.io/cloud-provider-openstack v1.20.2/go.mod h1:+ITp4mYAod+/IiQCzYKz92+Ns9VrYkkWdBmYVWSGwnI= k8s.io/cloud-provider-openstack v1.20.2/go.mod h1:+ITp4mYAod+/IiQCzYKz92+Ns9VrYkkWdBmYVWSGwnI=
k8s.io/cluster-bootstrap v0.21.0-rc.0/go.mod h1:lsAFz54QLO/Eg1o2FmI9EreB+nEpY8KWiXXCpyhjnsQ= k8s.io/cluster-bootstrap v0.21.0/go.mod h1:rs7i1JpBCa56YNmnYxFJuoUghIwpMzDidY8ZmqiRnrQ=
k8s.io/code-generator v0.21.0-rc.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= k8s.io/code-generator v0.21.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q=
k8s.io/component-base v0.21.0-rc.0 h1:8YgFPDsIhRx7zCOxikZn77nYRnwxrc9aMiuQDJtK1+g= k8s.io/component-base v0.21.0 h1:tLLGp4BBjQaCpS/KiuWh7m2xqvAdsxLm4ATxHSe5Zpg=
k8s.io/component-base v0.21.0-rc.0/go.mod h1:XlP0bM7QJFWRGZYPc5NmphkvsYQ+o7804HWH3GTGjDY= k8s.io/component-base v0.21.0/go.mod h1:qvtjz6X0USWXbgmbfXR+Agik4RZ3jv2Bgr5QnZzdPYw=
k8s.io/component-helpers v0.21.0-rc.0/go.mod h1:A8RfzdPEZoysfI5C0RExdjy7Zy/RZET3tcUmt7BMWdc= k8s.io/component-helpers v0.21.0/go.mod h1:tezqefP7lxfvJyR+0a+6QtVrkZ/wIkyMLK4WcQ3Cj8U=
k8s.io/controller-manager v0.21.0-rc.0/go.mod h1:K9485cOofmSjHGwNod14iRhLjNU65/AtG5Ucygyc4Uw= k8s.io/controller-manager v0.21.0/go.mod h1:Ohy0GRNRKPVjB8C8G+dV+4aPn26m8HYUI6ejloUBvUA=
k8s.io/cri-api v0.21.0-rc.0/go.mod h1:nJbXlTpXwYCYuGMR7v3PQb1Du4WOGj2I9085xMVjr3I= k8s.io/cri-api v0.21.0/go.mod h1:nJbXlTpXwYCYuGMR7v3PQb1Du4WOGj2I9085xMVjr3I=
k8s.io/csi-translation-lib v0.21.0-rc.0 h1:VuJMbPbNKD5Tzm9eBR4cL4qmFV9n7Y4McsfCvJFB2XQ= k8s.io/csi-translation-lib v0.21.0 h1:kzwraa2eenvtMuOAe+xSQgIgG0G88pocorYP8CSitRY=
k8s.io/csi-translation-lib v0.21.0-rc.0/go.mod h1:oG3Gth9/qb2RPjhoqJIZSPTqNqDt/rZFSLShuntPb90= k8s.io/csi-translation-lib v0.21.0/go.mod h1:edq+UMpgqEx3roTuGF/03uIuSOsI986jtu65+ytLlkA=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
k8s.io/gengo v0.0.0-20210203185629-de9496dff47b h1:bAU8IlrMA6KbP0dIg/sVSJn95pDCUHDZx0DpTGrf2v4= k8s.io/gengo v0.0.0-20210203185629-de9496dff47b h1:bAU8IlrMA6KbP0dIg/sVSJn95pDCUHDZx0DpTGrf2v4=
@ -1761,22 +1761,22 @@ k8s.io/klog/v2 v2.3.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts= k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts=
k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
k8s.io/kube-aggregator v0.21.0-rc.0/go.mod h1:M+whOmsAeQf8ObJ0/eO9Af1Dz2UQEB9OW9BWmt9b2sU= k8s.io/kube-aggregator v0.21.0/go.mod h1:sIaa9L4QCBo9gjPyoGJns4cBjYVLq3s49FxF7m/1A0A=
k8s.io/kube-controller-manager v0.21.0-rc.0/go.mod h1:O8GIPp+/9jyv9e+hSs6IdDddbtgnrl1iy8M3AhtBmU8= k8s.io/kube-controller-manager v0.21.0/go.mod h1:QGJ1P7eU4FQq8evpCHN5e4QwPpcr2sbWFJBO/DKBUrw=
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0=
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
k8s.io/kube-proxy v0.21.0-rc.0/go.mod h1:RsunWkTxSTFUwa0vPSmdZ9KpMtkX8EoqCUa3U6NzMKg= k8s.io/kube-proxy v0.21.0/go.mod h1:36jW3e6+5iQql9tHrLjVrmwpPsbhTywoI6OCFL7MWRs=
k8s.io/kube-scheduler v0.21.0-rc.0/go.mod h1:B0s6QYIGM5wQ0mRBgbHFE2elYFirabCNKF42+bZUfOI= k8s.io/kube-scheduler v0.21.0/go.mod h1:wf1oi1NHSsFYfG7lKwxJVmnQNBnhL9vOMXztcKQu5IU=
k8s.io/kubectl v0.21.0-rc.0 h1:UDHfpjRunMTqSyRR8GC7ywZ1ylmM2CpXkqRPqCPTXwk= k8s.io/kubectl v0.21.0 h1:WZXlnG/yjcE4LWO2g6ULjFxtzK6H1TKzsfaBFuVIhNg=
k8s.io/kubectl v0.21.0-rc.0/go.mod h1:eOKzb5p2/9pNzt2TQpVSzfB/41W6ZMm0JbJEIvyH08U= k8s.io/kubectl v0.21.0/go.mod h1:EU37NukZRXn1TpAkMUoy8Z/B2u6wjHDS4aInsDzVvks=
k8s.io/kubelet v0.21.0-rc.0/go.mod h1:wNcXzTVpecPLZq0/4Ns21YMDI8ni9Sr+ifCaQom+z+8= k8s.io/kubelet v0.21.0/go.mod h1:G5ZxMTVev9t4bhmsSxDAWhH6wXDYEVHVVFyYsw4laR4=
k8s.io/kubernetes v1.21.0-rc.0/go.mod h1:Yx6XZ8zalyqEk7but+j4+5SvLzdyH1eeqZ4cwO+5dD4= k8s.io/kubernetes v1.21.0/go.mod h1:Yx6XZ8zalyqEk7but+j4+5SvLzdyH1eeqZ4cwO+5dD4=
k8s.io/legacy-cloud-providers v0.21.0-rc.0 h1:ekfZVKWdpXk0ztv5WQNQ5hRmNHYKlUuA9DgPL0pZi74= k8s.io/legacy-cloud-providers v0.21.0 h1:iWf5xaX9yvYT5mkz8UB96UtISQ5IkrWeuMPMhRp01ZY=
k8s.io/legacy-cloud-providers v0.21.0-rc.0/go.mod h1:C9CAgvDYih3dfSF0v+ahAVD8SB4YDfOmnIztTEvng5Y= k8s.io/legacy-cloud-providers v0.21.0/go.mod h1:bNxo7gDg+PGkBmT/MFZswLTWdSWK9kAlS1s8DJca5q4=
k8s.io/metrics v0.21.0-rc.0/go.mod h1:iCF67TNbrhChr/eb99uHt0H1hE7Rd1EC2Ic/yknzIE4= k8s.io/metrics v0.21.0/go.mod h1:L3Ji9EGPP1YBbfm9sPfEXSpnj8i24bfQbAFAsW0NueQ=
k8s.io/mount-utils v0.21.0-rc.0/go.mod h1:dwXbIPxKtTjrBEaX1aK/CMEf1KZ8GzMHpe3NEBfdFXI= k8s.io/mount-utils v0.21.0/go.mod h1:dwXbIPxKtTjrBEaX1aK/CMEf1KZ8GzMHpe3NEBfdFXI=
k8s.io/sample-apiserver v0.21.0-rc.0/go.mod h1:5NZT5kCLZK2M+T7ZZ3UIVea85GPIbydF1QR2oCDyxmw= k8s.io/sample-apiserver v0.21.0/go.mod h1:yMffYq14yQZtuVPVBGaBJ+3Scb2xHT6QeqFfk3v+AEY=
k8s.io/system-validators v1.4.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= k8s.io/system-validators v1.4.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q=
k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
@ -1797,8 +1797,8 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E= sigs.k8s.io/controller-runtime v0.6.2/go.mod h1:vhcq/rlnENJ09SIRp3EveTaZ0yqH526hjf9iJdbUJ/E=
sigs.k8s.io/controller-runtime v0.8.2-0.20210311152821-b125a18163e1 h1:eep4QWCuzjXLzR36DIcXm/6wPqQpbWHdo3vEYMAo0nc= sigs.k8s.io/controller-runtime v0.9.0-alpha.1 h1:yIYTxDHQfcrYWO1hjZvHhjkGY1fYFo1k07FzlTono4E=
sigs.k8s.io/controller-runtime v0.8.2-0.20210311152821-b125a18163e1/go.mod h1:BARxVvgj+8Ihw9modUvYh7/OJmjxuBtLK8P36jdf7rY= sigs.k8s.io/controller-runtime v0.9.0-alpha.1/go.mod h1:BARxVvgj+8Ihw9modUvYh7/OJmjxuBtLK8P36jdf7rY=
sigs.k8s.io/controller-tools v0.2.9-0.20200414181213-645d44dca7c0/go.mod h1:YKE/iHvcKITCljdnlqHYe+kAt7ZldvtAwUzQff0k1T0= sigs.k8s.io/controller-tools v0.2.9-0.20200414181213-645d44dca7c0/go.mod h1:YKE/iHvcKITCljdnlqHYe+kAt7ZldvtAwUzQff0k1T0=
sigs.k8s.io/kustomize/api v0.8.5 h1:bfCXGXDAbFbb/Jv5AhMj2BB8a5VAJuuQ5/KU69WtDjQ= sigs.k8s.io/kustomize/api v0.8.5 h1:bfCXGXDAbFbb/Jv5AhMj2BB8a5VAJuuQ5/KU69WtDjQ=
sigs.k8s.io/kustomize/api v0.8.5/go.mod h1:M377apnKT5ZHJS++6H4rQoCHmWtt6qTpp3mbe7p6OLY= sigs.k8s.io/kustomize/api v0.8.5/go.mod h1:M377apnKT5ZHJS++6H4rQoCHmWtt6qTpp3mbe7p6OLY=

View File

@ -8,6 +8,6 @@ require (
github.com/client9/misspell v0.3.4 github.com/client9/misspell v0.3.4
golang.org/x/tools v0.1.0 golang.org/x/tools v0.1.0
honnef.co/go/tools v0.1.3 honnef.co/go/tools v0.1.3
k8s.io/code-generator v0.21.0-beta.1 k8s.io/code-generator v0.21.0
sigs.k8s.io/controller-tools v0.5.0 sigs.k8s.io/controller-tools v0.5.0
) )

View File

@ -680,8 +680,8 @@ k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRp
k8s.io/apiserver v0.20.2/go.mod h1:2nKd93WyMhZx4Hp3RfgH2K5PhwyTrprrkWYnI7id7jA= k8s.io/apiserver v0.20.2/go.mod h1:2nKd93WyMhZx4Hp3RfgH2K5PhwyTrprrkWYnI7id7jA=
k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE= k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE=
k8s.io/code-generator v0.20.2/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg= k8s.io/code-generator v0.20.2/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg=
k8s.io/code-generator v0.21.0-beta.1 h1:cy3+b1Mc0L6tliqOe1pr90peyH2hhrsAmt2CqNIpr/o= k8s.io/code-generator v0.21.0 h1:LGWJOvkbBNpuRBqBRXUjzfvymUh7F/iR2KDpwLnqCM4=
k8s.io/code-generator v0.21.0-beta.1/go.mod h1:IpCUojpiKp25KNB3/UbEeElznqpQUMvhAOUoC7AbISY= k8s.io/code-generator v0.21.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q=
k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0= k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
@ -690,8 +690,8 @@ k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAE
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.5.0 h1:8mOnjf1RmUPW6KRqQCfYSZq/K20Unmp3IhuZUhxl8KI= k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts=
k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0=
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
@ -703,8 +703,9 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
sigs.k8s.io/controller-tools v0.5.0 h1:3u2RCwOlp0cjCALAigpOcbAf50pE+kHSdueUosrC/AE= sigs.k8s.io/controller-tools v0.5.0 h1:3u2RCwOlp0cjCALAigpOcbAf50pE+kHSdueUosrC/AE=
sigs.k8s.io/controller-tools v0.5.0/go.mod h1:JTsstrMpxs+9BUj6eGuAaEb6SDSPTeVtUyp0jmnAM/I= sigs.k8s.io/controller-tools v0.5.0/go.mod h1:JTsstrMpxs+9BUj6eGuAaEb6SDSPTeVtUyp0jmnAM/I=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2 h1:YHQV7Dajm86OuqnIR6zAelnDWBRjo+YhYV9PmGrh1s8=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/structured-merge-diff/v4 v4.1.0 h1:C4r9BgJ98vrKnnVCjwCSXcWjWe0NKcUQkmzDXZXGwH8=
sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=

View File

@ -2,7 +2,10 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library( go_library(
name = "go_default_library", name = "go_default_library",
srcs = ["plugins.go"], srcs = [
"plugins.go",
"plugins_providers.go",
],
importmap = "k8s.io/kops/vendor/k8s.io/client-go/plugin/pkg/client/auth", importmap = "k8s.io/kops/vendor/k8s.io/client-go/plugin/pkg/client/auth",
importpath = "k8s.io/client-go/plugin/pkg/client/auth", importpath = "k8s.io/client-go/plugin/pkg/client/auth",
visibility = ["//visibility:public"], visibility = ["//visibility:public"],

View File

@ -17,9 +17,6 @@ limitations under the License.
package auth package auth
import ( import (
// Initialize all known client auth plugins. // Initialize common client auth plugins.
_ "k8s.io/client-go/plugin/pkg/client/auth/azure"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc" _ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
_ "k8s.io/client-go/plugin/pkg/client/auth/openstack"
) )

View File

@ -0,0 +1,26 @@
// +build !providerless
/*
Copyright 2016 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package auth
import (
// Initialize client auth plugins for cloud providers.
_ "k8s.io/client-go/plugin/pkg/client/auth/azure"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
_ "k8s.io/client-go/plugin/pkg/client/auth/openstack"
)

24
vendor/k8s.io/cloud-provider/go.mod generated vendored
View File

@ -9,21 +9,21 @@ require (
github.com/spf13/cobra v1.1.1 github.com/spf13/cobra v1.1.1
github.com/spf13/pflag v1.0.5 github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.6.1 github.com/stretchr/testify v1.6.1
k8s.io/api v0.21.0-rc.0 k8s.io/api v0.21.0
k8s.io/apimachinery v0.21.0-rc.0 k8s.io/apimachinery v0.21.0
k8s.io/apiserver v0.21.0-rc.0 k8s.io/apiserver v0.21.0
k8s.io/client-go v0.21.0-rc.0 k8s.io/client-go v0.21.0
k8s.io/component-base v0.21.0-rc.0 k8s.io/component-base v0.21.0
k8s.io/controller-manager v0.21.0-rc.0 k8s.io/controller-manager v0.21.0
k8s.io/klog/v2 v2.8.0 k8s.io/klog/v2 v2.8.0
k8s.io/utils v0.0.0-20201110183641-67b214c5f920 k8s.io/utils v0.0.0-20201110183641-67b214c5f920
) )
replace ( replace (
k8s.io/api => k8s.io/api v0.21.0-rc.0 k8s.io/api => k8s.io/api v0.21.0
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0-rc.0 k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
k8s.io/apiserver => k8s.io/apiserver v0.21.0-rc.0 k8s.io/apiserver => k8s.io/apiserver v0.21.0
k8s.io/client-go => k8s.io/client-go v0.21.0-rc.0 k8s.io/client-go => k8s.io/client-go v0.21.0
k8s.io/component-base => k8s.io/component-base v0.21.0-rc.0 k8s.io/component-base => k8s.io/component-base v0.21.0
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0-rc.0 k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
) )

12
vendor/k8s.io/cloud-provider/go.sum generated vendored
View File

@ -668,12 +668,12 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
k8s.io/api v0.21.0-rc.0/go.mod h1:Dkc/ZauWJrgZhjOjeBgW89xZQiTBJA2RaBKYHXPsi2Y= k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU=
k8s.io/apimachinery v0.21.0-rc.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
k8s.io/apiserver v0.21.0-rc.0/go.mod h1:QlW7+1CZTZtAcKvJ34/n4DIb8sC93FeQpkd1KSU+Sok= k8s.io/apiserver v0.21.0/go.mod h1:w2YSn4/WIwYuxG5zJmcqtRdtqgW/J2JRgFAqps3bBpg=
k8s.io/client-go v0.21.0-rc.0/go.mod h1:zU5HY/bSOKH3YOqoge9nFvICgrpeSdJu8DQ4fkjKIZk= k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA=
k8s.io/component-base v0.21.0-rc.0/go.mod h1:XlP0bM7QJFWRGZYPc5NmphkvsYQ+o7804HWH3GTGjDY= k8s.io/component-base v0.21.0/go.mod h1:qvtjz6X0USWXbgmbfXR+Agik4RZ3jv2Bgr5QnZzdPYw=
k8s.io/controller-manager v0.21.0-rc.0/go.mod h1:K9485cOofmSjHGwNod14iRhLjNU65/AtG5Ucygyc4Uw= k8s.io/controller-manager v0.21.0/go.mod h1:Ohy0GRNRKPVjB8C8G+dV+4aPn26m8HYUI6ejloUBvUA=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts= k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts=

74
vendor/modules.txt generated vendored
View File

@ -946,7 +946,7 @@ helm.sh/helm/v3/pkg/helmpath
helm.sh/helm/v3/pkg/helmpath/xdg helm.sh/helm/v3/pkg/helmpath/xdg
helm.sh/helm/v3/pkg/plugin helm.sh/helm/v3/pkg/plugin
helm.sh/helm/v3/pkg/strvals helm.sh/helm/v3/pkg/strvals
# k8s.io/api v0.21.0-rc.0 => k8s.io/api v0.21.0-rc.0 # k8s.io/api v0.21.0 => k8s.io/api v0.21.0
## explicit ## explicit
k8s.io/api/admission/v1 k8s.io/api/admission/v1
k8s.io/api/admission/v1beta1 k8s.io/api/admission/v1beta1
@ -994,11 +994,11 @@ 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.21.0-beta.1 => k8s.io/apiextensions-apiserver v0.21.0-rc.0 # k8s.io/apiextensions-apiserver v0.21.0-beta.1 => k8s.io/apiextensions-apiserver v0.21.0
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1 k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1
# k8s.io/apimachinery v0.21.0-rc.0 => k8s.io/apimachinery v0.21.0-rc.0 # k8s.io/apimachinery v0.21.0 => k8s.io/apimachinery v0.21.0
## 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
@ -1055,12 +1055,12 @@ 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/cli-runtime v0.21.0-rc.0 => k8s.io/cli-runtime v0.21.0-rc.0 # k8s.io/cli-runtime v0.21.0 => k8s.io/cli-runtime v0.21.0
## explicit ## explicit
k8s.io/cli-runtime/pkg/genericclioptions k8s.io/cli-runtime/pkg/genericclioptions
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 v0.21.0-rc.0 => k8s.io/client-go v0.21.0-rc.0 # k8s.io/client-go v0.21.0 => k8s.io/client-go v0.21.0
## explicit ## explicit
k8s.io/client-go/applyconfigurations/admissionregistration/v1 k8s.io/client-go/applyconfigurations/admissionregistration/v1
k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1 k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1
@ -1344,7 +1344,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.21.0-rc.0 => k8s.io/cloud-provider v0.21.0-rc.0 # k8s.io/cloud-provider v0.21.0 => k8s.io/cloud-provider v0.21.0
k8s.io/cloud-provider k8s.io/cloud-provider
k8s.io/cloud-provider/node/helpers k8s.io/cloud-provider/node/helpers
k8s.io/cloud-provider/service/helpers k8s.io/cloud-provider/service/helpers
@ -1356,7 +1356,7 @@ k8s.io/cloud-provider/volume/helpers
k8s.io/cloud-provider-openstack/pkg/cloudprovider/providers/openstack/metrics k8s.io/cloud-provider-openstack/pkg/cloudprovider/providers/openstack/metrics
k8s.io/cloud-provider-openstack/pkg/util/errors k8s.io/cloud-provider-openstack/pkg/util/errors
k8s.io/cloud-provider-openstack/pkg/util/openstack k8s.io/cloud-provider-openstack/pkg/util/openstack
# k8s.io/component-base v0.21.0-rc.0 => k8s.io/component-base v0.21.0-rc.0 # k8s.io/component-base v0.21.0 => k8s.io/component-base v0.21.0
## explicit ## explicit
k8s.io/component-base/config k8s.io/component-base/config
k8s.io/component-base/config/v1alpha1 k8s.io/component-base/config/v1alpha1
@ -1364,7 +1364,7 @@ k8s.io/component-base/metrics
k8s.io/component-base/metrics/legacyregistry k8s.io/component-base/metrics/legacyregistry
k8s.io/component-base/metrics/prometheus/restclient k8s.io/component-base/metrics/prometheus/restclient
k8s.io/component-base/version k8s.io/component-base/version
# k8s.io/csi-translation-lib v0.21.0-rc.0 => k8s.io/csi-translation-lib v0.21.0-rc.0 # k8s.io/csi-translation-lib v0.21.0 => k8s.io/csi-translation-lib v0.21.0
k8s.io/csi-translation-lib/plugins k8s.io/csi-translation-lib/plugins
# k8s.io/gengo v0.0.0-20210203185629-de9496dff47b # k8s.io/gengo v0.0.0-20210203185629-de9496dff47b
## explicit ## explicit
@ -1382,7 +1382,7 @@ k8s.io/klog/v2/klogr
# k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 # k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7
k8s.io/kube-openapi/pkg/util/proto k8s.io/kube-openapi/pkg/util/proto
k8s.io/kube-openapi/pkg/util/proto/validation k8s.io/kube-openapi/pkg/util/proto/validation
# k8s.io/kubectl v0.21.0-rc.0 => k8s.io/kubectl v0.21.0-rc.0 # k8s.io/kubectl v0.21.0 => k8s.io/kubectl v0.21.0
## explicit ## explicit
k8s.io/kubectl/pkg/cmd/util k8s.io/kubectl/pkg/cmd/util
k8s.io/kubectl/pkg/cmd/util/editor k8s.io/kubectl/pkg/cmd/util/editor
@ -1398,7 +1398,7 @@ k8s.io/kubectl/pkg/util/openapi/validation
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/legacy-cloud-providers v0.21.0-rc.0 => k8s.io/legacy-cloud-providers v0.21.0-rc.0 # k8s.io/legacy-cloud-providers v0.21.0 => k8s.io/legacy-cloud-providers v0.21.0
## explicit ## explicit
k8s.io/legacy-cloud-providers/aws k8s.io/legacy-cloud-providers/aws
k8s.io/legacy-cloud-providers/gce k8s.io/legacy-cloud-providers/gce
@ -1416,12 +1416,13 @@ k8s.io/utils/pointer
k8s.io/utils/trace k8s.io/utils/trace
# rsc.io/letsencrypt v0.0.3 # rsc.io/letsencrypt v0.0.3
## explicit ## explicit
# sigs.k8s.io/controller-runtime v0.8.2-0.20210311152821-b125a18163e1 # sigs.k8s.io/controller-runtime v0.9.0-alpha.1
## explicit ## explicit
sigs.k8s.io/controller-runtime sigs.k8s.io/controller-runtime
sigs.k8s.io/controller-runtime/pkg/builder sigs.k8s.io/controller-runtime/pkg/builder
sigs.k8s.io/controller-runtime/pkg/cache sigs.k8s.io/controller-runtime/pkg/cache
sigs.k8s.io/controller-runtime/pkg/cache/internal sigs.k8s.io/controller-runtime/pkg/cache/internal
sigs.k8s.io/controller-runtime/pkg/certwatcher
sigs.k8s.io/controller-runtime/pkg/client sigs.k8s.io/controller-runtime/pkg/client
sigs.k8s.io/controller-runtime/pkg/client/apiutil sigs.k8s.io/controller-runtime/pkg/client/apiutil
sigs.k8s.io/controller-runtime/pkg/client/config sigs.k8s.io/controller-runtime/pkg/client/config
@ -1454,7 +1455,6 @@ sigs.k8s.io/controller-runtime/pkg/source/internal
sigs.k8s.io/controller-runtime/pkg/webhook sigs.k8s.io/controller-runtime/pkg/webhook
sigs.k8s.io/controller-runtime/pkg/webhook/admission sigs.k8s.io/controller-runtime/pkg/webhook/admission
sigs.k8s.io/controller-runtime/pkg/webhook/conversion sigs.k8s.io/controller-runtime/pkg/webhook/conversion
sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher
sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics
# sigs.k8s.io/kustomize/api v0.8.5 # sigs.k8s.io/kustomize/api v0.8.5
sigs.k8s.io/kustomize/api/builtins sigs.k8s.io/kustomize/api/builtins
@ -1541,28 +1541,28 @@ sigs.k8s.io/structured-merge-diff/v4/value
# sigs.k8s.io/yaml v1.2.0 # sigs.k8s.io/yaml v1.2.0
## explicit ## explicit
sigs.k8s.io/yaml sigs.k8s.io/yaml
# k8s.io/code-generator => k8s.io/code-generator v0.21.0-rc.0 # k8s.io/code-generator => k8s.io/code-generator v0.21.0
# k8s.io/api => k8s.io/api v0.21.0-rc.0 # k8s.io/api => k8s.io/api v0.21.0
# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0-rc.0 # k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0
# k8s.io/apimachinery => k8s.io/apimachinery v0.21.0-rc.0 # k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
# k8s.io/apiserver => k8s.io/apiserver v0.21.0-rc.0 # k8s.io/apiserver => k8s.io/apiserver v0.21.0
# k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0-rc.0 # k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0
# k8s.io/client-go => k8s.io/client-go v0.21.0-rc.0 # k8s.io/client-go => k8s.io/client-go v0.21.0
# k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0-rc.0 # k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0
# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0-rc.0 # k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0
# k8s.io/component-base => k8s.io/component-base v0.21.0-rc.0 # k8s.io/component-base => k8s.io/component-base v0.21.0
# k8s.io/component-helpers => k8s.io/component-helpers v0.21.0-rc.0 # k8s.io/component-helpers => k8s.io/component-helpers v0.21.0
# k8s.io/controller-manager => k8s.io/controller-manager v0.21.0-rc.0 # k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
# k8s.io/cri-api => k8s.io/cri-api v0.21.0-rc.0 # k8s.io/cri-api => k8s.io/cri-api v0.21.0
# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0-rc.0 # k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0
# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0-rc.0 # k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0
# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0-rc.0 # k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0
# k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0-rc.0 # k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0
# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0-rc.0 # k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0
# k8s.io/kubectl => k8s.io/kubectl v0.21.0-rc.0 # k8s.io/kubectl => k8s.io/kubectl v0.21.0
# k8s.io/kubelet => k8s.io/kubelet v0.21.0-rc.0 # k8s.io/kubelet => k8s.io/kubelet v0.21.0
# k8s.io/kubernetes => k8s.io/kubernetes v1.21.0-rc.0 # k8s.io/kubernetes => k8s.io/kubernetes v1.21.0
# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0-rc.0 # k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0
# k8s.io/metrics => k8s.io/metrics v0.21.0-rc.0 # k8s.io/metrics => k8s.io/metrics v0.21.0
# k8s.io/mount-utils => k8s.io/mount-utils v0.21.0-rc.0 # k8s.io/mount-utils => k8s.io/mount-utils v0.21.0
# k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0-rc.0 # k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0

View File

@ -2,10 +2,13 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library( go_library(
name = "go_default_library", name = "go_default_library",
srcs = ["certwatcher.go"], srcs = [
importmap = "k8s.io/kops/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher", "certwatcher.go",
importpath = "sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher", "doc.go",
visibility = ["//vendor/sigs.k8s.io/controller-runtime/pkg/webhook:__subpackages__"], ],
importmap = "k8s.io/kops/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher",
importpath = "sigs.k8s.io/controller-runtime/pkg/certwatcher",
visibility = ["//visibility:public"],
deps = [ deps = [
"//vendor/github.com/fsnotify/fsnotify:go_default_library", "//vendor/github.com/fsnotify/fsnotify:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/internal/log:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/internal/log:go_default_library",

View File

@ -1,5 +1,5 @@
/* /*
Copyright 2019 The Kubernetes Authors. Copyright 2021 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -31,7 +31,7 @@ var log = logf.RuntimeLog.WithName("certwatcher")
// changes, it reads and parses both and calls an optional callback with the new // changes, it reads and parses both and calls an optional callback with the new
// certificate. // certificate.
type CertWatcher struct { type CertWatcher struct {
sync.Mutex sync.RWMutex
currentCert *tls.Certificate currentCert *tls.Certificate
watcher *fsnotify.Watcher watcher *fsnotify.Watcher
@ -64,8 +64,8 @@ func New(certPath, keyPath string) (*CertWatcher, error) {
// GetCertificate fetches the currently loaded certificate, which may be nil. // GetCertificate fetches the currently loaded certificate, which may be nil.
func (cw *CertWatcher) GetCertificate(_ *tls.ClientHelloInfo) (*tls.Certificate, error) { func (cw *CertWatcher) GetCertificate(_ *tls.ClientHelloInfo) (*tls.Certificate, error) {
cw.Lock() cw.RLock()
defer cw.Unlock() defer cw.RUnlock()
return cw.currentCert, nil return cw.currentCert, nil
} }

View File

@ -0,0 +1,23 @@
/*
Copyright 2021 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/*
Package certwatcher is a helper for reloading Certificates from disk to be used
with tls servers. It provides a helper func `GetCertificate` which can be
called from `tls.Config` and passed into your tls.Listener. For a detailed
example server view pkg/webhook/server.go.
*/
package certwatcher

View File

@ -26,6 +26,8 @@ import (
var enqueueLog = logf.RuntimeLog.WithName("eventhandler").WithName("EnqueueRequestForObject") var enqueueLog = logf.RuntimeLog.WithName("eventhandler").WithName("EnqueueRequestForObject")
type empty struct{}
var _ EventHandler = &EnqueueRequestForObject{} var _ EventHandler = &EnqueueRequestForObject{}
// EnqueueRequestForObject enqueues a Request containing the Name and Namespace of the object that is the source of the Event. // EnqueueRequestForObject enqueues a Request containing the Name and Namespace of the object that is the source of the Event.
@ -47,22 +49,18 @@ func (e *EnqueueRequestForObject) Create(evt event.CreateEvent, q workqueue.Rate
// Update implements EventHandler // Update implements EventHandler
func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { func (e *EnqueueRequestForObject) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
if evt.ObjectOld != nil {
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
Name: evt.ObjectOld.GetName(),
Namespace: evt.ObjectOld.GetNamespace(),
}})
} else {
enqueueLog.Error(nil, "UpdateEvent received with no old metadata", "event", evt)
}
if evt.ObjectNew != nil { if evt.ObjectNew != nil {
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{ q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
Name: evt.ObjectNew.GetName(), Name: evt.ObjectNew.GetName(),
Namespace: evt.ObjectNew.GetNamespace(), Namespace: evt.ObjectNew.GetNamespace(),
}}) }})
} else if evt.ObjectOld != nil {
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
Name: evt.ObjectOld.GetName(),
Namespace: evt.ObjectOld.GetNamespace(),
}})
} else { } else {
enqueueLog.Error(nil, "UpdateEvent received with no new metadata", "event", evt) enqueueLog.Error(nil, "UpdateEvent received with no metadata", "event", evt)
} }
} }

View File

@ -53,28 +53,36 @@ type enqueueRequestsFromMapFunc struct {
// Create implements EventHandler // Create implements EventHandler
func (e *enqueueRequestsFromMapFunc) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { func (e *enqueueRequestsFromMapFunc) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
e.mapAndEnqueue(q, evt.Object) reqs := map[reconcile.Request]empty{}
e.mapAndEnqueue(q, evt.Object, reqs)
} }
// Update implements EventHandler // Update implements EventHandler
func (e *enqueueRequestsFromMapFunc) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { func (e *enqueueRequestsFromMapFunc) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
e.mapAndEnqueue(q, evt.ObjectOld) reqs := map[reconcile.Request]empty{}
e.mapAndEnqueue(q, evt.ObjectNew) e.mapAndEnqueue(q, evt.ObjectOld, reqs)
e.mapAndEnqueue(q, evt.ObjectNew, reqs)
} }
// Delete implements EventHandler // Delete implements EventHandler
func (e *enqueueRequestsFromMapFunc) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { func (e *enqueueRequestsFromMapFunc) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
e.mapAndEnqueue(q, evt.Object) reqs := map[reconcile.Request]empty{}
e.mapAndEnqueue(q, evt.Object, reqs)
} }
// Generic implements EventHandler // Generic implements EventHandler
func (e *enqueueRequestsFromMapFunc) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { func (e *enqueueRequestsFromMapFunc) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
e.mapAndEnqueue(q, evt.Object) reqs := map[reconcile.Request]empty{}
e.mapAndEnqueue(q, evt.Object, reqs)
} }
func (e *enqueueRequestsFromMapFunc) mapAndEnqueue(q workqueue.RateLimitingInterface, object client.Object) { func (e *enqueueRequestsFromMapFunc) mapAndEnqueue(q workqueue.RateLimitingInterface, object client.Object, reqs map[reconcile.Request]empty) {
for _, req := range e.toRequests(object) { for _, req := range e.toRequests(object) {
q.Add(req) _, ok := reqs[req]
if !ok {
q.Add(req)
reqs[req] = empty{}
}
} }
} }

View File

@ -59,31 +59,37 @@ type EnqueueRequestForOwner struct {
// Create implements EventHandler // Create implements EventHandler
func (e *EnqueueRequestForOwner) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) { func (e *EnqueueRequestForOwner) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
for _, req := range e.getOwnerReconcileRequest(evt.Object) { reqs := map[reconcile.Request]empty{}
e.getOwnerReconcileRequest(evt.Object, reqs)
for req := range reqs {
q.Add(req) q.Add(req)
} }
} }
// Update implements EventHandler // Update implements EventHandler
func (e *EnqueueRequestForOwner) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) { func (e *EnqueueRequestForOwner) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
for _, req := range e.getOwnerReconcileRequest(evt.ObjectOld) { reqs := map[reconcile.Request]empty{}
q.Add(req) e.getOwnerReconcileRequest(evt.ObjectOld, reqs)
} e.getOwnerReconcileRequest(evt.ObjectNew, reqs)
for _, req := range e.getOwnerReconcileRequest(evt.ObjectNew) { for req := range reqs {
q.Add(req) q.Add(req)
} }
} }
// Delete implements EventHandler // Delete implements EventHandler
func (e *EnqueueRequestForOwner) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) { func (e *EnqueueRequestForOwner) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
for _, req := range e.getOwnerReconcileRequest(evt.Object) { reqs := map[reconcile.Request]empty{}
e.getOwnerReconcileRequest(evt.Object, reqs)
for req := range reqs {
q.Add(req) q.Add(req)
} }
} }
// Generic implements EventHandler // Generic implements EventHandler
func (e *EnqueueRequestForOwner) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) { func (e *EnqueueRequestForOwner) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
for _, req := range e.getOwnerReconcileRequest(evt.Object) { reqs := map[reconcile.Request]empty{}
e.getOwnerReconcileRequest(evt.Object, reqs)
for req := range reqs {
q.Add(req) q.Add(req)
} }
} }
@ -109,19 +115,18 @@ func (e *EnqueueRequestForOwner) parseOwnerTypeGroupKind(scheme *runtime.Scheme)
return nil return nil
} }
// getOwnerReconcileRequest looks at object and returns a slice of reconcile.Request to reconcile // getOwnerReconcileRequest looks at object and builds a map of reconcile.Request to reconcile
// owners of object that match e.OwnerType. // owners of object that match e.OwnerType.
func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object) []reconcile.Request { func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object, result map[reconcile.Request]empty) {
// Iterate through the OwnerReferences looking for a match on Group and Kind against what was requested // Iterate through the OwnerReferences looking for a match on Group and Kind against what was requested
// by the user // by the user
var result []reconcile.Request
for _, ref := range e.getOwnersReferences(object) { for _, ref := range e.getOwnersReferences(object) {
// Parse the Group out of the OwnerReference to compare it to what was parsed out of the requested OwnerType // Parse the Group out of the OwnerReference to compare it to what was parsed out of the requested OwnerType
refGV, err := schema.ParseGroupVersion(ref.APIVersion) refGV, err := schema.ParseGroupVersion(ref.APIVersion)
if err != nil { if err != nil {
log.Error(err, "Could not parse OwnerReference APIVersion", log.Error(err, "Could not parse OwnerReference APIVersion",
"api version", ref.APIVersion) "api version", ref.APIVersion)
return nil return
} }
// Compare the OwnerReference Group and Kind against the OwnerType Group and Kind specified by the user. // Compare the OwnerReference Group and Kind against the OwnerType Group and Kind specified by the user.
@ -138,18 +143,15 @@ func (e *EnqueueRequestForOwner) getOwnerReconcileRequest(object metav1.Object)
mapping, err := e.mapper.RESTMapping(e.groupKind, refGV.Version) mapping, err := e.mapper.RESTMapping(e.groupKind, refGV.Version)
if err != nil { if err != nil {
log.Error(err, "Could not retrieve rest mapping", "kind", e.groupKind) log.Error(err, "Could not retrieve rest mapping", "kind", e.groupKind)
return nil return
} }
if mapping.Scope.Name() != meta.RESTScopeNameRoot { if mapping.Scope.Name() != meta.RESTScopeNameRoot {
request.Namespace = object.GetNamespace() request.Namespace = object.GetNamespace()
} }
result = append(result, request) result[request] = empty{}
} }
} }
// Return the matches
return result
} }
// getOwnersReferences returns the OwnerReferences for an object as specified by the EnqueueRequestForOwner // getOwnersReferences returns the OwnerReferences for an object as specified by the EnqueueRequestForOwner

View File

@ -9,7 +9,6 @@ go_library(
deps = [ deps = [
"//vendor/github.com/go-logr/logr:go_default_library", "//vendor/github.com/go-logr/logr:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/client-go/util/workqueue:go_default_library", "//vendor/k8s.io/client-go/util/workqueue:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/handler:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/handler:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/metrics:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/metrics:go_default_library",

View File

@ -25,7 +25,6 @@ import (
"github.com/go-logr/logr" "github.com/go-logr/logr"
utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/util/workqueue" "k8s.io/client-go/util/workqueue"
"sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/handler"
ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/internal/controller/metrics" ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/internal/controller/metrics"
@ -67,9 +66,6 @@ type Controller struct {
// mu is used to synchronize Controller setup // mu is used to synchronize Controller setup
mu sync.Mutex mu sync.Mutex
// JitterPeriod allows tests to reduce the JitterPeriod so they complete faster
JitterPeriod time.Duration
// Started is true if the Controller has been Started // Started is true if the Controller has been Started
Started bool Started bool
@ -150,8 +146,12 @@ func (c *Controller) Start(ctx context.Context) error {
c.ctx = ctx c.ctx = ctx
c.Queue = c.MakeQueue() c.Queue = c.MakeQueue()
defer c.Queue.ShutDown() // needs to be outside the iife so that we shutdown after the stop channel is closed go func() {
<-ctx.Done()
c.Queue.ShutDown()
}()
wg := &sync.WaitGroup{}
err := func() error { err := func() error {
defer c.mu.Unlock() defer c.mu.Unlock()
@ -203,19 +203,17 @@ func (c *Controller) Start(ctx context.Context) error {
// which won't be garbage collected if we hold a reference to it. // which won't be garbage collected if we hold a reference to it.
c.startWatches = nil c.startWatches = nil
if c.JitterPeriod == 0 {
c.JitterPeriod = 1 * time.Second
}
// Launch workers to process resources // Launch workers to process resources
c.Log.Info("Starting workers", "worker count", c.MaxConcurrentReconciles) c.Log.Info("Starting workers", "worker count", c.MaxConcurrentReconciles)
wg.Add(c.MaxConcurrentReconciles)
for i := 0; i < c.MaxConcurrentReconciles; i++ { for i := 0; i < c.MaxConcurrentReconciles; i++ {
go wait.UntilWithContext(ctx, func(ctx context.Context) { go func() {
defer wg.Done()
// Run a worker thread that just dequeues items, processes them, and marks them done. // Run a worker thread that just dequeues items, processes them, and marks them done.
// It enforces that the reconcileHandler is never invoked concurrently with the same object. // It enforces that the reconcileHandler is never invoked concurrently with the same object.
for c.processNextWorkItem(ctx) { for c.processNextWorkItem(ctx) {
} }
}, c.JitterPeriod) }()
} }
c.Started = true c.Started = true
@ -226,7 +224,9 @@ func (c *Controller) Start(ctx context.Context) error {
} }
<-ctx.Done() <-ctx.Done()
c.Log.Info("Stopping workers") c.Log.Info("Shutdown signal received, waiting for all workers to finish")
wg.Wait()
c.Log.Info("All workers finished")
return nil return nil
} }

View File

@ -38,6 +38,9 @@ type EventBroadcasterProducer func() (caster record.EventBroadcaster, stopWithPr
// Provider is a recorder.Provider that records events to the k8s API server // Provider is a recorder.Provider that records events to the k8s API server
// and to a logr Logger. // and to a logr Logger.
type Provider struct { type Provider struct {
lock sync.RWMutex
stopped bool
// scheme to specify when creating a recorder // scheme to specify when creating a recorder
scheme *runtime.Scheme scheme *runtime.Scheme
// logger is the logger to use when logging diagnostic event info // logger is the logger to use when logging diagnostic event info
@ -70,7 +73,10 @@ func (p *Provider) Stop(shutdownCtx context.Context) {
// an invocation of getBroadcaster. // an invocation of getBroadcaster.
broadcaster := p.getBroadcaster() broadcaster := p.getBroadcaster()
if p.stopBroadcaster { if p.stopBroadcaster {
p.lock.Lock()
broadcaster.Shutdown() broadcaster.Shutdown()
p.stopped = true
p.lock.Unlock()
} }
close(doneCh) close(doneCh)
}() }()
@ -144,13 +150,28 @@ func (l *lazyRecorder) ensureRecording() {
func (l *lazyRecorder) Event(object runtime.Object, eventtype, reason, message string) { func (l *lazyRecorder) Event(object runtime.Object, eventtype, reason, message string) {
l.ensureRecording() l.ensureRecording()
l.rec.Event(object, eventtype, reason, message)
l.prov.lock.RLock()
if !l.prov.stopped {
l.rec.Event(object, eventtype, reason, message)
}
l.prov.lock.RUnlock()
} }
func (l *lazyRecorder) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) { func (l *lazyRecorder) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) {
l.ensureRecording() l.ensureRecording()
l.rec.Eventf(object, eventtype, reason, messageFmt, args...)
l.prov.lock.RLock()
if !l.prov.stopped {
l.rec.Eventf(object, eventtype, reason, messageFmt, args...)
}
l.prov.lock.RUnlock()
} }
func (l *lazyRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) { func (l *lazyRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) {
l.ensureRecording() l.ensureRecording()
l.rec.AnnotatedEventf(object, annotations, eventtype, reason, messageFmt, args...)
l.prov.lock.RLock()
if !l.prov.stopped {
l.rec.AnnotatedEventf(object, annotations, eventtype, reason, messageFmt, args...)
}
l.prov.lock.RUnlock()
} }

View File

@ -91,6 +91,11 @@ type Kind struct {
// cache used to watch APIs // cache used to watch APIs
cache cache.Cache cache cache.Cache
// started may contain an error if one was encountered during startup. If its closed and does not
// contain an error, startup and syncing finished.
started chan error
startCancel func()
} }
var _ SyncingSource = &Kind{} var _ SyncingSource = &Kind{}
@ -110,16 +115,30 @@ func (ks *Kind) Start(ctx context.Context, handler handler.EventHandler, queue w
return fmt.Errorf("must call CacheInto on Kind before calling Start") return fmt.Errorf("must call CacheInto on Kind before calling Start")
} }
// Lookup the Informer from the Cache and add an EventHandler which populates the Queue // cache.GetInformer will block until its context is cancelled if the cache was already started and it can not
i, err := ks.cache.GetInformer(ctx, ks.Type) // sync that informer (most commonly due to RBAC issues).
if err != nil { ctx, ks.startCancel = context.WithCancel(ctx)
if kindMatchErr, ok := err.(*meta.NoKindMatchError); ok { ks.started = make(chan error)
log.Error(err, "if kind is a CRD, it should be installed before calling Start", go func() {
"kind", kindMatchErr.GroupKind) // Lookup the Informer from the Cache and add an EventHandler which populates the Queue
i, err := ks.cache.GetInformer(ctx, ks.Type)
if err != nil {
kindMatchErr := &meta.NoKindMatchError{}
if errors.As(err, &kindMatchErr) {
log.Error(err, "if kind is a CRD, it should be installed before calling Start",
"kind", kindMatchErr.GroupKind)
}
ks.started <- err
return
} }
return err i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct})
} if !ks.cache.WaitForCacheSync(ctx) {
i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct}) // Would be great to return something more informative here
ks.started <- errors.New("cache did not sync")
}
close(ks.started)
}()
return nil return nil
} }
@ -133,11 +152,13 @@ func (ks *Kind) String() string {
// WaitForSync implements SyncingSource to allow controllers to wait with starting // WaitForSync implements SyncingSource to allow controllers to wait with starting
// workers until the cache is synced. // workers until the cache is synced.
func (ks *Kind) WaitForSync(ctx context.Context) error { func (ks *Kind) WaitForSync(ctx context.Context) error {
if !ks.cache.WaitForCacheSync(ctx) { select {
// Would be great to return something more informative here case err := <-ks.started:
return errors.New("cache did not sync") return err
case <-ctx.Done():
ks.startCancel()
return errors.New("timed out waiting for cache to be synced")
} }
return nil
} }
var _ inject.Cache = &Kind{} var _ inject.Cache = &Kind{}

View File

@ -14,10 +14,10 @@ go_library(
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library",
"//vendor/gomodules.xyz/jsonpatch/v2:go_default_library", "//vendor/gomodules.xyz/jsonpatch/v2:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/internal/log:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/internal/log:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/runtime/inject:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/runtime/inject:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher:go_default_library",
"//vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics:go_default_library", "//vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics:go_default_library",
], ],
) )

View File

@ -31,8 +31,8 @@ import (
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/client_golang/prometheus/promhttp"
"sigs.k8s.io/controller-runtime/pkg/certwatcher"
"sigs.k8s.io/controller-runtime/pkg/runtime/inject" "sigs.k8s.io/controller-runtime/pkg/runtime/inject"
"sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher"
"sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics" "sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics"
) )