mirror of
https://git.vectorsigma.ru/public/k3s.git
synced 2026-08-07 20:09:41 +00:00
Update to v1.22.5 (#4767)
* Update to v1.22.5 Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com> * Update to v1.22.5 Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
This commit is contained in:
78
go.mod
78
go.mod
@@ -40,37 +40,37 @@ replace (
|
||||
google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63
|
||||
google.golang.org/grpc => google.golang.org/grpc v1.38.0
|
||||
gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.2.2
|
||||
k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.4-k3s1
|
||||
k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.4-k3s1
|
||||
k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.4-k3s1
|
||||
k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.4-k3s1
|
||||
k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.4-k3s1
|
||||
k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.4-k3s1
|
||||
k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.4-k3s1
|
||||
k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.4-k3s1
|
||||
k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.4-k3s1
|
||||
k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.4-k3s1
|
||||
k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.4-k3s1
|
||||
k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.4-k3s1
|
||||
k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.4-k3s1
|
||||
k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.4-k3s1
|
||||
k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.5-k3s1
|
||||
k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.5-k3s1
|
||||
k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.5-k3s1
|
||||
k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.5-k3s1
|
||||
k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.5-k3s1
|
||||
k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.5-k3s1
|
||||
k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.5-k3s1
|
||||
k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.5-k3s1
|
||||
k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.5-k3s1
|
||||
k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.5-k3s1
|
||||
k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.5-k3s1
|
||||
k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.5-k3s1
|
||||
k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.5-k3s1
|
||||
k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.5-k3s1
|
||||
k8s.io/klog => github.com/k3s-io/klog v1.0.0-k3s2 // k3s-release-1.x
|
||||
k8s.io/klog/v2 => github.com/k3s-io/klog/v2 v2.9.0-k3s2 // k3s-main
|
||||
k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.4-k3s1
|
||||
k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.4-k3s1
|
||||
k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.4-k3s1
|
||||
k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.4-k3s1
|
||||
k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.4-k3s1
|
||||
k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.4-k3s1
|
||||
k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.22.4-k3s1
|
||||
k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.4-k3s1
|
||||
k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.4-k3s1
|
||||
k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.4-k3s1
|
||||
k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.22.4-k3s1
|
||||
k8s.io/pod-security-admission => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.4-k3s1
|
||||
k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.22.4-k3s1
|
||||
k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.22.4-k3s1
|
||||
k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.22.4-k3s1
|
||||
k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.5-k3s1
|
||||
k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.5-k3s1
|
||||
k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.5-k3s1
|
||||
k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.5-k3s1
|
||||
k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.5-k3s1
|
||||
k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.5-k3s1
|
||||
k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.22.5-k3s1
|
||||
k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.5-k3s1
|
||||
k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.5-k3s1
|
||||
k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.5-k3s1
|
||||
k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.22.5-k3s1
|
||||
k8s.io/pod-security-admission => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.5-k3s1
|
||||
k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.22.5-k3s1
|
||||
k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.22.5-k3s1
|
||||
k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.22.5-k3s1
|
||||
mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7
|
||||
)
|
||||
|
||||
@@ -124,23 +124,23 @@ require (
|
||||
go.etcd.io/etcd/etcdutl/v3 v3.5.0
|
||||
go.etcd.io/etcd/server/v3 v3.5.0
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
|
||||
golang.org/x/net v0.0.0-20211005215030-d2e5035098b3
|
||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63
|
||||
golang.org/x/sys v0.0.0-20211004093028-2c5d950f24ef
|
||||
google.golang.org/grpc v1.41.0
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
|
||||
k8s.io/api v0.22.4
|
||||
k8s.io/apimachinery v0.22.4
|
||||
k8s.io/apiserver v0.22.4
|
||||
k8s.io/api v0.22.5
|
||||
k8s.io/apimachinery v0.22.5
|
||||
k8s.io/apiserver v0.22.5
|
||||
k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
|
||||
k8s.io/cloud-provider v0.22.4
|
||||
k8s.io/component-base v0.22.4
|
||||
k8s.io/controller-manager v0.22.4 // indirect
|
||||
k8s.io/cri-api v0.22.4
|
||||
k8s.io/cloud-provider v0.22.5
|
||||
k8s.io/component-base v0.22.5
|
||||
k8s.io/controller-manager v0.22.5 // indirect
|
||||
k8s.io/cri-api v0.22.5
|
||||
k8s.io/klog v1.0.0
|
||||
k8s.io/klog/v2 v2.9.0
|
||||
k8s.io/kubectl v0.22.4
|
||||
k8s.io/kubernetes v1.22.4
|
||||
k8s.io/kubectl v0.22.5
|
||||
k8s.io/kubernetes v1.22.5
|
||||
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a
|
||||
sigs.k8s.io/yaml v1.2.0
|
||||
)
|
||||
|
||||
102
go.sum
102
go.sum
@@ -614,57 +614,57 @@ github.com/k3s-io/klog v1.0.0-k3s2 h1:yyvD2bQbxG7m85/pvNctLX2bUDmva5kOBvuZ77tTGB
|
||||
github.com/k3s-io/klog v1.0.0-k3s2/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
||||
github.com/k3s-io/klog/v2 v2.9.0-k3s2 h1:8Dzu3wGPFMo1mPEobSEpkHWH+HXqgFXp8R7FbcdgE8k=
|
||||
github.com/k3s-io/klog/v2 v2.9.0-k3s2/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
|
||||
github.com/k3s-io/kubernetes v1.22.4-k3s1 h1:a7a87QH6W5xSeYNjjdHS8AdMGrj7uauO6BuPJoeTXiI=
|
||||
github.com/k3s-io/kubernetes v1.22.4-k3s1/go.mod h1:cMy6DFG4E+/jxMgxw1aWMwZqvI1AueV3HCcG9S7QNIk=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.4-k3s1 h1:AHoGUNjhbQX75KWL0TuktFG2NbmIVqo0GhukN8XmP0s=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.4-k3s1/go.mod h1:IpPnJRE5t3olVaut5p67N16cZkWwwU5KVFM35xCKyxM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.4-k3s1 h1:VfZnYgB2GnJI9wg2HTh4SykSMhct5zKIFvmP5EiCxfg=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.4-k3s1/go.mod h1:zmJC+9mioTWRSt+xhOuRY3B87bEz3EtGeCd91gYRSi8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.4-k3s1 h1:YsYOB9ld0d3qdE0/g8Tk8tgQqkok/b01NX2FHSXiRmU=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.4-k3s1/go.mod h1:HSS1wcqIAF5ey2HsA1bh4U1SZzae/8FV8VZAwiHK8PU=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.4-k3s1 h1:XQbivk62qMy7Q8rklMkHRF+eLjJ8u3Cqc0EeZ6mmTM4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.4-k3s1/go.mod h1:cVrnyIo0O8rjEuwU3zDrcNB0+btiewJZILVn7l04ndA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.4-k3s1 h1:nPGXxWbLI1mzqL6YRBTUH83oKYbiGqU50M2xLcOEfk4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.4-k3s1/go.mod h1:lfgLhMRSK39X7vRKyVDIHEUngwllg9H4TCGWbC6sCeA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.4-k3s1 h1:gKUSdJoXU7FSpB5F8es62ZPHXowCyvFEfLuMOSUAtWs=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.4-k3s1/go.mod h1:O2pnHGDR/pgPeefYRaZj7oAOfA3WukxKhGFzkGhyIME=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.4-k3s1 h1:sJseLtOpIKYt3bZeCK108pB1kCV1hGuzxIbZWfkG8yE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.4-k3s1/go.mod h1:YfjUcxHPiB9x/eHUrBtefZ61AuHGSDXfyXtsLS5UlMQ=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.4-k3s1 h1:gNo4ngjVFAGE4pcNLueW0INcRn/DKBxpFenJ1PzPA0A=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.4-k3s1/go.mod h1:ppZJmhTukDTa5g/F0ksVMLM0Owbi9GeKhzuTXAVVJig=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.4-k3s1 h1:m6zmiTpMnPvOIP11+wjAWsnsSquQlRnwIl3Hx1dum8Y=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.4-k3s1/go.mod h1:+R4WCWo1TVAhFPpi7KfK5xSMMq+OUxpe0SXM8o+Y1PM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.4-k3s1 h1:XQpn74M9JoLO19rcOY85fN0difs4Jjwsq4j+ocS8I8o=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.4-k3s1/go.mod h1:cn9EB9A1wujtKWsHqB9lkYq8FL4dUuftmiqNyXIQEmE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.4-k3s1 h1:ArlHlCYeTu/5CCZIAioe+aeK8YUnW754fdaiJnyIuf4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.4-k3s1/go.mod h1:9Bx6HezI9sKzn5Boasw7vMT8FRgcXsExOoT87Wzdls4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.4-k3s1 h1:cw8+4RCgkyQWD/3ERYOFCQ3gJAX90Lfa4MFsbOfn4S8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.4-k3s1/go.mod h1:aPin+82yKPEirDGBtNS/4fcc3a1QVOqdt6zzxOlrfc8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.4-k3s1 h1:xW01nw4ClRO+drw5s4YR9pLoy3SPm1CH6+ZJeilYok0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.4-k3s1/go.mod h1:2XpB3zC24SSO5mhWTzWwBHrO5rO19ncH1bdqS+VuQsI=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.4-k3s1 h1:9uNa6fPpg+rpXa4jhmmwBs5QquUdJT8tN1VxEjC0x9w=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.4-k3s1/go.mod h1:B1gPUSbK2PVSnkxCgw/fmDckzQU6UCuyl670XFbEw6Q=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.4-k3s1 h1:SrNTndYl3oDd76FpfQetCAvb3KS/Q7LYRR4n1sUhxLQ=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.4-k3s1/go.mod h1:E98zh+3BdGMr4K4vdHQ++RDyPm29QUkHh/28KlKUS2M=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.4-k3s1 h1:o9eo80IgaxiWzXPCFo7azy+MJ1t936vTEOTG2glTYSs=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.4-k3s1/go.mod h1:46iKO45TZat/zvPyqe8TjLLrTS/U/nGB92Ft63PEPF0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.4-k3s1 h1:xRSYSJ1op+xFXB4pTpQxm6TPUsVih26bixaL7t2rBJ8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.4-k3s1/go.mod h1:6mEp02ABsuOeeBuUrrol78v9LYysX7Z8CZOMFlkPOOI=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.4-k3s1 h1:kDo4emfEJkLpeTLvAqjofwaTNP8+KM3nHUW46b/pY1s=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.4-k3s1/go.mod h1:xZnfOrGTta6rB9IWNKl82yzWKpMSUXVmyGHRilQ9kzM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.4-k3s1 h1:AWCYJ5YiP2/x2qeweeoSPUg0qF+FQoW9xBAE+b/xH44=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.4-k3s1/go.mod h1:tQ6sES/uhan72qymDDma4H0wrrF0gcZIYV8cczR20es=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.4-k3s1 h1:fS1sfV8JD4ksV1uwruH6SOGk2YA9FmAwggmBoNvHbjE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.4-k3s1/go.mod h1:ykhJBi1kXSUeYSTzHe2F6A8nDAfF2jjClsagmgX96vk=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.4-k3s1 h1:BZNjFNRzgQRJnHxA35Fz2+ag7z+ShhvahyPrxQ7Tq9c=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.4-k3s1/go.mod h1:X8EaUY5K2IM/62KAMuHGuHyOhsJwvsoRwdvsyWjm++g=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.4-k3s1 h1:7hhRJgwEHGOLKtIdRFAqS+L2eWpehkv1vARzt9izq3g=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.4-k3s1/go.mod h1:I5RbQZ+gj12KSgWzMyHaE0hudGajvT/Nc5jRE/WMJnI=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.4-k3s1 h1:3n9EXeC3/+Z6uf92gyQ5DoNcEsaVjiNiCLrauUE8TSY=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.4-k3s1/go.mod h1:7UvmmOyjKl2RW0tgpT4l1z7dxVV4TMnAAlSN95cpUeM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.4-k3s1 h1:BYAhog5yKELWQnADuEOjgmhv95ACupwuWMnH3Reoq7A=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.4-k3s1/go.mod h1:NQr24M7bou27uJhKTCgiz8L/BbJm2G9ZjUQOmO1ZkDE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.22.4-k3s1/go.mod h1:UxJ/6uQrndnWNUMK/16LYsFZK98WTolizwpjcIINGCg=
|
||||
github.com/k3s-io/kubernetes v1.22.5-k3s1 h1:7yCukb0qQtYYl4G/9wsFI4KrWt/rBq8nhGe8UJg5D1M=
|
||||
github.com/k3s-io/kubernetes v1.22.5-k3s1/go.mod h1:ejAVRNlNOIWvq0c5m3qAnzEdizuFlWBKXRf/HV6Z2zA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.5-k3s1 h1:PfQiPKFXMpYoQm4wu1dAccPNrlPBl3NcaIa3PLczkKc=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.5-k3s1/go.mod h1:IpPnJRE5t3olVaut5p67N16cZkWwwU5KVFM35xCKyxM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.5-k3s1 h1:8yZTzqwkBxBX++6S7wfTVNLvh7lBh0lE1TCWjWJX6rM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.5-k3s1/go.mod h1:zmJC+9mioTWRSt+xhOuRY3B87bEz3EtGeCd91gYRSi8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.5-k3s1 h1:Jl/6/P0Hff8N35m68OXq6NyXE94j2XaGV5Ycbx7/muQ=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.5-k3s1/go.mod h1:CPNWf+iwEQb0MEUbflFgtLpMRT5UiVeXy21z+C7WkLs=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.5-k3s1 h1:LdaZsJZ5avfbvKRT6X4HSp2uws+VaLIhQ6PZPSBW6+8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.5-k3s1/go.mod h1:xbBlu3LNbi30+2d73xFdH7F+AWZcu7pyDv/3B+rkH8I=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.5-k3s1 h1:jaJIn+55XCs/k9ZKClWyLVxXvsvFir+6M+W2Bb3sLn0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.5-k3s1/go.mod h1:lfgLhMRSK39X7vRKyVDIHEUngwllg9H4TCGWbC6sCeA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.5-k3s1 h1:m68Z7UWs1c693gj0ETGrTAT7WTup/wVzs0BD0+z6qK8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.5-k3s1/go.mod h1:ruxs1CFwYoF6mB/ihiy0QOhjEVkgXtL8DfcRqjcd0ZM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.5-k3s1 h1:pG0S1X9Z4fZIghhAm3CUSjXkj+DLWDoWoDnITt6mzVI=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.5-k3s1/go.mod h1:YfjUcxHPiB9x/eHUrBtefZ61AuHGSDXfyXtsLS5UlMQ=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.5-k3s1 h1:6DRfyZMRyX9uyBVfp/Q7KMLwVsJh1qV/fwXx0aLSafg=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.5-k3s1/go.mod h1:ppZJmhTukDTa5g/F0ksVMLM0Owbi9GeKhzuTXAVVJig=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.5-k3s1 h1:i7uS/362eIgFFSPqQJuSlYdQTPPVoowk0jjXtsEoccs=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.5-k3s1/go.mod h1:82FKZSTpGAYDo9TEyO2POCP5VZtwKBWPltOxr/PEY+c=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.5-k3s1 h1:84mQgv2Rdk6i4gMQCCeJWWqfBNvpWDFw/0CoyLMMtnA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.5-k3s1/go.mod h1:cn9EB9A1wujtKWsHqB9lkYq8FL4dUuftmiqNyXIQEmE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.5-k3s1 h1:5tvssVHERALMF7zABCbif6yZMOq85zytvd2csYAkGtM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.5-k3s1/go.mod h1:9Bx6HezI9sKzn5Boasw7vMT8FRgcXsExOoT87Wzdls4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.5-k3s1 h1:kh0pJO2YSebdY4sobgYwrXVgAxbxxp4L8RBL6cKrRhw=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.5-k3s1/go.mod h1:aPin+82yKPEirDGBtNS/4fcc3a1QVOqdt6zzxOlrfc8=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.5-k3s1 h1:yeByf1wy5izH3othxgFjZ7f7NUVQRPwnLwHIEQv58Q4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.5-k3s1/go.mod h1:GsmfuA0cekL0pkx1Ejxk3HZGHza02Ch2Lo09bNQLR8E=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.5-k3s1 h1:O2xMSUBoDvVeOwv9ViFuoQfCylfeYJqi9nNGVQMROj0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.5-k3s1/go.mod h1:B1gPUSbK2PVSnkxCgw/fmDckzQU6UCuyl670XFbEw6Q=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.5-k3s1 h1:t3SuKQZtUpYB/R4MieoFx6fh/fWHXNzq3/mib+rENRA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.5-k3s1/go.mod h1:xWIF188w3xG2X6QBYWG9Ovh6sO+QgHS2CpsVmWlYhHE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.5-k3s1 h1:lPHb6H3SKl6inhhqRinbIwkIo7ZVAxSnv5wlWglbkI0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.5-k3s1/go.mod h1:46iKO45TZat/zvPyqe8TjLLrTS/U/nGB92Ft63PEPF0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.5-k3s1 h1:+zqOazLCiWOvRBMoqK+HwoDVOs9kp+NYY1udwdR2yKA=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.5-k3s1/go.mod h1:6mEp02ABsuOeeBuUrrol78v9LYysX7Z8CZOMFlkPOOI=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.5-k3s1 h1:zbfev5cQ2rnxp6zNjs57hKbJqLM7v2bEjkfZnGzaMko=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.5-k3s1/go.mod h1:xZnfOrGTta6rB9IWNKl82yzWKpMSUXVmyGHRilQ9kzM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.5-k3s1 h1:daI0h9X8BaefmN10PSp++1ZUPFSYG//XfkxMi5KYdgM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.5-k3s1/go.mod h1:tQ6sES/uhan72qymDDma4H0wrrF0gcZIYV8cczR20es=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.5-k3s1 h1:0Tu+dcBSGwVDGNEOLfSOGir5EhE9AFagIbR6C9nYMSw=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.5-k3s1/go.mod h1:WyrLJLrfabeu6M39g8+g4tuj+qjP70IVV8HQFp3EBb4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.5-k3s1 h1:25FKLF/JBFZNTCfnvbm8ChEqU992pst3+wPL99dY7iM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.5-k3s1/go.mod h1:X8EaUY5K2IM/62KAMuHGuHyOhsJwvsoRwdvsyWjm++g=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.5-k3s1 h1:8UDMX+xp8872C3AdMlq2LY86QTHDj0rA3gp72aftkn0=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.5-k3s1/go.mod h1:I5RbQZ+gj12KSgWzMyHaE0hudGajvT/Nc5jRE/WMJnI=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.5-k3s1 h1:bf3VDsr8kuKI5tpkcFX/7CAqm9PLazKAaeiE8i50DB4=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.5-k3s1/go.mod h1:7UvmmOyjKl2RW0tgpT4l1z7dxVV4TMnAAlSN95cpUeM=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.5-k3s1 h1:UqlvFB1lXtxAdDgc8AIvQX0Mzco7hSIYKq/9vNj5lag=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.5-k3s1/go.mod h1:NQr24M7bou27uJhKTCgiz8L/BbJm2G9ZjUQOmO1ZkDE=
|
||||
github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.22.5-k3s1/go.mod h1:UxJ/6uQrndnWNUMK/16LYsFZK98WTolizwpjcIINGCg=
|
||||
github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
|
||||
github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
|
||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||
|
||||
6
vendor/k8s.io/client-go/pkg/version/base.go
generated
vendored
6
vendor/k8s.io/client-go/pkg/version/base.go
generated
vendored
@@ -3,8 +3,8 @@ package version
|
||||
var (
|
||||
gitMajor = "1"
|
||||
gitMinor = "22"
|
||||
gitVersion = "v1.22.4-k3s1"
|
||||
gitCommit = "00226be68bd6b70f8fca252a1027fc0a35d070b8"
|
||||
gitVersion = "v1.22.5-k3s1"
|
||||
gitCommit = "85d7ce45a6494324421181c9d778f4db131d8590"
|
||||
gitTreeState = "clean"
|
||||
buildDate = "2021-11-17T22:30:06Z"
|
||||
buildDate = "2021-12-16T17:17:19Z"
|
||||
)
|
||||
|
||||
4
vendor/k8s.io/cloud-provider/go.sum
generated
vendored
4
vendor/k8s.io/cloud-provider/go.sum
generated
vendored
@@ -542,8 +542,8 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 h1:ADo5wSpq2gqaCGQWzk7S5vd//0iyyLeAratkEoG5dLE=
|
||||
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY=
|
||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
|
||||
6
vendor/k8s.io/component-base/version/base.go
generated
vendored
6
vendor/k8s.io/component-base/version/base.go
generated
vendored
@@ -3,8 +3,8 @@ package version
|
||||
var (
|
||||
gitMajor = "1"
|
||||
gitMinor = "22"
|
||||
gitVersion = "v1.22.4-k3s1"
|
||||
gitCommit = "00226be68bd6b70f8fca252a1027fc0a35d070b8"
|
||||
gitVersion = "v1.22.5-k3s1"
|
||||
gitCommit = "85d7ce45a6494324421181c9d778f4db131d8590"
|
||||
gitTreeState = "clean"
|
||||
buildDate = "2021-11-17T22:30:06Z"
|
||||
buildDate = "2021-12-16T17:17:19Z"
|
||||
)
|
||||
|
||||
4
vendor/k8s.io/csi-translation-lib/go.sum
generated
vendored
4
vendor/k8s.io/csi-translation-lib/go.sum
generated
vendored
@@ -124,8 +124,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
|
||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 h1:ADo5wSpq2gqaCGQWzk7S5vd//0iyyLeAratkEoG5dLE=
|
||||
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY=
|
||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
||||
10
vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controllerv2.go
generated
vendored
10
vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controllerv2.go
generated
vendored
@@ -20,6 +20,7 @@ import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/robfig/cron/v3"
|
||||
@@ -482,15 +483,20 @@ func (jm *ControllerV2) syncCronJob(
|
||||
// this is likely a user error in defining the spec value
|
||||
// we should log the error and not reconcile this cronjob until an update to spec
|
||||
klog.V(2).InfoS("Unparseable schedule", "cronjob", klog.KRef(cj.GetNamespace(), cj.GetName()), "schedule", cj.Spec.Schedule, "err", err)
|
||||
jm.recorder.Eventf(cj, corev1.EventTypeWarning, "UnparseableSchedule", "unparseable schedule: %s : %s", cj.Spec.Schedule, err)
|
||||
jm.recorder.Eventf(cj, corev1.EventTypeWarning, "UnparseableSchedule", "unparseable schedule: %q : %s", cj.Spec.Schedule, err)
|
||||
return cj, nil, nil
|
||||
}
|
||||
|
||||
if strings.Contains(cj.Spec.Schedule, "TZ") {
|
||||
jm.recorder.Eventf(cj, corev1.EventTypeWarning, "UnsupportedSchedule", "CRON_TZ or TZ used in schedule %q is not officially supported, see https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ for more details", cj.Spec.Schedule)
|
||||
}
|
||||
|
||||
scheduledTime, err := getNextScheduleTime(*cj, now, sched, jm.recorder)
|
||||
if err != nil {
|
||||
// this is likely a user error in defining the spec value
|
||||
// we should log the error and not reconcile this cronjob until an update to spec
|
||||
klog.V(2).InfoS("invalid schedule", "cronjob", klog.KRef(cj.GetNamespace(), cj.GetName()), "schedule", cj.Spec.Schedule, "err", err)
|
||||
jm.recorder.Eventf(cj, corev1.EventTypeWarning, "InvalidSchedule", "invalid schedule schedule: %s : %s", cj.Spec.Schedule, err)
|
||||
jm.recorder.Eventf(cj, corev1.EventTypeWarning, "InvalidSchedule", "invalid schedule: %s : %s", cj.Spec.Schedule, err)
|
||||
return cj, nil, nil
|
||||
}
|
||||
if scheduledTime == nil {
|
||||
|
||||
16
vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint/checkpoint.go
generated
vendored
16
vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint/checkpoint.go
generated
vendored
@@ -27,7 +27,7 @@ import (
|
||||
// DeviceManagerCheckpoint defines the operations to retrieve pod devices
|
||||
type DeviceManagerCheckpoint interface {
|
||||
checkpointmanager.Checkpoint
|
||||
GetData() ([]PodDevicesEntry, map[string][]string)
|
||||
GetDataInLatestFormat() ([]PodDevicesEntry, map[string][]string)
|
||||
}
|
||||
|
||||
// DevicesPerNUMA represents device ids obtained from device plugin per NUMA node id
|
||||
@@ -72,9 +72,12 @@ func (dev DevicesPerNUMA) Devices() sets.String {
|
||||
return result
|
||||
}
|
||||
|
||||
// New returns an instance of Checkpoint
|
||||
func New(devEntries []PodDevicesEntry,
|
||||
devices map[string][]string) DeviceManagerCheckpoint {
|
||||
// New returns an instance of Checkpoint - must be an alias for the most recent version
|
||||
func New(devEntries []PodDevicesEntry, devices map[string][]string) DeviceManagerCheckpoint {
|
||||
return NewV2(devEntries, devices)
|
||||
}
|
||||
|
||||
func NewV2(devEntries []PodDevicesEntry, devices map[string][]string) DeviceManagerCheckpoint {
|
||||
return &Data{
|
||||
Data: checkpointData{
|
||||
PodDeviceEntries: devEntries,
|
||||
@@ -99,7 +102,8 @@ func (cp *Data) VerifyChecksum() error {
|
||||
return cp.Checksum.Verify(cp.Data)
|
||||
}
|
||||
|
||||
// GetData returns device entries and registered devices
|
||||
func (cp *Data) GetData() ([]PodDevicesEntry, map[string][]string) {
|
||||
// GetDataInLatestFormat returns device entries and registered devices in the *most recent*
|
||||
// checkpoint format, *not* in the original format stored on disk.
|
||||
func (cp *Data) GetDataInLatestFormat() ([]PodDevicesEntry, map[string][]string) {
|
||||
return cp.Data.PodDeviceEntries, cp.Data.RegisteredDevices
|
||||
}
|
||||
|
||||
124
vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint/checkpointv1.go
generated
vendored
Normal file
124
vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint/checkpointv1.go
generated
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
Copyright 2017 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 checkpoint
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"hash/fnv"
|
||||
"strings"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager/checksum"
|
||||
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager/errors"
|
||||
)
|
||||
|
||||
// PodDevicesEntry connects pod information to devices, without topology information (k8s <= 1.19)
|
||||
type PodDevicesEntryV1 struct {
|
||||
PodUID string
|
||||
ContainerName string
|
||||
ResourceName string
|
||||
DeviceIDs []string
|
||||
AllocResp []byte
|
||||
}
|
||||
|
||||
// checkpointData struct is used to store pod to device allocation information
|
||||
// in a checkpoint file, without topology information (k8s <= 1.19)
|
||||
type checkpointDataV1 struct {
|
||||
PodDeviceEntries []PodDevicesEntryV1
|
||||
RegisteredDevices map[string][]string
|
||||
}
|
||||
|
||||
// checksum compute the checksum using the same algorithms (and data type names) k8s 1.19 used.
|
||||
// We need this special code path to be able to correctly validate the checksum k8s 1.19 wrote.
|
||||
// credits to https://github.com/kubernetes/kubernetes/pull/102717/commits/353f93895118d2ffa2d59a29a1fbc225160ea1d6
|
||||
func (cp checkpointDataV1) checksum() checksum.Checksum {
|
||||
printer := spew.ConfigState{
|
||||
Indent: " ",
|
||||
SortKeys: true,
|
||||
DisableMethods: true,
|
||||
SpewKeys: true,
|
||||
}
|
||||
|
||||
object := printer.Sprintf("%#v", cp)
|
||||
object = strings.Replace(object, "checkpointDataV1", "checkpointData", 1)
|
||||
object = strings.Replace(object, "PodDevicesEntryV1", "PodDevicesEntry", -1)
|
||||
hash := fnv.New32a()
|
||||
printer.Fprintf(hash, "%v", object)
|
||||
return checksum.Checksum(hash.Sum32())
|
||||
}
|
||||
|
||||
// Data holds checkpoint data and its checksum, in V1 (k8s <= 1.19) format
|
||||
type DataV1 struct {
|
||||
Data checkpointDataV1
|
||||
Checksum checksum.Checksum
|
||||
}
|
||||
|
||||
// New returns an instance of Checkpoint, in V1 (k8s <= 1.19) format.
|
||||
// Users should avoid creating checkpoints in formats different than the most recent one,
|
||||
// use the old formats only to validate existing checkpoint and convert them to most recent
|
||||
// format. The only exception should be test code.
|
||||
func NewV1(devEntries []PodDevicesEntryV1,
|
||||
devices map[string][]string) DeviceManagerCheckpoint {
|
||||
return &DataV1{
|
||||
Data: checkpointDataV1{
|
||||
PodDeviceEntries: devEntries,
|
||||
RegisteredDevices: devices,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// MarshalCheckpoint is needed to implement the Checkpoint interface, but should not be called anymore
|
||||
func (cp *DataV1) MarshalCheckpoint() ([]byte, error) {
|
||||
klog.InfoS("Marshalling a device manager V1 checkpoint")
|
||||
cp.Checksum = cp.Data.checksum()
|
||||
return json.Marshal(*cp)
|
||||
}
|
||||
|
||||
// MarshalCheckpoint returns marshalled data
|
||||
func (cp *DataV1) UnmarshalCheckpoint(blob []byte) error {
|
||||
return json.Unmarshal(blob, cp)
|
||||
}
|
||||
|
||||
// VerifyChecksum verifies that passed checksum is same as calculated checksum
|
||||
func (cp *DataV1) VerifyChecksum() error {
|
||||
if cp.Checksum != cp.Data.checksum() {
|
||||
return errors.ErrCorruptCheckpoint
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetDataInLatestFormat returns device entries and registered devices in the *most recent*
|
||||
// checkpoint format, *not* in the original format stored on disk.
|
||||
func (cp *DataV1) GetDataInLatestFormat() ([]PodDevicesEntry, map[string][]string) {
|
||||
var podDevs []PodDevicesEntry
|
||||
for _, entryV1 := range cp.Data.PodDeviceEntries {
|
||||
devsPerNuma := NewDevicesPerNUMA()
|
||||
// no NUMA cell affinity was recorded. The only possible choice
|
||||
// is to set all the devices affine to node 0.
|
||||
devsPerNuma[0] = entryV1.DeviceIDs
|
||||
podDevs = append(podDevs, PodDevicesEntry{
|
||||
PodUID: entryV1.PodUID,
|
||||
ContainerName: entryV1.ContainerName,
|
||||
ResourceName: entryV1.ResourceName,
|
||||
DeviceIDs: devsPerNuma,
|
||||
AllocResp: entryV1.AllocResp,
|
||||
})
|
||||
}
|
||||
return podDevs, cp.Data.RegisteredDevices
|
||||
}
|
||||
43
vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go
generated
vendored
43
vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go
generated
vendored
@@ -598,20 +598,33 @@ func (m *ManagerImpl) writeCheckpoint() error {
|
||||
// Reads device to container allocation information from disk, and populates
|
||||
// m.allocatedDevices accordingly.
|
||||
func (m *ManagerImpl) readCheckpoint() error {
|
||||
registeredDevs := make(map[string][]string)
|
||||
devEntries := make([]checkpoint.PodDevicesEntry, 0)
|
||||
cp := checkpoint.New(devEntries, registeredDevs)
|
||||
err := m.checkpointManager.GetCheckpoint(kubeletDeviceManagerCheckpoint, cp)
|
||||
// the vast majority of time we restore a compatible checkpoint, so we try
|
||||
// the current version first. Trying to restore older format checkpoints is
|
||||
// relevant only in the kubelet upgrade flow, which happens once in a
|
||||
// (long) while.
|
||||
cp, err := m.getCheckpointV2()
|
||||
if err != nil {
|
||||
if err == errors.ErrCheckpointNotFound {
|
||||
klog.InfoS("Failed to retrieve checkpoint", "checkpoint", kubeletDeviceManagerCheckpoint, "err", err)
|
||||
// no point in trying anything else
|
||||
klog.InfoS("Failed to read data from checkpoint", "checkpoint", kubeletDeviceManagerCheckpoint, "err", err)
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
|
||||
var errv1 error
|
||||
// one last try: maybe it's a old format checkpoint?
|
||||
cp, errv1 = m.getCheckpointV1()
|
||||
if errv1 != nil {
|
||||
klog.InfoS("Failed to read checkpoint V1 file", "err", errv1)
|
||||
// intentionally return the parent error. We expect to restore V1 checkpoints
|
||||
// a tiny fraction of time, so what matters most is the current checkpoint read error.
|
||||
return err
|
||||
}
|
||||
klog.InfoS("Read data from a V1 checkpoint", "checkpoint", kubeletDeviceManagerCheckpoint)
|
||||
}
|
||||
|
||||
m.mutex.Lock()
|
||||
defer m.mutex.Unlock()
|
||||
podDevices, registeredDevs := cp.GetData()
|
||||
podDevices, registeredDevs := cp.GetDataInLatestFormat()
|
||||
m.podDevices.fromCheckpointData(podDevices)
|
||||
m.allocatedDevices = m.podDevices.devices()
|
||||
for resource := range registeredDevs {
|
||||
@@ -624,6 +637,22 @@ func (m *ManagerImpl) readCheckpoint() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ManagerImpl) getCheckpointV2() (checkpoint.DeviceManagerCheckpoint, error) {
|
||||
registeredDevs := make(map[string][]string)
|
||||
devEntries := make([]checkpoint.PodDevicesEntry, 0)
|
||||
cp := checkpoint.New(devEntries, registeredDevs)
|
||||
err := m.checkpointManager.GetCheckpoint(kubeletDeviceManagerCheckpoint, cp)
|
||||
return cp, err
|
||||
}
|
||||
|
||||
func (m *ManagerImpl) getCheckpointV1() (checkpoint.DeviceManagerCheckpoint, error) {
|
||||
registeredDevs := make(map[string][]string)
|
||||
devEntries := make([]checkpoint.PodDevicesEntryV1, 0)
|
||||
cp := checkpoint.NewV1(devEntries, registeredDevs)
|
||||
err := m.checkpointManager.GetCheckpoint(kubeletDeviceManagerCheckpoint, cp)
|
||||
return cp, err
|
||||
}
|
||||
|
||||
// UpdateAllocatedDevices frees any Devices that are bound to terminated pods.
|
||||
func (m *ManagerImpl) UpdateAllocatedDevices() {
|
||||
if !m.sourcesReady.AllReady() {
|
||||
|
||||
12
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image_linux.go
generated
vendored
12
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image_linux.go
generated
vendored
@@ -24,20 +24,12 @@ import (
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"k8s.io/klog/v2"
|
||||
|
||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
)
|
||||
|
||||
// ImageFsInfo returns information of the filesystem that is used to store images.
|
||||
func (ds *dockerService) ImageFsInfo(_ context.Context, _ *runtimeapi.ImageFsInfoRequest) (*runtimeapi.ImageFsInfoResponse, error) {
|
||||
info, err := ds.client.Info()
|
||||
if err != nil {
|
||||
klog.ErrorS(err, "Failed to get docker info")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
bytes, inodes, err := dirSize(filepath.Join(info.DockerRootDir, "image"))
|
||||
bytes, inodes, err := dirSize(filepath.Join(ds.dockerRootDir, "image"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -47,7 +39,7 @@ func (ds *dockerService) ImageFsInfo(_ context.Context, _ *runtimeapi.ImageFsInf
|
||||
{
|
||||
Timestamp: time.Now().Unix(),
|
||||
FsId: &runtimeapi.FilesystemIdentifier{
|
||||
Mountpoint: info.DockerRootDir,
|
||||
Mountpoint: ds.dockerRootDir,
|
||||
},
|
||||
UsedBytes: &runtimeapi.UInt64Value{
|
||||
Value: uint64(bytes),
|
||||
|
||||
12
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image_windows.go
generated
vendored
12
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image_windows.go
generated
vendored
@@ -30,16 +30,10 @@ import (
|
||||
|
||||
// ImageFsInfo returns information of the filesystem that is used to store images.
|
||||
func (ds *dockerService) ImageFsInfo(_ context.Context, _ *runtimeapi.ImageFsInfoRequest) (*runtimeapi.ImageFsInfoResponse, error) {
|
||||
info, err := ds.client.Info()
|
||||
if err != nil {
|
||||
klog.ErrorS(err, "Failed to get docker info")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
statsClient := &winstats.StatsClient{}
|
||||
fsinfo, err := statsClient.GetDirFsInfo(info.DockerRootDir)
|
||||
fsinfo, err := statsClient.GetDirFsInfo(ds.dockerRootDir)
|
||||
if err != nil {
|
||||
klog.ErrorS(err, "Failed to get fsInfo for dockerRootDir", "path", info.DockerRootDir)
|
||||
klog.ErrorS(err, "Failed to get fsInfo for dockerRootDir", "path", ds.dockerRootDir)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -48,7 +42,7 @@ func (ds *dockerService) ImageFsInfo(_ context.Context, _ *runtimeapi.ImageFsInf
|
||||
Timestamp: time.Now().UnixNano(),
|
||||
UsedBytes: &runtimeapi.UInt64Value{Value: fsinfo.Usage},
|
||||
FsId: &runtimeapi.FilesystemIdentifier{
|
||||
Mountpoint: info.DockerRootDir,
|
||||
Mountpoint: ds.dockerRootDir,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
18
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_service.go
generated
vendored
18
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_service.go
generated
vendored
@@ -256,16 +256,17 @@ func NewDockerService(config *ClientConfig, podSandboxImage string, streamingCon
|
||||
ds.network = network.NewPluginManager(plug)
|
||||
klog.InfoS("Docker cri networking managed by the network plugin", "networkPluginName", plug.Name())
|
||||
|
||||
dockerInfo, err := ds.client.Info()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to execute Info() call to the Docker client")
|
||||
}
|
||||
klog.InfoS("Docker Info", "dockerInfo", dockerInfo)
|
||||
ds.dockerRootDir = dockerInfo.DockerRootDir
|
||||
|
||||
// skipping cgroup driver checks for Windows
|
||||
if runtime.GOOS == "linux" {
|
||||
// NOTE: cgroup driver is only detectable in docker 1.11+
|
||||
cgroupDriver := defaultCgroupDriver
|
||||
dockerInfo, err := ds.client.Info()
|
||||
klog.InfoS("Docker Info", "dockerInfo", dockerInfo)
|
||||
if err != nil {
|
||||
klog.ErrorS(err, "Failed to execute Info() call to the Docker client")
|
||||
klog.InfoS("Falling back to use the default driver", "cgroupDriver", cgroupDriver)
|
||||
} else if len(dockerInfo.CgroupDriver) == 0 {
|
||||
if len(dockerInfo.CgroupDriver) == 0 {
|
||||
klog.InfoS("No cgroup driver is set in Docker")
|
||||
klog.InfoS("Falling back to use the default driver", "cgroupDriver", cgroupDriver)
|
||||
} else {
|
||||
@@ -313,6 +314,9 @@ type dockerService struct {
|
||||
// the docker daemon every time we need to do such checks.
|
||||
versionCache *cache.ObjectCache
|
||||
|
||||
// docker root directory
|
||||
dockerRootDir string
|
||||
|
||||
// containerCleanupInfos maps container IDs to the `containerCleanupInfo` structs
|
||||
// needed to clean up after containers have been removed.
|
||||
// (see `applyPlatformSpecificDockerConfig` and `performPlatformSpecificContainerCleanup`
|
||||
|
||||
17
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats.go
generated
vendored
17
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats.go
generated
vendored
@@ -20,13 +20,24 @@ package dockershim
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
)
|
||||
|
||||
// ContainerStats returns stats for a container stats request based on container id.
|
||||
func (ds *dockerService) ContainerStats(_ context.Context, r *runtimeapi.ContainerStatsRequest) (*runtimeapi.ContainerStatsResponse, error) {
|
||||
stats, err := ds.getContainerStats(r.ContainerId)
|
||||
func (ds *dockerService) ContainerStats(ctx context.Context, r *runtimeapi.ContainerStatsRequest) (*runtimeapi.ContainerStatsResponse, error) {
|
||||
filter := &runtimeapi.ContainerFilter{
|
||||
Id: r.ContainerId,
|
||||
}
|
||||
listResp, err := ds.ListContainers(ctx, &runtimeapi.ListContainersRequest{Filter: filter})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(listResp.Containers) != 1 {
|
||||
return nil, fmt.Errorf("container with id %s not found", r.ContainerId)
|
||||
}
|
||||
stats, err := ds.getContainerStats(listResp.Containers[0])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -51,7 +62,7 @@ func (ds *dockerService) ListContainerStats(ctx context.Context, r *runtimeapi.L
|
||||
|
||||
var stats []*runtimeapi.ContainerStats
|
||||
for _, container := range listResp.Containers {
|
||||
containerStats, err := ds.getContainerStats(container.Id)
|
||||
containerStats, err := ds.getContainerStats(container)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
28
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_linux.go
generated
vendored
28
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_linux.go
generated
vendored
@@ -19,42 +19,30 @@ limitations under the License.
|
||||
package dockershim
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
)
|
||||
|
||||
func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.ContainerStats, error) {
|
||||
info, err := ds.client.Info()
|
||||
func (ds *dockerService) getContainerStats(c *runtimeapi.Container) (*runtimeapi.ContainerStats, error) {
|
||||
statsJSON, err := ds.client.GetContainerStats(c.Id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
statsJSON, err := ds.client.GetContainerStats(containerID)
|
||||
containerJSON, err := ds.client.InspectContainerWithSize(c.Id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
containerJSON, err := ds.client.InspectContainerWithSize(containerID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
statusResp, err := ds.ContainerStatus(context.Background(), &runtimeapi.ContainerStatusRequest{ContainerId: containerID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
status := statusResp.GetStatus()
|
||||
|
||||
dockerStats := statsJSON.Stats
|
||||
timestamp := time.Now().UnixNano()
|
||||
containerStats := &runtimeapi.ContainerStats{
|
||||
Attributes: &runtimeapi.ContainerAttributes{
|
||||
Id: containerID,
|
||||
Metadata: status.Metadata,
|
||||
Labels: status.Labels,
|
||||
Annotations: status.Annotations,
|
||||
Id: c.Id,
|
||||
Metadata: c.Metadata,
|
||||
Labels: c.Labels,
|
||||
Annotations: c.Annotations,
|
||||
},
|
||||
Cpu: &runtimeapi.CpuUsage{
|
||||
Timestamp: timestamp,
|
||||
@@ -66,7 +54,7 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont
|
||||
},
|
||||
WritableLayer: &runtimeapi.FilesystemUsage{
|
||||
Timestamp: timestamp,
|
||||
FsId: &runtimeapi.FilesystemIdentifier{Mountpoint: info.DockerRootDir},
|
||||
FsId: &runtimeapi.FilesystemIdentifier{Mountpoint: ds.dockerRootDir},
|
||||
UsedBytes: &runtimeapi.UInt64Value{Value: uint64(*containerJSON.SizeRw)},
|
||||
},
|
||||
}
|
||||
|
||||
2
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_unsupported.go
generated
vendored
2
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_unsupported.go
generated
vendored
@@ -24,6 +24,6 @@ import (
|
||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
)
|
||||
|
||||
func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.ContainerStats, error) {
|
||||
func (ds *dockerService) getContainerStats(c *runtimeapi.Container) (*runtimeapi.ContainerStats, error) {
|
||||
return nil, fmt.Errorf("not implemented")
|
||||
}
|
||||
|
||||
42
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_windows.go
generated
vendored
42
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_windows.go
generated
vendored
@@ -19,7 +19,6 @@ limitations under the License.
|
||||
package dockershim
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -28,26 +27,21 @@ import (
|
||||
"k8s.io/klog/v2"
|
||||
)
|
||||
|
||||
func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.ContainerStats, error) {
|
||||
info, err := ds.client.Info()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
hcsshimContainer, err := hcsshim.OpenContainer(containerID)
|
||||
func (ds *dockerService) getContainerStats(c *runtimeapi.Container) (*runtimeapi.ContainerStats, error) {
|
||||
hcsshimContainer, err := hcsshim.OpenContainer(c.Id)
|
||||
if err != nil {
|
||||
// As we moved from using Docker stats to hcsshim directly, we may query HCS with already exited container IDs.
|
||||
// That will typically happen with init-containers in Exited state. Docker still knows about them but the HCS does not.
|
||||
// As we don't want to block stats retrieval for other containers, we only log errors.
|
||||
if !hcsshim.IsNotExist(err) && !hcsshim.IsAlreadyStopped(err) {
|
||||
klog.V(4).InfoS("Error opening container (stats will be missing)", "containerID", containerID, "err", err)
|
||||
klog.V(4).InfoS("Error opening container (stats will be missing)", "containerID", c.Id, "err", err)
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
defer func() {
|
||||
closeErr := hcsshimContainer.Close()
|
||||
if closeErr != nil {
|
||||
klog.ErrorS(closeErr, "Error closing container", "containerID", containerID)
|
||||
klog.ErrorS(closeErr, "Error closing container", "containerID", c.Id)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -60,30 +54,19 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont
|
||||
// These hcs errors do not have helpers exposed in public package so need to query for the known codes
|
||||
// https://github.com/microsoft/hcsshim/blob/master/internal/hcs/errors.go
|
||||
// PR to expose helpers in hcsshim: https://github.com/microsoft/hcsshim/pull/933
|
||||
klog.V(4).InfoS("Container is not in a state that stats can be accessed. This occurs when the container is created but not started.", "containerID", containerID, "err", err)
|
||||
klog.V(4).InfoS("Container is not in a state that stats can be accessed. This occurs when the container is created but not started.", "containerID", c.Id, "err", err)
|
||||
return nil, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
containerJSON, err := ds.client.InspectContainerWithSize(containerID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
statusResp, err := ds.ContainerStatus(context.Background(), &runtimeapi.ContainerStatusRequest{ContainerId: containerID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
status := statusResp.GetStatus()
|
||||
|
||||
timestamp := time.Now().UnixNano()
|
||||
containerStats := &runtimeapi.ContainerStats{
|
||||
Attributes: &runtimeapi.ContainerAttributes{
|
||||
Id: containerID,
|
||||
Metadata: status.Metadata,
|
||||
Labels: status.Labels,
|
||||
Annotations: status.Annotations,
|
||||
Id: c.Id,
|
||||
Metadata: c.Metadata,
|
||||
Labels: c.Labels,
|
||||
Annotations: c.Annotations,
|
||||
},
|
||||
Cpu: &runtimeapi.CpuUsage{
|
||||
Timestamp: timestamp,
|
||||
@@ -96,8 +79,11 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont
|
||||
},
|
||||
WritableLayer: &runtimeapi.FilesystemUsage{
|
||||
Timestamp: timestamp,
|
||||
FsId: &runtimeapi.FilesystemIdentifier{Mountpoint: info.DockerRootDir},
|
||||
UsedBytes: &runtimeapi.UInt64Value{Value: uint64(*containerJSON.SizeRw)},
|
||||
FsId: &runtimeapi.FilesystemIdentifier{Mountpoint: ds.dockerRootDir},
|
||||
// used bytes from image are not implemented on Windows
|
||||
// don't query for it since it is expensive to call docker over named pipe
|
||||
// https://github.com/moby/moby/blob/1ba54a5fd0ba293db3bea46cd67604b593f2048b/daemon/images/image_windows.go#L11-L14
|
||||
UsedBytes: &runtimeapi.UInt64Value{Value: 0},
|
||||
},
|
||||
}
|
||||
return containerStats, nil
|
||||
|
||||
2
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker/fake_client.go
generated
vendored
2
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker/fake_client.go
generated
vendored
@@ -225,6 +225,7 @@ func convertFakeContainer(f *FakeContainer) *dockertypes.ContainerJSON {
|
||||
if f.HostConfig == nil {
|
||||
f.HostConfig = &dockercontainer.HostConfig{}
|
||||
}
|
||||
fakeRWSize := int64(40)
|
||||
return &dockertypes.ContainerJSON{
|
||||
ContainerJSONBase: &dockertypes.ContainerJSONBase{
|
||||
ID: f.ID,
|
||||
@@ -239,6 +240,7 @@ func convertFakeContainer(f *FakeContainer) *dockertypes.ContainerJSON {
|
||||
},
|
||||
Created: dockerTimestampToString(f.CreatedAt),
|
||||
HostConfig: f.HostConfig,
|
||||
SizeRw: &fakeRWSize,
|
||||
},
|
||||
Config: f.Config,
|
||||
NetworkSettings: &dockertypes.NetworkSettings{},
|
||||
|
||||
2
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go
generated
vendored
2
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go
generated
vendored
@@ -2217,7 +2217,7 @@ func (kl *Kubelet) HandlePodAdditions(pods []*v1.Pod) {
|
||||
if !kl.podWorkers.IsPodTerminationRequested(pod.UID) {
|
||||
// We failed pods that we rejected, so activePods include all admitted
|
||||
// pods that are alive.
|
||||
activePods := kl.filterOutTerminatedPods(existingPods)
|
||||
activePods := kl.filterOutInactivePods(existingPods)
|
||||
|
||||
// Check if we can admit the pod; if not, reject it.
|
||||
if ok, reason, message := kl.canAdmitPod(activePods, pod); !ok {
|
||||
|
||||
22
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go
generated
vendored
22
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go
generated
vendored
@@ -92,16 +92,17 @@ func (kl *Kubelet) listPodsFromDisk() ([]types.UID, error) {
|
||||
return pods, nil
|
||||
}
|
||||
|
||||
// GetActivePods returns pods that may have a running container (a
|
||||
// terminated pod is one that is known to have no running containers and
|
||||
// will not get any more).
|
||||
// GetActivePods returns pods that have been admitted to the kubelet that
|
||||
// are not fully terminated. This is mapped to the "desired state" of the
|
||||
// kubelet - what pods should be running.
|
||||
//
|
||||
// TODO: This method must include pods that have been force deleted from
|
||||
// the config source (and thus removed from the pod manager) but are still
|
||||
// terminating.
|
||||
// WARNING: Currently this list does not include pods that have been force
|
||||
// deleted but may still be terminating, which means resources assigned to
|
||||
// those pods during admission may still be in use. See
|
||||
// https://github.com/kubernetes/kubernetes/issues/104824
|
||||
func (kl *Kubelet) GetActivePods() []*v1.Pod {
|
||||
allPods := kl.podManager.GetPods()
|
||||
activePods := kl.filterOutTerminatedPods(allPods)
|
||||
activePods := kl.filterOutInactivePods(allPods)
|
||||
return activePods
|
||||
}
|
||||
|
||||
@@ -968,13 +969,15 @@ func (kl *Kubelet) podResourcesAreReclaimed(pod *v1.Pod) bool {
|
||||
return kl.PodResourcesAreReclaimed(pod, status)
|
||||
}
|
||||
|
||||
// filterOutTerminatedPods returns pods that are not in a terminal phase
|
||||
// filterOutInactivePods returns pods that are not in a terminal phase
|
||||
// or are known to be fully terminated. This method should only be used
|
||||
// when the set of pods being filtered is upstream of the pod worker, i.e.
|
||||
// the pods the pod manager is aware of.
|
||||
func (kl *Kubelet) filterOutTerminatedPods(pods []*v1.Pod) []*v1.Pod {
|
||||
func (kl *Kubelet) filterOutInactivePods(pods []*v1.Pod) []*v1.Pod {
|
||||
filteredPods := make([]*v1.Pod, 0, len(pods))
|
||||
for _, p := range pods {
|
||||
// if a pod is fully terminated by UID, it should be excluded from the
|
||||
// list of pods
|
||||
if kl.podWorkers.IsPodKnownTerminated(p.UID) {
|
||||
continue
|
||||
}
|
||||
@@ -982,6 +985,7 @@ func (kl *Kubelet) filterOutTerminatedPods(pods []*v1.Pod) []*v1.Pod {
|
||||
if kl.isAdmittedPodTerminal(p) && !kl.podWorkers.IsPodTerminationRequested(p.UID) {
|
||||
continue
|
||||
}
|
||||
|
||||
filteredPods = append(filteredPods, p)
|
||||
}
|
||||
return filteredPods
|
||||
|
||||
4
vendor/k8s.io/kubernetes/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux.go
generated
vendored
4
vendor/k8s.io/kubernetes/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux.go
generated
vendored
@@ -269,6 +269,10 @@ func (m *Manager) processShutdownEvent() error {
|
||||
|
||||
klog.V(1).InfoS("Shutdown manager killing pod with gracePeriod", "pod", klog.KObj(pod), "gracePeriod", gracePeriodOverride)
|
||||
if err := m.killPodFunc(pod, false, &gracePeriodOverride, func(status *v1.PodStatus) {
|
||||
// set the pod status to failed (unless it was already in a successful terminal phase)
|
||||
if status.Phase != v1.PodSucceeded {
|
||||
status.Phase = v1.PodFailed
|
||||
}
|
||||
status.Message = nodeShutdownMessage
|
||||
status.Reason = nodeShutdownReason
|
||||
}); err != nil {
|
||||
|
||||
153
vendor/k8s.io/kubernetes/pkg/kubelet/pod_workers.go
generated
vendored
153
vendor/k8s.io/kubernetes/pkg/kubelet/pod_workers.go
generated
vendored
@@ -34,7 +34,6 @@ import (
|
||||
"k8s.io/kubernetes/pkg/kubelet/events"
|
||||
"k8s.io/kubernetes/pkg/kubelet/eviction"
|
||||
"k8s.io/kubernetes/pkg/kubelet/metrics"
|
||||
kubelettypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||
"k8s.io/kubernetes/pkg/kubelet/util/queue"
|
||||
)
|
||||
@@ -247,6 +246,8 @@ type podSyncStatus struct {
|
||||
cancelFn context.CancelFunc
|
||||
// working is true if a pod worker is currently in a sync method.
|
||||
working bool
|
||||
// fullname of the pod
|
||||
fullname string
|
||||
|
||||
// syncedAt is the time at which the pod worker first observed this pod.
|
||||
syncedAt time.Time
|
||||
@@ -376,9 +377,10 @@ type podWorkers struct {
|
||||
// Tracks by UID the termination status of a pod - syncing, terminating,
|
||||
// terminated, and evicted.
|
||||
podSyncStatuses map[types.UID]*podSyncStatus
|
||||
// Tracks when a static pod is being killed and is removed when the
|
||||
// static pod transitions to the killed state.
|
||||
terminatingStaticPodFullnames map[string]struct{}
|
||||
// Tracks all uids for started static pods by full name
|
||||
startedStaticPodsByFullname map[string]types.UID
|
||||
// Tracks all uids for static pods that are waiting to start by full name
|
||||
waitingToStartStaticPodsByFullname map[string][]types.UID
|
||||
|
||||
workQueue queue.WorkQueue
|
||||
|
||||
@@ -413,18 +415,19 @@ func newPodWorkers(
|
||||
podCache kubecontainer.Cache,
|
||||
) PodWorkers {
|
||||
return &podWorkers{
|
||||
podSyncStatuses: map[types.UID]*podSyncStatus{},
|
||||
podUpdates: map[types.UID]chan podWork{},
|
||||
lastUndeliveredWorkUpdate: map[types.UID]podWork{},
|
||||
terminatingStaticPodFullnames: map[string]struct{}{},
|
||||
syncPodFn: syncPodFn,
|
||||
syncTerminatingPodFn: syncTerminatingPodFn,
|
||||
syncTerminatedPodFn: syncTerminatedPodFn,
|
||||
recorder: recorder,
|
||||
workQueue: workQueue,
|
||||
resyncInterval: resyncInterval,
|
||||
backOffPeriod: backOffPeriod,
|
||||
podCache: podCache,
|
||||
podSyncStatuses: map[types.UID]*podSyncStatus{},
|
||||
podUpdates: map[types.UID]chan podWork{},
|
||||
lastUndeliveredWorkUpdate: map[types.UID]podWork{},
|
||||
startedStaticPodsByFullname: map[string]types.UID{},
|
||||
waitingToStartStaticPodsByFullname: map[string][]types.UID{},
|
||||
syncPodFn: syncPodFn,
|
||||
syncTerminatingPodFn: syncTerminatingPodFn,
|
||||
syncTerminatedPodFn: syncTerminatedPodFn,
|
||||
recorder: recorder,
|
||||
workQueue: workQueue,
|
||||
resyncInterval: resyncInterval,
|
||||
backOffPeriod: backOffPeriod,
|
||||
podCache: podCache,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -498,8 +501,19 @@ func (p *podWorkers) ShouldPodContentBeRemoved(uid types.UID) bool {
|
||||
func (p *podWorkers) IsPodForMirrorPodTerminatingByFullName(podFullName string) bool {
|
||||
p.podLock.Lock()
|
||||
defer p.podLock.Unlock()
|
||||
_, ok := p.terminatingStaticPodFullnames[podFullName]
|
||||
return ok
|
||||
uid, started := p.startedStaticPodsByFullname[podFullName]
|
||||
if !started {
|
||||
return false
|
||||
}
|
||||
status, exists := p.podSyncStatuses[uid]
|
||||
if !exists {
|
||||
return false
|
||||
}
|
||||
if !status.IsTerminationRequested() || status.IsTerminated() {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func isPodStatusCacheTerminal(status *kubecontainer.PodStatus) bool {
|
||||
@@ -552,6 +566,7 @@ func (p *podWorkers) UpdatePod(options UpdatePodOptions) {
|
||||
klog.V(4).InfoS("Pod is being synced for the first time", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
status = &podSyncStatus{
|
||||
syncedAt: now,
|
||||
fullname: kubecontainer.GetPodFullName(pod),
|
||||
}
|
||||
// if this pod is being synced for the first time, we need to make sure it is an active pod
|
||||
if !isRuntimePod && (pod.Status.Phase == v1.PodFailed || pod.Status.Phase == v1.PodSucceeded) {
|
||||
@@ -664,11 +679,6 @@ func (p *podWorkers) UpdatePod(options UpdatePodOptions) {
|
||||
// will never be zero.
|
||||
options.KillPodOptions.PodTerminationGracePeriodSecondsOverride = &gracePeriod
|
||||
|
||||
// if a static pod comes through, start tracking it explicitly (cleared by the pod worker loop)
|
||||
if kubelettypes.IsStaticPod(pod) {
|
||||
p.terminatingStaticPodFullnames[kubecontainer.GetPodFullName(pod)] = struct{}{}
|
||||
}
|
||||
|
||||
default:
|
||||
workType = SyncPodWork
|
||||
|
||||
@@ -698,6 +708,12 @@ func (p *podWorkers) UpdatePod(options UpdatePodOptions) {
|
||||
podUpdates = make(chan podWork, 1)
|
||||
p.podUpdates[uid] = podUpdates
|
||||
|
||||
// ensure that static pods start in the order they are received by UpdatePod
|
||||
if kubetypes.IsStaticPod(pod) {
|
||||
p.waitingToStartStaticPodsByFullname[status.fullname] =
|
||||
append(p.waitingToStartStaticPodsByFullname[status.fullname], uid)
|
||||
}
|
||||
|
||||
// Creating a new pod worker either means this is a new pod, or that the
|
||||
// kubelet just restarted. In either case the kubelet is willing to believe
|
||||
// the status of the pod for the first pod worker sync. See corresponding
|
||||
@@ -767,10 +783,76 @@ func calculateEffectiveGracePeriod(status *podSyncStatus, pod *v1.Pod, options *
|
||||
return gracePeriod, status.gracePeriod != 0 && status.gracePeriod != gracePeriod
|
||||
}
|
||||
|
||||
// allowPodStart tries to start the pod and returns true if allowed, otherwise
|
||||
// it requeues the pod and returns false.
|
||||
func (p *podWorkers) allowPodStart(pod *v1.Pod) bool {
|
||||
if !kubetypes.IsStaticPod(pod) {
|
||||
// TBD: Do we want to allow non-static pods with the same full name?
|
||||
// Note that it may disable the force deletion of pods.
|
||||
return true
|
||||
}
|
||||
p.podLock.Lock()
|
||||
defer p.podLock.Unlock()
|
||||
status, ok := p.podSyncStatuses[pod.UID]
|
||||
if !ok {
|
||||
klog.ErrorS(nil, "Failed to get a valid podSyncStatuses", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
p.workQueue.Enqueue(pod.UID, wait.Jitter(p.backOffPeriod, workerBackOffPeriodJitterFactor))
|
||||
status.working = false
|
||||
return false
|
||||
}
|
||||
if !p.allowStaticPodStart(status.fullname, pod.UID) {
|
||||
p.workQueue.Enqueue(pod.UID, wait.Jitter(p.backOffPeriod, workerBackOffPeriodJitterFactor))
|
||||
status.working = false
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// allowStaticPodStart tries to start the static pod and returns true if
|
||||
// 1. there are no other started static pods with the same fullname
|
||||
// 2. the uid matches that of the first valid static pod waiting to start
|
||||
func (p *podWorkers) allowStaticPodStart(fullname string, uid types.UID) bool {
|
||||
startedUID, started := p.startedStaticPodsByFullname[fullname]
|
||||
if started {
|
||||
return startedUID == uid
|
||||
}
|
||||
|
||||
waitingPods := p.waitingToStartStaticPodsByFullname[fullname]
|
||||
for i, waitingUID := range waitingPods {
|
||||
// has pod already terminated or been deleted?
|
||||
if _, ok := p.podSyncStatuses[waitingUID]; !ok {
|
||||
continue
|
||||
}
|
||||
// another pod is next in line
|
||||
if waitingUID != uid {
|
||||
p.waitingToStartStaticPodsByFullname[fullname] = waitingPods[i:]
|
||||
return false
|
||||
}
|
||||
// we are up next, remove ourselves
|
||||
waitingPods = waitingPods[i+1:]
|
||||
break
|
||||
}
|
||||
if len(waitingPods) != 0 {
|
||||
p.waitingToStartStaticPodsByFullname[fullname] = waitingPods
|
||||
} else {
|
||||
delete(p.waitingToStartStaticPodsByFullname, fullname)
|
||||
}
|
||||
p.startedStaticPodsByFullname[fullname] = uid
|
||||
return true
|
||||
}
|
||||
|
||||
func (p *podWorkers) managePodLoop(podUpdates <-chan podWork) {
|
||||
var lastSyncTime time.Time
|
||||
var podStarted bool
|
||||
for update := range podUpdates {
|
||||
pod := update.Options.Pod
|
||||
if !podStarted {
|
||||
if !p.allowPodStart(pod) {
|
||||
klog.V(4).InfoS("Pod cannot start yet", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
continue
|
||||
}
|
||||
podStarted = true
|
||||
}
|
||||
|
||||
klog.V(4).InfoS("Processing pod event", "pod", klog.KObj(pod), "podUID", pod.UID, "updateType", update.WorkType)
|
||||
err := func() error {
|
||||
@@ -900,9 +982,6 @@ func (p *podWorkers) completeTerminating(pod *v1.Pod) {
|
||||
|
||||
klog.V(4).InfoS("Pod terminated all containers successfully", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
|
||||
// if a static pod is being tracked, forget it
|
||||
delete(p.terminatingStaticPodFullnames, kubecontainer.GetPodFullName(pod))
|
||||
|
||||
if status, ok := p.podSyncStatuses[pod.UID]; ok {
|
||||
if status.terminatingAt.IsZero() {
|
||||
klog.V(4).InfoS("Pod worker was terminated but did not have terminatingAt set, likely programmer error", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
@@ -934,9 +1013,6 @@ func (p *podWorkers) completeTerminatingRuntimePod(pod *v1.Pod) {
|
||||
|
||||
klog.V(4).InfoS("Pod terminated all orphaned containers successfully and worker can now stop", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
|
||||
// if a static pod is being tracked, forget it
|
||||
delete(p.terminatingStaticPodFullnames, kubecontainer.GetPodFullName(pod))
|
||||
|
||||
if status, ok := p.podSyncStatuses[pod.UID]; ok {
|
||||
if status.terminatingAt.IsZero() {
|
||||
klog.V(4).InfoS("Pod worker was terminated but did not have terminatingAt set, likely programmer error", "pod", klog.KObj(pod), "podUID", pod.UID)
|
||||
@@ -944,6 +1020,10 @@ func (p *podWorkers) completeTerminatingRuntimePod(pod *v1.Pod) {
|
||||
status.terminatedAt = time.Now()
|
||||
status.finished = true
|
||||
status.working = false
|
||||
|
||||
if p.startedStaticPodsByFullname[status.fullname] == pod.UID {
|
||||
delete(p.startedStaticPodsByFullname, status.fullname)
|
||||
}
|
||||
}
|
||||
|
||||
ch, ok := p.podUpdates[pod.UID]
|
||||
@@ -952,7 +1032,6 @@ func (p *podWorkers) completeTerminatingRuntimePod(pod *v1.Pod) {
|
||||
}
|
||||
delete(p.podUpdates, pod.UID)
|
||||
delete(p.lastUndeliveredWorkUpdate, pod.UID)
|
||||
delete(p.terminatingStaticPodFullnames, kubecontainer.GetPodFullName(pod))
|
||||
}
|
||||
|
||||
// completeTerminated is invoked after syncTerminatedPod completes successfully and means we
|
||||
@@ -969,7 +1048,6 @@ func (p *podWorkers) completeTerminated(pod *v1.Pod) {
|
||||
}
|
||||
delete(p.podUpdates, pod.UID)
|
||||
delete(p.lastUndeliveredWorkUpdate, pod.UID)
|
||||
delete(p.terminatingStaticPodFullnames, kubecontainer.GetPodFullName(pod))
|
||||
|
||||
if status, ok := p.podSyncStatuses[pod.UID]; ok {
|
||||
if status.terminatingAt.IsZero() {
|
||||
@@ -980,6 +1058,10 @@ func (p *podWorkers) completeTerminated(pod *v1.Pod) {
|
||||
}
|
||||
status.finished = true
|
||||
status.working = false
|
||||
|
||||
if p.startedStaticPodsByFullname[status.fullname] == pod.UID {
|
||||
delete(p.startedStaticPodsByFullname, status.fullname)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1079,6 +1161,11 @@ func (p *podWorkers) removeTerminatedWorker(uid types.UID) {
|
||||
return
|
||||
}
|
||||
|
||||
if startedUID, started := p.startedStaticPodsByFullname[status.fullname]; started && startedUID != uid {
|
||||
klog.V(4).InfoS("Pod cannot start yet but is no longer known to the kubelet, finish it", "podUID", uid)
|
||||
status.finished = true
|
||||
}
|
||||
|
||||
if !status.finished {
|
||||
klog.V(4).InfoS("Pod worker has been requested for removal but is still not fully terminated", "podUID", uid)
|
||||
return
|
||||
@@ -1092,6 +1179,10 @@ func (p *podWorkers) removeTerminatedWorker(uid types.UID) {
|
||||
delete(p.podSyncStatuses, uid)
|
||||
delete(p.podUpdates, uid)
|
||||
delete(p.lastUndeliveredWorkUpdate, uid)
|
||||
|
||||
if p.startedStaticPodsByFullname[status.fullname] == uid {
|
||||
delete(p.startedStaticPodsByFullname, status.fullname)
|
||||
}
|
||||
}
|
||||
|
||||
// killPodNow returns a KillPodFunc that can be used to kill a pod.
|
||||
|
||||
11
vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy.go
generated
vendored
11
vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy.go
generated
vendored
@@ -18,6 +18,8 @@ package cronjob
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
batchv1beta1 "k8s.io/api/batch/v1beta1"
|
||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
||||
@@ -114,7 +116,11 @@ func (cronJobStrategy) Validate(ctx context.Context, obj runtime.Object) field.E
|
||||
// WarningsOnCreate returns warnings for the creation of the given object.
|
||||
func (cronJobStrategy) WarningsOnCreate(ctx context.Context, obj runtime.Object) []string {
|
||||
newCronJob := obj.(*batch.CronJob)
|
||||
return pod.GetWarningsForPodTemplate(ctx, field.NewPath("spec", "jobTemplate", "spec", "template"), &newCronJob.Spec.JobTemplate.Spec.Template, nil)
|
||||
warnings := pod.GetWarningsForPodTemplate(ctx, field.NewPath("spec", "jobTemplate", "spec", "template"), &newCronJob.Spec.JobTemplate.Spec.Template, nil)
|
||||
if strings.Contains(newCronJob.Spec.Schedule, "TZ") {
|
||||
warnings = append(warnings, fmt.Sprintf("CRON_TZ or TZ used in %s is not officially supported, see https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ for more details", field.NewPath("spec", "spec", "schedule")))
|
||||
}
|
||||
return warnings
|
||||
}
|
||||
|
||||
// Canonicalize normalizes the object after validation.
|
||||
@@ -147,6 +153,9 @@ func (cronJobStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Ob
|
||||
if newCronJob.Generation != oldCronJob.Generation {
|
||||
warnings = pod.GetWarningsForPodTemplate(ctx, field.NewPath("spec", "jobTemplate", "spec", "template"), &newCronJob.Spec.JobTemplate.Spec.Template, &oldCronJob.Spec.JobTemplate.Spec.Template)
|
||||
}
|
||||
if strings.Contains(newCronJob.Spec.Schedule, "TZ") {
|
||||
warnings = append(warnings, fmt.Sprintf("CRON_TZ or TZ used in %s is not officially supported, see https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ for more details", field.NewPath("spec", "spec", "schedule")))
|
||||
}
|
||||
return warnings
|
||||
}
|
||||
|
||||
|
||||
10
vendor/k8s.io/kubernetes/pkg/scheduler/eventhandlers.go
generated
vendored
10
vendor/k8s.io/kubernetes/pkg/scheduler/eventhandlers.go
generated
vendored
@@ -280,8 +280,10 @@ func addAllEventHandlers(
|
||||
case *v1.Pod:
|
||||
return assignedPod(t)
|
||||
case cache.DeletedFinalStateUnknown:
|
||||
if pod, ok := t.Obj.(*v1.Pod); ok {
|
||||
return assignedPod(pod)
|
||||
if _, ok := t.Obj.(*v1.Pod); ok {
|
||||
// The carried object may be stale, so we don't use it to check if
|
||||
// it's assigned or not. Attempting to cleanup anyways.
|
||||
return true
|
||||
}
|
||||
utilruntime.HandleError(fmt.Errorf("unable to convert object %T to *v1.Pod in %T", obj, sched))
|
||||
return false
|
||||
@@ -306,7 +308,9 @@ func addAllEventHandlers(
|
||||
return !assignedPod(t) && responsibleForPod(t, sched.Profiles)
|
||||
case cache.DeletedFinalStateUnknown:
|
||||
if pod, ok := t.Obj.(*v1.Pod); ok {
|
||||
return !assignedPod(pod) && responsibleForPod(pod, sched.Profiles)
|
||||
// The carried object may be stale, so we don't use it to check if
|
||||
// it's assigned or not.
|
||||
return responsibleForPod(pod, sched.Profiles)
|
||||
}
|
||||
utilruntime.HandleError(fmt.Errorf("unable to convert object %T to *v1.Pod in %T", obj, sched))
|
||||
return false
|
||||
|
||||
2
vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread/plugin.go
generated
vendored
2
vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread/plugin.go
generated
vendored
@@ -53,6 +53,7 @@ var systemDefaultConstraints = []v1.TopologySpreadConstraint{
|
||||
|
||||
// PodTopologySpread is a plugin that ensures pod's topologySpreadConstraints is satisfied.
|
||||
type PodTopologySpread struct {
|
||||
systemDefaulted bool
|
||||
parallelizer parallelize.Parallelizer
|
||||
defaultConstraints []v1.TopologySpreadConstraint
|
||||
sharedLister framework.SharedLister
|
||||
@@ -97,6 +98,7 @@ func New(plArgs runtime.Object, h framework.Handle) (framework.Plugin, error) {
|
||||
}
|
||||
if args.DefaultingType == config.SystemDefaulting {
|
||||
pl.defaultConstraints = systemDefaultConstraints
|
||||
pl.systemDefaulted = true
|
||||
}
|
||||
if len(pl.defaultConstraints) != 0 {
|
||||
if h.SharedInformerFactory() == nil {
|
||||
|
||||
12
vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread/scoring.go
generated
vendored
12
vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread/scoring.go
generated
vendored
@@ -56,7 +56,7 @@ func (s *preScoreState) Clone() framework.StateData {
|
||||
// 1) s.TopologyPairToPodCounts: keyed with both eligible topology pair and node names.
|
||||
// 2) s.IgnoredNodes: the set of nodes that shouldn't be scored.
|
||||
// 3) s.TopologyNormalizingWeight: The weight to be given to each constraint based on the number of values in a topology.
|
||||
func (pl *PodTopologySpread) initPreScoreState(s *preScoreState, pod *v1.Pod, filteredNodes []*v1.Node) error {
|
||||
func (pl *PodTopologySpread) initPreScoreState(s *preScoreState, pod *v1.Pod, filteredNodes []*v1.Node, requireAllTopologies bool) error {
|
||||
var err error
|
||||
if len(pod.Spec.TopologySpreadConstraints) > 0 {
|
||||
s.Constraints, err = filterTopologySpreadConstraints(pod.Spec.TopologySpreadConstraints, v1.ScheduleAnyway)
|
||||
@@ -74,7 +74,7 @@ func (pl *PodTopologySpread) initPreScoreState(s *preScoreState, pod *v1.Pod, fi
|
||||
}
|
||||
topoSize := make([]int, len(s.Constraints))
|
||||
for _, node := range filteredNodes {
|
||||
if !nodeLabelsMatchSpreadConstraints(node.Labels, s.Constraints) {
|
||||
if requireAllTopologies && !nodeLabelsMatchSpreadConstraints(node.Labels, s.Constraints) {
|
||||
// Nodes which don't have all required topologyKeys present are ignored
|
||||
// when scoring later.
|
||||
s.IgnoredNodes.Insert(node.Name)
|
||||
@@ -125,7 +125,11 @@ func (pl *PodTopologySpread) PreScore(
|
||||
IgnoredNodes: sets.NewString(),
|
||||
TopologyPairToPodCounts: make(map[topologyPair]*int64),
|
||||
}
|
||||
err = pl.initPreScoreState(state, pod, filteredNodes)
|
||||
// Only require that nodes have all the topology labels if using
|
||||
// non-system-default spreading rules. This allows nodes that don't have a
|
||||
// zone label to still have hostname spreading.
|
||||
requireAllTopologies := len(pod.Spec.TopologySpreadConstraints) > 0 || !pl.systemDefaulted
|
||||
err = pl.initPreScoreState(state, pod, filteredNodes, requireAllTopologies)
|
||||
if err != nil {
|
||||
return framework.AsStatus(fmt.Errorf("calculating preScoreState: %w", err))
|
||||
}
|
||||
@@ -147,7 +151,7 @@ func (pl *PodTopologySpread) PreScore(
|
||||
// (1) `node` should satisfy incoming pod's NodeSelector/NodeAffinity
|
||||
// (2) All topologyKeys need to be present in `node`
|
||||
match, _ := requiredNodeAffinity.Match(node)
|
||||
if !match || !nodeLabelsMatchSpreadConstraints(node.Labels, state.Constraints) {
|
||||
if !match || (requireAllTopologies && !nodeLabelsMatchSpreadConstraints(node.Labels, state.Constraints)) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
17
vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/cache.go
generated
vendored
17
vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/cache.go
generated
vendored
@@ -537,22 +537,19 @@ func (cache *schedulerCache) RemovePod(pod *v1.Pod) error {
|
||||
|
||||
currState, ok := cache.podStates[key]
|
||||
switch {
|
||||
// An assumed pod won't have Delete/Remove event. It needs to have Add event
|
||||
// before Remove event, in which case the state would change from Assumed to Added.
|
||||
case ok && !cache.assumedPods.Has(key):
|
||||
case ok:
|
||||
if currState.pod.Spec.NodeName != pod.Spec.NodeName {
|
||||
klog.Errorf("Pod %v was assumed to be on %v but got added to %v", key, pod.Spec.NodeName, currState.pod.Spec.NodeName)
|
||||
klog.Fatalf("Schedulercache is corrupted and can badly affect scheduling decisions")
|
||||
if pod.Spec.NodeName != "" {
|
||||
// An empty NodeName is possible when the scheduler misses a Delete
|
||||
// event and it gets the last known state from the informer cache.
|
||||
klog.Fatalf("Schedulercache is corrupted and can badly affect scheduling decisions")
|
||||
}
|
||||
}
|
||||
err := cache.removePod(currState.pod)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
delete(cache.podStates, key)
|
||||
return cache.expirePod(key, currState)
|
||||
default:
|
||||
return fmt.Errorf("pod %v is not found in scheduler cache, so cannot be removed from it", key)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cache *schedulerCache) IsAssumedPod(pod *v1.Pod) (bool, error) {
|
||||
|
||||
5
vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go
generated
vendored
5
vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go
generated
vendored
@@ -61,6 +61,9 @@ const (
|
||||
SchedulerError = "SchedulerError"
|
||||
// Percentage of plugin metrics to be sampled.
|
||||
pluginMetricsSamplePercent = 10
|
||||
// Duration the scheduler will wait before expiring an assumed pod.
|
||||
// See issue #106361 for more details about this parameter and its value.
|
||||
durationToExpireAssumedPod = 2 * time.Minute
|
||||
)
|
||||
|
||||
// Scheduler watches for new unscheduled pods. It attempts to find
|
||||
@@ -239,7 +242,7 @@ func New(client clientset.Interface,
|
||||
}
|
||||
options.profiles = cfg.Profiles
|
||||
}
|
||||
schedulerCache := internalcache.New(30*time.Second, stopEverything)
|
||||
schedulerCache := internalcache.New(durationToExpireAssumedPod, stopEverything)
|
||||
|
||||
registry := frameworkplugins.NewInTreeRegistry()
|
||||
if err := registry.Merge(options.frameworkOutOfTreeRegistry); err != nil {
|
||||
|
||||
9
vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss.go
generated
vendored
9
vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss.go
generated
vendored
@@ -1491,11 +1491,11 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromVMSS(service *v1.Service, backen
|
||||
// When vmss is being deleted, CreateOrUpdate API would report "the vmss is being deleted" error.
|
||||
// Since it is being deleted, we shouldn't send more CreateOrUpdate requests for it.
|
||||
if vmss.ProvisioningState != nil && strings.EqualFold(*vmss.ProvisioningState, virtualMachineScaleSetsDeallocating) {
|
||||
klog.V(3).Infof("ensureVMSSInPool: found vmss %s being deleted, skipping", vmssName)
|
||||
klog.V(3).Infof("ensureBackendPoolDeletedFromVMSS: found vmss %s being deleted, skipping", vmssName)
|
||||
continue
|
||||
}
|
||||
if vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations == nil {
|
||||
klog.V(4).Infof("EnsureHostInPool: cannot obtain the primary network interface configuration, of vmss %s", vmssName)
|
||||
klog.V(4).Infof("ensureBackendPoolDeletedFromVMSS: cannot obtain the primary network interface configuration, of vmss %s", vmssName)
|
||||
continue
|
||||
}
|
||||
vmssNIC := *vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations
|
||||
@@ -1614,6 +1614,11 @@ func (ss *scaleSet) EnsureBackendPoolDeleted(service *v1.Service, backendPoolID,
|
||||
continue
|
||||
}
|
||||
|
||||
if errors.Is(err, cloudprovider.InstanceNotFound) {
|
||||
klog.Infof("EnsureBackendPoolDeleted(%s): skipping ip config %s because the corresponding vmss vm is not found", getServiceName(service), ipConfigurationID)
|
||||
continue
|
||||
}
|
||||
|
||||
klog.Errorf("Failed to GetNodeNameByIPConfigurationID(%s): %v", ipConfigurationID, err)
|
||||
allErrs = append(allErrs, err)
|
||||
continue
|
||||
|
||||
18
vendor/k8s.io/mount-utils/mount_linux.go
generated
vendored
18
vendor/k8s.io/mount-utils/mount_linux.go
generated
vendored
@@ -45,6 +45,8 @@ const (
|
||||
fsckErrorsCorrected = 1
|
||||
// 'fsck' found errors but exited without correcting them
|
||||
fsckErrorsUncorrected = 4
|
||||
// Error thrown by exec cmd.Run() when process spawned by cmd.Start() completes before cmd.Wait() is called (see - k/k issue #103753)
|
||||
errNoChildProcesses = "wait: no child processes"
|
||||
)
|
||||
|
||||
// Mounter provides the default implementation of mount.Interface
|
||||
@@ -181,6 +183,14 @@ func (mounter *Mounter) doMount(mounterPath string, mountCmd string, source stri
|
||||
command := exec.Command(mountCmd, mountArgs...)
|
||||
output, err := command.CombinedOutput()
|
||||
if err != nil {
|
||||
if err.Error() == errNoChildProcesses {
|
||||
if command.ProcessState.Success() {
|
||||
// We don't consider errNoChildProcesses an error if the process itself succeeded (see - k/k issue #103753).
|
||||
return nil
|
||||
}
|
||||
// Rewrite err with the actual exit error of the process.
|
||||
err = &exec.ExitError{ProcessState: command.ProcessState}
|
||||
}
|
||||
klog.Errorf("Mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s\n", err, mountCmd, mountArgsLogStr, string(output))
|
||||
return fmt.Errorf("mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s",
|
||||
err, mountCmd, mountArgsLogStr, string(output))
|
||||
@@ -284,6 +294,14 @@ func (mounter *Mounter) Unmount(target string) error {
|
||||
command := exec.Command("umount", target)
|
||||
output, err := command.CombinedOutput()
|
||||
if err != nil {
|
||||
if err.Error() == errNoChildProcesses {
|
||||
if command.ProcessState.Success() {
|
||||
// We don't consider errNoChildProcesses an error if the process itself succeeded (see - k/k issue #103753).
|
||||
return nil
|
||||
}
|
||||
// Rewrite err with the actual exit error of the process.
|
||||
err = &exec.ExitError{ProcessState: command.ProcessState}
|
||||
}
|
||||
return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", err, target, string(output))
|
||||
}
|
||||
return nil
|
||||
|
||||
110
vendor/modules.txt
vendored
110
vendor/modules.txt
vendored
@@ -1386,7 +1386,7 @@ golang.org/x/crypto/scrypt
|
||||
# golang.org/x/mod v0.4.2
|
||||
golang.org/x/mod/module
|
||||
golang.org/x/mod/semver
|
||||
# golang.org/x/net v0.0.0-20211005215030-d2e5035098b3 => golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
|
||||
# golang.org/x/net v0.0.0-20211209124913-491a49abca63 => golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
|
||||
## explicit
|
||||
golang.org/x/net/bpf
|
||||
golang.org/x/net/context
|
||||
@@ -1653,7 +1653,7 @@ gopkg.in/yaml.v3
|
||||
# inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
|
||||
## explicit
|
||||
inet.af/tcpproxy
|
||||
# k8s.io/api v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.4-k3s1
|
||||
# k8s.io/api v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/api/admission/v1
|
||||
k8s.io/api/admission/v1beta1
|
||||
@@ -1701,7 +1701,7 @@ k8s.io/api/scheduling/v1beta1
|
||||
k8s.io/api/storage/v1
|
||||
k8s.io/api/storage/v1alpha1
|
||||
k8s.io/api/storage/v1beta1
|
||||
# k8s.io/apiextensions-apiserver v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.4-k3s1
|
||||
# k8s.io/apiextensions-apiserver v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.5-k3s1
|
||||
k8s.io/apiextensions-apiserver/pkg/apihelpers
|
||||
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
|
||||
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install
|
||||
@@ -1741,7 +1741,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi
|
||||
k8s.io/apiextensions-apiserver/pkg/registry/customresource
|
||||
k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor
|
||||
k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition
|
||||
# k8s.io/apimachinery v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.4-k3s1
|
||||
# k8s.io/apimachinery v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/apimachinery/pkg/api/equality
|
||||
k8s.io/apimachinery/pkg/api/errors
|
||||
@@ -1806,7 +1806,7 @@ k8s.io/apimachinery/pkg/watch
|
||||
k8s.io/apimachinery/third_party/forked/golang/json
|
||||
k8s.io/apimachinery/third_party/forked/golang/netutil
|
||||
k8s.io/apimachinery/third_party/forked/golang/reflect
|
||||
# k8s.io/apiserver v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.4-k3s1
|
||||
# k8s.io/apiserver v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/apiserver/pkg/admission
|
||||
k8s.io/apiserver/pkg/admission/configuration
|
||||
@@ -1948,11 +1948,11 @@ k8s.io/apiserver/plugin/pkg/audit/webhook
|
||||
k8s.io/apiserver/plugin/pkg/authenticator/token/oidc
|
||||
k8s.io/apiserver/plugin/pkg/authenticator/token/webhook
|
||||
k8s.io/apiserver/plugin/pkg/authorizer/webhook
|
||||
# k8s.io/cli-runtime v0.17.2 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.4-k3s1
|
||||
# k8s.io/cli-runtime v0.17.2 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.5-k3s1
|
||||
k8s.io/cli-runtime/pkg/genericclioptions
|
||||
k8s.io/cli-runtime/pkg/printers
|
||||
k8s.io/cli-runtime/pkg/resource
|
||||
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.4-k3s1
|
||||
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/client-go/applyconfigurations/admissionregistration/v1
|
||||
k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1
|
||||
@@ -2244,7 +2244,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.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.4-k3s1
|
||||
# k8s.io/cloud-provider v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/cloud-provider
|
||||
k8s.io/cloud-provider/api
|
||||
@@ -2266,13 +2266,13 @@ k8s.io/cloud-provider/service/helpers
|
||||
k8s.io/cloud-provider/volume
|
||||
k8s.io/cloud-provider/volume/errors
|
||||
k8s.io/cloud-provider/volume/helpers
|
||||
# k8s.io/cluster-bootstrap v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.4-k3s1
|
||||
# k8s.io/cluster-bootstrap v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.5-k3s1
|
||||
k8s.io/cluster-bootstrap/token/api
|
||||
k8s.io/cluster-bootstrap/token/jws
|
||||
k8s.io/cluster-bootstrap/token/util
|
||||
k8s.io/cluster-bootstrap/util/secrets
|
||||
k8s.io/cluster-bootstrap/util/tokens
|
||||
# k8s.io/code-generator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.4-k3s1
|
||||
# k8s.io/code-generator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.5-k3s1
|
||||
k8s.io/code-generator/cmd/client-gen/args
|
||||
k8s.io/code-generator/cmd/client-gen/generators
|
||||
k8s.io/code-generator/cmd/client-gen/generators/fake
|
||||
@@ -2287,7 +2287,7 @@ k8s.io/code-generator/cmd/lister-gen/args
|
||||
k8s.io/code-generator/cmd/lister-gen/generators
|
||||
k8s.io/code-generator/pkg/namer
|
||||
k8s.io/code-generator/pkg/util
|
||||
# k8s.io/component-base v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.4-k3s1
|
||||
# k8s.io/component-base v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/component-base/cli/flag
|
||||
k8s.io/component-base/cli/globalflag
|
||||
@@ -2313,7 +2313,7 @@ k8s.io/component-base/term
|
||||
k8s.io/component-base/traces
|
||||
k8s.io/component-base/version
|
||||
k8s.io/component-base/version/verflag
|
||||
# k8s.io/component-helpers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.4-k3s1
|
||||
# k8s.io/component-helpers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.5-k3s1
|
||||
k8s.io/component-helpers/apimachinery/lease
|
||||
k8s.io/component-helpers/apps/poddisruptionbudget
|
||||
k8s.io/component-helpers/auth/rbac/reconciliation
|
||||
@@ -2322,7 +2322,7 @@ k8s.io/component-helpers/node/topology
|
||||
k8s.io/component-helpers/scheduling/corev1
|
||||
k8s.io/component-helpers/scheduling/corev1/nodeaffinity
|
||||
k8s.io/component-helpers/storage/volume
|
||||
# k8s.io/controller-manager v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.4-k3s1
|
||||
# k8s.io/controller-manager v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/controller-manager/app
|
||||
k8s.io/controller-manager/config
|
||||
@@ -2336,11 +2336,11 @@ k8s.io/controller-manager/pkg/informerfactory
|
||||
k8s.io/controller-manager/pkg/leadermigration
|
||||
k8s.io/controller-manager/pkg/leadermigration/config
|
||||
k8s.io/controller-manager/pkg/leadermigration/options
|
||||
# k8s.io/cri-api v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.4-k3s1
|
||||
# k8s.io/cri-api v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/cri-api/pkg/apis
|
||||
k8s.io/cri-api/pkg/apis/runtime/v1alpha2
|
||||
# k8s.io/csi-translation-lib v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.4-k3s1
|
||||
# k8s.io/csi-translation-lib v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.5-k3s1
|
||||
k8s.io/csi-translation-lib
|
||||
k8s.io/csi-translation-lib/plugins
|
||||
# k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027
|
||||
@@ -2357,7 +2357,7 @@ k8s.io/klog
|
||||
# k8s.io/klog/v2 v2.9.0 => github.com/k3s-io/klog/v2 v2.9.0-k3s2
|
||||
## explicit
|
||||
k8s.io/klog/v2
|
||||
# k8s.io/kube-aggregator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.4-k3s1
|
||||
# k8s.io/kube-aggregator v0.18.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.5-k3s1
|
||||
k8s.io/kube-aggregator/pkg/apis/apiregistration
|
||||
k8s.io/kube-aggregator/pkg/apis/apiregistration/install
|
||||
k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
|
||||
@@ -2385,7 +2385,7 @@ k8s.io/kube-aggregator/pkg/controllers/status
|
||||
k8s.io/kube-aggregator/pkg/registry/apiservice
|
||||
k8s.io/kube-aggregator/pkg/registry/apiservice/etcd
|
||||
k8s.io/kube-aggregator/pkg/registry/apiservice/rest
|
||||
# k8s.io/kube-controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.4-k3s1
|
||||
# k8s.io/kube-controller-manager v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.5-k3s1
|
||||
k8s.io/kube-controller-manager/config/v1alpha1
|
||||
# k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c
|
||||
k8s.io/kube-openapi/pkg/aggregator
|
||||
@@ -2401,14 +2401,14 @@ k8s.io/kube-openapi/pkg/validation/spec
|
||||
k8s.io/kube-openapi/pkg/validation/strfmt
|
||||
k8s.io/kube-openapi/pkg/validation/strfmt/bson
|
||||
k8s.io/kube-openapi/pkg/validation/validate
|
||||
# k8s.io/kube-proxy v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.4-k3s1
|
||||
# k8s.io/kube-proxy v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.5-k3s1
|
||||
k8s.io/kube-proxy/config/v1alpha1
|
||||
# k8s.io/kube-scheduler v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.4-k3s1
|
||||
# k8s.io/kube-scheduler v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.5-k3s1
|
||||
k8s.io/kube-scheduler/config/v1
|
||||
k8s.io/kube-scheduler/config/v1beta1
|
||||
k8s.io/kube-scheduler/config/v1beta2
|
||||
k8s.io/kube-scheduler/extender/v1
|
||||
# k8s.io/kubectl v0.22.4 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.4-k3s1
|
||||
# k8s.io/kubectl v0.22.5 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/kubectl/pkg/apps
|
||||
k8s.io/kubectl/pkg/cmd
|
||||
@@ -2486,7 +2486,7 @@ k8s.io/kubectl/pkg/util/storage
|
||||
k8s.io/kubectl/pkg/util/templates
|
||||
k8s.io/kubectl/pkg/util/term
|
||||
k8s.io/kubectl/pkg/validation
|
||||
# k8s.io/kubelet v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.4-k3s1
|
||||
# k8s.io/kubelet v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.5-k3s1
|
||||
k8s.io/kubelet/config/v1alpha1
|
||||
k8s.io/kubelet/config/v1beta1
|
||||
k8s.io/kubelet/pkg/apis
|
||||
@@ -2498,7 +2498,7 @@ k8s.io/kubelet/pkg/apis/pluginregistration/v1
|
||||
k8s.io/kubelet/pkg/apis/podresources/v1
|
||||
k8s.io/kubelet/pkg/apis/podresources/v1alpha1
|
||||
k8s.io/kubelet/pkg/apis/stats/v1alpha1
|
||||
# k8s.io/kubernetes v1.22.4 => github.com/k3s-io/kubernetes v1.22.4-k3s1
|
||||
# k8s.io/kubernetes v1.22.5 => github.com/k3s-io/kubernetes v1.22.5-k3s1
|
||||
## explicit
|
||||
k8s.io/kubernetes/cmd/kube-apiserver/app
|
||||
k8s.io/kubernetes/cmd/kube-apiserver/app/options
|
||||
@@ -3230,7 +3230,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph
|
||||
k8s.io/kubernetes/third_party/forked/gonum/graph/internal/linear
|
||||
k8s.io/kubernetes/third_party/forked/gonum/graph/simple
|
||||
k8s.io/kubernetes/third_party/forked/gonum/graph/traverse
|
||||
# k8s.io/legacy-cloud-providers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.4-k3s1
|
||||
# k8s.io/legacy-cloud-providers v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.5-k3s1
|
||||
k8s.io/legacy-cloud-providers/aws
|
||||
k8s.io/legacy-cloud-providers/azure
|
||||
k8s.io/legacy-cloud-providers/azure/auth
|
||||
@@ -3273,7 +3273,7 @@ k8s.io/legacy-cloud-providers/openstack
|
||||
k8s.io/legacy-cloud-providers/vsphere
|
||||
k8s.io/legacy-cloud-providers/vsphere/vclib
|
||||
k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers
|
||||
# k8s.io/metrics v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.4-k3s1
|
||||
# k8s.io/metrics v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.5-k3s1
|
||||
k8s.io/metrics/pkg/apis/custom_metrics
|
||||
k8s.io/metrics/pkg/apis/custom_metrics/v1beta1
|
||||
k8s.io/metrics/pkg/apis/custom_metrics/v1beta2
|
||||
@@ -3289,9 +3289,9 @@ k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1
|
||||
k8s.io/metrics/pkg/client/custom_metrics
|
||||
k8s.io/metrics/pkg/client/custom_metrics/scheme
|
||||
k8s.io/metrics/pkg/client/external_metrics
|
||||
# k8s.io/mount-utils v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.4-k3s1
|
||||
# k8s.io/mount-utils v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.5-k3s1
|
||||
k8s.io/mount-utils
|
||||
# k8s.io/pod-security-admission v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.4-k3s1
|
||||
# k8s.io/pod-security-admission v0.0.0 => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.5-k3s1
|
||||
k8s.io/pod-security-admission/admission
|
||||
k8s.io/pod-security-admission/admission/api
|
||||
k8s.io/pod-security-admission/admission/api/load
|
||||
@@ -3447,35 +3447,35 @@ sigs.k8s.io/yaml
|
||||
# google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63
|
||||
# google.golang.org/grpc => google.golang.org/grpc v1.38.0
|
||||
# gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.2.2
|
||||
# k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.4-k3s1
|
||||
# k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.4-k3s1
|
||||
# k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.4-k3s1
|
||||
# k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.4-k3s1
|
||||
# k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.4-k3s1
|
||||
# k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.4-k3s1
|
||||
# k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.4-k3s1
|
||||
# k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.4-k3s1
|
||||
# k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.4-k3s1
|
||||
# k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.4-k3s1
|
||||
# k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.4-k3s1
|
||||
# k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.4-k3s1
|
||||
# k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.4-k3s1
|
||||
# k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.4-k3s1
|
||||
# k8s.io/api => github.com/k3s-io/kubernetes/staging/src/k8s.io/api v1.22.5-k3s1
|
||||
# k8s.io/apiextensions-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.22.5-k3s1
|
||||
# k8s.io/apimachinery => github.com/k3s-io/kubernetes/staging/src/k8s.io/apimachinery v1.22.5-k3s1
|
||||
# k8s.io/apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/apiserver v1.22.5-k3s1
|
||||
# k8s.io/cli-runtime => github.com/k3s-io/kubernetes/staging/src/k8s.io/cli-runtime v1.22.5-k3s1
|
||||
# k8s.io/client-go => github.com/k3s-io/kubernetes/staging/src/k8s.io/client-go v1.22.5-k3s1
|
||||
# k8s.io/cloud-provider => github.com/k3s-io/kubernetes/staging/src/k8s.io/cloud-provider v1.22.5-k3s1
|
||||
# k8s.io/cluster-bootstrap => github.com/k3s-io/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.22.5-k3s1
|
||||
# k8s.io/code-generator => github.com/k3s-io/kubernetes/staging/src/k8s.io/code-generator v1.22.5-k3s1
|
||||
# k8s.io/component-base => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-base v1.22.5-k3s1
|
||||
# k8s.io/component-helpers => github.com/k3s-io/kubernetes/staging/src/k8s.io/component-helpers v1.22.5-k3s1
|
||||
# k8s.io/controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/controller-manager v1.22.5-k3s1
|
||||
# k8s.io/cri-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/cri-api v1.22.5-k3s1
|
||||
# k8s.io/csi-translation-lib => github.com/k3s-io/kubernetes/staging/src/k8s.io/csi-translation-lib v1.22.5-k3s1
|
||||
# k8s.io/klog => github.com/k3s-io/klog v1.0.0-k3s2
|
||||
# k8s.io/klog/v2 => github.com/k3s-io/klog/v2 v2.9.0-k3s2
|
||||
# k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.4-k3s1
|
||||
# k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.4-k3s1
|
||||
# k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.4-k3s1
|
||||
# k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.4-k3s1
|
||||
# k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.4-k3s1
|
||||
# k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.4-k3s1
|
||||
# k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.22.4-k3s1
|
||||
# k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.4-k3s1
|
||||
# k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.4-k3s1
|
||||
# k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.4-k3s1
|
||||
# k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.22.4-k3s1
|
||||
# k8s.io/pod-security-admission => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.4-k3s1
|
||||
# k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.22.4-k3s1
|
||||
# k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.22.4-k3s1
|
||||
# k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.22.4-k3s1
|
||||
# k8s.io/kube-aggregator => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-aggregator v1.22.5-k3s1
|
||||
# k8s.io/kube-controller-manager => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-controller-manager v1.22.5-k3s1
|
||||
# k8s.io/kube-proxy => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-proxy v1.22.5-k3s1
|
||||
# k8s.io/kube-scheduler => github.com/k3s-io/kubernetes/staging/src/k8s.io/kube-scheduler v1.22.5-k3s1
|
||||
# k8s.io/kubectl => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubectl v1.22.5-k3s1
|
||||
# k8s.io/kubelet => github.com/k3s-io/kubernetes/staging/src/k8s.io/kubelet v1.22.5-k3s1
|
||||
# k8s.io/kubernetes => github.com/k3s-io/kubernetes v1.22.5-k3s1
|
||||
# k8s.io/legacy-cloud-providers => github.com/k3s-io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.22.5-k3s1
|
||||
# k8s.io/metrics => github.com/k3s-io/kubernetes/staging/src/k8s.io/metrics v1.22.5-k3s1
|
||||
# k8s.io/mount-utils => github.com/k3s-io/kubernetes/staging/src/k8s.io/mount-utils v1.22.5-k3s1
|
||||
# k8s.io/node-api => github.com/k3s-io/kubernetes/staging/src/k8s.io/node-api v1.22.5-k3s1
|
||||
# k8s.io/pod-security-admission => github.com/k3s-io/kubernetes/staging/src/k8s.io/pod-security-admission v1.22.5-k3s1
|
||||
# k8s.io/sample-apiserver => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-apiserver v1.22.5-k3s1
|
||||
# k8s.io/sample-cli-plugin => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.22.5-k3s1
|
||||
# k8s.io/sample-controller => github.com/k3s-io/kubernetes/staging/src/k8s.io/sample-controller v1.22.5-k3s1
|
||||
# mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7
|
||||
|
||||
Reference in New Issue
Block a user