Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
206accbe
Unverified
Commit
206accbe
authored
Jul 17, 2020
by
Brad Davidson
Committed by
GitHub
Jul 18, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update to v1.18.6-k3s1 (#2035)
Signed-off-by:
Brad Davidson
<
brad.davidson@rancher.com
>
parent
186c4a1c
Hide whitespace changes
Inline
Side-by-side
Showing
43 changed files
with
466 additions
and
240 deletions
+466
-240
go.mod
go.mod
+25
-25
go.sum
go.sum
+43
-43
types.go
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go
+3
-0
http.go
vendor/k8s.io/apimachinery/pkg/util/net/http.go
+1
-1
upgradeaware.go
vendor/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go
+10
-0
config.go
vendor/k8s.io/apiserver/pkg/server/config.go
+14
-7
BUILD
vendor/k8s.io/apiserver/pkg/server/healthz/BUILD
+1
-0
healthz.go
vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go
+34
-0
errors.go
vendor/k8s.io/apiserver/pkg/storage/errors.go
+7
-12
base.go
vendor/k8s.io/client-go/pkg/version/base.go
+3
-3
reflector.go
vendor/k8s.io/client-go/tools/cache/reflector.go
+22
-17
base.go
vendor/k8s.io/component-base/version/base.go
+3
-3
core.go
...k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go
+1
-0
types.go
vendor/k8s.io/kubernetes/pkg/apis/core/types.go
+1
-1
BUILD
vendor/k8s.io/kubernetes/pkg/controller/daemon/BUILD
+3
-0
daemon_controller.go
....io/kubernetes/pkg/controller/daemon/daemon_controller.go
+42
-14
attach_detach_controller.go
...ontroller/volume/attachdetach/attach_detach_controller.go
+17
-0
provider.go
vendor/k8s.io/kubernetes/pkg/credentialprovider/provider.go
+10
-3
docker_stats.go
.../k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats.go
+3
-2
docker_stats_windows.go
...kubernetes/pkg/kubelet/dockershim/docker_stats_windows.go
+7
-1
BUILD
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD
+1
-0
eviction_manager.go
...8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go
+6
-1
helpers.go
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go
+8
-1
kubelet.go
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go
+2
-1
kubelet_network_linux.go
...or/k8s.io/kubernetes/pkg/kubelet/kubelet_network_linux.go
+20
-6
kubelet_pods.go
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go
+6
-1
BUILD
vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/BUILD
+1
-0
logs.go
...or/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs.go
+8
-5
prober_manager.go
...or/k8s.io/kubernetes/pkg/kubelet/prober/prober_manager.go
+14
-12
constants.go
vendor/k8s.io/kubernetes/pkg/kubelet/types/constants.go
+5
-0
types.go
vendor/k8s.io/kubernetes/pkg/kubelet/types/types.go
+4
-4
proxier.go
vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go
+14
-4
proxier.go
vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go
+35
-27
BUILD
vendor/k8s.io/kubernetes/pkg/volume/csi/BUILD
+2
-0
csi_attacher.go
vendor/k8s.io/kubernetes/pkg/volume/csi/csi_attacher.go
+12
-1
csi_plugin.go
vendor/k8s.io/kubernetes/pkg/volume/csi/csi_plugin.go
+11
-4
plugins.go
vendor/k8s.io/kubernetes/pkg/volume/plugins.go
+2
-0
azure_controller_standard.go
...legacy-cloud-providers/azure/azure_controller_standard.go
+5
-3
azure_controller_vmss.go
....io/legacy-cloud-providers/azure/azure_controller_vmss.go
+5
-3
azure_instances.go
...or/k8s.io/legacy-cloud-providers/azure/azure_instances.go
+16
-9
azure_loadbalancer.go
...k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go
+9
-0
azure_managedDiskController.go
...gacy-cloud-providers/azure/azure_managedDiskController.go
+9
-5
modules.txt
vendor/modules.txt
+21
-21
No files found.
go.mod
View file @
206accbe
...
@@ -33,31 +33,31 @@ replace (
...
@@ -33,31 +33,31 @@ replace (
github.com/prometheus/client_model => github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910
github.com/prometheus/client_model => github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910
github.com/prometheus/common => github.com/prometheus/common v0.0.0-20181126121408-4724e9255275
github.com/prometheus/common => github.com/prometheus/common v0.0.0-20181126121408-4724e9255275
github.com/prometheus/procfs => github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a
github.com/prometheus/procfs => github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a
k8s.io/api => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
4
-k3s1
k8s.io/api => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
6
-k3s1
k8s.io/apiextensions-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
4
-k3s1
k8s.io/apiextensions-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
6
-k3s1
k8s.io/apimachinery => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
4
-k3s1
k8s.io/apimachinery => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
6
-k3s1
k8s.io/apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
4
-k3s1
k8s.io/apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
6
-k3s1
k8s.io/cli-runtime => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
4
-k3s1
k8s.io/cli-runtime => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
6
-k3s1
k8s.io/client-go => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
4
-k3s1
k8s.io/client-go => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
6
-k3s1
k8s.io/cloud-provider => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
4
-k3s1
k8s.io/cloud-provider => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
6
-k3s1
k8s.io/cluster-bootstrap => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
4
-k3s1
k8s.io/cluster-bootstrap => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
6
-k3s1
k8s.io/code-generator => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
4
-k3s1
k8s.io/code-generator => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
6
-k3s1
k8s.io/component-base => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
4
-k3s1
k8s.io/component-base => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
6
-k3s1
k8s.io/cri-api => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
4
-k3s1
k8s.io/cri-api => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
6
-k3s1
k8s.io/csi-translation-lib => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
4
-k3s1
k8s.io/csi-translation-lib => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
6
-k3s1
k8s.io/kube-aggregator => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
4
-k3s1
k8s.io/kube-aggregator => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
6
-k3s1
k8s.io/kube-controller-manager => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
4
-k3s1
k8s.io/kube-controller-manager => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
6
-k3s1
k8s.io/kube-proxy => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
4
-k3s1
k8s.io/kube-proxy => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
6
-k3s1
k8s.io/kube-scheduler => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
4
-k3s1
k8s.io/kube-scheduler => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
6
-k3s1
k8s.io/kubectl => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
4
-k3s1
k8s.io/kubectl => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
6
-k3s1
k8s.io/kubelet => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
4
-k3s1
k8s.io/kubelet => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
6
-k3s1
k8s.io/kubernetes => github.com/rancher/kubernetes v1.18.
4
-k3s1
k8s.io/kubernetes => github.com/rancher/kubernetes v1.18.
6
-k3s1
k8s.io/legacy-cloud-providers => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
4
-k3s1
k8s.io/legacy-cloud-providers => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
6
-k3s1
k8s.io/metrics => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
4
-k3s1
k8s.io/metrics => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
6
-k3s1
k8s.io/node-api => github.com/rancher/kubernetes/staging/src/k8s.io/node-api v1.18.
4
-k3s1
k8s.io/node-api => github.com/rancher/kubernetes/staging/src/k8s.io/node-api v1.18.
6
-k3s1
k8s.io/sample-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/sample-apiserver v1.18.
4
-k3s1
k8s.io/sample-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/sample-apiserver v1.18.
6
-k3s1
k8s.io/sample-cli-plugin => github.com/rancher/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.18.
4
-k3s1
k8s.io/sample-cli-plugin => github.com/rancher/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.18.
6
-k3s1
k8s.io/sample-controller => github.com/rancher/kubernetes/staging/src/k8s.io/sample-controller v1.18.
4
-k3s1
k8s.io/sample-controller => github.com/rancher/kubernetes/staging/src/k8s.io/sample-controller v1.18.
6
-k3s1
mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34
mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34
)
)
...
...
go.sum
View file @
206accbe
...
@@ -620,49 +620,49 @@ github.com/rancher/helm-controller v0.6.3 h1:tsqSXndQ7Ms8S0mBd2zWOcTV1tiZ4BUYkem
...
@@ -620,49 +620,49 @@ github.com/rancher/helm-controller v0.6.3 h1:tsqSXndQ7Ms8S0mBd2zWOcTV1tiZ4BUYkem
github.com/rancher/helm-controller v0.6.3/go.mod h1:ZylsxIMGNADRPRNW+NiBWhrwwks9vnKLQiCHYWb6Bi0=
github.com/rancher/helm-controller v0.6.3/go.mod h1:ZylsxIMGNADRPRNW+NiBWhrwwks9vnKLQiCHYWb6Bi0=
github.com/rancher/kine v0.4.0 h1:1IhWy3TzjExG8xnj46eyUEWdzqNAD1WrgL4eEBKm6Uc=
github.com/rancher/kine v0.4.0 h1:1IhWy3TzjExG8xnj46eyUEWdzqNAD1WrgL4eEBKm6Uc=
github.com/rancher/kine v0.4.0/go.mod h1:IImtCJ68AIkE+VY/kUI0NkyJL5q5WzO8QvMsSXqbrpA=
github.com/rancher/kine v0.4.0/go.mod h1:IImtCJ68AIkE+VY/kUI0NkyJL5q5WzO8QvMsSXqbrpA=
github.com/rancher/kubernetes v1.18.
4-k3s1 h1:eTwiRm2Gu8AUDgrda5FK8atZvkh6/3ZDoRFsxmnLvLc
=
github.com/rancher/kubernetes v1.18.
6-k3s1 h1:UyO6rKHsFg48cG7V19Ji0XPXScNxPJRlPPYWBKMmo6Y
=
github.com/rancher/kubernetes v1.18.
4
-k3s1/go.mod h1:Efg82S+Ti02A/Mww53bxroc7IgzX2bgPsf6hT8gAs3M=
github.com/rancher/kubernetes v1.18.
6
-k3s1/go.mod h1:Efg82S+Ti02A/Mww53bxroc7IgzX2bgPsf6hT8gAs3M=
github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
4-k3s1 h1:R6Iye4M4FL/qspOzcJvNPJQNnk9n7nu94FBX+jyqcIA
=
github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
6-k3s1 h1:sIvPhLYuV3aZgYaQYASk2E9R+bB1XVcp/6d02mjgEH8
=
github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
4
-k3s1/go.mod h1:oMzWB6/RPBLYAObltLVSu5Ms1ZztBe7G8s1ni2rZY7w=
github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
6
-k3s1/go.mod h1:oMzWB6/RPBLYAObltLVSu5Ms1ZztBe7G8s1ni2rZY7w=
github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
4-k3s1 h1:JYqgiFoq95sytgWi1hteMyKvpCZVi5HCXHMFW6sad7Y
=
github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
6-k3s1 h1:W104+V2TFDIaV8IPsYQnnw8MnVtvmnl8jNUnAkkLpeI
=
github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
4
-k3s1/go.mod h1:BVIYewlEVCukQBRrZR3Kms8GdCsDQBsRIBCoy3rwzMk=
github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
6
-k3s1/go.mod h1:BVIYewlEVCukQBRrZR3Kms8GdCsDQBsRIBCoy3rwzMk=
github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
4-k3s1 h1:UyAGvDwMVjn02+CwO5Z70vCmvDpLvmUem7ReuvoImIw
=
github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
6-k3s1 h1:rr7Ogkk2YC89UNr/ZBywG82tuu9PlB2iqqtPS4I04n4
=
github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
4
-k3s1/go.mod h1:0LbhSvBf6oDO/G0IsPYTC3eGykX9kRjGqE1+90am7Pg=
github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
6
-k3s1/go.mod h1:0LbhSvBf6oDO/G0IsPYTC3eGykX9kRjGqE1+90am7Pg=
github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
4-k3s1 h1:6h8JjWF0cmorfsKyuLdKEOaGd1fpXgu8VUG5Ynu5v2A
=
github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
6-k3s1 h1:Zd1pgZtAZS+lMfE9JRm7niTJx5W/WIxFwyA9ABGIhT8
=
github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
4
-k3s1/go.mod h1:wYoVKxMBc/Gtl3o5eEhoIy1iS0Zw8kLYIak9mud65gg=
github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
6
-k3s1/go.mod h1:wYoVKxMBc/Gtl3o5eEhoIy1iS0Zw8kLYIak9mud65gg=
github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
4-k3s1 h1:BMh4HW6YDId9g4Xja9MXJOXJI+dRyq/mw/0yKRXAIRo
=
github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
6-k3s1 h1:Uf6GBlxBaeJMevfwRWX8wbyJw5fIioxqIF9RMcfQSU4
=
github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
4
-k3s1/go.mod h1:e0a+/gPy7PnNaRJHZz5E3lqfMsiJ17sSfvktHyipb3I=
github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
6
-k3s1/go.mod h1:e0a+/gPy7PnNaRJHZz5E3lqfMsiJ17sSfvktHyipb3I=
github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
4-k3s1 h1:Ly7X70k/C2xI4iuC2OZ2ktsRzyuVDVLASsQUVkBMwLM
=
github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
6-k3s1 h1:qRfoeAUJQbBN9/tIf50sq5aHaG+j46201yIv86Dze0g
=
github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
4
-k3s1/go.mod h1:Ck7kQmlFASfY0SaqYH1NwUrxeuAipkIbnuHi642eQ+I=
github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
6
-k3s1/go.mod h1:Ck7kQmlFASfY0SaqYH1NwUrxeuAipkIbnuHi642eQ+I=
github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
4-k3s1 h1:M62wX7hIGwkmRoz6BC4L6d+YXczMxyan29pTfcbDqp8
=
github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
6-k3s1 h1:Pox7xyrB5KgaV0oZFwH6Jy0BWI+Wtj04P62awKbvXXE
=
github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
4
-k3s1/go.mod h1:jW0IWD1v1cNcp/vvXbVuovmZNSieKSZBdM7VmX1lrVI=
github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
6
-k3s1/go.mod h1:jW0IWD1v1cNcp/vvXbVuovmZNSieKSZBdM7VmX1lrVI=
github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
4-k3s1 h1:AtFTyVKCuUHN/afuWhMIcf1vGVfZ/Uz2PpQn45aLKpU
=
github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
6-k3s1 h1:BXGJkd7+sag5QHSlPBzYc8Q5uepBpXEb3cmLlgjQywQ
=
github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
4
-k3s1/go.mod h1:oHXhD/NqW/vlYggpTUWbP2x6disww69H1jdsyirbJl8=
github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
6
-k3s1/go.mod h1:oHXhD/NqW/vlYggpTUWbP2x6disww69H1jdsyirbJl8=
github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
4-k3s1 h1:QpQx2AXoU+fASZTpLjGjYT0ChNgc1RKImb8WWsOwK1U
=
github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
6-k3s1 h1:JR3PwOSBf055j96E3ADPK9/X5PrI7rHazsKb1AdZ/Gc
=
github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
4
-k3s1/go.mod h1:qBtAbyavqI3lGwEvxrQk9wwUTWntOADx38Iizyn31nw=
github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
6
-k3s1/go.mod h1:qBtAbyavqI3lGwEvxrQk9wwUTWntOADx38Iizyn31nw=
github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
4-k3s1 h1:aNSdkAueVRL0XfmUrALXF/NAavlPlkm0zDP/FBWJXTs
=
github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
6-k3s1 h1:ItVL3pMrVTnwPkIwEc3Y+5NYZWoz6nLwFrgLeNZGeG0
=
github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
4
-k3s1/go.mod h1:zRlCznOsLYdwq5DB2b/26X/n/04fhV3U3rMC60t80/Q=
github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
6
-k3s1/go.mod h1:zRlCznOsLYdwq5DB2b/26X/n/04fhV3U3rMC60t80/Q=
github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
4-k3s1 h1:Q9wIqlITpmv93PApIKG75m8AnPGXrZeWcjqlUYk7Au8
=
github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
6-k3s1 h1:ot08wSXmCweEe5jTkaq4AAMlY+A2SvQRlqQi4JEJnQA
=
github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
4
-k3s1/go.mod h1:O3AtmT8iqccYwp/fsXdy3h0N9X/yfvRMD2XS48PJrBk=
github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
6
-k3s1/go.mod h1:O3AtmT8iqccYwp/fsXdy3h0N9X/yfvRMD2XS48PJrBk=
github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
4-k3s1 h1:EENXY3hRYDPo9fuF9EpccUJTgOE0wT8r3oaitEppi24
=
github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
6-k3s1 h1:9ofjiqVUSRKQEMdessklWJRrgYPrBLDf9p4MMfKfZ5Q
=
github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
4
-k3s1/go.mod h1:/YQL/PqGdoNbC2H+w4tx2zrVdxNb541lW3PA81FdOlE=
github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
6
-k3s1/go.mod h1:/YQL/PqGdoNbC2H+w4tx2zrVdxNb541lW3PA81FdOlE=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
4-k3s1 h1:0h0f2gCJAKw170KoUfPsMi/CgTWHq7tb6G7IUPKun2c
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
6-k3s1 h1:ug5WXTP2p0PVKYay4YrbLemYr0XNKqa1LxgHK8n5tGU
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
4
-k3s1/go.mod h1:NcOKzNVVRhmkQmzCcBHfPPcZqgGXouc/o3Eul3saPj8=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
6
-k3s1/go.mod h1:NcOKzNVVRhmkQmzCcBHfPPcZqgGXouc/o3Eul3saPj8=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
4-k3s1 h1:T1NDBQWf93dCAvYC5aCH0Ik3cPoQC+5MOdhg8b4k2OM
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
6-k3s1 h1:yQq7RCyBaO03uzYJlnM8wyhe20Nn03KGui68CDny4qI
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
4
-k3s1/go.mod h1:pABoR/v0r2aJLFC1570FaaRJbXyiHhqdGHe5W8nk0XY=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
6
-k3s1/go.mod h1:pABoR/v0r2aJLFC1570FaaRJbXyiHhqdGHe5W8nk0XY=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
4-k3s1 h1:tlsv2LXMIEfSLQ5wvfMZQZvUJFwrhupJu5QFxyklavY
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
6-k3s1 h1:3+ND6LW6WIhVRjcpsfEupwZzsHjOUfsigomhQWhF/Ag
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
4
-k3s1/go.mod h1:GLAmLACy/nOND24DRGKyPH21F89pTcevjPRxEtbLJmU=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
6
-k3s1/go.mod h1:GLAmLACy/nOND24DRGKyPH21F89pTcevjPRxEtbLJmU=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
4-k3s1 h1:TkkarxQdJPnr0rs/uJsQwyL/Alo79oT8Yiakbtvq8Y4
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
6-k3s1 h1:j9vNF6C374+ZbyRVArxvvw1JRHosBZe5Se8IinljIAI
=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
4
-k3s1/go.mod h1:UNQ/Ff/Mq9mmCl0MYGl3ciCEIRQr9BT+/DSsoy6/ZMI=
github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
6
-k3s1/go.mod h1:UNQ/Ff/Mq9mmCl0MYGl3ciCEIRQr9BT+/DSsoy6/ZMI=
github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
4-k3s1 h1:b0YH7h5M8+k6LYMP6A/laGXpad4mkNmuPJoMAvhomGo
=
github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
6-k3s1 h1:3w7OKA5o91NYoUZ4dYHRmLBLGWCM6PPVzywD8bkswsA
=
github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
4
-k3s1/go.mod h1:eosbAJR16uuWsgirnmlt31NV+ZwZLQsMNbxiRZYbco8=
github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
6
-k3s1/go.mod h1:eosbAJR16uuWsgirnmlt31NV+ZwZLQsMNbxiRZYbco8=
github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
4-k3s1 h1:EsUdJepxaZSTOFZK1UrhmHPoHdnpRC8OtQWXne92vcE
=
github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
6-k3s1 h1:9ZNoycDU5eIHFeF8YqcGLAlm9HeQDg8tXNvg46bFf8I
=
github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
4
-k3s1/go.mod h1:Raj75cxSm9NiVBoLk/lB1D4XvpBzTG4WoJ6nIH8Cyew=
github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
6
-k3s1/go.mod h1:Raj75cxSm9NiVBoLk/lB1D4XvpBzTG4WoJ6nIH8Cyew=
github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
4-k3s1 h1:0cbzcnS4yzFz3SyaWokOqSDsECcr/bqxDjcy263Fy54
=
github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
6-k3s1 h1:pGHcUlVbY6TBhu0QinG1e+vN33O4aGgB8nN5uujln1Q
=
github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
4
-k3s1/go.mod h1:R6lK1g14jiec20OVuA1ArvsCKs5th4rxGL3eUMdQmyA=
github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
6
-k3s1/go.mod h1:R6lK1g14jiec20OVuA1ArvsCKs5th4rxGL3eUMdQmyA=
github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
4-k3s1 h1:xHggZMz7a4OpR0dEVz9uy1Iskk3/wzLYoGQcQAdCTtc
=
github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
6-k3s1 h1:eUs9gsRU4YZ3f9MPniiLsCLvVHj8/DtcViQH9kGh8Qg
=
github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
4
-k3s1/go.mod h1:xZM9EdJpWjqIWPvLiCP7vYKUEMwIgc0S8nc/MlLVK3Y=
github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
6
-k3s1/go.mod h1:xZM9EdJpWjqIWPvLiCP7vYKUEMwIgc0S8nc/MlLVK3Y=
github.com/rancher/kubernetes/staging/src/k8s.io/sample-apiserver v1.18.
4
-k3s1/go.mod h1:p8OmVbdzpawdZ/r9E1qcdJpzRirEg4OcSg8aZVWqvJo=
github.com/rancher/kubernetes/staging/src/k8s.io/sample-apiserver v1.18.
6
-k3s1/go.mod h1:p8OmVbdzpawdZ/r9E1qcdJpzRirEg4OcSg8aZVWqvJo=
github.com/rancher/moq v0.0.0-20190404221404-ee5226d43009/go.mod h1:wpITyDPTi/Na5h73XkbuEf2AP9fbgrIGqqxVzFhYD6U=
github.com/rancher/moq v0.0.0-20190404221404-ee5226d43009/go.mod h1:wpITyDPTi/Na5h73XkbuEf2AP9fbgrIGqqxVzFhYD6U=
github.com/rancher/nocode v0.0.0-20200630202308-cb097102c09f h1:mX6kuT3Ah9v1iEO3rgCQ7ZH9heVh67r3a9l94ua8P7U=
github.com/rancher/nocode v0.0.0-20200630202308-cb097102c09f h1:mX6kuT3Ah9v1iEO3rgCQ7ZH9heVh67r3a9l94ua8P7U=
github.com/rancher/nocode v0.0.0-20200630202308-cb097102c09f/go.mod h1:iAAt6Amgbysi6srDJs9SxGSbG2j/JSRb/xCrnEtA69g=
github.com/rancher/nocode v0.0.0-20200630202308-cb097102c09f/go.mod h1:iAAt6Amgbysi6srDJs9SxGSbG2j/JSRb/xCrnEtA69g=
...
...
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go
View file @
206accbe
...
@@ -873,6 +873,9 @@ const (
...
@@ -873,6 +873,9 @@ const (
// FieldManagerConflict is used to report when another client claims to manage this field,
// FieldManagerConflict is used to report when another client claims to manage this field,
// It should only be returned for a request using server-side apply.
// It should only be returned for a request using server-side apply.
CauseTypeFieldManagerConflict
CauseType
=
"FieldManagerConflict"
CauseTypeFieldManagerConflict
CauseType
=
"FieldManagerConflict"
// CauseTypeResourceVersionTooLarge is used to report that the requested resource version
// is newer than the data observed by the API server, so the request cannot be served.
CauseTypeResourceVersionTooLarge
CauseType
=
"ResourceVersionTooLarge"
)
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
...
...
vendor/k8s.io/apimachinery/pkg/util/net/http.go
View file @
206accbe
...
@@ -446,7 +446,7 @@ redirectLoop:
...
@@ -446,7 +446,7 @@ redirectLoop:
// Only follow redirects to the same host. Otherwise, propagate the redirect response back.
// Only follow redirects to the same host. Otherwise, propagate the redirect response back.
if
requireSameHostRedirects
&&
location
.
Hostname
()
!=
originalLocation
.
Hostname
()
{
if
requireSameHostRedirects
&&
location
.
Hostname
()
!=
originalLocation
.
Hostname
()
{
break
redirectLoop
return
nil
,
nil
,
fmt
.
Errorf
(
"hostname mismatch: expected %s, found %s"
,
originalLocation
.
Hostname
(),
location
.
Hostname
())
}
}
// Reset the connection.
// Reset the connection.
...
...
vendor/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go
View file @
206accbe
...
@@ -298,6 +298,16 @@ func (h *UpgradeAwareHandler) tryUpgrade(w http.ResponseWriter, req *http.Reques
...
@@ -298,6 +298,16 @@ func (h *UpgradeAwareHandler) tryUpgrade(w http.ResponseWriter, req *http.Reques
rawResponse
=
headerBytes
rawResponse
=
headerBytes
}
}
// If the backend did not upgrade the request, return an error to the client. If the response was
// an error, the error is forwarded directly after the connection is hijacked. Otherwise, just
// return a generic error here.
if
backendHTTPResponse
.
StatusCode
!=
http
.
StatusSwitchingProtocols
&&
backendHTTPResponse
.
StatusCode
<
400
{
err
:=
fmt
.
Errorf
(
"invalid upgrade response: status code %d"
,
backendHTTPResponse
.
StatusCode
)
klog
.
Errorf
(
"Proxy upgrade error: %v"
,
err
)
h
.
Responder
.
Error
(
w
,
req
,
err
)
return
true
}
// Once the connection is hijacked, the ErrorResponder will no longer work, so
// Once the connection is hijacked, the ErrorResponder will no longer work, so
// hijacking should be the last step in the upgrade.
// hijacking should be the last step in the upgrade.
requestHijacker
,
ok
:=
w
.
(
http
.
Hijacker
)
requestHijacker
,
ok
:=
w
.
(
http
.
Hijacker
)
...
...
vendor/k8s.io/apiserver/pkg/server/config.go
View file @
206accbe
...
@@ -608,13 +608,20 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
...
@@ -608,13 +608,20 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G
}
}
genericApiServerHookName
:=
"generic-apiserver-start-informers"
genericApiServerHookName
:=
"generic-apiserver-start-informers"
if
c
.
SharedInformerFactory
!=
nil
&&
!
s
.
isPostStartHookRegistered
(
genericApiServerHookName
)
{
if
c
.
SharedInformerFactory
!=
nil
{
err
:=
s
.
AddPostStartHook
(
genericApiServerHookName
,
func
(
context
PostStartHookContext
)
error
{
if
!
s
.
isPostStartHookRegistered
(
genericApiServerHookName
)
{
c
.
SharedInformerFactory
.
Start
(
context
.
StopCh
)
err
:=
s
.
AddPostStartHook
(
genericApiServerHookName
,
func
(
context
PostStartHookContext
)
error
{
return
nil
c
.
SharedInformerFactory
.
Start
(
context
.
StopCh
)
})
return
nil
if
err
!=
nil
{
})
return
nil
,
err
if
err
!=
nil
{
return
nil
,
err
}
// TODO: Once we get rid of /healthz consider changing this to post-start-hook.
err
=
s
.
addReadyzChecks
(
healthz
.
NewInformerSyncHealthz
(
c
.
SharedInformerFactory
))
if
err
!=
nil
{
return
nil
,
err
}
}
}
}
}
...
...
vendor/k8s.io/apiserver/pkg/server/healthz/BUILD
View file @
206accbe
...
@@ -31,6 +31,7 @@ go_library(
...
@@ -31,6 +31,7 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/endpoints/metrics:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/endpoints/metrics:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/server/httplog:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/server/httplog:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
],
],
)
)
...
...
vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go
View file @
206accbe
...
@@ -29,6 +29,7 @@ import (
...
@@ -29,6 +29,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apiserver/pkg/endpoints/metrics"
"k8s.io/apiserver/pkg/endpoints/metrics"
"k8s.io/apiserver/pkg/server/httplog"
"k8s.io/apiserver/pkg/server/httplog"
"k8s.io/client-go/informers"
"k8s.io/klog"
"k8s.io/klog"
)
)
...
@@ -81,6 +82,39 @@ func (l *log) Check(_ *http.Request) error {
...
@@ -81,6 +82,39 @@ func (l *log) Check(_ *http.Request) error {
return
fmt
.
Errorf
(
"logging blocked"
)
return
fmt
.
Errorf
(
"logging blocked"
)
}
}
type
informerSync
struct
{
sharedInformerFactory
informers
.
SharedInformerFactory
}
var
_
HealthChecker
=
&
informerSync
{}
// NewInformerSyncHealthz returns a new HealthChecker that will pass only if all informers in the given sharedInformerFactory sync.
func
NewInformerSyncHealthz
(
sharedInformerFactory
informers
.
SharedInformerFactory
)
HealthChecker
{
return
&
informerSync
{
sharedInformerFactory
:
sharedInformerFactory
,
}
}
func
(
i
*
informerSync
)
Name
()
string
{
return
"informer-sync"
}
func
(
i
*
informerSync
)
Check
(
_
*
http
.
Request
)
error
{
stopCh
:=
make
(
chan
struct
{})
// Close stopCh to force checking if informers are synced now.
close
(
stopCh
)
var
informersByStarted
map
[
bool
][]
string
for
informerType
,
started
:=
range
i
.
sharedInformerFactory
.
WaitForCacheSync
(
stopCh
)
{
informersByStarted
[
started
]
=
append
(
informersByStarted
[
started
],
informerType
.
String
())
}
if
notStarted
:=
informersByStarted
[
false
];
len
(
notStarted
)
>
0
{
return
fmt
.
Errorf
(
"%d informers not started yet: %v"
,
len
(
notStarted
),
notStarted
)
}
return
nil
}
// NamedCheck returns a healthz checker for the given name and function.
// NamedCheck returns a healthz checker for the given name and function.
func
NamedCheck
(
name
string
,
check
func
(
r
*
http
.
Request
)
error
)
HealthChecker
{
func
NamedCheck
(
name
string
,
check
func
(
r
*
http
.
Request
)
error
)
HealthChecker
{
return
&
healthzCheck
{
name
,
check
}
return
&
healthzCheck
{
name
,
check
}
...
...
vendor/k8s.io/apiserver/pkg/storage/errors.go
View file @
206accbe
...
@@ -177,7 +177,12 @@ var tooLargeResourceVersionCauseMsg = "Too large resource version"
...
@@ -177,7 +177,12 @@ var tooLargeResourceVersionCauseMsg = "Too large resource version"
// a minimum resource version that is larger than the largest currently available resource version for a requested resource.
// a minimum resource version that is larger than the largest currently available resource version for a requested resource.
func
NewTooLargeResourceVersionError
(
minimumResourceVersion
,
currentRevision
uint64
,
retrySeconds
int
)
error
{
func
NewTooLargeResourceVersionError
(
minimumResourceVersion
,
currentRevision
uint64
,
retrySeconds
int
)
error
{
err
:=
errors
.
NewTimeoutError
(
fmt
.
Sprintf
(
"Too large resource version: %d, current: %d"
,
minimumResourceVersion
,
currentRevision
),
retrySeconds
)
err
:=
errors
.
NewTimeoutError
(
fmt
.
Sprintf
(
"Too large resource version: %d, current: %d"
,
minimumResourceVersion
,
currentRevision
),
retrySeconds
)
err
.
ErrStatus
.
Details
.
Causes
=
[]
metav1
.
StatusCause
{{
Message
:
tooLargeResourceVersionCauseMsg
}}
err
.
ErrStatus
.
Details
.
Causes
=
[]
metav1
.
StatusCause
{
{
Type
:
metav1
.
CauseTypeResourceVersionTooLarge
,
Message
:
tooLargeResourceVersionCauseMsg
,
},
}
return
err
return
err
}
}
...
@@ -186,15 +191,5 @@ func IsTooLargeResourceVersion(err error) bool {
...
@@ -186,15 +191,5 @@ func IsTooLargeResourceVersion(err error) bool {
if
!
errors
.
IsTimeout
(
err
)
{
if
!
errors
.
IsTimeout
(
err
)
{
return
false
return
false
}
}
switch
t
:=
err
.
(
type
)
{
return
errors
.
HasStatusCause
(
err
,
metav1
.
CauseTypeResourceVersionTooLarge
)
case
errors
.
APIStatus
:
if
d
:=
t
.
Status
()
.
Details
;
d
!=
nil
{
for
_
,
cause
:=
range
d
.
Causes
{
if
cause
.
Message
==
tooLargeResourceVersionCauseMsg
{
return
true
}
}
}
}
return
false
}
}
vendor/k8s.io/client-go/pkg/version/base.go
View file @
206accbe
...
@@ -3,8 +3,8 @@ package version
...
@@ -3,8 +3,8 @@ package version
var
(
var
(
gitMajor
=
"1"
gitMajor
=
"1"
gitMinor
=
"18"
gitMinor
=
"18"
gitVersion
=
"v1.18.
4
-k3s1"
gitVersion
=
"v1.18.
6
-k3s1"
gitCommit
=
"
52f8d69fc5bdd2ceb2ea47fb3b51190bba9e5c06
"
gitCommit
=
"
60da51f880b8e78467c08510bde06c1b3b2dedbe
"
gitTreeState
=
"clean"
gitTreeState
=
"clean"
buildDate
=
"2020-0
6-17T20:02:22
Z"
buildDate
=
"2020-0
7-15T21:57:06
Z"
)
)
vendor/k8s.io/client-go/tools/cache/reflector.go
View file @
206accbe
...
@@ -82,9 +82,9 @@ type Reflector struct {
...
@@ -82,9 +82,9 @@ type Reflector struct {
// observed when doing a sync with the underlying store
// observed when doing a sync with the underlying store
// it is thread safe, but not synchronized with the underlying store
// it is thread safe, but not synchronized with the underlying store
lastSyncResourceVersion
string
lastSyncResourceVersion
string
// isLastSyncResourceVersion
Gone is true if the previous list or watch request with lastSyncResourceVersion
// isLastSyncResourceVersion
Unavailable is true if the previous list or watch request with
//
failed with an HTTP 410 (Gone) status code
.
//
lastSyncResourceVersion failed with an "expired" or "too large resource version" error
.
isLastSyncResourceVersion
Gon
e
bool
isLastSyncResourceVersion
Unavailabl
e
bool
// lastSyncResourceVersionMutex guards read/write access to lastSyncResourceVersion
// lastSyncResourceVersionMutex guards read/write access to lastSyncResourceVersion
lastSyncResourceVersionMutex
sync
.
RWMutex
lastSyncResourceVersionMutex
sync
.
RWMutex
// WatchListPageSize is the requested chunk size of initial and resync watch lists.
// WatchListPageSize is the requested chunk size of initial and resync watch lists.
...
@@ -256,13 +256,14 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
...
@@ -256,13 +256,14 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
}
}
list
,
paginatedResult
,
err
=
pager
.
List
(
context
.
Background
(),
options
)
list
,
paginatedResult
,
err
=
pager
.
List
(
context
.
Background
(),
options
)
if
isExpiredError
(
err
)
{
if
isExpiredError
(
err
)
||
isTooLargeResourceVersionError
(
err
)
{
r
.
setIsLastSyncResourceVersion
Expired
(
true
)
r
.
setIsLastSyncResourceVersion
Unavailable
(
true
)
// Retry immediately if the resource version used to list is
expired
.
// Retry immediately if the resource version used to list is
unavailable
.
// The pager already falls back to full list if paginated list calls fail due to an "Expired" error on
// The pager already falls back to full list if paginated list calls fail due to an "Expired" error on
// continuation pages, but the pager might not be enabled, or the full list might fail because the
// continuation pages, but the pager might not be enabled, the full list might fail because the
// resource version it is listing at is expired, so we need to fallback to resourceVersion="" in all
// resource version it is listing at is expired or the cache may not yet be synced to the provided
// to recover and ensure the reflector makes forward progress.
// resource version. So we need to fallback to resourceVersion="" in all to recover and ensure
// the reflector makes forward progress.
list
,
paginatedResult
,
err
=
pager
.
List
(
context
.
Background
(),
metav1
.
ListOptions
{
ResourceVersion
:
r
.
relistResourceVersion
()})
list
,
paginatedResult
,
err
=
pager
.
List
(
context
.
Background
(),
metav1
.
ListOptions
{
ResourceVersion
:
r
.
relistResourceVersion
()})
}
}
close
(
listCh
)
close
(
listCh
)
...
@@ -292,7 +293,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
...
@@ -292,7 +293,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
r
.
paginatedResult
=
true
r
.
paginatedResult
=
true
}
}
r
.
setIsLastSyncResourceVersion
Expired
(
false
)
// list was successful
r
.
setIsLastSyncResourceVersion
Unavailable
(
false
)
// list was successful
initTrace
.
Step
(
"Objects listed"
)
initTrace
.
Step
(
"Objects listed"
)
listMetaInterface
,
err
:=
meta
.
ListAccessor
(
list
)
listMetaInterface
,
err
:=
meta
.
ListAccessor
(
list
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -396,7 +397,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
...
@@ -396,7 +397,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {
if
err
!=
errorStopRequested
{
if
err
!=
errorStopRequested
{
switch
{
switch
{
case
isExpiredError
(
err
)
:
case
isExpiredError
(
err
)
:
// Don't set LastSyncResourceVersion
Expired
- LIST call with ResourceVersion=RV already
// Don't set LastSyncResourceVersion
Unavailable
- LIST call with ResourceVersion=RV already
// has a semantic that it returns data at least as fresh as provided RV.
// has a semantic that it returns data at least as fresh as provided RV.
// So first try to LIST with setting RV to resource version of last observed object.
// So first try to LIST with setting RV to resource version of last observed object.
klog
.
V
(
4
)
.
Infof
(
"%s: watch of %v closed with: %v"
,
r
.
name
,
r
.
expectedTypeName
,
err
)
klog
.
V
(
4
)
.
Infof
(
"%s: watch of %v closed with: %v"
,
r
.
name
,
r
.
expectedTypeName
,
err
)
...
@@ -519,9 +520,9 @@ func (r *Reflector) relistResourceVersion() string {
...
@@ -519,9 +520,9 @@ func (r *Reflector) relistResourceVersion() string {
r
.
lastSyncResourceVersionMutex
.
RLock
()
r
.
lastSyncResourceVersionMutex
.
RLock
()
defer
r
.
lastSyncResourceVersionMutex
.
RUnlock
()
defer
r
.
lastSyncResourceVersionMutex
.
RUnlock
()
if
r
.
isLastSyncResourceVersion
Gon
e
{
if
r
.
isLastSyncResourceVersion
Unavailabl
e
{
// Since this reflector makes paginated list requests, and all paginated list requests skip the watch cache
// Since this reflector makes paginated list requests, and all paginated list requests skip the watch cache
// if the lastSyncResourceVersion is
expired
, we set ResourceVersion="" and list again to re-establish reflector
// if the lastSyncResourceVersion is
unavailable
, we set ResourceVersion="" and list again to re-establish reflector
// to the latest available ResourceVersion, using a consistent read from etcd.
// to the latest available ResourceVersion, using a consistent read from etcd.
return
""
return
""
}
}
...
@@ -533,12 +534,12 @@ func (r *Reflector) relistResourceVersion() string {
...
@@ -533,12 +534,12 @@ func (r *Reflector) relistResourceVersion() string {
return
r
.
lastSyncResourceVersion
return
r
.
lastSyncResourceVersion
}
}
// setIsLastSyncResourceVersion
Expired sets if the last list or watch request with lastSyncResourceVersion returned a
// setIsLastSyncResourceVersion
Unavailable sets if the last list or watch request with lastSyncResourceVersion returned
//
expired error: HTTP 410 (Gone) Status Code
.
//
"expired" or "too large resource version" error
.
func
(
r
*
Reflector
)
setIsLastSyncResourceVersion
Expired
(
isExpired
bool
)
{
func
(
r
*
Reflector
)
setIsLastSyncResourceVersion
Unavailable
(
isUnavailable
bool
)
{
r
.
lastSyncResourceVersionMutex
.
Lock
()
r
.
lastSyncResourceVersionMutex
.
Lock
()
defer
r
.
lastSyncResourceVersionMutex
.
Unlock
()
defer
r
.
lastSyncResourceVersionMutex
.
Unlock
()
r
.
isLastSyncResourceVersion
Gone
=
isExpired
r
.
isLastSyncResourceVersion
Unavailable
=
isUnavailable
}
}
func
isExpiredError
(
err
error
)
bool
{
func
isExpiredError
(
err
error
)
bool
{
...
@@ -548,3 +549,7 @@ func isExpiredError(err error) bool {
...
@@ -548,3 +549,7 @@ func isExpiredError(err error) bool {
// check when we fully drop support for Kubernetes 1.17 servers from reflectors.
// check when we fully drop support for Kubernetes 1.17 servers from reflectors.
return
apierrors
.
IsResourceExpired
(
err
)
||
apierrors
.
IsGone
(
err
)
return
apierrors
.
IsResourceExpired
(
err
)
||
apierrors
.
IsGone
(
err
)
}
}
func
isTooLargeResourceVersionError
(
err
error
)
bool
{
return
apierrors
.
HasStatusCause
(
err
,
metav1
.
CauseTypeResourceVersionTooLarge
)
}
vendor/k8s.io/component-base/version/base.go
View file @
206accbe
...
@@ -3,8 +3,8 @@ package version
...
@@ -3,8 +3,8 @@ package version
var
(
var
(
gitMajor
=
"1"
gitMajor
=
"1"
gitMinor
=
"18"
gitMinor
=
"18"
gitVersion
=
"v1.18.
4
-k3s1"
gitVersion
=
"v1.18.
6
-k3s1"
gitCommit
=
"
52f8d69fc5bdd2ceb2ea47fb3b51190bba9e5c06
"
gitCommit
=
"
60da51f880b8e78467c08510bde06c1b3b2dedbe
"
gitTreeState
=
"clean"
gitTreeState
=
"clean"
buildDate
=
"2020-0
6-17T20:02:22
Z"
buildDate
=
"2020-0
7-15T21:57:06
Z"
)
)
vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go
View file @
206accbe
...
@@ -332,6 +332,7 @@ func startAttachDetachController(ctx ControllerContext) (http.Handler, bool, err
...
@@ -332,6 +332,7 @@ func startAttachDetachController(ctx ControllerContext) (http.Handler, bool, err
ctx
.
InformerFactory
.
Core
()
.
V1
()
.
PersistentVolumes
(),
ctx
.
InformerFactory
.
Core
()
.
V1
()
.
PersistentVolumes
(),
csiNodeInformer
,
csiNodeInformer
,
csiDriverInformer
,
csiDriverInformer
,
ctx
.
InformerFactory
.
Storage
()
.
V1
()
.
VolumeAttachments
(),
ctx
.
Cloud
,
ctx
.
Cloud
,
plugins
,
plugins
,
GetDynamicPluginProber
(
ctx
.
ComponentConfig
.
PersistentVolumeBinderController
.
VolumeConfiguration
),
GetDynamicPluginProber
(
ctx
.
ComponentConfig
.
PersistentVolumeBinderController
.
VolumeConfiguration
),
...
...
vendor/k8s.io/kubernetes/pkg/apis/core/types.go
View file @
206accbe
...
@@ -4250,7 +4250,7 @@ type PodLogOptions struct {
...
@@ -4250,7 +4250,7 @@ type PodLogOptions struct {
// If this value is in the future, no logs will be returned.
// If this value is in the future, no logs will be returned.
// Only one of sinceSeconds or sinceTime may be specified.
// Only one of sinceSeconds or sinceTime may be specified.
SinceTime
*
metav1
.
Time
SinceTime
*
metav1
.
Time
// If true, add an RFC
3339 or RFC3339Nano timestamp
at the beginning of every line
// If true, add an RFC
3339 timestamp with 9 digits of fractional seconds
at the beginning of every line
// of log output.
// of log output.
Timestamps
bool
Timestamps
bool
// If set, the number of lines from the end of the logs to show. If not specified,
// If set, the number of lines from the end of the logs to show. If not specified,
...
...
vendor/k8s.io/kubernetes/pkg/controller/daemon/BUILD
View file @
206accbe
...
@@ -56,6 +56,7 @@ go_test(
...
@@ -56,6 +56,7 @@ go_test(
name = "go_default_test",
name = "go_default_test",
srcs = [
srcs = [
"daemon_controller_test.go",
"daemon_controller_test.go",
"init_test.go",
"update_test.go",
"update_test.go",
],
],
embed = [":go_default_library"],
embed = [":go_default_library"],
...
@@ -76,6 +77,7 @@ go_test(
...
@@ -76,6 +77,7 @@ go_test(
"//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/storage/names:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/storage/names:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
...
@@ -84,6 +86,7 @@ go_test(
...
@@ -84,6 +86,7 @@ go_test(
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
"//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
"//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
],
],
)
)
...
...
vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller.go
View file @
206accbe
...
@@ -163,17 +163,8 @@ func NewDaemonSetsController(
...
@@ -163,17 +163,8 @@ func NewDaemonSetsController(
}
}
daemonSetInformer
.
Informer
()
.
AddEventHandler
(
cache
.
ResourceEventHandlerFuncs
{
daemonSetInformer
.
Informer
()
.
AddEventHandler
(
cache
.
ResourceEventHandlerFuncs
{
AddFunc
:
func
(
obj
interface
{})
{
AddFunc
:
dsc
.
addDaemonset
,
ds
:=
obj
.
(
*
apps
.
DaemonSet
)
UpdateFunc
:
dsc
.
updateDaemonset
,
klog
.
V
(
4
)
.
Infof
(
"Adding daemon set %s"
,
ds
.
Name
)
dsc
.
enqueueDaemonSet
(
ds
)
},
UpdateFunc
:
func
(
old
,
cur
interface
{})
{
oldDS
:=
old
.
(
*
apps
.
DaemonSet
)
curDS
:=
cur
.
(
*
apps
.
DaemonSet
)
klog
.
V
(
4
)
.
Infof
(
"Updating daemon set %s"
,
oldDS
.
Name
)
dsc
.
enqueueDaemonSet
(
curDS
)
},
DeleteFunc
:
dsc
.
deleteDaemonset
,
DeleteFunc
:
dsc
.
deleteDaemonset
,
})
})
dsc
.
dsLister
=
daemonSetInformer
.
Lister
()
dsc
.
dsLister
=
daemonSetInformer
.
Lister
()
...
@@ -231,22 +222,59 @@ func indexByPodNodeName(obj interface{}) ([]string, error) {
...
@@ -231,22 +222,59 @@ func indexByPodNodeName(obj interface{}) ([]string, error) {
return
[]
string
{
pod
.
Spec
.
NodeName
},
nil
return
[]
string
{
pod
.
Spec
.
NodeName
},
nil
}
}
func
(
dsc
*
DaemonSetsController
)
addDaemonset
(
obj
interface
{})
{
ds
:=
obj
.
(
*
apps
.
DaemonSet
)
klog
.
V
(
4
)
.
Infof
(
"Adding daemon set %s"
,
ds
.
Name
)
dsc
.
enqueueDaemonSet
(
ds
)
}
func
(
dsc
*
DaemonSetsController
)
updateDaemonset
(
cur
,
old
interface
{})
{
oldDS
:=
old
.
(
*
apps
.
DaemonSet
)
curDS
:=
cur
.
(
*
apps
.
DaemonSet
)
// TODO: make a KEP and fix informers to always call the delete event handler on re-create
if
curDS
.
UID
!=
oldDS
.
UID
{
key
,
err
:=
controller
.
KeyFunc
(
oldDS
)
if
err
!=
nil
{
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"couldn't get key for object %#v: %v"
,
oldDS
,
err
))
return
}
dsc
.
deleteDaemonset
(
cache
.
DeletedFinalStateUnknown
{
Key
:
key
,
Obj
:
oldDS
,
})
}
klog
.
V
(
4
)
.
Infof
(
"Updating daemon set %s"
,
oldDS
.
Name
)
dsc
.
enqueueDaemonSet
(
curDS
)
}
func
(
dsc
*
DaemonSetsController
)
deleteDaemonset
(
obj
interface
{})
{
func
(
dsc
*
DaemonSetsController
)
deleteDaemonset
(
obj
interface
{})
{
ds
,
ok
:=
obj
.
(
*
apps
.
DaemonSet
)
ds
,
ok
:=
obj
.
(
*
apps
.
DaemonSet
)
if
!
ok
{
if
!
ok
{
tombstone
,
ok
:=
obj
.
(
cache
.
DeletedFinalStateUnknown
)
tombstone
,
ok
:=
obj
.
(
cache
.
DeletedFinalStateUnknown
)
if
!
ok
{
if
!
ok
{
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"
C
ouldn't get object from tombstone %#v"
,
obj
))
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"
c
ouldn't get object from tombstone %#v"
,
obj
))
return
return
}
}
ds
,
ok
=
tombstone
.
Obj
.
(
*
apps
.
DaemonSet
)
ds
,
ok
=
tombstone
.
Obj
.
(
*
apps
.
DaemonSet
)
if
!
ok
{
if
!
ok
{
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"
T
ombstone contained object that is not a DaemonSet %#v"
,
obj
))
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"
t
ombstone contained object that is not a DaemonSet %#v"
,
obj
))
return
return
}
}
}
}
klog
.
V
(
4
)
.
Infof
(
"Deleting daemon set %s"
,
ds
.
Name
)
klog
.
V
(
4
)
.
Infof
(
"Deleting daemon set %s"
,
ds
.
Name
)
dsc
.
enqueueDaemonSet
(
ds
)
key
,
err
:=
controller
.
KeyFunc
(
ds
)
if
err
!=
nil
{
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"couldn't get key for object %#v: %v"
,
ds
,
err
))
return
}
// Delete expectations for the DaemonSet so if we create a new one with the same name it starts clean
dsc
.
expectations
.
DeleteExpectations
(
key
)
dsc
.
queue
.
Add
(
key
)
}
}
// Run begins watching and syncing daemon sets.
// Run begins watching and syncing daemon sets.
...
...
vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller.go
View file @
206accbe
...
@@ -110,6 +110,7 @@ func NewAttachDetachController(
...
@@ -110,6 +110,7 @@ func NewAttachDetachController(
pvInformer
coreinformers
.
PersistentVolumeInformer
,
pvInformer
coreinformers
.
PersistentVolumeInformer
,
csiNodeInformer
storageinformersv1
.
CSINodeInformer
,
csiNodeInformer
storageinformersv1
.
CSINodeInformer
,
csiDriverInformer
storageinformersv1
.
CSIDriverInformer
,
csiDriverInformer
storageinformersv1
.
CSIDriverInformer
,
volumeAttachmentInformer
storageinformersv1
.
VolumeAttachmentInformer
,
cloud
cloudprovider
.
Interface
,
cloud
cloudprovider
.
Interface
,
plugins
[]
volume
.
VolumePlugin
,
plugins
[]
volume
.
VolumePlugin
,
prober
volume
.
DynamicPluginProber
,
prober
volume
.
DynamicPluginProber
,
...
@@ -141,6 +142,9 @@ func NewAttachDetachController(
...
@@ -141,6 +142,9 @@ func NewAttachDetachController(
adc
.
csiDriverLister
=
csiDriverInformer
.
Lister
()
adc
.
csiDriverLister
=
csiDriverInformer
.
Lister
()
adc
.
csiDriversSynced
=
csiDriverInformer
.
Informer
()
.
HasSynced
adc
.
csiDriversSynced
=
csiDriverInformer
.
Informer
()
.
HasSynced
adc
.
volumeAttachmentLister
=
volumeAttachmentInformer
.
Lister
()
adc
.
volumeAttachmentSynced
=
volumeAttachmentInformer
.
Informer
()
.
HasSynced
if
err
:=
adc
.
volumePluginMgr
.
InitPlugins
(
plugins
,
prober
,
adc
);
err
!=
nil
{
if
err
:=
adc
.
volumePluginMgr
.
InitPlugins
(
plugins
,
prober
,
adc
);
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"Could not initialize volume plugins for Attach/Detach Controller: %+v"
,
err
)
return
nil
,
fmt
.
Errorf
(
"Could not initialize volume plugins for Attach/Detach Controller: %+v"
,
err
)
}
}
...
@@ -280,6 +284,12 @@ type attachDetachController struct {
...
@@ -280,6 +284,12 @@ type attachDetachController struct {
csiDriverLister
storagelistersv1
.
CSIDriverLister
csiDriverLister
storagelistersv1
.
CSIDriverLister
csiDriversSynced
kcache
.
InformerSynced
csiDriversSynced
kcache
.
InformerSynced
// volumeAttachmentLister is the shared volumeAttachment lister used to fetch and store
// VolumeAttachment objects from the API server. It is shared with other controllers
// and therefore the VolumeAttachment objects in its store should be treated as immutable.
volumeAttachmentLister
storagelistersv1
.
VolumeAttachmentLister
volumeAttachmentSynced
kcache
.
InformerSynced
// cloud provider used by volume host
// cloud provider used by volume host
cloud
cloudprovider
.
Interface
cloud
cloudprovider
.
Interface
...
@@ -345,6 +355,9 @@ func (adc *attachDetachController) Run(stopCh <-chan struct{}) {
...
@@ -345,6 +355,9 @@ func (adc *attachDetachController) Run(stopCh <-chan struct{}) {
if
adc
.
csiDriversSynced
!=
nil
{
if
adc
.
csiDriversSynced
!=
nil
{
synced
=
append
(
synced
,
adc
.
csiDriversSynced
)
synced
=
append
(
synced
,
adc
.
csiDriversSynced
)
}
}
if
adc
.
volumeAttachmentSynced
!=
nil
{
synced
=
append
(
synced
,
adc
.
volumeAttachmentSynced
)
}
if
!
kcache
.
WaitForNamedCacheSync
(
"attach detach"
,
stopCh
,
synced
...
)
{
if
!
kcache
.
WaitForNamedCacheSync
(
"attach detach"
,
stopCh
,
synced
...
)
{
return
return
...
@@ -697,6 +710,10 @@ func (adc *attachDetachController) IsAttachDetachController() bool {
...
@@ -697,6 +710,10 @@ func (adc *attachDetachController) IsAttachDetachController() bool {
return
true
return
true
}
}
func
(
adc
*
attachDetachController
)
VolumeAttachmentLister
()
storagelistersv1
.
VolumeAttachmentLister
{
return
adc
.
volumeAttachmentLister
}
// VolumeHost implementation
// VolumeHost implementation
// This is an unfortunate requirement of the current factoring of volume plugin
// This is an unfortunate requirement of the current factoring of volume plugin
// initializing code. It requires kubelet specific methods used by the mounting
// initializing code. It requires kubelet specific methods used by the mounting
...
...
vendor/k8s.io/kubernetes/pkg/credentialprovider/provider.go
View file @
206accbe
...
@@ -58,6 +58,10 @@ type CachingDockerConfigProvider struct {
...
@@ -58,6 +58,10 @@ type CachingDockerConfigProvider struct {
Provider
DockerConfigProvider
Provider
DockerConfigProvider
Lifetime
time
.
Duration
Lifetime
time
.
Duration
// ShouldCache is an optional function that returns true if the specific config should be cached.
// If nil, all configs are treated as cacheable.
ShouldCache
func
(
DockerConfig
)
bool
// cache fields
// cache fields
cacheDockerConfig
DockerConfig
cacheDockerConfig
DockerConfig
expiration
time
.
Time
expiration
time
.
Time
...
@@ -96,7 +100,10 @@ func (d *CachingDockerConfigProvider) Provide(image string) DockerConfig {
...
@@ -96,7 +100,10 @@ func (d *CachingDockerConfigProvider) Provide(image string) DockerConfig {
}
}
klog
.
V
(
2
)
.
Infof
(
"Refreshing cache for provider: %v"
,
reflect
.
TypeOf
(
d
.
Provider
)
.
String
())
klog
.
V
(
2
)
.
Infof
(
"Refreshing cache for provider: %v"
,
reflect
.
TypeOf
(
d
.
Provider
)
.
String
())
d
.
cacheDockerConfig
=
d
.
Provider
.
Provide
(
image
)
config
:=
d
.
Provider
.
Provide
(
image
)
d
.
expiration
=
time
.
Now
()
.
Add
(
d
.
Lifetime
)
if
d
.
ShouldCache
==
nil
||
d
.
ShouldCache
(
config
)
{
return
d
.
cacheDockerConfig
d
.
cacheDockerConfig
=
config
d
.
expiration
=
time
.
Now
()
.
Add
(
d
.
Lifetime
)
}
return
config
}
}
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats.go
View file @
206accbe
...
@@ -53,8 +53,9 @@ func (ds *dockerService) ListContainerStats(ctx context.Context, r *runtimeapi.L
...
@@ -53,8 +53,9 @@ func (ds *dockerService) ListContainerStats(ctx context.Context, r *runtimeapi.L
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
if
containerStats
!=
nil
{
stats
=
append
(
stats
,
containerStats
)
stats
=
append
(
stats
,
containerStats
)
}
}
}
return
&
runtimeapi
.
ListContainerStatsResponse
{
Stats
:
stats
},
nil
return
&
runtimeapi
.
ListContainerStatsResponse
{
Stats
:
stats
},
nil
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_stats_windows.go
View file @
206accbe
...
@@ -35,7 +35,13 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont
...
@@ -35,7 +35,13 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont
hcsshim_container
,
err
:=
hcsshim
.
OpenContainer
(
containerID
)
hcsshim_container
,
err
:=
hcsshim
.
OpenContainer
(
containerID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
// 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
.
Errorf
(
"Error opening container (stats will be missing) '%s': %v"
,
containerID
,
err
)
}
return
nil
,
nil
}
}
defer
func
()
{
defer
func
()
{
closeErr
:=
hcsshim_container
.
Close
()
closeErr
:=
hcsshim_container
.
Close
()
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD
View file @
206accbe
...
@@ -65,6 +65,7 @@ go_library(
...
@@ -65,6 +65,7 @@ go_library(
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go
View file @
206accbe
...
@@ -26,6 +26,7 @@ import (
...
@@ -26,6 +26,7 @@ import (
v1
"k8s.io/api/core/v1"
v1
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/clock"
"k8s.io/apimachinery/pkg/util/clock"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
...
@@ -98,6 +99,8 @@ type managerImpl struct {
...
@@ -98,6 +99,8 @@ type managerImpl struct {
thresholdNotifiers
[]
ThresholdNotifier
thresholdNotifiers
[]
ThresholdNotifier
// thresholdsLastUpdated is the last time the thresholdNotifiers were updated.
// thresholdsLastUpdated is the last time the thresholdNotifiers were updated.
thresholdsLastUpdated
time
.
Time
thresholdsLastUpdated
time
.
Time
// etcHostsPath is a function that will get the etc-hosts file's path for a pod given its UID
etcHostsPath
func
(
podUID
types
.
UID
)
string
}
}
// ensure it implements the required interface
// ensure it implements the required interface
...
@@ -114,6 +117,7 @@ func NewManager(
...
@@ -114,6 +117,7 @@ func NewManager(
recorder
record
.
EventRecorder
,
recorder
record
.
EventRecorder
,
nodeRef
*
v1
.
ObjectReference
,
nodeRef
*
v1
.
ObjectReference
,
clock
clock
.
Clock
,
clock
clock
.
Clock
,
etcHostsPath
func
(
types
.
UID
)
string
,
)
(
Manager
,
lifecycle
.
PodAdmitHandler
)
{
)
(
Manager
,
lifecycle
.
PodAdmitHandler
)
{
manager
:=
&
managerImpl
{
manager
:=
&
managerImpl
{
clock
:
clock
,
clock
:
clock
,
...
@@ -129,6 +133,7 @@ func NewManager(
...
@@ -129,6 +133,7 @@ func NewManager(
thresholdsFirstObservedAt
:
thresholdsObservedAt
{},
thresholdsFirstObservedAt
:
thresholdsObservedAt
{},
dedicatedImageFs
:
nil
,
dedicatedImageFs
:
nil
,
thresholdNotifiers
:
[]
ThresholdNotifier
{},
thresholdNotifiers
:
[]
ThresholdNotifier
{},
etcHostsPath
:
etcHostsPath
,
}
}
return
manager
,
manager
return
manager
,
manager
}
}
...
@@ -515,7 +520,7 @@ func (m *managerImpl) podEphemeralStorageLimitEviction(podStats statsapi.PodStat
...
@@ -515,7 +520,7 @@ func (m *managerImpl) podEphemeralStorageLimitEviction(podStats statsapi.PodStat
}
else
{
}
else
{
fsStatsSet
=
[]
fsStatsType
{
fsStatsRoot
,
fsStatsLogs
,
fsStatsLocalVolumeSource
}
fsStatsSet
=
[]
fsStatsType
{
fsStatsRoot
,
fsStatsLogs
,
fsStatsLocalVolumeSource
}
}
}
podEphemeralUsage
,
err
:=
podLocalEphemeralStorageUsage
(
podStats
,
pod
,
fsStatsSet
)
podEphemeralUsage
,
err
:=
podLocalEphemeralStorageUsage
(
podStats
,
pod
,
fsStatsSet
,
m
.
etcHostsPath
(
pod
.
UID
)
)
if
err
!=
nil
{
if
err
!=
nil
{
klog
.
Errorf
(
"eviction manager: error getting pod disk usage %v"
,
err
)
klog
.
Errorf
(
"eviction manager: error getting pod disk usage %v"
,
err
)
return
false
return
false
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers.go
View file @
206accbe
...
@@ -18,6 +18,7 @@ package eviction
...
@@ -18,6 +18,7 @@ package eviction
import
(
import
(
"fmt"
"fmt"
"os"
"sort"
"sort"
"strconv"
"strconv"
"strings"
"strings"
...
@@ -415,7 +416,7 @@ func localEphemeralVolumeNames(pod *v1.Pod) []string {
...
@@ -415,7 +416,7 @@ func localEphemeralVolumeNames(pod *v1.Pod) []string {
}
}
// podLocalEphemeralStorageUsage aggregates pod local ephemeral storage usage and inode consumption for the specified stats to measure.
// podLocalEphemeralStorageUsage aggregates pod local ephemeral storage usage and inode consumption for the specified stats to measure.
func
podLocalEphemeralStorageUsage
(
podStats
statsapi
.
PodStats
,
pod
*
v1
.
Pod
,
statsToMeasure
[]
fsStatsType
)
(
v1
.
ResourceList
,
error
)
{
func
podLocalEphemeralStorageUsage
(
podStats
statsapi
.
PodStats
,
pod
*
v1
.
Pod
,
statsToMeasure
[]
fsStatsType
,
etcHostsPath
string
)
(
v1
.
ResourceList
,
error
)
{
disk
:=
resource
.
Quantity
{
Format
:
resource
.
BinarySI
}
disk
:=
resource
.
Quantity
{
Format
:
resource
.
BinarySI
}
inodes
:=
resource
.
Quantity
{
Format
:
resource
.
DecimalSI
}
inodes
:=
resource
.
Quantity
{
Format
:
resource
.
DecimalSI
}
...
@@ -429,6 +430,12 @@ func podLocalEphemeralStorageUsage(podStats statsapi.PodStats, pod *v1.Pod, stat
...
@@ -429,6 +430,12 @@ func podLocalEphemeralStorageUsage(podStats statsapi.PodStats, pod *v1.Pod, stat
disk
.
Add
(
podLocalVolumeUsageList
[
v1
.
ResourceEphemeralStorage
])
disk
.
Add
(
podLocalVolumeUsageList
[
v1
.
ResourceEphemeralStorage
])
inodes
.
Add
(
podLocalVolumeUsageList
[
resourceInodes
])
inodes
.
Add
(
podLocalVolumeUsageList
[
resourceInodes
])
}
}
if
len
(
etcHostsPath
)
>
0
{
if
stat
,
err
:=
os
.
Stat
(
etcHostsPath
);
err
==
nil
{
disk
.
Add
(
*
resource
.
NewQuantity
(
int64
(
stat
.
Size
()),
resource
.
BinarySI
))
inodes
.
Add
(
*
resource
.
NewQuantity
(
int64
(
1
),
resource
.
DecimalSI
))
}
}
return
v1
.
ResourceList
{
return
v1
.
ResourceList
{
v1
.
ResourceEphemeralStorage
:
disk
,
v1
.
ResourceEphemeralStorage
:
disk
,
resourceInodes
:
inodes
,
resourceInodes
:
inodes
,
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go
View file @
206accbe
...
@@ -843,8 +843,9 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
...
@@ -843,8 +843,9 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
klet
.
backOff
=
flowcontrol
.
NewBackOff
(
backOffPeriod
,
MaxContainerBackOff
)
klet
.
backOff
=
flowcontrol
.
NewBackOff
(
backOffPeriod
,
MaxContainerBackOff
)
klet
.
podKillingCh
=
make
(
chan
*
kubecontainer
.
PodPair
,
podKillingChannelCapacity
)
klet
.
podKillingCh
=
make
(
chan
*
kubecontainer
.
PodPair
,
podKillingChannelCapacity
)
etcHostsPathFunc
:=
func
(
podUID
types
.
UID
)
string
{
return
getEtcHostsPath
(
klet
.
getPodDir
(
podUID
))
}
// setup eviction manager
// setup eviction manager
evictionManager
,
evictionAdmitHandler
:=
eviction
.
NewManager
(
klet
.
resourceAnalyzer
,
evictionConfig
,
killPodNow
(
klet
.
podWorkers
,
kubeDeps
.
Recorder
),
klet
.
podManager
.
GetMirrorPodByPod
,
klet
.
imageManager
,
klet
.
containerGC
,
kubeDeps
.
Recorder
,
nodeRef
,
klet
.
clock
)
evictionManager
,
evictionAdmitHandler
:=
eviction
.
NewManager
(
klet
.
resourceAnalyzer
,
evictionConfig
,
killPodNow
(
klet
.
podWorkers
,
kubeDeps
.
Recorder
),
klet
.
podManager
.
GetMirrorPodByPod
,
klet
.
imageManager
,
klet
.
containerGC
,
kubeDeps
.
Recorder
,
nodeRef
,
klet
.
clock
,
etcHostsPathFunc
)
klet
.
evictionManager
=
evictionManager
klet
.
evictionManager
=
evictionManager
klet
.
admitHandlers
.
AddPodAdmitHandler
(
evictionAdmitHandler
)
klet
.
admitHandlers
.
AddPodAdmitHandler
(
evictionAdmitHandler
)
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network_linux.go
View file @
206accbe
...
@@ -62,7 +62,7 @@ func (kl *Kubelet) syncNetworkUtil() {
...
@@ -62,7 +62,7 @@ func (kl *Kubelet) syncNetworkUtil() {
klog
.
Errorf
(
"Failed to ensure that %s chain %s exists: %v"
,
utiliptables
.
TableNAT
,
KubeMarkDropChain
,
err
)
klog
.
Errorf
(
"Failed to ensure that %s chain %s exists: %v"
,
utiliptables
.
TableNAT
,
KubeMarkDropChain
,
err
)
return
return
}
}
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableNAT
,
KubeMarkDropChain
,
"-j"
,
"MARK"
,
"--
set-x
mark"
,
dropMark
);
err
!=
nil
{
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableNAT
,
KubeMarkDropChain
,
"-j"
,
"MARK"
,
"--
or-
mark"
,
dropMark
);
err
!=
nil
{
klog
.
Errorf
(
"Failed to ensure marking rule for %v: %v"
,
KubeMarkDropChain
,
err
)
klog
.
Errorf
(
"Failed to ensure marking rule for %v: %v"
,
KubeMarkDropChain
,
err
)
return
return
}
}
...
@@ -72,7 +72,7 @@ func (kl *Kubelet) syncNetworkUtil() {
...
@@ -72,7 +72,7 @@ func (kl *Kubelet) syncNetworkUtil() {
}
}
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableFilter
,
KubeFirewallChain
,
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableFilter
,
KubeFirewallChain
,
"-m"
,
"comment"
,
"--comment"
,
"kubernetes firewall for dropping marked packets"
,
"-m"
,
"comment"
,
"--comment"
,
"kubernetes firewall for dropping marked packets"
,
"-m"
,
"mark"
,
"--mark"
,
dropMark
,
"-m"
,
"mark"
,
"--mark"
,
fmt
.
Sprintf
(
"%s/%s"
,
dropMark
,
dropMark
)
,
"-j"
,
"DROP"
);
err
!=
nil
{
"-j"
,
"DROP"
);
err
!=
nil
{
klog
.
Errorf
(
"Failed to ensure rule to drop packet marked by %v in %v chain %v: %v"
,
KubeMarkDropChain
,
utiliptables
.
TableFilter
,
KubeFirewallChain
,
err
)
klog
.
Errorf
(
"Failed to ensure rule to drop packet marked by %v in %v chain %v: %v"
,
KubeMarkDropChain
,
utiliptables
.
TableFilter
,
KubeFirewallChain
,
err
)
return
return
...
@@ -112,7 +112,7 @@ func (kl *Kubelet) syncNetworkUtil() {
...
@@ -112,7 +112,7 @@ func (kl *Kubelet) syncNetworkUtil() {
klog
.
Errorf
(
"Failed to ensure that %s chain %s exists: %v"
,
utiliptables
.
TableNAT
,
KubePostroutingChain
,
err
)
klog
.
Errorf
(
"Failed to ensure that %s chain %s exists: %v"
,
utiliptables
.
TableNAT
,
KubePostroutingChain
,
err
)
return
return
}
}
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableNAT
,
KubeMarkMasqChain
,
"-j"
,
"MARK"
,
"--
set-x
mark"
,
masqueradeMark
);
err
!=
nil
{
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableNAT
,
KubeMarkMasqChain
,
"-j"
,
"MARK"
,
"--
or-
mark"
,
masqueradeMark
);
err
!=
nil
{
klog
.
Errorf
(
"Failed to ensure marking rule for %v: %v"
,
KubeMarkMasqChain
,
err
)
klog
.
Errorf
(
"Failed to ensure marking rule for %v: %v"
,
KubeMarkMasqChain
,
err
)
return
return
}
}
...
@@ -121,12 +121,26 @@ func (kl *Kubelet) syncNetworkUtil() {
...
@@ -121,12 +121,26 @@ func (kl *Kubelet) syncNetworkUtil() {
klog
.
Errorf
(
"Failed to ensure that %s chain %s jumps to %s: %v"
,
utiliptables
.
TableNAT
,
utiliptables
.
ChainPostrouting
,
KubePostroutingChain
,
err
)
klog
.
Errorf
(
"Failed to ensure that %s chain %s jumps to %s: %v"
,
utiliptables
.
TableNAT
,
utiliptables
.
ChainPostrouting
,
KubePostroutingChain
,
err
)
return
return
}
}
// Establish the masquerading rule.
// Set up KUBE-POSTROUTING to unmark and masquerade marked packets
// NB: THIS MUST MATCH the corresponding code in the iptables and ipvs
// NB: THIS MUST MATCH the corresponding code in the iptables and ipvs
// modes of kube-proxy
// modes of kube-proxy
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableNAT
,
KubePostroutingChain
,
"-m"
,
"mark"
,
"!"
,
"--mark"
,
fmt
.
Sprintf
(
"%s/%s"
,
masqueradeMark
,
masqueradeMark
),
"-j"
,
"RETURN"
);
err
!=
nil
{
klog
.
Errorf
(
"Failed to ensure filtering rule for %v: %v"
,
KubePostroutingChain
,
err
)
return
}
// Clear the mark to avoid re-masquerading if the packet re-traverses the network stack.
// We know the mark bit is currently set so we can use --xor-mark to clear it (without needing
// to Sprintf another bitmask).
if
_
,
err
:=
kl
.
iptClient
.
EnsureRule
(
utiliptables
.
Append
,
utiliptables
.
TableNAT
,
KubePostroutingChain
,
"-j"
,
"MARK"
,
"--xor-mark"
,
masqueradeMark
);
err
!=
nil
{
klog
.
Errorf
(
"Failed to ensure unmarking rule for %v: %v"
,
KubePostroutingChain
,
err
)
return
}
masqRule
:=
[]
string
{
masqRule
:=
[]
string
{
"-m"
,
"comment"
,
"--comment"
,
"kubernetes service traffic requiring SNAT"
,
"-m"
,
"comment"
,
"--comment"
,
"kubernetes service traffic requiring SNAT"
,
"-m"
,
"mark"
,
"--mark"
,
masqueradeMark
,
"-j"
,
"MASQUERADE"
,
"-j"
,
"MASQUERADE"
,
}
}
if
kl
.
iptClient
.
HasRandomFully
()
{
if
kl
.
iptClient
.
HasRandomFully
()
{
...
@@ -144,5 +158,5 @@ func (kl *Kubelet) syncNetworkUtil() {
...
@@ -144,5 +158,5 @@ func (kl *Kubelet) syncNetworkUtil() {
// getIPTablesMark returns the fwmark given the bit
// getIPTablesMark returns the fwmark given the bit
func
getIPTablesMark
(
bit
int
)
string
{
func
getIPTablesMark
(
bit
int
)
string
{
value
:=
1
<<
uint
(
bit
)
value
:=
1
<<
uint
(
bit
)
return
fmt
.
Sprintf
(
"%#08x
/%#08x"
,
value
,
value
)
return
fmt
.
Sprintf
(
"%#08x
"
,
value
)
}
}
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go
View file @
206accbe
...
@@ -291,11 +291,16 @@ func translateMountPropagation(mountMode *v1.MountPropagationMode) (runtimeapi.M
...
@@ -291,11 +291,16 @@ func translateMountPropagation(mountMode *v1.MountPropagationMode) (runtimeapi.M
}
}
}
}
// getEtcHostsPath returns the full host-side path to a pod's generated /etc/hosts file
func
getEtcHostsPath
(
podDir
string
)
string
{
return
path
.
Join
(
podDir
,
"etc-hosts"
)
}
// makeHostsMount makes the mountpoint for the hosts file that the containers
// makeHostsMount makes the mountpoint for the hosts file that the containers
// in a pod are injected with. podIPs is provided instead of podIP as podIPs
// in a pod are injected with. podIPs is provided instead of podIP as podIPs
// are present even if dual-stack feature flag is not enabled.
// are present even if dual-stack feature flag is not enabled.
func
makeHostsMount
(
podDir
string
,
podIPs
[]
string
,
hostName
,
hostDomainName
string
,
hostAliases
[]
v1
.
HostAlias
,
useHostNetwork
bool
)
(
*
kubecontainer
.
Mount
,
error
)
{
func
makeHostsMount
(
podDir
string
,
podIPs
[]
string
,
hostName
,
hostDomainName
string
,
hostAliases
[]
v1
.
HostAlias
,
useHostNetwork
bool
)
(
*
kubecontainer
.
Mount
,
error
)
{
hostsFilePath
:=
path
.
Join
(
podDir
,
"etc-hosts"
)
hostsFilePath
:=
getEtcHostsPath
(
podDir
)
if
err
:=
ensureHostsFile
(
hostsFilePath
,
podIPs
,
hostName
,
hostDomainName
,
hostAliases
,
useHostNetwork
);
err
!=
nil
{
if
err
:=
ensureHostsFile
(
hostsFilePath
,
podIPs
,
hostName
,
hostDomainName
,
hostAliases
,
useHostNetwork
);
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/BUILD
View file @
206accbe
...
@@ -6,6 +6,7 @@ go_library(
...
@@ -6,6 +6,7 @@ go_library(
importpath = "k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs",
importpath = "k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs",
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//pkg/kubelet/types:go_default_library",
"//pkg/util/tail:go_default_library",
"//pkg/util/tail:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/cri-api/pkg/apis:go_default_library",
"//staging/src/k8s.io/cri-api/pkg/apis:go_default_library",
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs.go
View file @
206accbe
...
@@ -36,6 +36,7 @@ import (
...
@@ -36,6 +36,7 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
internalapi
"k8s.io/cri-api/pkg/apis"
internalapi
"k8s.io/cri-api/pkg/apis"
runtimeapi
"k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
runtimeapi
"k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
"k8s.io/kubernetes/pkg/kubelet/types"
"k8s.io/kubernetes/pkg/util/tail"
"k8s.io/kubernetes/pkg/util/tail"
)
)
...
@@ -48,8 +49,10 @@ import (
...
@@ -48,8 +49,10 @@ import (
// TODO(random-liu): Support log rotation.
// TODO(random-liu): Support log rotation.
const
(
const
(
// timeFormat is the time format used in the log.
// timeFormatOut is the format for writing timestamps to output.
timeFormat
=
time
.
RFC3339Nano
timeFormatOut
=
types
.
RFC3339NanoFixed
// timeFormatIn is the format for parsing timestamps from other logs.
timeFormatIn
=
types
.
RFC3339NanoLenient
// logForceCheckPeriod is the period to check for a new read
// logForceCheckPeriod is the period to check for a new read
logForceCheckPeriod
=
1
*
time
.
Second
logForceCheckPeriod
=
1
*
time
.
Second
...
@@ -129,9 +132,9 @@ func parseCRILog(log []byte, msg *logMessage) error {
...
@@ -129,9 +132,9 @@ func parseCRILog(log []byte, msg *logMessage) error {
if
idx
<
0
{
if
idx
<
0
{
return
fmt
.
Errorf
(
"timestamp is not found"
)
return
fmt
.
Errorf
(
"timestamp is not found"
)
}
}
msg
.
timestamp
,
err
=
time
.
Parse
(
timeFormat
,
string
(
log
[
:
idx
]))
msg
.
timestamp
,
err
=
time
.
Parse
(
timeFormat
In
,
string
(
log
[
:
idx
]))
if
err
!=
nil
{
if
err
!=
nil
{
return
fmt
.
Errorf
(
"unexpected timestamp format %q: %v"
,
timeFormat
,
err
)
return
fmt
.
Errorf
(
"unexpected timestamp format %q: %v"
,
timeFormat
In
,
err
)
}
}
// Parse stream type
// Parse stream type
...
@@ -228,7 +231,7 @@ func (w *logWriter) write(msg *logMessage) error {
...
@@ -228,7 +231,7 @@ func (w *logWriter) write(msg *logMessage) error {
}
}
line
:=
msg
.
log
line
:=
msg
.
log
if
w
.
opts
.
timestamp
{
if
w
.
opts
.
timestamp
{
prefix
:=
append
([]
byte
(
msg
.
timestamp
.
Format
(
timeFormat
)),
delimiter
[
0
])
prefix
:=
append
([]
byte
(
msg
.
timestamp
.
Format
(
timeFormat
Out
)),
delimiter
[
0
])
line
=
append
(
prefix
,
line
...
)
line
=
append
(
prefix
,
line
...
)
}
}
// If the line is longer than the remaining bytes, cut it.
// If the line is longer than the remaining bytes, cut it.
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/prober/prober_manager.go
View file @
206accbe
...
@@ -236,18 +236,6 @@ func (m *manager) CleanupPods(desiredPods map[types.UID]sets.Empty) {
...
@@ -236,18 +236,6 @@ func (m *manager) CleanupPods(desiredPods map[types.UID]sets.Empty) {
func
(
m
*
manager
)
UpdatePodStatus
(
podUID
types
.
UID
,
podStatus
*
v1
.
PodStatus
)
{
func
(
m
*
manager
)
UpdatePodStatus
(
podUID
types
.
UID
,
podStatus
*
v1
.
PodStatus
)
{
for
i
,
c
:=
range
podStatus
.
ContainerStatuses
{
for
i
,
c
:=
range
podStatus
.
ContainerStatuses
{
var
ready
bool
if
c
.
State
.
Running
==
nil
{
ready
=
false
}
else
if
result
,
ok
:=
m
.
readinessManager
.
Get
(
kubecontainer
.
ParseContainerID
(
c
.
ContainerID
));
ok
{
ready
=
result
==
results
.
Success
}
else
{
// The check whether there is a probe which hasn't run yet.
_
,
exists
:=
m
.
getWorker
(
podUID
,
c
.
Name
,
readiness
)
ready
=
!
exists
}
podStatus
.
ContainerStatuses
[
i
]
.
Ready
=
ready
var
started
bool
var
started
bool
if
c
.
State
.
Running
==
nil
{
if
c
.
State
.
Running
==
nil
{
started
=
false
started
=
false
...
@@ -262,6 +250,20 @@ func (m *manager) UpdatePodStatus(podUID types.UID, podStatus *v1.PodStatus) {
...
@@ -262,6 +250,20 @@ func (m *manager) UpdatePodStatus(podUID types.UID, podStatus *v1.PodStatus) {
started
=
!
exists
started
=
!
exists
}
}
podStatus
.
ContainerStatuses
[
i
]
.
Started
=
&
started
podStatus
.
ContainerStatuses
[
i
]
.
Started
=
&
started
if
started
{
var
ready
bool
if
c
.
State
.
Running
==
nil
{
ready
=
false
}
else
if
result
,
ok
:=
m
.
readinessManager
.
Get
(
kubecontainer
.
ParseContainerID
(
c
.
ContainerID
));
ok
{
ready
=
result
==
results
.
Success
}
else
{
// The check whether there is a probe which hasn't run yet.
_
,
exists
:=
m
.
getWorker
(
podUID
,
c
.
Name
,
readiness
)
ready
=
!
exists
}
podStatus
.
ContainerStatuses
[
i
]
.
Ready
=
ready
}
}
}
// init containers are ready if they have exited with success or if a readiness probe has
// init containers are ready if they have exited with success or if a readiness probe has
// succeeded.
// succeeded.
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/types/constants.go
View file @
206accbe
...
@@ -29,4 +29,9 @@ const (
...
@@ -29,4 +29,9 @@ const (
SystemReservedEnforcementKey
=
"system-reserved"
SystemReservedEnforcementKey
=
"system-reserved"
KubeReservedEnforcementKey
=
"kube-reserved"
KubeReservedEnforcementKey
=
"kube-reserved"
NodeAllocatableNoneKey
=
"none"
NodeAllocatableNoneKey
=
"none"
// fixed width version of time.RFC3339Nano
RFC3339NanoFixed
=
"2006-01-02T15:04:05.000000000Z07:00"
// variable width RFC3339 time format for lenient parsing of strings into timestamps
RFC3339NanoLenient
=
"2006-01-02T15:04:05.999999999Z07:00"
)
)
vendor/k8s.io/kubernetes/pkg/kubelet/types/types.go
View file @
206accbe
...
@@ -43,10 +43,10 @@ func NewTimestamp() *Timestamp {
...
@@ -43,10 +43,10 @@ func NewTimestamp() *Timestamp {
return
&
Timestamp
{
time
.
Now
()}
return
&
Timestamp
{
time
.
Now
()}
}
}
// ConvertToTimestamp takes a string, parses it using the RFC3339Nano layout,
// ConvertToTimestamp takes a string, parses it using the RFC3339Nano
Lenient
layout,
// and converts it to a Timestamp object.
// and converts it to a Timestamp object.
func
ConvertToTimestamp
(
timeString
string
)
*
Timestamp
{
func
ConvertToTimestamp
(
timeString
string
)
*
Timestamp
{
parsed
,
_
:=
time
.
Parse
(
time
.
RFC3339Nano
,
timeString
)
parsed
,
_
:=
time
.
Parse
(
RFC3339NanoLenient
,
timeString
)
return
&
Timestamp
{
parsed
}
return
&
Timestamp
{
parsed
}
}
}
...
@@ -55,10 +55,10 @@ func (t *Timestamp) Get() time.Time {
...
@@ -55,10 +55,10 @@ func (t *Timestamp) Get() time.Time {
return
t
.
time
return
t
.
time
}
}
// GetString returns the time in the string format using the RFC3339Nano
// GetString returns the time in the string format using the RFC3339Nano
Fixed
// layout.
// layout.
func
(
t
*
Timestamp
)
GetString
()
string
{
func
(
t
*
Timestamp
)
GetString
()
string
{
return
t
.
time
.
Format
(
time
.
RFC3339Nano
)
return
t
.
time
.
Format
(
RFC3339NanoFixed
)
}
}
// A type to help sort container statuses based on container names.
// A type to help sort container statuses based on container names.
...
...
vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go
View file @
206accbe
...
@@ -284,7 +284,7 @@ func NewProxier(ipt utiliptables.Interface,
...
@@ -284,7 +284,7 @@ func NewProxier(ipt utiliptables.Interface,
// Generate the masquerade mark to use for SNAT rules.
// Generate the masquerade mark to use for SNAT rules.
masqueradeValue
:=
1
<<
uint
(
masqueradeBit
)
masqueradeValue
:=
1
<<
uint
(
masqueradeBit
)
masqueradeMark
:=
fmt
.
Sprintf
(
"%#08x
/%#08x"
,
masqueradeValue
,
masqueradeValue
)
masqueradeMark
:=
fmt
.
Sprintf
(
"%#08x
"
,
masqueradeValue
)
endpointSlicesEnabled
:=
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
EndpointSliceProxying
)
endpointSlicesEnabled
:=
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
EndpointSliceProxying
)
...
@@ -900,10 +900,20 @@ func (proxier *Proxier) syncProxyRules() {
...
@@ -900,10 +900,20 @@ func (proxier *Proxier) syncProxyRules() {
// this so that it is easier to flush and change, for example if the mark
// this so that it is easier to flush and change, for example if the mark
// value should ever change.
// value should ever change.
// NB: THIS MUST MATCH the corresponding code in the kubelet
// NB: THIS MUST MATCH the corresponding code in the kubelet
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
"-m"
,
"mark"
,
"!"
,
"--mark"
,
fmt
.
Sprintf
(
"%s/%s"
,
proxier
.
masqueradeMark
,
proxier
.
masqueradeMark
),
"-j"
,
"RETURN"
,
}
...
)
// Clear the mark to avoid re-masquerading if the packet re-traverses the network stack.
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
// XOR proxier.masqueradeMark to unset it
"-j"
,
"MARK"
,
"--xor-mark"
,
proxier
.
masqueradeMark
,
}
...
)
masqRule
:=
[]
string
{
masqRule
:=
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
"-A"
,
string
(
kubePostroutingChain
),
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes service traffic requiring SNAT"`
,
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes service traffic requiring SNAT"`
,
"-m"
,
"mark"
,
"--mark"
,
proxier
.
masqueradeMark
,
"-j"
,
"MASQUERADE"
,
"-j"
,
"MASQUERADE"
,
}
}
if
proxier
.
iptables
.
HasRandomFully
()
{
if
proxier
.
iptables
.
HasRandomFully
()
{
...
@@ -919,7 +929,7 @@ func (proxier *Proxier) syncProxyRules() {
...
@@ -919,7 +929,7 @@ func (proxier *Proxier) syncProxyRules() {
// value should ever change.
// value should ever change.
writeLine
(
proxier
.
natRules
,
[]
string
{
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
KubeMarkMasqChain
),
"-A"
,
string
(
KubeMarkMasqChain
),
"-j"
,
"MARK"
,
"--
set-x
mark"
,
proxier
.
masqueradeMark
,
"-j"
,
"MARK"
,
"--
or-
mark"
,
proxier
.
masqueradeMark
,
}
...
)
}
...
)
// Accumulate NAT chains to keep.
// Accumulate NAT chains to keep.
...
@@ -1505,7 +1515,7 @@ func (proxier *Proxier) syncProxyRules() {
...
@@ -1505,7 +1515,7 @@ func (proxier *Proxier) syncProxyRules() {
writeLine
(
proxier
.
filterRules
,
writeLine
(
proxier
.
filterRules
,
"-A"
,
string
(
kubeForwardChain
),
"-A"
,
string
(
kubeForwardChain
),
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes forwarding rules"`
,
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes forwarding rules"`
,
"-m"
,
"mark"
,
"--mark"
,
proxier
.
masqueradeMark
,
"-m"
,
"mark"
,
"--mark"
,
fmt
.
Sprintf
(
"%s/%s"
,
proxier
.
masqueradeMark
,
proxier
.
masqueradeMark
)
,
"-j"
,
"ACCEPT"
,
"-j"
,
"ACCEPT"
,
)
)
...
...
vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go
View file @
206accbe
...
@@ -419,7 +419,7 @@ func NewProxier(ipt utiliptables.Interface,
...
@@ -419,7 +419,7 @@ func NewProxier(ipt utiliptables.Interface,
// Generate the masquerade mark to use for SNAT rules.
// Generate the masquerade mark to use for SNAT rules.
masqueradeValue
:=
1
<<
uint
(
masqueradeBit
)
masqueradeValue
:=
1
<<
uint
(
masqueradeBit
)
masqueradeMark
:=
fmt
.
Sprintf
(
"%#08x
/%#08x"
,
masqueradeValue
,
masqueradeValue
)
masqueradeMark
:=
fmt
.
Sprintf
(
"%#08x
"
,
masqueradeValue
)
isIPv6
:=
utilnet
.
IsIPv6
(
nodeIP
)
isIPv6
:=
utilnet
.
IsIPv6
(
nodeIP
)
...
@@ -1751,7 +1751,7 @@ func (proxier *Proxier) writeIptablesRules() {
...
@@ -1751,7 +1751,7 @@ func (proxier *Proxier) writeIptablesRules() {
writeLine
(
proxier
.
filterRules
,
writeLine
(
proxier
.
filterRules
,
"-A"
,
string
(
KubeForwardChain
),
"-A"
,
string
(
KubeForwardChain
),
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes forwarding rules"`
,
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes forwarding rules"`
,
"-m"
,
"mark"
,
"--mark"
,
proxier
.
masqueradeMark
,
"-m"
,
"mark"
,
"--mark"
,
fmt
.
Sprintf
(
"%s/%s"
,
proxier
.
masqueradeMark
,
proxier
.
masqueradeMark
)
,
"-j"
,
"ACCEPT"
,
"-j"
,
"ACCEPT"
,
)
)
...
@@ -1773,6 +1773,39 @@ func (proxier *Proxier) writeIptablesRules() {
...
@@ -1773,6 +1773,39 @@ func (proxier *Proxier) writeIptablesRules() {
"-j"
,
"ACCEPT"
,
"-j"
,
"ACCEPT"
,
)
)
// Install the kubernetes-specific postrouting rules. We use a whole chain for
// this so that it is easier to flush and change, for example if the mark
// value should ever change.
// NB: THIS MUST MATCH the corresponding code in the kubelet
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
"-m"
,
"mark"
,
"!"
,
"--mark"
,
fmt
.
Sprintf
(
"%s/%s"
,
proxier
.
masqueradeMark
,
proxier
.
masqueradeMark
),
"-j"
,
"RETURN"
,
}
...
)
// Clear the mark to avoid re-masquerading if the packet re-traverses the network stack.
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
// XOR proxier.masqueradeMark to unset it
"-j"
,
"MARK"
,
"--xor-mark"
,
proxier
.
masqueradeMark
,
}
...
)
masqRule
:=
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes service traffic requiring SNAT"`
,
"-j"
,
"MASQUERADE"
,
}
if
proxier
.
iptables
.
HasRandomFully
()
{
masqRule
=
append
(
masqRule
,
"--random-fully"
)
}
writeLine
(
proxier
.
natRules
,
masqRule
...
)
// Install the kubernetes-specific masquerade mark rule. We use a whole chain for
// this so that it is easier to flush and change, for example if the mark
// value should ever change.
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
KubeMarkMasqChain
),
"-j"
,
"MARK"
,
"--or-mark"
,
proxier
.
masqueradeMark
,
}
...
)
// Write the end-of-table markers.
// Write the end-of-table markers.
writeLine
(
proxier
.
filterRules
,
"COMMIT"
)
writeLine
(
proxier
.
filterRules
,
"COMMIT"
)
writeLine
(
proxier
.
natRules
,
"COMMIT"
)
writeLine
(
proxier
.
natRules
,
"COMMIT"
)
...
@@ -1831,31 +1864,6 @@ func (proxier *Proxier) createAndLinkeKubeChain() {
...
@@ -1831,31 +1864,6 @@ func (proxier *Proxier) createAndLinkeKubeChain() {
}
}
}
}
// Install the kubernetes-specific postrouting rules. We use a whole chain for
// this so that it is easier to flush and change, for example if the mark
// value should ever change.
// NB: THIS MUST MATCH the corresponding code in the kubelet
masqRule
:=
[]
string
{
"-A"
,
string
(
kubePostroutingChain
),
"-m"
,
"comment"
,
"--comment"
,
`"kubernetes service traffic requiring SNAT"`
,
"-m"
,
"mark"
,
"--mark"
,
proxier
.
masqueradeMark
,
"-j"
,
"MASQUERADE"
,
}
if
proxier
.
iptables
.
HasRandomFully
()
{
masqRule
=
append
(
masqRule
,
"--random-fully"
)
klog
.
V
(
3
)
.
Info
(
"Using `--random-fully` in the MASQUERADE rule for iptables"
)
}
else
{
klog
.
V
(
2
)
.
Info
(
"Not using `--random-fully` in the MASQUERADE rule for iptables because the local version of iptables does not support it"
)
}
writeLine
(
proxier
.
natRules
,
masqRule
...
)
// Install the kubernetes-specific masquerade mark rule. We use a whole chain for
// this so that it is easier to flush and change, for example if the mark
// value should ever change.
writeLine
(
proxier
.
natRules
,
[]
string
{
"-A"
,
string
(
KubeMarkMasqChain
),
"-j"
,
"MARK"
,
"--set-xmark"
,
proxier
.
masqueradeMark
,
}
...
)
}
}
// getExistingChains get iptables-save output so we can check for existing chains and rules.
// getExistingChains get iptables-save output so we can check for existing chains and rules.
...
...
vendor/k8s.io/kubernetes/pkg/volume/csi/BUILD
View file @
206accbe
...
@@ -79,8 +79,10 @@ go_test(
...
@@ -79,8 +79,10 @@ go_test(
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
"//staging/src/k8s.io/client-go/listers/storage/v1:go_default_library",
"//staging/src/k8s.io/client-go/testing:go_default_library",
"//staging/src/k8s.io/client-go/testing:go_default_library",
"//staging/src/k8s.io/client-go/util/testing:go_default_library",
"//staging/src/k8s.io/client-go/util/testing:go_default_library",
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
...
...
vendor/k8s.io/kubernetes/pkg/volume/csi/csi_attacher.go
View file @
206accbe
...
@@ -197,8 +197,19 @@ func (c *csiAttacher) VolumesAreAttached(specs []*volume.Spec, nodeName types.No
...
@@ -197,8 +197,19 @@ func (c *csiAttacher) VolumesAreAttached(specs []*volume.Spec, nodeName types.No
}
}
attachID
:=
getAttachmentName
(
volumeHandle
,
driverName
,
string
(
nodeName
))
attachID
:=
getAttachmentName
(
volumeHandle
,
driverName
,
string
(
nodeName
))
var
attach
*
storage
.
VolumeAttachment
if
c
.
plugin
.
volumeAttachmentLister
!=
nil
{
attach
,
err
=
c
.
plugin
.
volumeAttachmentLister
.
Get
(
attachID
)
if
err
==
nil
{
attached
[
spec
]
=
attach
.
Status
.
Attached
continue
}
klog
.
V
(
4
)
.
Info
(
log
(
"attacher.VolumesAreAttached failed in AttachmentLister for attach.ID=%v: %v. Probing the API server."
,
attachID
,
err
))
}
// The cache lookup is not setup or the object is not found in the cache.
// Get the object from the API server.
klog
.
V
(
4
)
.
Info
(
log
(
"probing attachment status for VolumeAttachment %v"
,
attachID
))
klog
.
V
(
4
)
.
Info
(
log
(
"probing attachment status for VolumeAttachment %v"
,
attachID
))
attach
,
err
:
=
c
.
k8s
.
StorageV1
()
.
VolumeAttachments
()
.
Get
(
context
.
TODO
(),
attachID
,
meta
.
GetOptions
{})
attach
,
err
=
c
.
k8s
.
StorageV1
()
.
VolumeAttachments
()
.
Get
(
context
.
TODO
(),
attachID
,
meta
.
GetOptions
{})
if
err
!=
nil
{
if
err
!=
nil
{
attached
[
spec
]
=
false
attached
[
spec
]
=
false
klog
.
Error
(
log
(
"attacher.VolumesAreAttached failed for attach.ID=%v: %v"
,
attachID
,
err
))
klog
.
Error
(
log
(
"attacher.VolumesAreAttached failed for attach.ID=%v: %v"
,
attachID
,
err
))
...
...
vendor/k8s.io/kubernetes/pkg/volume/csi/csi_plugin.go
View file @
206accbe
...
@@ -59,9 +59,10 @@ const (
...
@@ -59,9 +59,10 @@ const (
)
)
type
csiPlugin
struct
{
type
csiPlugin
struct
{
host
volume
.
VolumeHost
host
volume
.
VolumeHost
blockEnabled
bool
blockEnabled
bool
csiDriverLister
storagelisters
.
CSIDriverLister
csiDriverLister
storagelisters
.
CSIDriverLister
volumeAttachmentLister
storagelisters
.
VolumeAttachmentLister
}
}
// ProbeVolumePlugins returns implemented plugins
// ProbeVolumePlugins returns implemented plugins
...
@@ -186,13 +187,17 @@ func (p *csiPlugin) Init(host volume.VolumeHost) error {
...
@@ -186,13 +187,17 @@ func (p *csiPlugin) Init(host volume.VolumeHost) error {
if
csiClient
==
nil
{
if
csiClient
==
nil
{
klog
.
Warning
(
log
(
"kubeclient not set, assuming standalone kubelet"
))
klog
.
Warning
(
log
(
"kubeclient not set, assuming standalone kubelet"
))
}
else
{
}
else
{
// set CSIDriverLister
// set CSIDriverLister
and volumeAttachmentLister
adcHost
,
ok
:=
host
.
(
volume
.
AttachDetachVolumeHost
)
adcHost
,
ok
:=
host
.
(
volume
.
AttachDetachVolumeHost
)
if
ok
{
if
ok
{
p
.
csiDriverLister
=
adcHost
.
CSIDriverLister
()
p
.
csiDriverLister
=
adcHost
.
CSIDriverLister
()
if
p
.
csiDriverLister
==
nil
{
if
p
.
csiDriverLister
==
nil
{
klog
.
Error
(
log
(
"CSIDriverLister not found on AttachDetachVolumeHost"
))
klog
.
Error
(
log
(
"CSIDriverLister not found on AttachDetachVolumeHost"
))
}
}
p
.
volumeAttachmentLister
=
adcHost
.
VolumeAttachmentLister
()
if
p
.
volumeAttachmentLister
==
nil
{
klog
.
Error
(
log
(
"VolumeAttachmentLister not found on AttachDetachVolumeHost"
))
}
}
}
kletHost
,
ok
:=
host
.
(
volume
.
KubeletVolumeHost
)
kletHost
,
ok
:=
host
.
(
volume
.
KubeletVolumeHost
)
if
ok
{
if
ok
{
...
@@ -200,6 +205,8 @@ func (p *csiPlugin) Init(host volume.VolumeHost) error {
...
@@ -200,6 +205,8 @@ func (p *csiPlugin) Init(host volume.VolumeHost) error {
if
p
.
csiDriverLister
==
nil
{
if
p
.
csiDriverLister
==
nil
{
klog
.
Error
(
log
(
"CSIDriverLister not found on KubeletVolumeHost"
))
klog
.
Error
(
log
(
"CSIDriverLister not found on KubeletVolumeHost"
))
}
}
// We don't run the volumeAttachmentLister in the kubelet context
p
.
volumeAttachmentLister
=
nil
}
}
}
}
...
...
vendor/k8s.io/kubernetes/pkg/volume/plugins.go
View file @
206accbe
...
@@ -351,6 +351,8 @@ type AttachDetachVolumeHost interface {
...
@@ -351,6 +351,8 @@ type AttachDetachVolumeHost interface {
// CSIDriverLister returns the informer lister for the CSIDriver API Object
// CSIDriverLister returns the informer lister for the CSIDriver API Object
CSIDriverLister
()
storagelistersv1
.
CSIDriverLister
CSIDriverLister
()
storagelistersv1
.
CSIDriverLister
// VolumeAttachmentLister returns the informer lister for the VolumeAttachment API Object
VolumeAttachmentLister
()
storagelistersv1
.
VolumeAttachmentLister
// IsAttachDetachController is an interface marker to strictly tie AttachDetachVolumeHost
// IsAttachDetachController is an interface marker to strictly tie AttachDetachVolumeHost
// to the attachDetachController
// to the attachDetachController
IsAttachDetachController
()
bool
IsAttachDetachController
()
bool
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go
View file @
206accbe
...
@@ -44,7 +44,8 @@ func (as *availabilitySet) AttachDisk(isManagedDisk bool, diskName, diskURI stri
...
@@ -44,7 +44,8 @@ func (as *availabilitySet) AttachDisk(isManagedDisk bool, diskName, diskURI stri
return
err
return
err
}
}
disks
:=
filterDetachingDisks
(
*
vm
.
StorageProfile
.
DataDisks
)
disks
:=
make
([]
compute
.
DataDisk
,
len
(
*
vm
.
StorageProfile
.
DataDisks
))
copy
(
disks
,
*
vm
.
StorageProfile
.
DataDisks
)
if
isManagedDisk
{
if
isManagedDisk
{
managedDisk
:=
&
compute
.
ManagedDiskParameters
{
ID
:
&
diskURI
}
managedDisk
:=
&
compute
.
ManagedDiskParameters
{
ID
:
&
diskURI
}
...
@@ -131,7 +132,8 @@ func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.N
...
@@ -131,7 +132,8 @@ func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.N
return
err
return
err
}
}
disks
:=
filterDetachingDisks
(
*
vm
.
StorageProfile
.
DataDisks
)
disks
:=
make
([]
compute
.
DataDisk
,
len
(
*
vm
.
StorageProfile
.
DataDisks
))
copy
(
disks
,
*
vm
.
StorageProfile
.
DataDisks
)
bFoundDisk
:=
false
bFoundDisk
:=
false
for
i
,
disk
:=
range
disks
{
for
i
,
disk
:=
range
disks
{
...
@@ -140,7 +142,7 @@ func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.N
...
@@ -140,7 +142,7 @@ func (as *availabilitySet) DetachDisk(diskName, diskURI string, nodeName types.N
(
disk
.
ManagedDisk
!=
nil
&&
diskURI
!=
""
&&
strings
.
EqualFold
(
*
disk
.
ManagedDisk
.
ID
,
diskURI
))
{
(
disk
.
ManagedDisk
!=
nil
&&
diskURI
!=
""
&&
strings
.
EqualFold
(
*
disk
.
ManagedDisk
.
ID
,
diskURI
))
{
// found the disk
// found the disk
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk: name %q uri %q"
,
diskName
,
diskURI
)
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk: name %q uri %q"
,
diskName
,
diskURI
)
disks
=
append
(
disks
[
:
i
],
disks
[
i
+
1
:
]
...
)
disks
[
i
]
.
ToBeDetached
=
to
.
BoolPtr
(
true
)
bFoundDisk
=
true
bFoundDisk
=
true
break
break
}
}
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go
View file @
206accbe
...
@@ -46,7 +46,8 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod
...
@@ -46,7 +46,8 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod
disks
:=
[]
compute
.
DataDisk
{}
disks
:=
[]
compute
.
DataDisk
{}
if
vm
.
StorageProfile
!=
nil
&&
vm
.
StorageProfile
.
DataDisks
!=
nil
{
if
vm
.
StorageProfile
!=
nil
&&
vm
.
StorageProfile
.
DataDisks
!=
nil
{
disks
=
filterDetachingDisks
(
*
vm
.
StorageProfile
.
DataDisks
)
disks
=
make
([]
compute
.
DataDisk
,
len
(
*
vm
.
StorageProfile
.
DataDisks
))
copy
(
disks
,
*
vm
.
StorageProfile
.
DataDisks
)
}
}
if
isManagedDisk
{
if
isManagedDisk
{
managedDisk
:=
&
compute
.
ManagedDiskParameters
{
ID
:
&
diskURI
}
managedDisk
:=
&
compute
.
ManagedDiskParameters
{
ID
:
&
diskURI
}
...
@@ -136,7 +137,8 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
...
@@ -136,7 +137,8 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
disks
:=
[]
compute
.
DataDisk
{}
disks
:=
[]
compute
.
DataDisk
{}
if
vm
.
StorageProfile
!=
nil
&&
vm
.
StorageProfile
.
DataDisks
!=
nil
{
if
vm
.
StorageProfile
!=
nil
&&
vm
.
StorageProfile
.
DataDisks
!=
nil
{
disks
=
filterDetachingDisks
(
*
vm
.
StorageProfile
.
DataDisks
)
disks
=
make
([]
compute
.
DataDisk
,
len
(
*
vm
.
StorageProfile
.
DataDisks
))
copy
(
disks
,
*
vm
.
StorageProfile
.
DataDisks
)
}
}
bFoundDisk
:=
false
bFoundDisk
:=
false
for
i
,
disk
:=
range
disks
{
for
i
,
disk
:=
range
disks
{
...
@@ -145,7 +147,7 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
...
@@ -145,7 +147,7 @@ func (ss *scaleSet) DetachDisk(diskName, diskURI string, nodeName types.NodeName
(
disk
.
ManagedDisk
!=
nil
&&
diskURI
!=
""
&&
strings
.
EqualFold
(
*
disk
.
ManagedDisk
.
ID
,
diskURI
))
{
(
disk
.
ManagedDisk
!=
nil
&&
diskURI
!=
""
&&
strings
.
EqualFold
(
*
disk
.
ManagedDisk
.
ID
,
diskURI
))
{
// found the disk
// found the disk
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk: name %q uri %q"
,
diskName
,
diskURI
)
klog
.
V
(
2
)
.
Infof
(
"azureDisk - detach disk: name %q uri %q"
,
diskName
,
diskURI
)
disks
=
append
(
disks
[
:
i
],
disks
[
i
+
1
:
]
...
)
disks
[
i
]
.
ToBeDetached
=
to
.
BoolPtr
(
true
)
bFoundDisk
=
true
bFoundDisk
=
true
break
break
}
}
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_instances.go
View file @
206accbe
...
@@ -21,7 +21,7 @@ package azure
...
@@ -21,7 +21,7 @@ package azure
import
(
import
(
"context"
"context"
"fmt"
"fmt"
"
strconv
"
"
os
"
"strings"
"strings"
v1
"k8s.io/api/core/v1"
v1
"k8s.io/api/core/v1"
...
@@ -35,6 +35,10 @@ const (
...
@@ -35,6 +35,10 @@ const (
vmPowerStatePrefix
=
"PowerState/"
vmPowerStatePrefix
=
"PowerState/"
vmPowerStateStopped
=
"stopped"
vmPowerStateStopped
=
"stopped"
vmPowerStateDeallocated
=
"deallocated"
vmPowerStateDeallocated
=
"deallocated"
// nodeNameEnvironmentName is the environment variable name for getting node name.
// It is only used for out-of-tree cloud provider.
nodeNameEnvironmentName
=
"NODE_NAME"
)
)
var
(
var
(
...
@@ -231,17 +235,20 @@ func (az *Cloud) InstanceShutdownByProviderID(ctx context.Context, providerID st
...
@@ -231,17 +235,20 @@ func (az *Cloud) InstanceShutdownByProviderID(ctx context.Context, providerID st
}
}
func
(
az
*
Cloud
)
isCurrentInstance
(
name
types
.
NodeName
,
metadataVMName
string
)
(
bool
,
error
)
{
func
(
az
*
Cloud
)
isCurrentInstance
(
name
types
.
NodeName
,
metadataVMName
string
)
(
bool
,
error
)
{
var
err
error
nodeName
:=
mapNodeNameToVMName
(
name
)
nodeName
:=
mapNodeNameToVMName
(
name
)
// VMSS vmName is not same with hostname, use hostname instead.
if
az
.
VMType
==
vmTypeVMSS
{
if
az
.
VMType
==
vmTypeVMSS
{
// VMSS vmName is not same with hostname, construct the node name "{computer-name-prefix}{base-36-instance-id}".
metadataVMName
,
err
=
os
.
Hostname
()
// Refer https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-instance-ids#scale-set-vm-computer-name.
if
err
!=
nil
{
if
ssName
,
instanceID
,
err
:=
extractVmssVMName
(
metadataVMName
);
err
==
nil
{
return
false
,
err
instance
,
err
:=
strconv
.
ParseInt
(
instanceID
,
10
,
64
)
}
if
err
!=
nil
{
return
false
,
fmt
.
Errorf
(
"failed to parse VMSS instanceID %q: %v"
,
instanceID
,
err
)
// Use name from env variable "NODE_NAME" if it is set.
}
nodeNameEnv
:=
os
.
Getenv
(
nodeNameEnvironmentName
)
metadataVMName
=
fmt
.
Sprintf
(
"%s%06s"
,
ssName
,
strconv
.
FormatInt
(
instance
,
36
))
if
nodeNameEnv
!=
""
{
metadataVMName
=
nodeNameEnv
}
}
}
}
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go
View file @
206accbe
...
@@ -102,6 +102,8 @@ const (
...
@@ -102,6 +102,8 @@ const (
serviceTagKey
=
"service"
serviceTagKey
=
"service"
// clusterNameKey is the cluster name key applied for public IP tags.
// clusterNameKey is the cluster name key applied for public IP tags.
clusterNameKey
=
"kubernetes-cluster-name"
clusterNameKey
=
"kubernetes-cluster-name"
defaultLoadBalancerSourceRanges
=
"0.0.0.0/0"
)
)
// GetLoadBalancer returns whether the specified load balancer and its components exist, and
// GetLoadBalancer returns whether the specified load balancer and its components exist, and
...
@@ -1132,6 +1134,7 @@ func (az *Cloud) reconcileSecurityGroup(clusterName string, service *v1.Service,
...
@@ -1132,6 +1134,7 @@ func (az *Cloud) reconcileSecurityGroup(clusterName string, service *v1.Service,
if
lbIP
!=
nil
{
if
lbIP
!=
nil
{
destinationIPAddress
=
*
lbIP
destinationIPAddress
=
*
lbIP
}
}
if
destinationIPAddress
==
""
{
if
destinationIPAddress
==
""
{
destinationIPAddress
=
"*"
destinationIPAddress
=
"*"
}
}
...
@@ -1141,6 +1144,12 @@ func (az *Cloud) reconcileSecurityGroup(clusterName string, service *v1.Service,
...
@@ -1141,6 +1144,12 @@ func (az *Cloud) reconcileSecurityGroup(clusterName string, service *v1.Service,
return
nil
,
err
return
nil
,
err
}
}
serviceTags
:=
getServiceTags
(
service
)
serviceTags
:=
getServiceTags
(
service
)
if
len
(
serviceTags
)
!=
0
{
if
_
,
ok
:=
sourceRanges
[
defaultLoadBalancerSourceRanges
];
ok
{
delete
(
sourceRanges
,
defaultLoadBalancerSourceRanges
)
}
}
var
sourceAddressPrefixes
[]
string
var
sourceAddressPrefixes
[]
string
if
(
sourceRanges
==
nil
||
servicehelpers
.
IsAllowAll
(
sourceRanges
))
&&
len
(
serviceTags
)
==
0
{
if
(
sourceRanges
==
nil
||
servicehelpers
.
IsAllowAll
(
sourceRanges
))
&&
len
(
serviceTags
)
==
0
{
if
!
requiresInternalLoadBalancer
(
service
)
{
if
!
requiresInternalLoadBalancer
(
service
)
{
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go
View file @
206accbe
...
@@ -336,6 +336,13 @@ func (c *Cloud) GetAzureDiskLabels(diskURI string) (map[string]string, error) {
...
@@ -336,6 +336,13 @@ func (c *Cloud) GetAzureDiskLabels(diskURI string) (map[string]string, error) {
return
nil
,
err
return
nil
,
err
}
}
labels
:=
map
[
string
]
string
{
v1
.
LabelZoneRegion
:
c
.
Location
,
}
// no azure credential is set, return nil
if
c
.
DisksClient
==
nil
{
return
labels
,
nil
}
// Get information of the disk.
// Get information of the disk.
ctx
,
cancel
:=
getContextWithCancel
()
ctx
,
cancel
:=
getContextWithCancel
()
defer
cancel
()
defer
cancel
()
...
@@ -348,7 +355,7 @@ func (c *Cloud) GetAzureDiskLabels(diskURI string) (map[string]string, error) {
...
@@ -348,7 +355,7 @@ func (c *Cloud) GetAzureDiskLabels(diskURI string) (map[string]string, error) {
// Check whether availability zone is specified.
// Check whether availability zone is specified.
if
disk
.
Zones
==
nil
||
len
(
*
disk
.
Zones
)
==
0
{
if
disk
.
Zones
==
nil
||
len
(
*
disk
.
Zones
)
==
0
{
klog
.
V
(
4
)
.
Infof
(
"Azure disk %q is not zoned"
,
diskName
)
klog
.
V
(
4
)
.
Infof
(
"Azure disk %q is not zoned"
,
diskName
)
return
nil
,
nil
return
labels
,
nil
}
}
zones
:=
*
disk
.
Zones
zones
:=
*
disk
.
Zones
...
@@ -359,9 +366,6 @@ func (c *Cloud) GetAzureDiskLabels(diskURI string) (map[string]string, error) {
...
@@ -359,9 +366,6 @@ func (c *Cloud) GetAzureDiskLabels(diskURI string) (map[string]string, error) {
zone
:=
c
.
makeZone
(
c
.
Location
,
zoneID
)
zone
:=
c
.
makeZone
(
c
.
Location
,
zoneID
)
klog
.
V
(
4
)
.
Infof
(
"Got zone %q for Azure disk %q"
,
zone
,
diskName
)
klog
.
V
(
4
)
.
Infof
(
"Got zone %q for Azure disk %q"
,
zone
,
diskName
)
labels
:=
map
[
string
]
string
{
labels
[
v1
.
LabelZoneFailureDomain
]
=
zone
v1
.
LabelZoneRegion
:
c
.
Location
,
v1
.
LabelZoneFailureDomain
:
zone
,
}
return
labels
,
nil
return
labels
,
nil
}
}
vendor/modules.txt
View file @
206accbe
...
@@ -1212,7 +1212,7 @@ gopkg.in/square/go-jose.v2/jwt
...
@@ -1212,7 +1212,7 @@ gopkg.in/square/go-jose.v2/jwt
gopkg.in/warnings.v0
gopkg.in/warnings.v0
# gopkg.in/yaml.v2 v2.3.0
# gopkg.in/yaml.v2 v2.3.0
gopkg.in/yaml.v2
gopkg.in/yaml.v2
# k8s.io/api v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
4
-k3s1
# k8s.io/api v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.18.
6
-k3s1
k8s.io/api/admission/v1
k8s.io/api/admission/v1
k8s.io/api/admission/v1beta1
k8s.io/api/admission/v1beta1
k8s.io/api/admissionregistration/v1
k8s.io/api/admissionregistration/v1
...
@@ -1256,7 +1256,7 @@ k8s.io/api/settings/v1alpha1
...
@@ -1256,7 +1256,7 @@ k8s.io/api/settings/v1alpha1
k8s.io/api/storage/v1
k8s.io/api/storage/v1
k8s.io/api/storage/v1alpha1
k8s.io/api/storage/v1alpha1
k8s.io/api/storage/v1beta1
k8s.io/api/storage/v1beta1
# k8s.io/apiextensions-apiserver v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
4
-k3s1
# k8s.io/apiextensions-apiserver v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.18.
6
-k3s1
k8s.io/apiextensions-apiserver/pkg/apihelpers
k8s.io/apiextensions-apiserver/pkg/apihelpers
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install
...
@@ -1296,7 +1296,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi
...
@@ -1296,7 +1296,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi
k8s.io/apiextensions-apiserver/pkg/registry/customresource
k8s.io/apiextensions-apiserver/pkg/registry/customresource
k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor
k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor
k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition
k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition
# k8s.io/apimachinery v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
4
-k3s1
# k8s.io/apimachinery v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.18.
6
-k3s1
k8s.io/apimachinery/pkg/api/equality
k8s.io/apimachinery/pkg/api/equality
k8s.io/apimachinery/pkg/api/errors
k8s.io/apimachinery/pkg/api/errors
k8s.io/apimachinery/pkg/api/meta
k8s.io/apimachinery/pkg/api/meta
...
@@ -1358,7 +1358,7 @@ k8s.io/apimachinery/pkg/watch
...
@@ -1358,7 +1358,7 @@ k8s.io/apimachinery/pkg/watch
k8s.io/apimachinery/third_party/forked/golang/json
k8s.io/apimachinery/third_party/forked/golang/json
k8s.io/apimachinery/third_party/forked/golang/netutil
k8s.io/apimachinery/third_party/forked/golang/netutil
k8s.io/apimachinery/third_party/forked/golang/reflect
k8s.io/apimachinery/third_party/forked/golang/reflect
# k8s.io/apiserver v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
4
-k3s1
# k8s.io/apiserver v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.18.
6
-k3s1
k8s.io/apiserver/pkg/admission
k8s.io/apiserver/pkg/admission
k8s.io/apiserver/pkg/admission/configuration
k8s.io/apiserver/pkg/admission/configuration
k8s.io/apiserver/pkg/admission/initializer
k8s.io/apiserver/pkg/admission/initializer
...
@@ -1488,7 +1488,7 @@ k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth
...
@@ -1488,7 +1488,7 @@ k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth
k8s.io/apiserver/plugin/pkg/authenticator/token/oidc
k8s.io/apiserver/plugin/pkg/authenticator/token/oidc
k8s.io/apiserver/plugin/pkg/authenticator/token/webhook
k8s.io/apiserver/plugin/pkg/authenticator/token/webhook
k8s.io/apiserver/plugin/pkg/authorizer/webhook
k8s.io/apiserver/plugin/pkg/authorizer/webhook
# k8s.io/cli-runtime v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
4
-k3s1
# k8s.io/cli-runtime v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.18.
6
-k3s1
k8s.io/cli-runtime/pkg/genericclioptions
k8s.io/cli-runtime/pkg/genericclioptions
k8s.io/cli-runtime/pkg/kustomize
k8s.io/cli-runtime/pkg/kustomize
k8s.io/cli-runtime/pkg/kustomize/k8sdeps
k8s.io/cli-runtime/pkg/kustomize/k8sdeps
...
@@ -1501,7 +1501,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch
...
@@ -1501,7 +1501,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch
k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator
k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator
k8s.io/cli-runtime/pkg/printers
k8s.io/cli-runtime/pkg/printers
k8s.io/cli-runtime/pkg/resource
k8s.io/cli-runtime/pkg/resource
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
4
-k3s1
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.18.
6
-k3s1
k8s.io/client-go/discovery
k8s.io/client-go/discovery
k8s.io/client-go/discovery/cached
k8s.io/client-go/discovery/cached
k8s.io/client-go/discovery/cached/disk
k8s.io/client-go/discovery/cached/disk
...
@@ -1735,7 +1735,7 @@ k8s.io/client-go/util/jsonpath
...
@@ -1735,7 +1735,7 @@ k8s.io/client-go/util/jsonpath
k8s.io/client-go/util/keyutil
k8s.io/client-go/util/keyutil
k8s.io/client-go/util/retry
k8s.io/client-go/util/retry
k8s.io/client-go/util/workqueue
k8s.io/client-go/util/workqueue
# k8s.io/cloud-provider v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
4
-k3s1
# k8s.io/cloud-provider v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.18.
6
-k3s1
k8s.io/cloud-provider
k8s.io/cloud-provider
k8s.io/cloud-provider/api
k8s.io/cloud-provider/api
k8s.io/cloud-provider/node/helpers
k8s.io/cloud-provider/node/helpers
...
@@ -1743,13 +1743,13 @@ k8s.io/cloud-provider/service/helpers
...
@@ -1743,13 +1743,13 @@ k8s.io/cloud-provider/service/helpers
k8s.io/cloud-provider/volume
k8s.io/cloud-provider/volume
k8s.io/cloud-provider/volume/errors
k8s.io/cloud-provider/volume/errors
k8s.io/cloud-provider/volume/helpers
k8s.io/cloud-provider/volume/helpers
# k8s.io/cluster-bootstrap v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
4
-k3s1
# k8s.io/cluster-bootstrap v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.18.
6
-k3s1
k8s.io/cluster-bootstrap/token/api
k8s.io/cluster-bootstrap/token/api
k8s.io/cluster-bootstrap/token/jws
k8s.io/cluster-bootstrap/token/jws
k8s.io/cluster-bootstrap/token/util
k8s.io/cluster-bootstrap/token/util
k8s.io/cluster-bootstrap/util/secrets
k8s.io/cluster-bootstrap/util/secrets
k8s.io/cluster-bootstrap/util/tokens
k8s.io/cluster-bootstrap/util/tokens
# k8s.io/code-generator v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
4
-k3s1
# k8s.io/code-generator v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.18.
6
-k3s1
k8s.io/code-generator/cmd/client-gen/args
k8s.io/code-generator/cmd/client-gen/args
k8s.io/code-generator/cmd/client-gen/generators
k8s.io/code-generator/cmd/client-gen/generators
k8s.io/code-generator/cmd/client-gen/generators/fake
k8s.io/code-generator/cmd/client-gen/generators/fake
...
@@ -1764,7 +1764,7 @@ k8s.io/code-generator/cmd/lister-gen/args
...
@@ -1764,7 +1764,7 @@ k8s.io/code-generator/cmd/lister-gen/args
k8s.io/code-generator/cmd/lister-gen/generators
k8s.io/code-generator/cmd/lister-gen/generators
k8s.io/code-generator/pkg/namer
k8s.io/code-generator/pkg/namer
k8s.io/code-generator/pkg/util
k8s.io/code-generator/pkg/util
# k8s.io/component-base v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
4
-k3s1
# k8s.io/component-base v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.18.
6
-k3s1
k8s.io/component-base/cli/flag
k8s.io/component-base/cli/flag
k8s.io/component-base/cli/globalflag
k8s.io/component-base/cli/globalflag
k8s.io/component-base/codec
k8s.io/component-base/codec
...
@@ -1782,10 +1782,10 @@ k8s.io/component-base/metrics/prometheus/workqueue
...
@@ -1782,10 +1782,10 @@ k8s.io/component-base/metrics/prometheus/workqueue
k8s.io/component-base/metrics/testutil
k8s.io/component-base/metrics/testutil
k8s.io/component-base/version
k8s.io/component-base/version
k8s.io/component-base/version/verflag
k8s.io/component-base/version/verflag
# k8s.io/cri-api v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
4
-k3s1
# k8s.io/cri-api v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.18.
6
-k3s1
k8s.io/cri-api/pkg/apis
k8s.io/cri-api/pkg/apis
k8s.io/cri-api/pkg/apis/runtime/v1alpha2
k8s.io/cri-api/pkg/apis/runtime/v1alpha2
# k8s.io/csi-translation-lib v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
4
-k3s1
# k8s.io/csi-translation-lib v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.18.
6
-k3s1
k8s.io/csi-translation-lib
k8s.io/csi-translation-lib
k8s.io/csi-translation-lib/plugins
k8s.io/csi-translation-lib/plugins
# k8s.io/gengo v0.0.0-20200114144118-36b2048a9120
# k8s.io/gengo v0.0.0-20200114144118-36b2048a9120
...
@@ -1800,7 +1800,7 @@ k8s.io/gengo/types
...
@@ -1800,7 +1800,7 @@ k8s.io/gengo/types
k8s.io/heapster/metrics/api/v1/types
k8s.io/heapster/metrics/api/v1/types
# k8s.io/klog v1.0.0
# k8s.io/klog v1.0.0
k8s.io/klog
k8s.io/klog
# k8s.io/kube-aggregator v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
4
-k3s1
# k8s.io/kube-aggregator v0.18.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.18.
6
-k3s1
k8s.io/kube-aggregator/pkg/apis/apiregistration
k8s.io/kube-aggregator/pkg/apis/apiregistration
k8s.io/kube-aggregator/pkg/apis/apiregistration/install
k8s.io/kube-aggregator/pkg/apis/apiregistration/install
k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
...
@@ -1828,7 +1828,7 @@ k8s.io/kube-aggregator/pkg/controllers/status
...
@@ -1828,7 +1828,7 @@ k8s.io/kube-aggregator/pkg/controllers/status
k8s.io/kube-aggregator/pkg/registry/apiservice
k8s.io/kube-aggregator/pkg/registry/apiservice
k8s.io/kube-aggregator/pkg/registry/apiservice/etcd
k8s.io/kube-aggregator/pkg/registry/apiservice/etcd
k8s.io/kube-aggregator/pkg/registry/apiservice/rest
k8s.io/kube-aggregator/pkg/registry/apiservice/rest
# k8s.io/kube-controller-manager v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
4
-k3s1
# k8s.io/kube-controller-manager v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.18.
6
-k3s1
k8s.io/kube-controller-manager/config/v1alpha1
k8s.io/kube-controller-manager/config/v1alpha1
# k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6
# k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6
k8s.io/kube-openapi/pkg/aggregator
k8s.io/kube-openapi/pkg/aggregator
...
@@ -1839,14 +1839,14 @@ k8s.io/kube-openapi/pkg/schemaconv
...
@@ -1839,14 +1839,14 @@ k8s.io/kube-openapi/pkg/schemaconv
k8s.io/kube-openapi/pkg/util
k8s.io/kube-openapi/pkg/util
k8s.io/kube-openapi/pkg/util/proto
k8s.io/kube-openapi/pkg/util/proto
k8s.io/kube-openapi/pkg/util/proto/validation
k8s.io/kube-openapi/pkg/util/proto/validation
# k8s.io/kube-proxy v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
4
-k3s1
# k8s.io/kube-proxy v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.18.
6
-k3s1
k8s.io/kube-proxy/config/v1alpha1
k8s.io/kube-proxy/config/v1alpha1
# k8s.io/kube-scheduler v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
4
-k3s1
# k8s.io/kube-scheduler v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.18.
6
-k3s1
k8s.io/kube-scheduler/config/v1
k8s.io/kube-scheduler/config/v1
k8s.io/kube-scheduler/config/v1alpha1
k8s.io/kube-scheduler/config/v1alpha1
k8s.io/kube-scheduler/config/v1alpha2
k8s.io/kube-scheduler/config/v1alpha2
k8s.io/kube-scheduler/extender/v1
k8s.io/kube-scheduler/extender/v1
# k8s.io/kubectl v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
4
-k3s1
# k8s.io/kubectl v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.18.
6
-k3s1
k8s.io/kubectl/pkg/apps
k8s.io/kubectl/pkg/apps
k8s.io/kubectl/pkg/cmd
k8s.io/kubectl/pkg/cmd
k8s.io/kubectl/pkg/cmd/annotate
k8s.io/kubectl/pkg/cmd/annotate
...
@@ -1921,11 +1921,11 @@ k8s.io/kubectl/pkg/util/storage
...
@@ -1921,11 +1921,11 @@ k8s.io/kubectl/pkg/util/storage
k8s.io/kubectl/pkg/util/templates
k8s.io/kubectl/pkg/util/templates
k8s.io/kubectl/pkg/util/term
k8s.io/kubectl/pkg/util/term
k8s.io/kubectl/pkg/validation
k8s.io/kubectl/pkg/validation
# k8s.io/kubelet v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
4
-k3s1
# k8s.io/kubelet v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.18.
6
-k3s1
k8s.io/kubelet/config/v1beta1
k8s.io/kubelet/config/v1beta1
k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1
k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1
k8s.io/kubelet/pkg/apis/pluginregistration/v1
k8s.io/kubelet/pkg/apis/pluginregistration/v1
# k8s.io/kubernetes v1.18.0 => github.com/rancher/kubernetes v1.18.
4
-k3s1
# k8s.io/kubernetes v1.18.0 => github.com/rancher/kubernetes v1.18.
6
-k3s1
k8s.io/kubernetes/cmd/cloud-controller-manager/app
k8s.io/kubernetes/cmd/cloud-controller-manager/app
k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config
k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config
k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config/scheme
k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config/scheme
...
@@ -2669,7 +2669,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph/internal/linear
...
@@ -2669,7 +2669,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph/internal/linear
k8s.io/kubernetes/third_party/forked/gonum/graph/simple
k8s.io/kubernetes/third_party/forked/gonum/graph/simple
k8s.io/kubernetes/third_party/forked/gonum/graph/traverse
k8s.io/kubernetes/third_party/forked/gonum/graph/traverse
k8s.io/kubernetes/third_party/forked/ipvs
k8s.io/kubernetes/third_party/forked/ipvs
# k8s.io/legacy-cloud-providers v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
4
-k3s1
# k8s.io/legacy-cloud-providers v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.18.
6
-k3s1
k8s.io/legacy-cloud-providers/aws
k8s.io/legacy-cloud-providers/aws
k8s.io/legacy-cloud-providers/azure
k8s.io/legacy-cloud-providers/azure
k8s.io/legacy-cloud-providers/azure/auth
k8s.io/legacy-cloud-providers/azure/auth
...
@@ -2700,7 +2700,7 @@ k8s.io/legacy-cloud-providers/openstack
...
@@ -2700,7 +2700,7 @@ k8s.io/legacy-cloud-providers/openstack
k8s.io/legacy-cloud-providers/vsphere
k8s.io/legacy-cloud-providers/vsphere
k8s.io/legacy-cloud-providers/vsphere/vclib
k8s.io/legacy-cloud-providers/vsphere/vclib
k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers
k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers
# k8s.io/metrics v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
4
-k3s1
# k8s.io/metrics v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.18.
6
-k3s1
k8s.io/metrics/pkg/apis/custom_metrics
k8s.io/metrics/pkg/apis/custom_metrics
k8s.io/metrics/pkg/apis/custom_metrics/v1beta1
k8s.io/metrics/pkg/apis/custom_metrics/v1beta1
k8s.io/metrics/pkg/apis/custom_metrics/v1beta2
k8s.io/metrics/pkg/apis/custom_metrics/v1beta2
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment