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
487d53a1
Commit
487d53a1
authored
Aug 13, 2020
by
Brad Davidson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update release-17 to v1.17.11-k3s1
Signed-off-by:
Brad Davidson
<
brad.davidson@rancher.com
>
parent
d411b5e2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
399 additions
and
199 deletions
+399
-199
Dockerfile.dapper
Dockerfile.dapper
+2
-4
Dockerfile.manifest
Dockerfile.manifest
+1
-1
Dockerfile.test.dapper
Dockerfile.test.dapper
+2
-2
Vagrantfile
Vagrantfile
+1
-1
go.mod
go.mod
+25
-25
go.sum
go.sum
+0
-0
Dockerfile
package/Dockerfile
+1
-1
BUILD
vendor/k8s.io/apimachinery/pkg/util/sets/BUILD
+1
-1
BUILD
vendor/k8s.io/apiserver/pkg/server/healthz/BUILD
+1
-1
healthz.go
vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go
+11
-7
base.go
vendor/k8s.io/client-go/pkg/version/base.go
+3
-3
go.sum
vendor/k8s.io/cloud-provider/go.sum
+3
-1
base.go
vendor/k8s.io/component-base/version/base.go
+3
-3
go.sum
vendor/k8s.io/csi-translation-lib/go.sum
+3
-1
provider.go
vendor/k8s.io/kubernetes/pkg/credentialprovider/provider.go
+10
-3
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/OWNERS
+1
-0
OWNERS
...or/k8s.io/kubernetes/pkg/kubelet/apis/podresources/OWNERS
+0
-4
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/OWNERS
+0
-1
helpers.go
vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go
+4
-0
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/OWNERS
+0
-4
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/images/OWNERS
+0
-1
kubelet.go
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go
+13
-9
kubelet_pods.go
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go
+23
-5
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/metrics/OWNERS
+0
-1
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/oom/OWNERS
+0
-4
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/preemption/OWNERS
+0
-1
OWNERS
vendor/k8s.io/kubernetes/pkg/kubelet/stats/OWNERS
+0
-4
BUILD
vendor/k8s.io/kubernetes/pkg/kubelet/status/BUILD
+1
-0
status_manager.go
...or/k8s.io/kubernetes/pkg/kubelet/status/status_manager.go
+34
-9
attacher.go
vendor/k8s.io/kubernetes/pkg/volume/azure_dd/attacher.go
+1
-1
azure_file.go
vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go
+1
-1
azure.go
vendor/k8s.io/legacy-cloud-providers/azure/azure.go
+3
-0
azure_vmss.go
vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss.go
+112
-15
azure_vmss_cache.go
...r/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go
+118
-64
modules.txt
vendor/modules.txt
+21
-21
No files found.
Dockerfile.dapper
View file @
487d53a1
FROM golang:1.13.1
1-alpine3.10
FROM golang:1.13.1
5-alpine3.12
RUN apk -U --no-cache add bash git gcc musl-dev docker vim less file curl wget ca-certificates jq linux-headers zlib-dev tar zip squashfs-tools npm coreutils \
python2 openssl-dev libffi-dev libseccomp libseccomp-dev make libuv-static
RUN apk -U --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/main/ add sqlite-dev sqlite-static libselinux libselinux-dev
python2 openssl-dev libffi-dev libseccomp libseccomp-dev make libuv-static sqlite-dev sqlite-static libselinux libselinux-dev zlib-dev zlib-static
RUN mkdir -p /go/src/golang.org/x && \
cd /go/src/golang.org/x && git clone https://github.com/golang/tools && cd tools && \
git checkout -b current aa82965741a9fecd12b026fbb3d3c6ed3231b8f8 && \
...
...
Dockerfile.manifest
View file @
487d53a1
FROM golang:1.13.
8-alpine3.10
FROM golang:1.13.
15-alpine3.12
COPY --from=plugins/manifest:1.2.3 /bin/* /bin/
...
...
Dockerfile.test.dapper
View file @
487d53a1
FROM golang:1.13.
8-alpine3.10
FROM golang:1.13.
15-alpine3.12
RUN apk -U --no-cache add bash git gcc musl-dev docker curl jq coreutils python2 openssl
...
...
@@ -6,7 +6,7 @@ ARG DAPPER_HOST_ARCH
ENV ARCH $DAPPER_HOST_ARCH
RUN if [ "${ARCH}" == "amd64" ] || [ "${ARCH}" == "arm64" ]; then \
VERSION=0.1
7.1
OS=linux && \
VERSION=0.1
8.4
OS=linux && \
curl -sL "https://github.com/vmware-tanzu/sonobuoy/releases/download/v${VERSION}/sonobuoy_${VERSION}_${OS}_${ARCH}.tar.gz" | \
tar -xzf - -C /usr/local/bin; \
fi
...
...
Vagrantfile
View file @
487d53a1
OS
=
(
ENV
[
'OS'
]
||
"alpine31
0
"
)
OS
=
(
ENV
[
'OS'
]
||
"alpine31
2
"
)
BOX_REPO
=
(
ENV
[
'BOX_REPO'
]
||
"generic"
)
HOME
=
File
.
dirname
(
__FILE__
)
PROJECT
=
File
.
basename
(
HOME
)
...
...
go.mod
View file @
487d53a1
...
...
@@ -33,31 +33,31 @@ replace (
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/procfs => github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a
k8s.io/api => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.17.
9
-k3s1
k8s.io/apiextensions-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.17.
9
-k3s1
k8s.io/apimachinery => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.17.
9
-k3s1
k8s.io/apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.17.
9
-k3s1
k8s.io/cli-runtime => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.17.
9
-k3s1
k8s.io/client-go => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.17.
9
-k3s1
k8s.io/cloud-provider => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.17.
9
-k3s1
k8s.io/cluster-bootstrap => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.17.
9
-k3s1
k8s.io/code-generator => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.17.
9
-k3s1
k8s.io/component-base => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.17.
9
-k3s1
k8s.io/cri-api => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.17.
9
-k3s1
k8s.io/csi-translation-lib => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.17.
9
-k3s1
k8s.io/kube-aggregator => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.17.
9
-k3s1
k8s.io/kube-controller-manager => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.17.
9
-k3s1
k8s.io/kube-proxy => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.17.
9
-k3s1
k8s.io/kube-scheduler => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.17.
9
-k3s1
k8s.io/kubectl => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.17.
9
-k3s1
k8s.io/kubelet => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.17.
9
-k3s1
k8s.io/kubernetes => github.com/rancher/kubernetes v1.17.
9
-k3s1
k8s.io/legacy-cloud-providers => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.17.
9
-k3s1
k8s.io/metrics => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.17.
9
-k3s1
k8s.io/node-api => github.com/rancher/kubernetes/staging/src/k8s.io/node-api v1.17.
9
-k3s1
k8s.io/sample-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/sample-apiserver v1.17.
9
-k3s1
k8s.io/sample-cli-plugin => github.com/rancher/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.17.
9
-k3s1
k8s.io/sample-controller => github.com/rancher/kubernetes/staging/src/k8s.io/sample-controller v1.17.
9
-k3s1
k8s.io/api => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.17.
11
-k3s1
k8s.io/apiextensions-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.17.
11
-k3s1
k8s.io/apimachinery => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.17.
11
-k3s1
k8s.io/apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.17.
11
-k3s1
k8s.io/cli-runtime => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.17.
11
-k3s1
k8s.io/client-go => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.17.
11
-k3s1
k8s.io/cloud-provider => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.17.
11
-k3s1
k8s.io/cluster-bootstrap => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.17.
11
-k3s1
k8s.io/code-generator => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.17.
11
-k3s1
k8s.io/component-base => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.17.
11
-k3s1
k8s.io/cri-api => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.17.
11
-k3s1
k8s.io/csi-translation-lib => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.17.
11
-k3s1
k8s.io/kube-aggregator => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.17.
11
-k3s1
k8s.io/kube-controller-manager => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.17.
11
-k3s1
k8s.io/kube-proxy => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.17.
11
-k3s1
k8s.io/kube-scheduler => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.17.
11
-k3s1
k8s.io/kubectl => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.17.
11
-k3s1
k8s.io/kubelet => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.17.
11
-k3s1
k8s.io/kubernetes => github.com/rancher/kubernetes v1.17.
11
-k3s1
k8s.io/legacy-cloud-providers => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.17.
11
-k3s1
k8s.io/metrics => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.17.
11
-k3s1
k8s.io/node-api => github.com/rancher/kubernetes/staging/src/k8s.io/node-api v1.17.
11
-k3s1
k8s.io/sample-apiserver => github.com/rancher/kubernetes/staging/src/k8s.io/sample-apiserver v1.17.
11
-k3s1
k8s.io/sample-cli-plugin => github.com/rancher/kubernetes/staging/src/k8s.io/sample-cli-plugin v1.17.
11
-k3s1
k8s.io/sample-controller => github.com/rancher/kubernetes/staging/src/k8s.io/sample-controller v1.17.
11
-k3s1
mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34
)
...
...
go.sum
View file @
487d53a1
This diff is collapsed.
Click to expand it.
package/Dockerfile
View file @
487d53a1
FROM
alpine:3.1
0
as base
FROM
alpine:3.1
2
as base
RUN
apk add
-U
ca-certificates
ADD
build/out/data.tar.gz /image
RUN
mkdir
-p
/image/etc/ssl/certs /image/run /image/var/run /image/tmp /image/lib/modules /image/lib/firmware
&&
\
...
...
vendor/k8s.io/apimachinery/pkg/util/sets/BUILD
View file @
487d53a1
...
...
@@ -38,7 +38,7 @@ go_genrule(
],
cmd = """
$(location //vendor/k8s.io/code-generator/cmd/set-gen) \
--input-dirs k8s.io/
kubernetes/vendor/k8s.io/
apimachinery/pkg/util/sets/types \
--input-dirs k8s.io/apimachinery/pkg/util/sets/types \
--output-base $$(dirname $$(dirname $(location :byte.go))) \
--go-header-file $(location //hack/boilerplate:boilerplate.generatego.txt) \
--output-package sets
...
...
vendor/k8s.io/apiserver/pkg/server/healthz/BUILD
View file @
487d53a1
...
...
@@ -11,6 +11,7 @@ go_test(
srcs = ["healthz_test.go"],
embed = [":go_default_library"],
deps = [
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
],
)
...
...
@@ -27,7 +28,6 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait: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/apiserver/pkg/server/healthz/healthz.go
View file @
487d53a1
...
...
@@ -20,6 +20,7 @@ import (
"bytes"
"fmt"
"net/http"
"reflect"
"strings"
"sync"
"sync/atomic"
...
...
@@ -28,7 +29,6 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apiserver/pkg/server/httplog"
"k8s.io/client-go/informers"
"k8s.io/klog"
)
...
...
@@ -81,16 +81,20 @@ func (l *log) Check(_ *http.Request) error {
return
fmt
.
Errorf
(
"logging blocked"
)
}
type
cacheSyncWaiter
interface
{
WaitForCacheSync
(
stopCh
<-
chan
struct
{})
map
[
reflect
.
Type
]
bool
}
type
informerSync
struct
{
sharedInformerFactory
informers
.
SharedInformerFactory
cacheSyncWaiter
cacheSyncWaiter
}
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
{
// NewInformerSyncHealthz returns a new HealthChecker that will pass only if all informers in the given
cacheSyncWaiter
sync.
func
NewInformerSyncHealthz
(
cacheSyncWaiter
cacheSyncWaiter
)
HealthChecker
{
return
&
informerSync
{
sharedInformerFactory
:
sharedInformerFactory
,
cacheSyncWaiter
:
cacheSyncWaiter
,
}
}
...
...
@@ -103,8 +107,8 @@ func (i *informerSync) Check(_ *http.Request) error {
// 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
:=
make
(
map
[
bool
][]
string
)
for
informerType
,
started
:=
range
i
.
cacheSyncWaiter
.
WaitForCacheSync
(
stopCh
)
{
informersByStarted
[
started
]
=
append
(
informersByStarted
[
started
],
informerType
.
String
())
}
...
...
vendor/k8s.io/client-go/pkg/version/base.go
View file @
487d53a1
...
...
@@ -3,8 +3,8 @@ package version
var
(
gitMajor
=
"1"
gitMinor
=
"17"
gitVersion
=
"v1.17.
9
-k3s1"
gitCommit
=
"5
7223f1c97677a374d5c020b24fa47fd2bcc14f
5"
gitVersion
=
"v1.17.
11
-k3s1"
gitCommit
=
"5
1cfdf7fa2caf99d6ee48a3a5257d4177b8b466
5"
gitTreeState
=
"clean"
buildDate
=
"2020-0
7-16T00:23:57
Z"
buildDate
=
"2020-0
8-13T18:43:40
Z"
)
vendor/k8s.io/cloud-provider/go.sum
View file @
487d53a1
...
...
@@ -20,7 +20,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/evanphx/json-patch v
4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk
=
github.com/evanphx/json-patch v
0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc
=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
...
...
@@ -63,6 +63,7 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
...
...
@@ -92,6 +93,7 @@ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGV
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
...
...
vendor/k8s.io/component-base/version/base.go
View file @
487d53a1
...
...
@@ -3,8 +3,8 @@ package version
var
(
gitMajor
=
"1"
gitMinor
=
"17"
gitVersion
=
"v1.17.
9
-k3s1"
gitCommit
=
"5
7223f1c97677a374d5c020b24fa47fd2bcc14f
5"
gitVersion
=
"v1.17.
11
-k3s1"
gitCommit
=
"5
1cfdf7fa2caf99d6ee48a3a5257d4177b8b466
5"
gitTreeState
=
"clean"
buildDate
=
"2020-0
7-16T00:23:57
Z"
buildDate
=
"2020-0
8-13T18:43:40
Z"
)
vendor/k8s.io/csi-translation-lib/go.sum
View file @
487d53a1
...
...
@@ -20,7 +20,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/evanphx/json-patch v
4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk
=
github.com/evanphx/json-patch v
0.0.0-20200808040245-162e5629780b/go.mod h1:NAJj0yf/KaRKURN6nyi7A9IZydMivZEm9oQLWNjfKDc
=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
...
...
@@ -56,6 +56,7 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok=
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
...
...
@@ -82,6 +83,7 @@ github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
...
...
vendor/k8s.io/kubernetes/pkg/credentialprovider/provider.go
View file @
487d53a1
...
...
@@ -58,6 +58,10 @@ type CachingDockerConfigProvider struct {
Provider
DockerConfigProvider
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
cacheDockerConfig
DockerConfig
expiration
time
.
Time
...
...
@@ -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
())
d
.
cacheDockerConfig
=
d
.
Provider
.
Provide
(
image
)
d
.
expiration
=
time
.
Now
()
.
Add
(
d
.
Lifetime
)
return
d
.
cacheDockerConfig
config
:=
d
.
Provider
.
Provide
(
image
)
if
d
.
ShouldCache
==
nil
||
d
.
ShouldCache
(
config
)
{
d
.
cacheDockerConfig
=
config
d
.
expiration
=
time
.
Now
()
.
Add
(
d
.
Lifetime
)
}
return
config
}
vendor/k8s.io/kubernetes/pkg/kubelet/OWNERS
View file @
487d53a1
...
...
@@ -7,6 +7,7 @@ approvers:
- tallclair
- vishh
- yujuhong
- dashpole
reviewers:
- sig-node-reviewers
labels:
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/apis/podresources/OWNERS
deleted
100644 → 0
View file @
d411b5e2
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/OWNERS
View file @
487d53a1
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
- sjenning
vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go
View file @
487d53a1
...
...
@@ -62,6 +62,10 @@ type RuntimeHelper interface {
// ShouldContainerBeRestarted checks whether a container needs to be restarted.
// TODO(yifan): Think about how to refactor this.
func
ShouldContainerBeRestarted
(
container
*
v1
.
Container
,
pod
*
v1
.
Pod
,
podStatus
*
PodStatus
)
bool
{
// Once a pod has been marked deleted, it should not be restarted
if
pod
.
DeletionTimestamp
!=
nil
{
return
false
}
// Get latest container status.
status
:=
podStatus
.
FindContainerStatusByName
(
container
.
Name
)
// If the container was never started before, we should start it.
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/eviction/OWNERS
View file @
487d53a1
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- derekwaynecarr
- vishh
- dchen1107
- dashpole
- sjenning
vendor/k8s.io/kubernetes/pkg/kubelet/images/OWNERS
View file @
487d53a1
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
- sjenning
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go
View file @
487d53a1
...
...
@@ -2001,18 +2001,22 @@ func (kl *Kubelet) syncLoopIteration(configCh <-chan kubetypes.PodUpdate, handle
}
// dispatchWork starts the asynchronous sync of the pod in a pod worker.
// If the pod
is terminated, dispatchWork
// If the pod
has completed termination, dispatchWork will perform no action.
func
(
kl
*
Kubelet
)
dispatchWork
(
pod
*
v1
.
Pod
,
syncType
kubetypes
.
SyncPodType
,
mirrorPod
*
v1
.
Pod
,
start
time
.
Time
)
{
if
kl
.
podIsTerminated
(
pod
)
{
if
pod
.
DeletionTimestamp
!=
nil
{
// If the pod is in a terminated state, there is no pod worker to
// handle the work item. Check if the DeletionTimestamp has been
// set, and force a status update to trigger a pod deletion request
// to the apiserver.
kl
.
statusManager
.
TerminatePod
(
pod
)
}
// check whether we are ready to delete the pod from the API server (all status up to date)
containersTerminal
,
podWorkerTerminal
:=
kl
.
podAndContainersAreTerminal
(
pod
)
if
pod
.
DeletionTimestamp
!=
nil
&&
containersTerminal
{
klog
.
V
(
4
)
.
Infof
(
"Pod %q has completed execution and should be deleted from the API server: %s"
,
format
.
Pod
(
pod
),
syncType
)
kl
.
statusManager
.
TerminatePod
(
pod
)
return
}
// optimization: avoid invoking the pod worker if no further changes are possible to the pod definition
if
podWorkerTerminal
{
klog
.
V
(
4
)
.
Infof
(
"Pod %q has completed, ignoring remaining sync work: %s"
,
format
.
Pod
(
pod
),
syncType
)
return
}
// Run the sync in an async worker.
kl
.
podWorkers
.
UpdatePod
(
&
UpdatePodOptions
{
Pod
:
pod
,
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go
View file @
487d53a1
...
...
@@ -873,8 +873,9 @@ func (kl *Kubelet) getPullSecretsForPod(pod *v1.Pod) []v1.Secret {
return
pullSecrets
}
// podIsTerminated returns true if pod is in the terminated state ("Failed" or "Succeeded").
func
(
kl
*
Kubelet
)
podIsTerminated
(
pod
*
v1
.
Pod
)
bool
{
// podStatusIsTerminal reports when the specified pod has no running containers or is no longer accepting
// spec changes.
func
(
kl
*
Kubelet
)
podAndContainersAreTerminal
(
pod
*
v1
.
Pod
)
(
containersTerminal
,
podWorkerTerminal
bool
)
{
// Check the cached pod status which was set after the last sync.
status
,
ok
:=
kl
.
statusManager
.
GetPodStatus
(
pod
.
UID
)
if
!
ok
{
...
...
@@ -883,11 +884,28 @@ func (kl *Kubelet) podIsTerminated(pod *v1.Pod) bool {
// restarted.
status
=
pod
.
Status
}
return
status
.
Phase
==
v1
.
PodFailed
||
status
.
Phase
==
v1
.
PodSucceeded
||
(
pod
.
DeletionTimestamp
!=
nil
&&
notRunning
(
status
.
ContainerStatuses
))
// A pod transitions into failed or succeeded from either container lifecycle (RestartNever container
// fails) or due to external events like deletion or eviction. A terminal pod *should* have no running
// containers, but to know that the pod has completed its lifecycle you must wait for containers to also
// be terminal.
containersTerminal
=
notRunning
(
status
.
ContainerStatuses
)
// The kubelet must accept config changes from the pod spec until it has reached a point where changes would
// have no effect on any running container.
podWorkerTerminal
=
status
.
Phase
==
v1
.
PodFailed
||
status
.
Phase
==
v1
.
PodSucceeded
||
(
pod
.
DeletionTimestamp
!=
nil
&&
containersTerminal
)
return
}
// podIsTerminated returns true if the provided pod is in a terminal phase ("Failed", "Succeeded") or
// has been deleted and has no running containers. This corresponds to when a pod must accept changes to
// its pod spec (e.g. terminating containers allow grace period to be shortened).
func
(
kl
*
Kubelet
)
podIsTerminated
(
pod
*
v1
.
Pod
)
bool
{
_
,
podWorkerTerminal
:=
kl
.
podAndContainersAreTerminal
(
pod
)
return
podWorkerTerminal
}
// IsPodTerminated returns true if the pod with the provided UID is in a terminated state ("Failed" or "Succeeded")
// or if the pod has been deleted or removed
// IsPodTerminated returns true if the pod with the provided UID is in a terminal phase ("Failed",
// "Succeeded") or has been deleted and has no running containers. This corresponds to when a pod must
// accept changes to its pod spec (e.g. terminating containers allow grace period to be shortened)
func
(
kl
*
Kubelet
)
IsPodTerminated
(
uid
types
.
UID
)
bool
{
pod
,
podFound
:=
kl
.
podManager
.
GetPodByUID
(
uid
)
if
!
podFound
{
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/metrics/OWNERS
View file @
487d53a1
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
- sjenning
vendor/k8s.io/kubernetes/pkg/kubelet/oom/OWNERS
deleted
100644 → 0
View file @
d411b5e2
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
vendor/k8s.io/kubernetes/pkg/kubelet/preemption/OWNERS
View file @
487d53a1
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
- sjenning
vendor/k8s.io/kubernetes/pkg/kubelet/stats/OWNERS
deleted
100644 → 0
View file @
d411b5e2
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- dashpole
vendor/k8s.io/kubernetes/pkg/kubelet/status/BUILD
View file @
487d53a1
...
...
@@ -54,6 +54,7 @@ go_test(
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/diff: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/testing:go_default_library",
...
...
vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager.go
View file @
487d53a1
...
...
@@ -159,13 +159,20 @@ func (m *manager) Start() {
syncTicker
:=
time
.
Tick
(
syncPeriod
)
// syncPod and syncBatch share the same go routine to avoid sync races.
go
wait
.
Forever
(
func
()
{
select
{
case
syncRequest
:=
<-
m
.
podStatusChannel
:
klog
.
V
(
5
)
.
Infof
(
"Status Manager: syncing pod: %q, with status: (%d, %v) from podStatusChannel"
,
syncRequest
.
podUID
,
syncRequest
.
status
.
version
,
syncRequest
.
status
.
status
)
m
.
syncPod
(
syncRequest
.
podUID
,
syncRequest
.
status
)
case
<-
syncTicker
:
m
.
syncBatch
()
for
{
select
{
case
syncRequest
:=
<-
m
.
podStatusChannel
:
klog
.
V
(
5
)
.
Infof
(
"Status Manager: syncing pod: %q, with status: (%d, %v) from podStatusChannel"
,
syncRequest
.
podUID
,
syncRequest
.
status
.
version
,
syncRequest
.
status
.
status
)
m
.
syncPod
(
syncRequest
.
podUID
,
syncRequest
.
status
)
case
<-
syncTicker
:
klog
.
V
(
5
)
.
Infof
(
"Status Manager: syncing batch"
)
// remove any entries in the status channel since the batch will handle them
for
i
:=
len
(
m
.
podStatusChannel
);
i
>
0
;
i
--
{
<-
m
.
podStatusChannel
}
m
.
syncBatch
()
}
}
},
0
)
}
...
...
@@ -313,21 +320,39 @@ func findContainerStatus(status *v1.PodStatus, containerID string) (containerSta
func
(
m
*
manager
)
TerminatePod
(
pod
*
v1
.
Pod
)
{
m
.
podStatusesLock
.
Lock
()
defer
m
.
podStatusesLock
.
Unlock
()
// ensure that all containers have a terminated state - because we do not know whether the container
// was successful, always report an error
oldStatus
:=
&
pod
.
Status
if
cachedStatus
,
ok
:=
m
.
podStatuses
[
pod
.
UID
];
ok
{
oldStatus
=
&
cachedStatus
.
status
}
status
:=
*
oldStatus
.
DeepCopy
()
for
i
:=
range
status
.
ContainerStatuses
{
if
status
.
ContainerStatuses
[
i
]
.
State
.
Terminated
!=
nil
||
status
.
ContainerStatuses
[
i
]
.
State
.
Waiting
!=
nil
{
continue
}
status
.
ContainerStatuses
[
i
]
.
State
=
v1
.
ContainerState
{
Terminated
:
&
v1
.
ContainerStateTerminated
{},
Terminated
:
&
v1
.
ContainerStateTerminated
{
Reason
:
"ContainerStatusUnknown"
,
Message
:
"The container could not be located when the pod was terminated"
,
ExitCode
:
137
,
},
}
}
for
i
:=
range
status
.
InitContainerStatuses
{
if
status
.
InitContainerStatuses
[
i
]
.
State
.
Terminated
!=
nil
||
status
.
InitContainerStatuses
[
i
]
.
State
.
Waiting
!=
nil
{
continue
}
status
.
InitContainerStatuses
[
i
]
.
State
=
v1
.
ContainerState
{
Terminated
:
&
v1
.
ContainerStateTerminated
{},
Terminated
:
&
v1
.
ContainerStateTerminated
{
Reason
:
"ContainerStatusUnknown"
,
Message
:
"The container could not be located when the pod was terminated"
,
ExitCode
:
137
,
},
}
}
m
.
updateStatusInternal
(
pod
,
status
,
true
)
}
...
...
vendor/k8s.io/kubernetes/pkg/volume/azure_dd/attacher.go
View file @
487d53a1
...
...
@@ -163,7 +163,7 @@ func (a *azureDiskAttacher) WaitForAttach(spec *volume.Spec, devicePath string,
newDevicePath
:=
""
err
=
wait
.
Poll
(
1
*
time
.
Second
,
timeout
,
func
()
(
bool
,
error
)
{
err
=
wait
.
Poll
Immediate
(
1
*
time
.
Second
,
timeout
,
func
()
(
bool
,
error
)
{
if
newDevicePath
,
err
=
findDiskByLun
(
int
(
lun
),
io
,
exec
);
err
!=
nil
{
return
false
,
fmt
.
Errorf
(
"azureDisk - WaitForAttach ticker failed node (%s) disk (%s) lun(%v) err(%s)"
,
nodeName
,
diskName
,
lun
,
err
)
}
...
...
vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go
View file @
487d53a1
...
...
@@ -288,7 +288,7 @@ func (b *azureFileMounter) SetUpAt(dir string, mounterArgs volume.MounterArgs) e
}
mountComplete
:=
false
err
=
wait
.
Poll
(
5
*
time
.
Second
,
10
*
time
.
Minute
,
func
()
(
bool
,
error
)
{
err
=
wait
.
Poll
Immediate
(
1
*
time
.
Second
,
2
*
time
.
Minute
,
func
()
(
bool
,
error
)
{
err
:=
b
.
mounter
.
Mount
(
source
,
dir
,
"cifs"
,
mountOptions
)
mountComplete
=
true
return
true
,
err
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure.go
View file @
487d53a1
...
...
@@ -174,6 +174,9 @@ type Config struct {
// LoadBalancerResourceGroup determines the specific resource group of the load balancer user want to use, working
// with LoadBalancerName
LoadBalancerResourceGroup
string
`json:"loadBalancerResourceGroup,omitempty" yaml:"loadBalancerResourceGroup,omitempty"`
// VmssVirtualMachinesCacheTTLInSeconds sets the cache TTL for vmssVirtualMachines
VmssVirtualMachinesCacheTTLInSeconds
int
`json:"vmssVirtualMachinesCacheTTLInSeconds,omitempty" yaml:"vmssVirtualMachinesCacheTTLInSeconds,omitempty"`
}
var
_
cloudprovider
.
Interface
=
(
*
Cloud
)(
nil
)
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss.go
View file @
487d53a1
...
...
@@ -60,6 +60,13 @@ const (
vmssVMInstanceUpdateDelay
=
3
*
time
.
Second
)
// nodeIdentity identifies a node within a subscription.
type
nodeIdentity
struct
{
resourceGroup
string
vmssName
string
nodeName
string
}
// scaleSet implements VMSet interface for Azure scale set.
type
scaleSet
struct
{
*
Cloud
...
...
@@ -69,7 +76,7 @@ type scaleSet struct {
availabilitySet
VMSet
vmssCache
*
timedCache
vmssVMCache
*
timedCache
vmssVMCache
*
sync
.
Map
// [resourcegroup/vmssname]*
timedCache
availabilitySetNodesCache
*
timedCache
}
...
...
@@ -79,6 +86,7 @@ func newScaleSet(az *Cloud) (VMSet, error) {
ss
:=
&
scaleSet
{
Cloud
:
az
,
availabilitySet
:
newAvailabilitySet
(
az
),
vmssVMCache
:
&
sync
.
Map
{},
}
ss
.
availabilitySetNodesCache
,
err
=
ss
.
newAvailabilitySetNodesCache
()
...
...
@@ -91,11 +99,6 @@ func newScaleSet(az *Cloud) (VMSet, error) {
return
nil
,
err
}
ss
.
vmssVMCache
,
err
=
ss
.
newVMSSVirtualMachinesCache
()
if
err
!=
nil
{
return
nil
,
err
}
return
ss
,
nil
}
...
...
@@ -136,12 +139,17 @@ func (ss *scaleSet) getVMSS(vmssName string, crt cacheReadType) (*compute.Virtua
return
vmss
,
nil
}
// getVmssVM gets virtualMachineScaleSetVM by nodeName from cache.
// It returns cloudprovider.InstanceNotFound if node does not belong to any scale sets.
func
(
ss
*
scaleSet
)
getVmssVM
(
nodeName
string
,
crt
cacheReadType
)
(
string
,
string
,
*
compute
.
VirtualMachineScaleSetVM
,
error
)
{
// getVmssVMByNodeIdentity find virtualMachineScaleSetVM by nodeIdentity, using node's parent VMSS cache.
// Returns cloudprovider.InstanceNotFound if the node does not belong to the scale set named in nodeIdentity.
func
(
ss
*
scaleSet
)
getVmssVMByNodeIdentity
(
node
*
nodeIdentity
,
crt
cacheReadType
)
(
string
,
string
,
*
compute
.
VirtualMachineScaleSetVM
,
error
)
{
cacheKey
,
cache
,
err
:=
ss
.
getVMSSVMCache
(
node
.
resourceGroup
,
node
.
vmssName
)
if
err
!=
nil
{
return
""
,
""
,
nil
,
err
}
getter
:=
func
(
nodeName
string
,
crt
cacheReadType
)
(
string
,
string
,
*
compute
.
VirtualMachineScaleSetVM
,
bool
,
error
)
{
var
found
bool
cached
,
err
:=
ss
.
vmssVMCache
.
Get
(
vmssVirtualMachines
Key
,
crt
)
cached
,
err
:=
cache
.
Get
(
cache
Key
,
crt
)
if
err
!=
nil
{
return
""
,
""
,
nil
,
found
,
err
}
...
...
@@ -156,19 +164,19 @@ func (ss *scaleSet) getVmssVM(nodeName string, crt cacheReadType) (string, strin
return
""
,
""
,
nil
,
found
,
nil
}
_
,
err
:=
getScaleSetVMInstanceID
(
nodeName
)
_
,
err
=
getScaleSetVMInstanceID
(
node
.
nodeName
)
if
err
!=
nil
{
return
""
,
""
,
nil
,
err
}
vmssName
,
instanceID
,
vm
,
found
,
err
:=
getter
(
nodeName
,
crt
)
vmssName
,
instanceID
,
vm
,
found
,
err
:=
getter
(
node
.
node
Name
,
crt
)
if
err
!=
nil
{
return
""
,
""
,
nil
,
err
}
if
!
found
{
klog
.
V
(
2
)
.
Infof
(
"Couldn't find VMSS VM with nodeName %s, refreshing the cache"
,
nodeName
)
vmssName
,
instanceID
,
vm
,
found
,
err
=
getter
(
nodeName
,
cacheReadTypeForceRefresh
)
klog
.
V
(
2
)
.
Infof
(
"Couldn't find VMSS VM with nodeName %s, refreshing the cache"
,
node
.
node
Name
)
vmssName
,
instanceID
,
vm
,
found
,
err
=
getter
(
node
.
node
Name
,
cacheReadTypeForceRefresh
)
if
err
!=
nil
{
return
""
,
""
,
nil
,
err
}
...
...
@@ -184,6 +192,17 @@ func (ss *scaleSet) getVmssVM(nodeName string, crt cacheReadType) (string, strin
return
vmssName
,
instanceID
,
vm
,
nil
}
// getVmssVM gets virtualMachineScaleSetVM by nodeName from cache.
// Returns cloudprovider.InstanceNotFound if nodeName does not belong to any scale set.
func
(
ss
*
scaleSet
)
getVmssVM
(
nodeName
string
,
crt
cacheReadType
)
(
string
,
string
,
*
compute
.
VirtualMachineScaleSetVM
,
error
)
{
node
,
err
:=
ss
.
getNodeIdentityByNodeName
(
nodeName
,
crt
)
if
err
!=
nil
{
return
""
,
""
,
nil
,
err
}
return
ss
.
getVmssVMByNodeIdentity
(
node
,
crt
)
}
// GetPowerStatusByNodeName returns the power state of the specified node.
func
(
ss
*
scaleSet
)
GetPowerStatusByNodeName
(
name
string
)
(
powerState
string
,
err
error
)
{
managedByAS
,
err
:=
ss
.
isNodeManagedByAvailabilitySet
(
name
,
cacheReadTypeUnsafe
)
...
...
@@ -219,8 +238,13 @@ func (ss *scaleSet) GetPowerStatusByNodeName(name string) (powerState string, er
// getCachedVirtualMachineByInstanceID gets scaleSetVMInfo from cache.
// The node must belong to one of scale sets.
func
(
ss
*
scaleSet
)
getVmssVMByInstanceID
(
resourceGroup
,
scaleSetName
,
instanceID
string
,
crt
cacheReadType
)
(
*
compute
.
VirtualMachineScaleSetVM
,
error
)
{
cacheKey
,
cache
,
err
:=
ss
.
getVMSSVMCache
(
resourceGroup
,
scaleSetName
)
if
err
!=
nil
{
return
nil
,
err
}
getter
:=
func
(
crt
cacheReadType
)
(
vm
*
compute
.
VirtualMachineScaleSetVM
,
found
bool
,
err
error
)
{
cached
,
err
:=
ss
.
vmssVMCache
.
Get
(
vmssVirtualMachines
Key
,
crt
)
cached
,
err
:=
cache
.
Get
(
cache
Key
,
crt
)
if
err
!=
nil
{
return
nil
,
false
,
err
}
...
...
@@ -256,6 +280,13 @@ func (ss *scaleSet) getVmssVMByInstanceID(resourceGroup, scaleSetName, instanceI
if
found
&&
vm
!=
nil
{
return
vm
,
nil
}
if
found
&&
vm
==
nil
{
klog
.
V
(
2
)
.
Infof
(
"Couldn't find VMSS VM with scaleSetName %q and instanceID %q, refreshing the cache if it is expired"
,
scaleSetName
,
instanceID
)
vm
,
found
,
err
=
getter
(
cacheReadTypeDefault
)
if
err
!=
nil
{
return
nil
,
err
}
}
if
!
found
||
vm
==
nil
{
return
nil
,
cloudprovider
.
InstanceNotFound
}
...
...
@@ -584,6 +615,66 @@ func (ss *scaleSet) listScaleSets(resourceGroup string) ([]string, error) {
return
ssNames
,
nil
}
// getNodeIdentityByNodeName use the VMSS cache to find a node's resourcegroup and vmss, returned in a nodeIdentity.
func
(
ss
*
scaleSet
)
getNodeIdentityByNodeName
(
nodeName
string
,
crt
cacheReadType
)
(
*
nodeIdentity
,
error
)
{
getter
:=
func
(
nodeName
string
,
crt
cacheReadType
)
(
*
nodeIdentity
,
error
)
{
node
:=
&
nodeIdentity
{
nodeName
:
nodeName
,
}
cached
,
err
:=
ss
.
vmssCache
.
Get
(
vmssKey
,
crt
)
if
err
!=
nil
{
return
nil
,
err
}
vmsses
:=
cached
.
(
*
sync
.
Map
)
vmsses
.
Range
(
func
(
key
,
value
interface
{})
bool
{
v
:=
value
.
(
*
vmssEntry
)
if
v
.
vmss
.
Name
==
nil
{
return
true
}
vmssPrefix
:=
*
v
.
vmss
.
Name
if
v
.
vmss
.
VirtualMachineProfile
!=
nil
&&
v
.
vmss
.
VirtualMachineProfile
.
OsProfile
!=
nil
&&
v
.
vmss
.
VirtualMachineProfile
.
OsProfile
.
ComputerNamePrefix
!=
nil
{
vmssPrefix
=
*
v
.
vmss
.
VirtualMachineProfile
.
OsProfile
.
ComputerNamePrefix
}
if
strings
.
EqualFold
(
vmssPrefix
,
nodeName
[
:
len
(
nodeName
)
-
6
])
{
node
.
vmssName
=
*
v
.
vmss
.
Name
node
.
resourceGroup
=
v
.
resourceGroup
return
false
}
return
true
})
return
node
,
nil
}
if
_
,
err
:=
getScaleSetVMInstanceID
(
nodeName
);
err
!=
nil
{
return
nil
,
err
}
node
,
err
:=
getter
(
nodeName
,
crt
)
if
err
!=
nil
{
return
nil
,
err
}
if
node
.
vmssName
!=
""
{
return
node
,
nil
}
klog
.
V
(
2
)
.
Infof
(
"Couldn't find VMSS for node %s, refreshing the cache"
,
nodeName
)
node
,
err
=
getter
(
nodeName
,
cacheReadTypeForceRefresh
)
if
err
!=
nil
{
return
nil
,
err
}
if
node
.
vmssName
==
""
{
return
nil
,
cloudprovider
.
InstanceNotFound
}
return
node
,
nil
}
// listScaleSetVMs lists VMs belonging to the specified scale set.
func
(
ss
*
scaleSet
)
listScaleSetVMs
(
scaleSetName
,
resourceGroup
string
)
([]
compute
.
VirtualMachineScaleSetVM
,
error
)
{
var
err
error
...
...
@@ -966,6 +1057,12 @@ func (ss *scaleSet) ensureVMSSInPool(service *v1.Service, nodes []*v1.Node, back
if
ss
.
excludeMasterNodesFromStandardLB
()
&&
isMasterNode
(
node
)
{
continue
}
if
ss
.
ShouldNodeExcludedFromLoadBalancer
(
node
)
{
klog
.
V
(
4
)
.
Infof
(
"Excluding unmanaged/external-resource-group node %q"
,
node
.
Name
)
continue
}
// in this scenario the vmSetName is an empty string and the name of vmss should be obtained from the provider IDs of nodes
resourceGroupName
,
vmssName
,
err
:=
getVmssAndResourceGroupNameByVMProviderID
(
node
.
Spec
.
ProviderID
)
if
err
!=
nil
{
...
...
vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go
View file @
487d53a1
...
...
@@ -20,6 +20,7 @@ package azure
import
(
"context"
"fmt"
"strings"
"sync"
"time"
...
...
@@ -36,12 +37,13 @@ var (
vmssCacheSeparator
=
"#"
vmssKey
=
"k8svmssKey"
vmssVirtualMachinesKey
=
"k8svmssVirtualMachinesKey"
availabilitySetNodesKey
=
"k8sAvailabilitySetNodesKey"
availabilitySetNodesCacheTTL
=
15
*
time
.
Minute
vmssTTL
=
10
*
time
.
Minute
vmssVirtualMachinesTTL
=
10
*
time
.
Minute
vmssVirtualMachinesCacheTTLDefaultInSeconds
=
600
)
type
vmssVirtualMachinesEntry
struct
{
...
...
@@ -53,8 +55,9 @@ type vmssVirtualMachinesEntry struct {
}
type
vmssEntry
struct
{
vmss
*
compute
.
VirtualMachineScaleSet
lastUpdate
time
.
Time
vmss
*
compute
.
VirtualMachineScaleSet
resourceGroup
string
lastUpdate
time
.
Time
}
func
(
ss
*
scaleSet
)
newVMSSCache
()
(
*
timedCache
,
error
)
{
...
...
@@ -80,8 +83,9 @@ func (ss *scaleSet) newVMSSCache() (*timedCache, error) {
continue
}
localCache
.
Store
(
*
scaleSet
.
Name
,
&
vmssEntry
{
vmss
:
&
scaleSet
,
lastUpdate
:
time
.
Now
()
.
UTC
(),
vmss
:
&
scaleSet
,
resourceGroup
:
resourceGroup
,
lastUpdate
:
time
.
Now
()
.
UTC
(),
})
}
}
...
...
@@ -106,15 +110,58 @@ func extractVmssVMName(name string) (string, string, error) {
return
ssName
,
instanceID
,
nil
}
func
(
ss
*
scaleSet
)
newVMSSVirtualMachinesCache
()
(
*
timedCache
,
error
)
{
// getVMSSVMCache returns an *timedCache and cache key for a VMSS (creating that cache if new).
func
(
ss
*
scaleSet
)
getVMSSVMCache
(
resourceGroup
,
vmssName
string
)
(
string
,
*
timedCache
,
error
)
{
cacheKey
:=
strings
.
ToLower
(
fmt
.
Sprintf
(
"%s/%s"
,
resourceGroup
,
vmssName
))
if
entry
,
ok
:=
ss
.
vmssVMCache
.
Load
(
cacheKey
);
ok
{
cache
:=
entry
.
(
*
timedCache
)
return
cacheKey
,
cache
,
nil
}
cache
,
err
:=
ss
.
newVMSSVirtualMachinesCache
(
resourceGroup
,
vmssName
,
cacheKey
)
if
err
!=
nil
{
return
""
,
nil
,
err
}
ss
.
vmssVMCache
.
Store
(
cacheKey
,
cache
)
return
cacheKey
,
cache
,
nil
}
// gcVMSSVMCache delete stale VMSS VMs caches from deleted VMSSes.
func
(
ss
*
scaleSet
)
gcVMSSVMCache
()
error
{
cached
,
err
:=
ss
.
vmssCache
.
Get
(
vmssKey
,
cacheReadTypeUnsafe
)
if
err
!=
nil
{
return
err
}
vmsses
:=
cached
.
(
*
sync
.
Map
)
removed
:=
map
[
string
]
bool
{}
ss
.
vmssVMCache
.
Range
(
func
(
key
,
value
interface
{})
bool
{
cacheKey
:=
key
.
(
string
)
vlistIdx
:=
cacheKey
[
strings
.
LastIndex
(
cacheKey
,
"/"
)
+
1
:
]
if
_
,
ok
:=
vmsses
.
Load
(
vlistIdx
);
!
ok
{
removed
[
cacheKey
]
=
true
}
return
true
})
for
key
:=
range
removed
{
ss
.
vmssVMCache
.
Delete
(
key
)
}
return
nil
}
// newVMSSVirtualMachinesCache instanciates a new VMs cache for VMs belonging to the provided VMSS.
func
(
ss
*
scaleSet
)
newVMSSVirtualMachinesCache
(
resourceGroupName
,
vmssName
,
cacheKey
string
)
(
*
timedCache
,
error
)
{
getter
:=
func
(
key
string
)
(
interface
{},
error
)
{
localCache
:=
&
sync
.
Map
{}
// [nodeName]*vmssVirtualMachinesEntry
oldCache
:=
make
(
map
[
string
]
vmssVirtualMachinesEntry
)
if
ss
.
vmssVMCache
!=
nil
{
if
vmssCache
,
ok
:=
ss
.
vmssVMCache
.
Load
(
cacheKey
);
ok
{
// get old cache before refreshing the cache
entry
,
exists
,
err
:=
ss
.
vmssVMCache
.
store
.
GetByKey
(
vmssVirtualMachinesKey
)
cache
:=
vmssCache
.
(
*
timedCache
)
entry
,
exists
,
err
:=
cache
.
store
.
GetByKey
(
cacheKey
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
@@ -130,70 +177,61 @@ func (ss *scaleSet) newVMSSVirtualMachinesCache() (*timedCache, error) {
}
}
allResourceGroups
,
err
:=
ss
.
GetResourceGroups
(
)
vms
,
err
:=
ss
.
listScaleSetVMs
(
vmssName
,
resourceGroupName
)
if
err
!=
nil
{
return
nil
,
err
}
for
_
,
resourceGroup
:=
range
allResourceGroups
.
List
()
{
scaleSetNames
,
err
:=
ss
.
listScaleSets
(
resourceGroup
)
if
err
!=
nil
{
return
nil
,
err
for
i
:=
range
vms
{
vm
:=
vms
[
i
]
if
vm
.
OsProfile
==
nil
||
vm
.
OsProfile
.
ComputerName
==
nil
{
klog
.
Warningf
(
"failed to get computerName for vmssVM (%q)"
,
vmssName
)
continue
}
for
_
,
ssName
:=
range
scaleSetNames
{
vms
,
err
:=
ss
.
listScaleSetVMs
(
ssName
,
resourceGroup
)
if
err
!=
nil
{
return
nil
,
err
}
for
i
:=
range
vms
{
vm
:=
vms
[
i
]
if
vm
.
OsProfile
==
nil
||
vm
.
OsProfile
.
ComputerName
==
nil
{
klog
.
Warningf
(
"failed to get computerName for vmssVM (%q)"
,
ssName
)
continue
}
computerName
:=
strings
.
ToLower
(
*
vm
.
OsProfile
.
ComputerName
)
localCache
.
Store
(
computerName
,
&
vmssVirtualMachinesEntry
{
resourceGroup
:
resourceGroup
,
vmssName
:
ssName
,
instanceID
:
to
.
String
(
vm
.
InstanceID
),
virtualMachine
:
&
vm
,
lastUpdate
:
time
.
Now
()
.
UTC
(),
})
if
_
,
exists
:=
oldCache
[
computerName
];
exists
{
delete
(
oldCache
,
computerName
)
}
}
computerName
:=
strings
.
ToLower
(
*
vm
.
OsProfile
.
ComputerName
)
vmssVMCacheEntry
:=
&
vmssVirtualMachinesEntry
{
resourceGroup
:
resourceGroupName
,
vmssName
:
vmssName
,
instanceID
:
to
.
String
(
vm
.
InstanceID
),
virtualMachine
:
&
vm
,
lastUpdate
:
time
.
Now
()
.
UTC
(),
}
// set cache entry to nil when the VM is under deleting.
if
vm
.
VirtualMachineScaleSetVMProperties
!=
nil
&&
strings
.
EqualFold
(
to
.
String
(
vm
.
VirtualMachineScaleSetVMProperties
.
ProvisioningState
),
string
(
compute
.
ProvisioningStateDeleting
))
{
klog
.
V
(
4
)
.
Infof
(
"VMSS virtualMachine %q is under deleting, setting its cache to nil"
,
computerName
)
vmssVMCacheEntry
.
virtualMachine
=
nil
}
localCache
.
Store
(
computerName
,
vmssVMCacheEntry
)
// add old missing cache data with nil entries to prevent aggressive
// ARM calls during cache invalidation
for
name
,
vmEntry
:=
range
oldCache
{
// if the nil cache entry has existed for 15 minutes in the cache
// then it should not be added back to the cache
if
vmEntry
.
virtualMachine
==
nil
||
time
.
Since
(
vmEntry
.
lastUpdate
)
>
15
*
time
.
Minute
{
klog
.
V
(
5
)
.
Infof
(
"ignoring expired entries from old cache for %s"
,
name
)
continue
}
lastUpdate
:=
time
.
Now
()
.
UTC
()
if
vmEntry
.
virtualMachine
==
nil
{
// if this is already a nil entry then keep the time the nil
// entry was first created, so we can cleanup unwanted entries
lastUpdate
=
vmEntry
.
lastUpdate
}
delete
(
oldCache
,
computerName
)
}
klog
.
V
(
5
)
.
Infof
(
"adding old entries to new cache for %s"
,
name
)
localCache
.
Store
(
name
,
&
vmssVirtualMachinesEntry
{
resourceGroup
:
vmEntry
.
resourceGroup
,
vmssName
:
vmEntry
.
vmssName
,
instanceID
:
vmEntry
.
instanceID
,
virtualMachine
:
nil
,
lastUpdate
:
lastUpdate
,
})
// add old missing cache data with nil entries to prevent aggressive
// ARM calls during cache invalidation
for
name
,
vmEntry
:=
range
oldCache
{
// if the nil cache entry has existed for 15 minutes in the cache
// then it should not be added back to the cache
if
vmEntry
.
virtualMachine
==
nil
&&
time
.
Since
(
vmEntry
.
lastUpdate
)
>
15
*
time
.
Minute
{
klog
.
V
(
5
)
.
Infof
(
"ignoring expired entries from old cache for %s"
,
name
)
continue
}
lastUpdate
:=
time
.
Now
()
.
UTC
()
if
vmEntry
.
virtualMachine
==
nil
{
// if this is already a nil entry then keep the time the nil
// entry was first created, so we can cleanup unwanted entries
lastUpdate
=
vmEntry
.
lastUpdate
}
klog
.
V
(
5
)
.
Infof
(
"adding old entries to new cache for %s"
,
name
)
localCache
.
Store
(
name
,
&
vmssVirtualMachinesEntry
{
resourceGroup
:
vmEntry
.
resourceGroup
,
vmssName
:
vmEntry
.
vmssName
,
instanceID
:
vmEntry
.
instanceID
,
virtualMachine
:
nil
,
lastUpdate
:
lastUpdate
,
})
}
return
localCache
,
nil
...
...
@@ -203,14 +241,30 @@ func (ss *scaleSet) newVMSSVirtualMachinesCache() (*timedCache, error) {
}
func
(
ss
*
scaleSet
)
deleteCacheForNode
(
nodeName
string
)
error
{
cached
,
err
:=
ss
.
vmssVMCache
.
Get
(
vmssVirtualMachinesKey
,
cacheReadTypeUnsafe
)
node
,
err
:=
ss
.
getNodeIdentityByNodeName
(
nodeName
,
cacheReadTypeUnsafe
)
if
err
!=
nil
{
klog
.
Errorf
(
"deleteCacheForNode(%s) failed with error: %v"
,
nodeName
,
err
)
return
err
}
virtualMachines
:=
cached
.
(
*
sync
.
Map
)
cacheKey
,
timedcache
,
err
:=
ss
.
getVMSSVMCache
(
node
.
resourceGroup
,
node
.
vmssName
)
if
err
!=
nil
{
klog
.
Errorf
(
"deleteCacheForNode(%s) failed with error: %v"
,
nodeName
,
err
)
return
err
}
vmcache
,
err
:=
timedcache
.
Get
(
cacheKey
,
cacheReadTypeUnsafe
)
if
err
!=
nil
{
klog
.
Errorf
(
"deleteCacheForNode(%s) failed with error: %v"
,
nodeName
,
err
)
return
err
}
virtualMachines
:=
vmcache
.
(
*
sync
.
Map
)
virtualMachines
.
Delete
(
nodeName
)
if
err
:=
ss
.
gcVMSSVMCache
();
err
!=
nil
{
klog
.
Errorf
(
"deleteCacheForNode(%s) failed to gc stale vmss caches: %v"
,
nodeName
,
err
)
}
return
nil
}
...
...
vendor/modules.txt
View file @
487d53a1
...
...
@@ -1132,7 +1132,7 @@ gopkg.in/square/go-jose.v2/jwt
gopkg.in/warnings.v0
# gopkg.in/yaml.v2 v2.2.8
gopkg.in/yaml.v2
# k8s.io/api v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.17.
9
-k3s1
# k8s.io/api v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/api v1.17.
11
-k3s1
k8s.io/api/admission/v1
k8s.io/api/admission/v1beta1
k8s.io/api/admissionregistration/v1
...
...
@@ -1176,7 +1176,7 @@ k8s.io/api/settings/v1alpha1
k8s.io/api/storage/v1
k8s.io/api/storage/v1alpha1
k8s.io/api/storage/v1beta1
# k8s.io/apiextensions-apiserver v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.17.
9
-k3s1
# k8s.io/apiextensions-apiserver v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiextensions-apiserver v1.17.
11
-k3s1
k8s.io/apiextensions-apiserver/pkg/apihelpers
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install
...
...
@@ -1224,7 +1224,7 @@ k8s.io/apiextensions-apiserver/pkg/generated/openapi
k8s.io/apiextensions-apiserver/pkg/registry/customresource
k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor
k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition
# k8s.io/apimachinery v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.17.
9
-k3s1
# k8s.io/apimachinery v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apimachinery v1.17.
11
-k3s1
k8s.io/apimachinery/pkg/api/equality
k8s.io/apimachinery/pkg/api/errors
k8s.io/apimachinery/pkg/api/meta
...
...
@@ -1286,7 +1286,7 @@ k8s.io/apimachinery/pkg/watch
k8s.io/apimachinery/third_party/forked/golang/json
k8s.io/apimachinery/third_party/forked/golang/netutil
k8s.io/apimachinery/third_party/forked/golang/reflect
# k8s.io/apiserver v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.17.
9
-k3s1
# k8s.io/apiserver v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/apiserver v1.17.
11
-k3s1
k8s.io/apiserver/pkg/admission
k8s.io/apiserver/pkg/admission/configuration
k8s.io/apiserver/pkg/admission/initializer
...
...
@@ -1403,7 +1403,7 @@ k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth
k8s.io/apiserver/plugin/pkg/authenticator/token/oidc
k8s.io/apiserver/plugin/pkg/authenticator/token/webhook
k8s.io/apiserver/plugin/pkg/authorizer/webhook
# k8s.io/cli-runtime v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.17.
9
-k3s1
# k8s.io/cli-runtime v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cli-runtime v1.17.
11
-k3s1
k8s.io/cli-runtime/pkg/genericclioptions
k8s.io/cli-runtime/pkg/kustomize
k8s.io/cli-runtime/pkg/kustomize/k8sdeps
...
...
@@ -1416,7 +1416,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch
k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator
k8s.io/cli-runtime/pkg/printers
k8s.io/cli-runtime/pkg/resource
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.17.
9
-k3s1
# k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible => github.com/rancher/kubernetes/staging/src/k8s.io/client-go v1.17.
11
-k3s1
k8s.io/client-go/discovery
k8s.io/client-go/discovery/cached
k8s.io/client-go/discovery/cached/disk
...
...
@@ -1609,20 +1609,20 @@ k8s.io/client-go/util/jsonpath
k8s.io/client-go/util/keyutil
k8s.io/client-go/util/retry
k8s.io/client-go/util/workqueue
# k8s.io/cloud-provider v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.17.
9
-k3s1
# k8s.io/cloud-provider v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cloud-provider v1.17.
11
-k3s1
k8s.io/cloud-provider
k8s.io/cloud-provider/node/helpers
k8s.io/cloud-provider/service/helpers
k8s.io/cloud-provider/volume
k8s.io/cloud-provider/volume/errors
k8s.io/cloud-provider/volume/helpers
# k8s.io/cluster-bootstrap v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.17.
9
-k3s1
# k8s.io/cluster-bootstrap v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cluster-bootstrap v1.17.
11
-k3s1
k8s.io/cluster-bootstrap/token/api
k8s.io/cluster-bootstrap/token/jws
k8s.io/cluster-bootstrap/token/util
k8s.io/cluster-bootstrap/util/secrets
k8s.io/cluster-bootstrap/util/tokens
# k8s.io/code-generator v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.17.
9
-k3s1
# k8s.io/code-generator v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/code-generator v1.17.
11
-k3s1
k8s.io/code-generator/cmd/client-gen/args
k8s.io/code-generator/cmd/client-gen/generators
k8s.io/code-generator/cmd/client-gen/generators/fake
...
...
@@ -1637,7 +1637,7 @@ k8s.io/code-generator/cmd/lister-gen/args
k8s.io/code-generator/cmd/lister-gen/generators
k8s.io/code-generator/pkg/namer
k8s.io/code-generator/pkg/util
# k8s.io/component-base v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.17.
9
-k3s1
# k8s.io/component-base v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/component-base v1.17.
11
-k3s1
k8s.io/component-base/cli/flag
k8s.io/component-base/cli/globalflag
k8s.io/component-base/codec
...
...
@@ -1654,10 +1654,10 @@ k8s.io/component-base/metrics/prometheus/version
k8s.io/component-base/metrics/prometheus/workqueue
k8s.io/component-base/version
k8s.io/component-base/version/verflag
# k8s.io/cri-api v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.17.
9
-k3s1
# k8s.io/cri-api v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/cri-api v1.17.
11
-k3s1
k8s.io/cri-api/pkg/apis
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.17.
9
-k3s1
# k8s.io/csi-translation-lib v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/csi-translation-lib v1.17.
11
-k3s1
k8s.io/csi-translation-lib
k8s.io/csi-translation-lib/plugins
# k8s.io/gengo v0.0.0-20191120174120-e74f70b9b27e
...
...
@@ -1672,7 +1672,7 @@ k8s.io/gengo/types
k8s.io/heapster/metrics/api/v1/types
# k8s.io/klog v1.0.0
k8s.io/klog
# k8s.io/kube-aggregator v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.17.
9
-k3s1
# k8s.io/kube-aggregator v0.17.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-aggregator v1.17.
11
-k3s1
k8s.io/kube-aggregator/pkg/apis/apiregistration
k8s.io/kube-aggregator/pkg/apis/apiregistration/install
k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
...
...
@@ -1700,7 +1700,7 @@ k8s.io/kube-aggregator/pkg/controllers/status
k8s.io/kube-aggregator/pkg/registry/apiservice
k8s.io/kube-aggregator/pkg/registry/apiservice/etcd
k8s.io/kube-aggregator/pkg/registry/apiservice/rest
# k8s.io/kube-controller-manager v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.17.
9
-k3s1
# k8s.io/kube-controller-manager v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-controller-manager v1.17.
11
-k3s1
k8s.io/kube-controller-manager/config/v1alpha1
# k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29
k8s.io/kube-openapi/pkg/aggregator
...
...
@@ -1711,12 +1711,12 @@ k8s.io/kube-openapi/pkg/schemaconv
k8s.io/kube-openapi/pkg/util
k8s.io/kube-openapi/pkg/util/proto
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.17.
9
-k3s1
# k8s.io/kube-proxy v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-proxy v1.17.
11
-k3s1
k8s.io/kube-proxy/config/v1alpha1
# k8s.io/kube-scheduler v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.17.
9
-k3s1
# k8s.io/kube-scheduler v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kube-scheduler v1.17.
11
-k3s1
k8s.io/kube-scheduler/config/v1
k8s.io/kube-scheduler/config/v1alpha1
# k8s.io/kubectl v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.17.
9
-k3s1
# k8s.io/kubectl v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubectl v1.17.
11
-k3s1
k8s.io/kubectl/pkg/apps
k8s.io/kubectl/pkg/cmd
k8s.io/kubectl/pkg/cmd/annotate
...
...
@@ -1792,11 +1792,11 @@ k8s.io/kubectl/pkg/util/storage
k8s.io/kubectl/pkg/util/templates
k8s.io/kubectl/pkg/util/term
k8s.io/kubectl/pkg/validation
# k8s.io/kubelet v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.17.
9
-k3s1
# k8s.io/kubelet v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/kubelet v1.17.
11
-k3s1
k8s.io/kubelet/config/v1beta1
k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1
k8s.io/kubelet/pkg/apis/pluginregistration/v1
# k8s.io/kubernetes v1.17.0 => github.com/rancher/kubernetes v1.17.
9
-k3s1
# k8s.io/kubernetes v1.17.0 => github.com/rancher/kubernetes v1.17.
11
-k3s1
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/scheme
...
...
@@ -2534,7 +2534,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph
k8s.io/kubernetes/third_party/forked/gonum/graph/internal/linear
k8s.io/kubernetes/third_party/forked/gonum/graph/simple
k8s.io/kubernetes/third_party/forked/gonum/graph/traverse
# k8s.io/legacy-cloud-providers v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.17.
9
-k3s1
# k8s.io/legacy-cloud-providers v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/legacy-cloud-providers v1.17.
11
-k3s1
k8s.io/legacy-cloud-providers/aws
k8s.io/legacy-cloud-providers/azure
k8s.io/legacy-cloud-providers/azure/auth
...
...
@@ -2543,7 +2543,7 @@ k8s.io/legacy-cloud-providers/openstack
k8s.io/legacy-cloud-providers/vsphere
k8s.io/legacy-cloud-providers/vsphere/vclib
k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers
# k8s.io/metrics v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.17.
9
-k3s1
# k8s.io/metrics v0.0.0 => github.com/rancher/kubernetes/staging/src/k8s.io/metrics v1.17.
11
-k3s1
k8s.io/metrics/pkg/apis/custom_metrics
k8s.io/metrics/pkg/apis/custom_metrics/v1beta1
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