mirror of https://github.com/kubernetes/kops.git
Update k8s dependencies to v1.21.0
This commit is contained in:
parent
6f302f0ea7
commit
676f442c72
68
go.mod
68
go.mod
|
|
@ -2,36 +2,36 @@ module k8s.io/kops
|
|||
|
||||
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
|
||||
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 (
|
||||
k8s.io/api => k8s.io/api v0.21.0-rc.0
|
||||
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0-rc.0
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0-rc.0
|
||||
k8s.io/apiserver => k8s.io/apiserver v0.21.0-rc.0
|
||||
k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0-rc.0
|
||||
k8s.io/client-go => k8s.io/client-go v0.21.0-rc.0
|
||||
k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0-rc.0
|
||||
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0-rc.0
|
||||
k8s.io/component-base => k8s.io/component-base v0.21.0-rc.0
|
||||
k8s.io/component-helpers => k8s.io/component-helpers v0.21.0-rc.0
|
||||
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0-rc.0
|
||||
k8s.io/cri-api => k8s.io/cri-api v0.21.0-rc.0
|
||||
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0-rc.0
|
||||
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0-rc.0
|
||||
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0-rc.0
|
||||
k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0-rc.0
|
||||
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0-rc.0
|
||||
k8s.io/kubectl => k8s.io/kubectl v0.21.0-rc.0
|
||||
k8s.io/kubelet => k8s.io/kubelet v0.21.0-rc.0
|
||||
k8s.io/kubernetes => k8s.io/kubernetes v1.21.0-rc.0
|
||||
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0-rc.0
|
||||
k8s.io/metrics => k8s.io/metrics v0.21.0-rc.0
|
||||
k8s.io/mount-utils => k8s.io/mount-utils v0.21.0-rc.0
|
||||
k8s.io/sample-apiserver => k8s.io/sample-apiserver 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
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
|
||||
k8s.io/apiserver => k8s.io/apiserver v0.21.0
|
||||
k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0
|
||||
k8s.io/client-go => k8s.io/client-go v0.21.0
|
||||
k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0
|
||||
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0
|
||||
k8s.io/component-base => k8s.io/component-base v0.21.0
|
||||
k8s.io/component-helpers => k8s.io/component-helpers v0.21.0
|
||||
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
|
||||
k8s.io/cri-api => k8s.io/cri-api v0.21.0
|
||||
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0
|
||||
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0
|
||||
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0
|
||||
k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0
|
||||
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0
|
||||
k8s.io/kubectl => k8s.io/kubectl v0.21.0
|
||||
k8s.io/kubelet => k8s.io/kubelet v0.21.0
|
||||
k8s.io/kubernetes => k8s.io/kubernetes v1.21.0
|
||||
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0
|
||||
k8s.io/metrics => k8s.io/metrics v0.21.0
|
||||
k8s.io/mount-utils => k8s.io/mount-utils v0.21.0
|
||||
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0
|
||||
)
|
||||
|
||||
require (
|
||||
|
|
@ -84,18 +84,18 @@ require (
|
|||
gopkg.in/inf.v0 v0.9.1
|
||||
gopkg.in/square/go-jose.v2 v2.5.1
|
||||
helm.sh/helm/v3 v3.5.1
|
||||
k8s.io/api v0.21.0-rc.0
|
||||
k8s.io/apimachinery v0.21.0-rc.0
|
||||
k8s.io/cli-runtime v0.21.0-rc.0
|
||||
k8s.io/client-go v0.21.0-rc.0
|
||||
k8s.io/api v0.21.0
|
||||
k8s.io/apimachinery v0.21.0
|
||||
k8s.io/cli-runtime v0.21.0
|
||||
k8s.io/client-go v0.21.0
|
||||
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/klog/v2 v2.8.0
|
||||
k8s.io/kubectl v0.21.0-rc.0
|
||||
k8s.io/legacy-cloud-providers v0.21.0-rc.0
|
||||
k8s.io/kubectl v0.21.0
|
||||
k8s.io/legacy-cloud-providers v0.21.0
|
||||
k8s.io/utils v0.0.0-20210305010621-2afb4311ab10
|
||||
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
|
||||
)
|
||||
|
|
|
|||
74
go.sum
74
go.sum
|
|
@ -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-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=
|
||||
k8s.io/api v0.21.0-rc.0 h1:t/kW96KdNJNamYNqxaxRirahK+FaWJQ6BJPbXm5Jb+o=
|
||||
k8s.io/api v0.21.0-rc.0/go.mod h1:Dkc/ZauWJrgZhjOjeBgW89xZQiTBJA2RaBKYHXPsi2Y=
|
||||
k8s.io/apiextensions-apiserver v0.21.0-rc.0 h1:gxeak4PvTBhuiZagZRFv9WyNnAdG39/VCmI9XTwVCRk=
|
||||
k8s.io/apiextensions-apiserver v0.21.0-rc.0/go.mod h1:ItIoMBJU1gy93Qwr/B2699r4b0VmZqAOU+15BvozxMY=
|
||||
k8s.io/apimachinery v0.21.0-rc.0 h1:m9dyzHb8QZAHOZKIz2SiabSif1oLsfgrnwiago/9xJA=
|
||||
k8s.io/apimachinery v0.21.0-rc.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
|
||||
k8s.io/apiserver v0.21.0-rc.0/go.mod h1:QlW7+1CZTZtAcKvJ34/n4DIb8sC93FeQpkd1KSU+Sok=
|
||||
k8s.io/cli-runtime v0.21.0-rc.0 h1:M2cLtWR/LvuSSK8uhdTppcjyd/tqi3Dz5ZiOVfrhDHE=
|
||||
k8s.io/cli-runtime v0.21.0-rc.0/go.mod h1:Gp9Njd5Z9IayPHKL8AKVVMrdzHrMHN+WnGMHYC7Lsds=
|
||||
k8s.io/client-go v0.21.0-rc.0 h1:lsPZHT1ZniXJcwg2udlaTOhAT8wf7BE0rn9Vj0+LWMA=
|
||||
k8s.io/client-go v0.21.0-rc.0/go.mod h1:zU5HY/bSOKH3YOqoge9nFvICgrpeSdJu8DQ4fkjKIZk=
|
||||
k8s.io/cloud-provider v0.21.0-rc.0 h1:rQU/7MbH0P1eNcr+NinAU7j/Cwn59bt1DLgjUHti4m0=
|
||||
k8s.io/cloud-provider v0.21.0-rc.0/go.mod h1:dXTEXZuesbZ0g2tXButYQlr5mVnQ6lmWGJyODVXKFTY=
|
||||
k8s.io/api v0.21.0 h1:gu5iGF4V6tfVCQ/R+8Hc0h7H1JuEhzyEi9S4R5LM8+Y=
|
||||
k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU=
|
||||
k8s.io/apiextensions-apiserver v0.21.0 h1:Nd4uBuweg6ImzbxkC1W7xUNZcCV/8Vt10iTdTIVF3hw=
|
||||
k8s.io/apiextensions-apiserver v0.21.0/go.mod h1:gsQGNtGkc/YoDG9loKI0V+oLZM4ljRPjc/sql5tmvzc=
|
||||
k8s.io/apimachinery v0.21.0 h1:3Fx+41if+IRavNcKOz09FwEXDBG6ORh6iMsTSelhkMA=
|
||||
k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
|
||||
k8s.io/apiserver v0.21.0/go.mod h1:w2YSn4/WIwYuxG5zJmcqtRdtqgW/J2JRgFAqps3bBpg=
|
||||
k8s.io/cli-runtime v0.21.0 h1:/V2Kkxtf6x5NI2z+Sd/mIrq4FQyQ8jzZAUD6N5RnN7Y=
|
||||
k8s.io/cli-runtime v0.21.0/go.mod h1:XoaHP93mGPF37MkLbjGVYqg3S1MnsFdKtiA/RZzzxOo=
|
||||
k8s.io/client-go v0.21.0 h1:n0zzzJsAQmJngpC0IhgFcApZyoGXPrDIAD601HD09ag=
|
||||
k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA=
|
||||
k8s.io/cloud-provider v0.21.0 h1:NSTS+czpv6LQAaIpY/VUghsT4oj62hYmQPErkDKTzKU=
|
||||
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/go.mod h1:+ITp4mYAod+/IiQCzYKz92+Ns9VrYkkWdBmYVWSGwnI=
|
||||
k8s.io/cluster-bootstrap v0.21.0-rc.0/go.mod h1:lsAFz54QLO/Eg1o2FmI9EreB+nEpY8KWiXXCpyhjnsQ=
|
||||
k8s.io/code-generator v0.21.0-rc.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-rc.0/go.mod h1:XlP0bM7QJFWRGZYPc5NmphkvsYQ+o7804HWH3GTGjDY=
|
||||
k8s.io/component-helpers v0.21.0-rc.0/go.mod h1:A8RfzdPEZoysfI5C0RExdjy7Zy/RZET3tcUmt7BMWdc=
|
||||
k8s.io/controller-manager v0.21.0-rc.0/go.mod h1:K9485cOofmSjHGwNod14iRhLjNU65/AtG5Ucygyc4Uw=
|
||||
k8s.io/cri-api v0.21.0-rc.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-rc.0/go.mod h1:oG3Gth9/qb2RPjhoqJIZSPTqNqDt/rZFSLShuntPb90=
|
||||
k8s.io/cluster-bootstrap v0.21.0/go.mod h1:rs7i1JpBCa56YNmnYxFJuoUghIwpMzDidY8ZmqiRnrQ=
|
||||
k8s.io/code-generator v0.21.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q=
|
||||
k8s.io/component-base v0.21.0 h1:tLLGp4BBjQaCpS/KiuWh7m2xqvAdsxLm4ATxHSe5Zpg=
|
||||
k8s.io/component-base v0.21.0/go.mod h1:qvtjz6X0USWXbgmbfXR+Agik4RZ3jv2Bgr5QnZzdPYw=
|
||||
k8s.io/component-helpers v0.21.0/go.mod h1:tezqefP7lxfvJyR+0a+6QtVrkZ/wIkyMLK4WcQ3Cj8U=
|
||||
k8s.io/controller-manager v0.21.0/go.mod h1:Ohy0GRNRKPVjB8C8G+dV+4aPn26m8HYUI6ejloUBvUA=
|
||||
k8s.io/cri-api v0.21.0/go.mod h1:nJbXlTpXwYCYuGMR7v3PQb1Du4WOGj2I9085xMVjr3I=
|
||||
k8s.io/csi-translation-lib v0.21.0 h1:kzwraa2eenvtMuOAe+xSQgIgG0G88pocorYP8CSitRY=
|
||||
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-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||
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.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts=
|
||||
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-controller-manager v0.21.0-rc.0/go.mod h1:O8GIPp+/9jyv9e+hSs6IdDddbtgnrl1iy8M3AhtBmU8=
|
||||
k8s.io/kube-aggregator v0.21.0/go.mod h1:sIaa9L4QCBo9gjPyoGJns4cBjYVLq3s49FxF7m/1A0A=
|
||||
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-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0=
|
||||
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-scheduler v0.21.0-rc.0/go.mod h1:B0s6QYIGM5wQ0mRBgbHFE2elYFirabCNKF42+bZUfOI=
|
||||
k8s.io/kubectl v0.21.0-rc.0 h1:UDHfpjRunMTqSyRR8GC7ywZ1ylmM2CpXkqRPqCPTXwk=
|
||||
k8s.io/kubectl v0.21.0-rc.0/go.mod h1:eOKzb5p2/9pNzt2TQpVSzfB/41W6ZMm0JbJEIvyH08U=
|
||||
k8s.io/kubelet v0.21.0-rc.0/go.mod h1:wNcXzTVpecPLZq0/4Ns21YMDI8ni9Sr+ifCaQom+z+8=
|
||||
k8s.io/kubernetes v1.21.0-rc.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-rc.0/go.mod h1:C9CAgvDYih3dfSF0v+ahAVD8SB4YDfOmnIztTEvng5Y=
|
||||
k8s.io/metrics v0.21.0-rc.0/go.mod h1:iCF67TNbrhChr/eb99uHt0H1hE7Rd1EC2Ic/yknzIE4=
|
||||
k8s.io/mount-utils v0.21.0-rc.0/go.mod h1:dwXbIPxKtTjrBEaX1aK/CMEf1KZ8GzMHpe3NEBfdFXI=
|
||||
k8s.io/sample-apiserver v0.21.0-rc.0/go.mod h1:5NZT5kCLZK2M+T7ZZ3UIVea85GPIbydF1QR2oCDyxmw=
|
||||
k8s.io/kube-proxy v0.21.0/go.mod h1:36jW3e6+5iQql9tHrLjVrmwpPsbhTywoI6OCFL7MWRs=
|
||||
k8s.io/kube-scheduler v0.21.0/go.mod h1:wf1oi1NHSsFYfG7lKwxJVmnQNBnhL9vOMXztcKQu5IU=
|
||||
k8s.io/kubectl v0.21.0 h1:WZXlnG/yjcE4LWO2g6ULjFxtzK6H1TKzsfaBFuVIhNg=
|
||||
k8s.io/kubectl v0.21.0/go.mod h1:EU37NukZRXn1TpAkMUoy8Z/B2u6wjHDS4aInsDzVvks=
|
||||
k8s.io/kubelet v0.21.0/go.mod h1:G5ZxMTVev9t4bhmsSxDAWhH6wXDYEVHVVFyYsw4laR4=
|
||||
k8s.io/kubernetes v1.21.0/go.mod h1:Yx6XZ8zalyqEk7but+j4+5SvLzdyH1eeqZ4cwO+5dD4=
|
||||
k8s.io/legacy-cloud-providers v0.21.0 h1:iWf5xaX9yvYT5mkz8UB96UtISQ5IkrWeuMPMhRp01ZY=
|
||||
k8s.io/legacy-cloud-providers v0.21.0/go.mod h1:bNxo7gDg+PGkBmT/MFZswLTWdSWK9kAlS1s8DJca5q4=
|
||||
k8s.io/metrics v0.21.0/go.mod h1:L3Ji9EGPP1YBbfm9sPfEXSpnj8i24bfQbAFAsW0NueQ=
|
||||
k8s.io/mount-utils v0.21.0/go.mod h1:dwXbIPxKtTjrBEaX1aK/CMEf1KZ8GzMHpe3NEBfdFXI=
|
||||
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/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=
|
||||
|
|
@ -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=
|
||||
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.8.2-0.20210311152821-b125a18163e1 h1:eep4QWCuzjXLzR36DIcXm/6wPqQpbWHdo3vEYMAo0nc=
|
||||
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 h1:yIYTxDHQfcrYWO1hjZvHhjkGY1fYFo1k07FzlTono4E=
|
||||
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/kustomize/api v0.8.5 h1:bfCXGXDAbFbb/Jv5AhMj2BB8a5VAJuuQ5/KU69WtDjQ=
|
||||
sigs.k8s.io/kustomize/api v0.8.5/go.mod h1:M377apnKT5ZHJS++6H4rQoCHmWtt6qTpp3mbe7p6OLY=
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ require (
|
|||
github.com/client9/misspell v0.3.4
|
||||
golang.org/x/tools v0.1.0
|
||||
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
|
||||
)
|
||||
|
|
|
|||
11
hack/go.sum
11
hack/go.sum
|
|
@ -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/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.21.0-beta.1 h1:cy3+b1Mc0L6tliqOe1pr90peyH2hhrsAmt2CqNIpr/o=
|
||||
k8s.io/code-generator v0.21.0-beta.1/go.mod h1:IpCUojpiKp25KNB3/UbEeElznqpQUMvhAOUoC7AbISY=
|
||||
k8s.io/code-generator v0.21.0 h1:LGWJOvkbBNpuRBqBRXUjzfvymUh7F/iR2KDpwLnqCM4=
|
||||
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/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||
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.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.5.0 h1:8mOnjf1RmUPW6KRqQCfYSZq/K20Unmp3IhuZUhxl8KI=
|
||||
k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
|
||||
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/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/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/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/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.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.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
|||
|
||||
go_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",
|
||||
importpath = "k8s.io/client-go/plugin/pkg/client/auth",
|
||||
visibility = ["//visibility:public"],
|
||||
|
|
|
|||
|
|
@ -17,9 +17,6 @@ limitations under the License.
|
|||
package auth
|
||||
|
||||
import (
|
||||
// Initialize all known client auth plugins.
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth/azure"
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
|
||||
// Initialize common client auth plugins.
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth/openstack"
|
||||
)
|
||||
|
|
|
|||
26
vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go
generated
vendored
Normal file
26
vendor/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go
generated
vendored
Normal 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"
|
||||
)
|
||||
|
|
@ -9,21 +9,21 @@ require (
|
|||
github.com/spf13/cobra v1.1.1
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/stretchr/testify v1.6.1
|
||||
k8s.io/api v0.21.0-rc.0
|
||||
k8s.io/apimachinery v0.21.0-rc.0
|
||||
k8s.io/apiserver v0.21.0-rc.0
|
||||
k8s.io/client-go v0.21.0-rc.0
|
||||
k8s.io/component-base v0.21.0-rc.0
|
||||
k8s.io/controller-manager v0.21.0-rc.0
|
||||
k8s.io/api v0.21.0
|
||||
k8s.io/apimachinery v0.21.0
|
||||
k8s.io/apiserver v0.21.0
|
||||
k8s.io/client-go v0.21.0
|
||||
k8s.io/component-base v0.21.0
|
||||
k8s.io/controller-manager v0.21.0
|
||||
k8s.io/klog/v2 v2.8.0
|
||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
|
||||
)
|
||||
|
||||
replace (
|
||||
k8s.io/api => k8s.io/api v0.21.0-rc.0
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0-rc.0
|
||||
k8s.io/apiserver => k8s.io/apiserver v0.21.0-rc.0
|
||||
k8s.io/client-go => k8s.io/client-go v0.21.0-rc.0
|
||||
k8s.io/component-base => k8s.io/component-base v0.21.0-rc.0
|
||||
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0-rc.0
|
||||
k8s.io/api => k8s.io/api v0.21.0
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
|
||||
k8s.io/apiserver => k8s.io/apiserver v0.21.0
|
||||
k8s.io/client-go => k8s.io/client-go v0.21.0
|
||||
k8s.io/component-base => k8s.io/component-base v0.21.0
|
||||
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
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/apimachinery v0.21.0-rc.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
|
||||
k8s.io/apiserver v0.21.0-rc.0/go.mod h1:QlW7+1CZTZtAcKvJ34/n4DIb8sC93FeQpkd1KSU+Sok=
|
||||
k8s.io/client-go v0.21.0-rc.0/go.mod h1:zU5HY/bSOKH3YOqoge9nFvICgrpeSdJu8DQ4fkjKIZk=
|
||||
k8s.io/component-base v0.21.0-rc.0/go.mod h1:XlP0bM7QJFWRGZYPc5NmphkvsYQ+o7804HWH3GTGjDY=
|
||||
k8s.io/controller-manager v0.21.0-rc.0/go.mod h1:K9485cOofmSjHGwNod14iRhLjNU65/AtG5Ucygyc4Uw=
|
||||
k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU=
|
||||
k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
|
||||
k8s.io/apiserver v0.21.0/go.mod h1:w2YSn4/WIwYuxG5zJmcqtRdtqgW/J2JRgFAqps3bBpg=
|
||||
k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA=
|
||||
k8s.io/component-base v0.21.0/go.mod h1:qvtjz6X0USWXbgmbfXR+Agik4RZ3jv2Bgr5QnZzdPYw=
|
||||
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/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.8.0 h1:Q3gmuM9hKEjefWFFYF0Mat+YyFJvsUyYuwyNNJ5C9Ts=
|
||||
|
|
|
|||
|
|
@ -946,7 +946,7 @@ helm.sh/helm/v3/pkg/helmpath
|
|||
helm.sh/helm/v3/pkg/helmpath/xdg
|
||||
helm.sh/helm/v3/pkg/plugin
|
||||
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
|
||||
k8s.io/api/admission/v1
|
||||
k8s.io/api/admission/v1beta1
|
||||
|
|
@ -994,11 +994,11 @@ k8s.io/api/scheduling/v1beta1
|
|||
k8s.io/api/storage/v1
|
||||
k8s.io/api/storage/v1alpha1
|
||||
k8s.io/api/storage/v1beta1
|
||||
# k8s.io/apiextensions-apiserver v0.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/v1
|
||||
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
|
||||
k8s.io/apimachinery/pkg/api/equality
|
||||
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/netutil
|
||||
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
|
||||
k8s.io/cli-runtime/pkg/genericclioptions
|
||||
k8s.io/cli-runtime/pkg/printers
|
||||
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
|
||||
k8s.io/client-go/applyconfigurations/admissionregistration/v1
|
||||
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/retry
|
||||
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/node/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/util/errors
|
||||
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
|
||||
k8s.io/component-base/config
|
||||
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/prometheus/restclient
|
||||
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/gengo v0.0.0-20210203185629-de9496dff47b
|
||||
## explicit
|
||||
|
|
@ -1382,7 +1382,7 @@ k8s.io/klog/v2/klogr
|
|||
# k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7
|
||||
k8s.io/kube-openapi/pkg/util/proto
|
||||
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
|
||||
k8s.io/kubectl/pkg/cmd/util
|
||||
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/term
|
||||
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
|
||||
k8s.io/legacy-cloud-providers/aws
|
||||
k8s.io/legacy-cloud-providers/gce
|
||||
|
|
@ -1416,12 +1416,13 @@ k8s.io/utils/pointer
|
|||
k8s.io/utils/trace
|
||||
# rsc.io/letsencrypt v0.0.3
|
||||
## explicit
|
||||
# sigs.k8s.io/controller-runtime v0.8.2-0.20210311152821-b125a18163e1
|
||||
# sigs.k8s.io/controller-runtime v0.9.0-alpha.1
|
||||
## explicit
|
||||
sigs.k8s.io/controller-runtime
|
||||
sigs.k8s.io/controller-runtime/pkg/builder
|
||||
sigs.k8s.io/controller-runtime/pkg/cache
|
||||
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/apiutil
|
||||
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/admission
|
||||
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/kustomize/api v0.8.5
|
||||
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
|
||||
## explicit
|
||||
sigs.k8s.io/yaml
|
||||
# k8s.io/code-generator => k8s.io/code-generator v0.21.0-rc.0
|
||||
# k8s.io/api => k8s.io/api v0.21.0-rc.0
|
||||
# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0-rc.0
|
||||
# k8s.io/apimachinery => k8s.io/apimachinery v0.21.0-rc.0
|
||||
# k8s.io/apiserver => k8s.io/apiserver v0.21.0-rc.0
|
||||
# k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0-rc.0
|
||||
# k8s.io/client-go => k8s.io/client-go v0.21.0-rc.0
|
||||
# k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0-rc.0
|
||||
# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0-rc.0
|
||||
# k8s.io/component-base => k8s.io/component-base v0.21.0-rc.0
|
||||
# k8s.io/component-helpers => k8s.io/component-helpers v0.21.0-rc.0
|
||||
# k8s.io/controller-manager => k8s.io/controller-manager v0.21.0-rc.0
|
||||
# k8s.io/cri-api => k8s.io/cri-api v0.21.0-rc.0
|
||||
# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0-rc.0
|
||||
# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0-rc.0
|
||||
# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0-rc.0
|
||||
# k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0-rc.0
|
||||
# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0-rc.0
|
||||
# k8s.io/kubectl => k8s.io/kubectl v0.21.0-rc.0
|
||||
# k8s.io/kubelet => k8s.io/kubelet v0.21.0-rc.0
|
||||
# k8s.io/kubernetes => k8s.io/kubernetes v1.21.0-rc.0
|
||||
# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0-rc.0
|
||||
# k8s.io/metrics => k8s.io/metrics v0.21.0-rc.0
|
||||
# k8s.io/mount-utils => k8s.io/mount-utils v0.21.0-rc.0
|
||||
# k8s.io/sample-apiserver => k8s.io/sample-apiserver 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
|
||||
# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0
|
||||
# k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
|
||||
# k8s.io/apiserver => k8s.io/apiserver v0.21.0
|
||||
# k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0
|
||||
# k8s.io/client-go => k8s.io/client-go v0.21.0
|
||||
# k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0
|
||||
# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0
|
||||
# k8s.io/component-base => k8s.io/component-base v0.21.0
|
||||
# k8s.io/component-helpers => k8s.io/component-helpers v0.21.0
|
||||
# k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
|
||||
# k8s.io/cri-api => k8s.io/cri-api v0.21.0
|
||||
# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0
|
||||
# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0
|
||||
# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0
|
||||
# k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0
|
||||
# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0
|
||||
# k8s.io/kubectl => k8s.io/kubectl v0.21.0
|
||||
# k8s.io/kubelet => k8s.io/kubelet v0.21.0
|
||||
# k8s.io/kubernetes => k8s.io/kubernetes v1.21.0
|
||||
# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0
|
||||
# k8s.io/metrics => k8s.io/metrics v0.21.0
|
||||
# k8s.io/mount-utils => k8s.io/mount-utils v0.21.0
|
||||
# k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0
|
||||
|
|
|
|||
|
|
@ -2,10 +2,13 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
|||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["certwatcher.go"],
|
||||
importmap = "k8s.io/kops/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher",
|
||||
importpath = "sigs.k8s.io/controller-runtime/pkg/webhook/internal/certwatcher",
|
||||
visibility = ["//vendor/sigs.k8s.io/controller-runtime/pkg/webhook:__subpackages__"],
|
||||
srcs = [
|
||||
"certwatcher.go",
|
||||
"doc.go",
|
||||
],
|
||||
importmap = "k8s.io/kops/vendor/sigs.k8s.io/controller-runtime/pkg/certwatcher",
|
||||
importpath = "sigs.k8s.io/controller-runtime/pkg/certwatcher",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//vendor/github.com/fsnotify/fsnotify:go_default_library",
|
||||
"//vendor/sigs.k8s.io/controller-runtime/pkg/internal/log:go_default_library",
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2019 The Kubernetes Authors.
|
||||
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.
|
||||
|
|
@ -31,7 +31,7 @@ var log = logf.RuntimeLog.WithName("certwatcher")
|
|||
// changes, it reads and parses both and calls an optional callback with the new
|
||||
// certificate.
|
||||
type CertWatcher struct {
|
||||
sync.Mutex
|
||||
sync.RWMutex
|
||||
|
||||
currentCert *tls.Certificate
|
||||
watcher *fsnotify.Watcher
|
||||
|
|
@ -64,8 +64,8 @@ func New(certPath, keyPath string) (*CertWatcher, error) {
|
|||
|
||||
// GetCertificate fetches the currently loaded certificate, which may be nil.
|
||||
func (cw *CertWatcher) GetCertificate(_ *tls.ClientHelloInfo) (*tls.Certificate, error) {
|
||||
cw.Lock()
|
||||
defer cw.Unlock()
|
||||
cw.RLock()
|
||||
defer cw.RUnlock()
|
||||
return cw.currentCert, nil
|
||||
}
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -26,6 +26,8 @@ import (
|
|||
|
||||
var enqueueLog = logf.RuntimeLog.WithName("eventhandler").WithName("EnqueueRequestForObject")
|
||||
|
||||
type empty struct{}
|
||||
|
||||
var _ EventHandler = &EnqueueRequestForObject{}
|
||||
|
||||
// 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
|
||||
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 {
|
||||
q.Add(reconcile.Request{NamespacedName: types.NamespacedName{
|
||||
Name: evt.ObjectNew.GetName(),
|
||||
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 {
|
||||
enqueueLog.Error(nil, "UpdateEvent received with no new metadata", "event", evt)
|
||||
enqueueLog.Error(nil, "UpdateEvent received with no metadata", "event", evt)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,28 +53,36 @@ type enqueueRequestsFromMapFunc struct {
|
|||
|
||||
// Create implements EventHandler
|
||||
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
|
||||
func (e *enqueueRequestsFromMapFunc) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
|
||||
e.mapAndEnqueue(q, evt.ObjectOld)
|
||||
e.mapAndEnqueue(q, evt.ObjectNew)
|
||||
reqs := map[reconcile.Request]empty{}
|
||||
e.mapAndEnqueue(q, evt.ObjectOld, reqs)
|
||||
e.mapAndEnqueue(q, evt.ObjectNew, reqs)
|
||||
}
|
||||
|
||||
// Delete implements EventHandler
|
||||
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
|
||||
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) {
|
||||
q.Add(req)
|
||||
_, ok := reqs[req]
|
||||
if !ok {
|
||||
q.Add(req)
|
||||
reqs[req] = empty{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,31 +59,37 @@ type EnqueueRequestForOwner struct {
|
|||
|
||||
// Create implements EventHandler
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
// Update implements EventHandler
|
||||
func (e *EnqueueRequestForOwner) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
|
||||
for _, req := range e.getOwnerReconcileRequest(evt.ObjectOld) {
|
||||
q.Add(req)
|
||||
}
|
||||
for _, req := range e.getOwnerReconcileRequest(evt.ObjectNew) {
|
||||
reqs := map[reconcile.Request]empty{}
|
||||
e.getOwnerReconcileRequest(evt.ObjectOld, reqs)
|
||||
e.getOwnerReconcileRequest(evt.ObjectNew, reqs)
|
||||
for req := range reqs {
|
||||
q.Add(req)
|
||||
}
|
||||
}
|
||||
|
||||
// Delete implements EventHandler
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
// Generic implements EventHandler
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
|
@ -109,19 +115,18 @@ func (e *EnqueueRequestForOwner) parseOwnerTypeGroupKind(scheme *runtime.Scheme)
|
|||
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.
|
||||
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
|
||||
// by the user
|
||||
var result []reconcile.Request
|
||||
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
|
||||
refGV, err := schema.ParseGroupVersion(ref.APIVersion)
|
||||
if err != nil {
|
||||
log.Error(err, "Could not parse OwnerReference APIVersion",
|
||||
"api version", ref.APIVersion)
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
// 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)
|
||||
if err != nil {
|
||||
log.Error(err, "Could not retrieve rest mapping", "kind", e.groupKind)
|
||||
return nil
|
||||
return
|
||||
}
|
||||
if mapping.Scope.Name() != meta.RESTScopeNameRoot {
|
||||
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
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ go_library(
|
|||
deps = [
|
||||
"//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/wait: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/internal/controller/metrics:go_default_library",
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ import (
|
|||
|
||||
"github.com/go-logr/logr"
|
||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/client-go/util/workqueue"
|
||||
"sigs.k8s.io/controller-runtime/pkg/handler"
|
||||
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 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 bool
|
||||
|
||||
|
|
@ -150,8 +146,12 @@ func (c *Controller) Start(ctx context.Context) error {
|
|||
c.ctx = ctx
|
||||
|
||||
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 {
|
||||
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.
|
||||
c.startWatches = nil
|
||||
|
||||
if c.JitterPeriod == 0 {
|
||||
c.JitterPeriod = 1 * time.Second
|
||||
}
|
||||
|
||||
// Launch workers to process resources
|
||||
c.Log.Info("Starting workers", "worker count", c.MaxConcurrentReconciles)
|
||||
wg.Add(c.MaxConcurrentReconciles)
|
||||
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.
|
||||
// It enforces that the reconcileHandler is never invoked concurrently with the same object.
|
||||
for c.processNextWorkItem(ctx) {
|
||||
}
|
||||
}, c.JitterPeriod)
|
||||
}()
|
||||
}
|
||||
|
||||
c.Started = true
|
||||
|
|
@ -226,7 +224,9 @@ func (c *Controller) Start(ctx context.Context) error {
|
|||
}
|
||||
|
||||
<-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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@ type EventBroadcasterProducer func() (caster record.EventBroadcaster, stopWithPr
|
|||
// Provider is a recorder.Provider that records events to the k8s API server
|
||||
// and to a logr Logger.
|
||||
type Provider struct {
|
||||
lock sync.RWMutex
|
||||
stopped bool
|
||||
|
||||
// scheme to specify when creating a recorder
|
||||
scheme *runtime.Scheme
|
||||
// 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.
|
||||
broadcaster := p.getBroadcaster()
|
||||
if p.stopBroadcaster {
|
||||
p.lock.Lock()
|
||||
broadcaster.Shutdown()
|
||||
p.stopped = true
|
||||
p.lock.Unlock()
|
||||
}
|
||||
close(doneCh)
|
||||
}()
|
||||
|
|
@ -144,13 +150,28 @@ func (l *lazyRecorder) ensureRecording() {
|
|||
|
||||
func (l *lazyRecorder) Event(object runtime.Object, eventtype, reason, message string) {
|
||||
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{}) {
|
||||
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{}) {
|
||||
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()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,6 +91,11 @@ type Kind struct {
|
|||
|
||||
// cache used to watch APIs
|
||||
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{}
|
||||
|
|
@ -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")
|
||||
}
|
||||
|
||||
// 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 {
|
||||
if kindMatchErr, ok := err.(*meta.NoKindMatchError); ok {
|
||||
log.Error(err, "if kind is a CRD, it should be installed before calling Start",
|
||||
"kind", kindMatchErr.GroupKind)
|
||||
// cache.GetInformer will block until its context is cancelled if the cache was already started and it can not
|
||||
// sync that informer (most commonly due to RBAC issues).
|
||||
ctx, ks.startCancel = context.WithCancel(ctx)
|
||||
ks.started = make(chan error)
|
||||
go func() {
|
||||
// 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})
|
||||
i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct})
|
||||
if !ks.cache.WaitForCacheSync(ctx) {
|
||||
// Would be great to return something more informative here
|
||||
ks.started <- errors.New("cache did not sync")
|
||||
}
|
||||
close(ks.started)
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -133,11 +152,13 @@ func (ks *Kind) String() string {
|
|||
// WaitForSync implements SyncingSource to allow controllers to wait with starting
|
||||
// workers until the cache is synced.
|
||||
func (ks *Kind) WaitForSync(ctx context.Context) error {
|
||||
if !ks.cache.WaitForCacheSync(ctx) {
|
||||
// Would be great to return something more informative here
|
||||
return errors.New("cache did not sync")
|
||||
select {
|
||||
case err := <-ks.started:
|
||||
return err
|
||||
case <-ctx.Done():
|
||||
ks.startCancel()
|
||||
return errors.New("timed out waiting for cache to be synced")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var _ inject.Cache = &Kind{}
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ go_library(
|
|||
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
|
||||
"//vendor/github.com/prometheus/client_golang/prometheus/promhttp: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/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/internal/certwatcher:go_default_library",
|
||||
"//vendor/sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics:go_default_library",
|
||||
],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ import (
|
|||
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"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/webhook/internal/certwatcher"
|
||||
"sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics"
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue