diff --git a/trash.lock b/trash.lock index 55004594421f..e1ef09fcba4d 100755 --- a/trash.lock +++ b/trash.lock @@ -1,17 +1,36 @@ package: package=github.com/rancher/k3s import: +- package: bitbucket.org/ww/goautoneg + version: a547fc61f48d567d5b4ec6f8aee5573d8efce11d + repo: https://github.com/rancher/goautoneg.git +- package: github.com/Azure/go-ansiterm + version: d6e3b3328b783f23731bc4d058875b0371ff8109 - package: github.com/BurntSushi/toml version: a368813c5e648fee92e5f6c30e3944ff9d5e8895 +- package: github.com/JeffAshton/win_pdh + version: 76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2 +- package: github.com/MakeNowJust/heredoc + version: bb23615498cded5e105af4ce27de75b089cbe851 - package: github.com/Microsoft/go-winio version: v0.4.11 - package: github.com/Microsoft/hcsshim version: v0.8.3 +- package: github.com/Nvveen/Gotty + version: cd527374f1e5bff4938207604a14f2e38a9cf512 - package: github.com/alexflint/go-filemutex version: 72bdc8eae2aef913234599b837f5dda445ca9bd9 +- package: github.com/armon/circbuf + version: bbbad097214e2918d8543d5201d12bfd7bca254d - package: github.com/beorn7/perks version: 4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9 - package: github.com/blang/semver version: v3.1.0 +- package: github.com/chai2010/gettext-go + version: c6fed771bfd517099caf0f7a961671fa8ed08723 +- package: github.com/cloudflare/cfssl + version: 1.3.2-21-g56268a613adfed +- package: github.com/container-storage-interface/spec + version: v1.0.0 - package: github.com/containerd/cgroups version: 5e610833b72089b37d0e615de9a92dfc043757c2 - package: github.com/containerd/console @@ -38,25 +57,53 @@ import: - package: github.com/containernetworking/plugins version: 9810b7d5137b171c4e07ce59bb18be9feccec557 repo: https://github.com/ibuildthecloud/plugins.git +- package: github.com/coreos/etcd + version: v3.3.10 - package: github.com/coreos/flannel version: 823afe66b2266bf71f5bec24e6e28b26d70cfc7c repo: https://github.com/ibuildthecloud/flannel.git - package: github.com/coreos/go-iptables version: 47f22b0dd3355c0ba570ba12b0b8a36bf214c04b +- package: github.com/coreos/go-semver + version: v0.2.0-9-ge214231b295a8e - package: github.com/coreos/go-systemd version: 48702e0da86bd25e76cfef347e2adeb434a0d0a6 +- package: github.com/coreos/pkg + version: v4 +- package: github.com/cyphar/filepath-securejoin + version: v0.2.1-1-gae69057f2299fb - package: github.com/davecgh/go-spew version: v1.1.0 +- package: github.com/daviddengcn/go-colortext + version: 511bcaf42ccd42c38aba7427b6673277bf19e2a1 - package: github.com/docker/distribution version: 0d3efadf0154c2b8a4e7b6621fff9809655cc580 +- package: github.com/docker/docker + version: docs-v1.12.0-rc4-2016-07-15-9510-ga9fbbdc8dd8794 +- package: github.com/docker/go-connections + version: v0.3.0 - package: github.com/docker/go-events version: 9461782956ad83b30282bf90e31fa6a70c255ba9 - package: github.com/docker/go-metrics version: 4ea375f7759c82740c893fc030bc37088d2ec098 +- package: github.com/docker/go-units + version: v0.3.1-11-g9e638d38cf6977 +- package: github.com/docker/libnetwork + version: v0.8.0-dev.2-1265-ga9cd636e378982 - package: github.com/docker/spdystream version: 449fdfce4d962303d702fec724ef0ad181c92528 - package: github.com/emicklei/go-restful version: v2.2.1 +- package: github.com/euank/go-kmsg-parser + version: v2.0.0 +- package: github.com/evanphx/json-patch + version: v4.1.0-19-g5858425f75500d +- package: github.com/exponent-io/jsonpath + version: d6023ce2651d8eafb5c75bb0c7167536102ec9f5 +- package: github.com/fatih/camelcase + version: f6a740d52f961c60348ebb109adde9f4635d7540 +- package: github.com/fsnotify/fsnotify + version: v1.3.1-1-gf12c6236fe7b5c - package: github.com/ghodss/yaml version: v1.0.0 - package: github.com/godbus/dbus @@ -65,35 +112,76 @@ import: version: 08a7655d27152912db7aaf4f983275eaf8d128ef - package: github.com/gogo/protobuf version: v1.0.0 +- package: github.com/golang/groupcache + version: 02826c3e79038b59d737d3b1c0a1d937f71a4433 - package: github.com/golang/protobuf version: v1.1.0 +- package: github.com/google/btree + version: 7d79101e329e5a3adf994758c578dab82b90c017 +- package: github.com/google/cadvisor + version: 87e237ff35b9d752ba58860a06e0ebe57816cbb7 + repo: https://github.com/ibuildthecloud/cadvisor.git +- package: github.com/google/certificate-transparency-go + version: v1.0.21 - package: github.com/google/gofuzz version: 44d81051d367757e1c7c6a5a86423ece9afcf63c +- package: github.com/googleapis/gnostic + version: 0c5108395e2debce0d731cf0287ddf7242066aba - package: github.com/gorilla/mux version: v1.6.2 - package: github.com/gorilla/websocket version: v1.2.0 +- package: github.com/gregjones/httpcache + version: 787624de3eb7bd915c329cba748687a3b22666a6 - package: github.com/grpc-ecosystem/go-grpc-prometheus version: 6b7015e65d366bf3f19b2b2a000a831940f0f7e0 - package: github.com/hashicorp/errwrap version: 7554cd9344cec97297fa6649b055a8c98c2a1e55 - package: github.com/hashicorp/go-multierror version: ed905158d87462226a13fe39ddf685ea65f1c11f +- package: github.com/hashicorp/golang-lru + version: a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4 +- package: github.com/ibuildthecloud/kvsql + version: c649f12fe5250718e4e024b8b40e7de796ab095e +- package: github.com/imdario/mergo + version: v0.3.5 +- package: github.com/inconshreveable/mousetrap + version: v1.0 - package: github.com/j-keck/arping version: 2cf9dc699c5640a7e2c81403a44127bf28033600 +- package: github.com/jonboulle/clockwork + version: 72f9bd7c4e0c2a40055ab3d0f09654f730cce982 - package: github.com/json-iterator/go version: 1.1.5 +- package: github.com/jteeuwen/go-bindata + version: v3.0.7-72-ga0ff2567cfb709 +- package: github.com/karrick/godirwalk + version: v1.7.5 - package: github.com/kubernetes-sigs/cri-tools version: c465773e3ad8c941d1756c0a467d550b04a8f65b repo: https://github.com/ibuildthecloud/cri-tools.git +- package: github.com/mattn/go-shellwords + version: v1.0.3-20-gf8471b0a71ded0 - package: github.com/mattn/go-sqlite3 version: v1.9.0 - package: github.com/matttproud/golang_protobuf_extensions version: v1.0.0 +- package: github.com/miekg/dns + version: 5d001d020961ae1c184f9f8152fdc73810481677 +- package: github.com/mindprince/gonvml + version: fee913ce8fb235edf54739d259ca0ecc226c7b8a +- package: github.com/mistifyio/go-zfs + version: v2.1.1-5-g1b4ae6fb4e77b0 +- package: github.com/mitchellh/go-wordwrap + version: ad45545899c7b13c020ea92b2072220eefad42b8 - package: github.com/modern-go/concurrent version: 1.0.3 - package: github.com/modern-go/reflect2 version: 1.0.1 +- package: github.com/mrunalp/fileutils + version: 4ee1cc9a80582a0c75febdd5cfa779ee4361cbca +- package: github.com/mxk/go-flowrate + version: cca7078d478f8520f85629ad7c68962d31ed7682 - package: github.com/natefinch/lumberjack version: aee4629129445bbdfb69aa565537dcfa16544311 - package: github.com/opencontainers/go-digest @@ -108,21 +196,53 @@ import: version: v0.6.0 - package: github.com/opencontainers/selinux version: b6fa367ed7f534f9ba25391cc2d467085dbb445a +- package: github.com/pborman/uuid + version: ca53cad383cad2479bbba7f7a1a05797ec1386e4 +- package: github.com/peterbourgon/diskv + version: v2.0.1 - package: github.com/pkg/errors version: v0.8.0 +- package: github.com/prometheus/client_golang + version: v0.8.0-83-ge7e903064f5e9e +- package: github.com/prometheus/client_model + version: model-0.0.2-12-gfa8ad6fec33561 +- package: github.com/prometheus/common + version: 13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207 +- package: github.com/prometheus/procfs + version: 65c1f6f8f0fc1e2185eb9863a3bc751496404259 - package: github.com/rancher/norman version: f75e3607e96e1a5d3cbaf4ee7cea1459cc727f61 repo: https://github.com/ibuildthecloud/norman.git +- package: github.com/renstrom/dedent + version: v1.0.0-3-g020d11c3b9c0c7 +- package: github.com/robfig/cron + version: v1-53-gdf38d32658d878 +- package: github.com/russross/blackfriday + version: v1.4-2-g300106c228d52c - package: github.com/seccomp/libseccomp-golang version: 32f571b70023028bd57d9288c20efbcb237f3ce0 +- package: github.com/shurcooL/sanitized_anchor_name + version: 10ef21a441db47d8b13ebcc5fd2310f636973c77 +- package: github.com/sigma/go-inotify + version: c87b6cf5033d2c6486046f045eeebdc3d910fd38 - package: github.com/sirupsen/logrus version: v1.0.3 +- package: github.com/spf13/cobra + version: v0.0.1-34-gc439c4fa093711 +- package: github.com/spf13/pflag + version: v1.0.1 - package: github.com/syndtr/gocapability version: db04d3cc01c8b54962a58ec7e491717d06cfcc16 - package: github.com/tchap/go-patricia version: v2.2.6 +- package: github.com/ugorji/go + version: bdcc60b419d136a85cdf2e7cbcac34b3f1cd6e57 - package: github.com/urfave/cli version: 8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff +- package: github.com/vishvananda/netlink + version: b2de5d10e38ecce8607e6b438b6d174f389a004e +- package: github.com/vishvananda/netns + version: be1fbeda19366dea804f00efff2dd73a1642fdcc - package: github.com/xeipuuv/gojsonpointer version: 4e3ac2762d5f479393488629ee9370b50873b3a6 - package: github.com/xeipuuv/gojsonreference @@ -146,154 +266,34 @@ import: version: 19e51611da83d6be54ddafce4a4af510cb3e9ea4 - package: golang.org/x/time version: f51c12702a4d776e4c1fa9b0fabab841babae631 +- package: golang.org/x/tools + version: 2382e3994d48b1d22acc2c86bcad0a2aff028e32 - package: google.golang.org/genproto version: d80a6e20e776b0b17a324d0ba1ab50a39c8e8944 - package: google.golang.org/grpc version: v1.12.0 - package: gopkg.in/inf.v0 version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4 -- package: gopkg.in/yaml.v2 - version: v2.2.1 -- package: k8s.io/kubernetes - version: v1.13.4-k3s.1 - repo: https://github.com/rancher/k3s.git - transitive: true - staging: true -- package: github.com/mxk/go-flowrate - version: cca7078d478f8520f85629ad7c68962d31ed7682 -- package: github.com/JeffAshton/win_pdh - version: 76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2 -- package: github.com/inconshreveable/mousetrap - version: v1.0 -- package: github.com/mistifyio/go-zfs - version: v2.1.1-5-g1b4ae6fb4e77b0 -- package: github.com/Azure/go-ansiterm - version: d6e3b3328b783f23731bc4d058875b0371ff8109 -- package: github.com/docker/go-connections - version: v0.3.0 -- package: k8s.io/gengo - version: 51747d6e00da1fc578d5a333a93bb2abcbce7a95 -- package: github.com/robfig/cron - version: v1-53-gdf38d32658d878 -- package: github.com/chai2010/gettext-go - version: c6fed771bfd517099caf0f7a961671fa8ed08723 -- package: github.com/russross/blackfriday - version: v1.4-2-g300106c228d52c -- package: bitbucket.org/ww/goautoneg - version: a547fc61f48d567d5b4ec6f8aee5573d8efce11d - repo: https://github.com/rancher/goautoneg.git -- package: github.com/coreos/go-semver - version: v0.2.0-9-ge214231b295a8e -- package: github.com/mindprince/gonvml - version: fee913ce8fb235edf54739d259ca0ecc226c7b8a -- package: github.com/spf13/pflag - version: v1.0.1 -- package: github.com/euank/go-kmsg-parser - version: v2.0.0 -- package: github.com/fsnotify/fsnotify - version: v1.3.1-1-gf12c6236fe7b5c -- package: github.com/prometheus/common - version: 13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207 -- package: github.com/google/certificate-transparency-go - version: v1.0.21 -- package: golang.org/x/tools - version: 2382e3994d48b1d22acc2c86bcad0a2aff028e32 -- package: vbom.ml/util - version: db5cfe13f5cc80a4990d98e2e1b0707a4d1a5394 -- package: github.com/google/cadvisor - version: 87e237ff35b9d752ba58860a06e0ebe57816cbb7 - repo: https://github.com/ibuildthecloud/cadvisor.git -- package: github.com/hashicorp/golang-lru - version: a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4 -- package: github.com/cloudflare/cfssl - version: 1.3.2-21-g56268a613adfed -- package: github.com/docker/libnetwork - version: v0.8.0-dev.2-1265-ga9cd636e378982 -- package: github.com/prometheus/client_golang - version: v0.8.0-83-ge7e903064f5e9e -- package: sigs.k8s.io/yaml - version: v1.1.0 -- package: github.com/Nvveen/Gotty - version: cd527374f1e5bff4938207604a14f2e38a9cf512 -- package: github.com/mattn/go-shellwords - version: v1.0.3-20-gf8471b0a71ded0 -- package: github.com/gregjones/httpcache - version: 787624de3eb7bd915c329cba748687a3b22666a6 -- package: github.com/imdario/mergo - version: v0.3.5 -- package: github.com/karrick/godirwalk - version: v1.7.5 -- package: github.com/mitchellh/go-wordwrap - version: ad45545899c7b13c020ea92b2072220eefad42b8 -- package: github.com/google/btree - version: 7d79101e329e5a3adf994758c578dab82b90c017 -- package: github.com/armon/circbuf - version: bbbad097214e2918d8543d5201d12bfd7bca254d -- package: github.com/prometheus/procfs - version: 65c1f6f8f0fc1e2185eb9863a3bc751496404259 -- package: github.com/googleapis/gnostic - version: 0c5108395e2debce0d731cf0287ddf7242066aba -- package: github.com/peterbourgon/diskv - version: v2.0.1 -- package: github.com/vishvananda/netns - version: be1fbeda19366dea804f00efff2dd73a1642fdcc -- package: github.com/evanphx/json-patch - version: v4.1.0-19-g5858425f75500d -- package: github.com/spf13/cobra - version: v0.0.1-34-gc439c4fa093711 -- package: github.com/ugorji/go - version: bdcc60b419d136a85cdf2e7cbcac34b3f1cd6e57 -- package: github.com/miekg/dns - version: 5d001d020961ae1c184f9f8152fdc73810481677 -- package: github.com/vishvananda/netlink - version: b2de5d10e38ecce8607e6b438b6d174f389a004e -- package: github.com/container-storage-interface/spec - version: v1.0.0 -- package: github.com/jteeuwen/go-bindata - version: v3.0.7-72-ga0ff2567cfb709 -- package: github.com/shurcooL/sanitized_anchor_name - version: 10ef21a441db47d8b13ebcc5fd2310f636973c77 -- package: github.com/golang/groupcache - version: 02826c3e79038b59d737d3b1c0a1d937f71a4433 -- package: github.com/mrunalp/fileutils - version: 4ee1cc9a80582a0c75febdd5cfa779ee4361cbca -- package: github.com/prometheus/client_model - version: model-0.0.2-12-gfa8ad6fec33561 -- package: github.com/exponent-io/jsonpath - version: d6023ce2651d8eafb5c75bb0c7167536102ec9f5 -- package: github.com/MakeNowJust/heredoc - version: bb23615498cded5e105af4ce27de75b089cbe851 -- package: github.com/coreos/etcd - version: v3.3.10 -- package: github.com/fatih/camelcase - version: f6a740d52f961c60348ebb109adde9f4635d7540 -- package: github.com/docker/docker - version: docs-v1.12.0-rc4-2016-07-15-9510-ga9fbbdc8dd8794 - package: gopkg.in/natefinch/lumberjack.v2 version: v1.0-16-g20b71e5b60d756 - package: gopkg.in/square/go-jose.v2 version: v2.1.6-4-g89060dee6a84df -- package: github.com/coreos/pkg - version: v4 -- package: github.com/sigma/go-inotify - version: c87b6cf5033d2c6486046f045eeebdc3d910fd38 -- package: github.com/cyphar/filepath-securejoin - version: v0.2.1-1-gae69057f2299fb -- package: github.com/renstrom/dedent - version: v1.0.0-3-g020d11c3b9c0c7 +- package: gopkg.in/yaml.v2 + version: v2.2.1 +- package: k8s.io/gengo + version: 51747d6e00da1fc578d5a333a93bb2abcbce7a95 - package: k8s.io/heapster version: v1.2.0-beta.1 -- package: github.com/docker/go-units - version: v0.3.1-11-g9e638d38cf6977 -- package: github.com/ibuildthecloud/kvsql - version: c649f12fe5250718e4e024b8b40e7de796ab095e -- package: github.com/jonboulle/clockwork - version: 72f9bd7c4e0c2a40055ab3d0f09654f730cce982 - package: k8s.io/klog version: 8139d8cb77af419532b33dfa7dd09fbc5f1d344f -- package: github.com/daviddengcn/go-colortext - version: 511bcaf42ccd42c38aba7427b6673277bf19e2a1 +- package: k8s.io/kubernetes + version: v1.13.5-k3s.1 + repo: https://github.com/rancher/k3s.git + transitive: true + staging: true - package: k8s.io/utils version: 66066c83e385e385ccc3c964b44fd7dcd413d0ed -- package: github.com/pborman/uuid - version: ca53cad383cad2479bbba7f7a1a05797ec1386e4 +- package: sigs.k8s.io/yaml + version: v1.1.0 +- package: vbom.ml/util + version: db5cfe13f5cc80a4990d98e2e1b0707a4d1a5394 diff --git a/vendor.conf b/vendor.conf index 13f1d4045c41..26e1cf15f0b9 100644 --- a/vendor.conf +++ b/vendor.conf @@ -9,7 +9,7 @@ package=github.com/opencontainers/runc/libcontainer/nsenter package=github.com/opencontainers/runc/libcontainer/specconv package=github.com/opencontainers/runc/contrib/cmd/recvtty -k8s.io/kubernetes v1.13.4-k3s.1 https://github.com/rancher/k3s.git transitive=true,staging=true +k8s.io/kubernetes v1.13.5-k3s.1 https://github.com/rancher/k3s.git transitive=true,staging=true github.com/rancher/norman f75e3607e96e1a5d3cbaf4ee7cea1459cc727f61 https://github.com/ibuildthecloud/norman.git github.com/coreos/flannel 823afe66b2266bf71f5bec24e6e28b26d70cfc7c https://github.com/ibuildthecloud/flannel.git diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/conversion.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/conversion.go index a75c63fa9fee..050c31730fe2 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/conversion.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/conversion.go @@ -43,6 +43,8 @@ func (c *convertor) ConvertToGVK(obj runtime.Object, gvk schema.GroupVersionKind if err != nil { return nil, err } + // Explicitly set the GVK + out.GetObjectKind().SetGroupVersionKind(gvk) return out, nil } diff --git a/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go b/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go index a40fccdd3990..0f78e246ce20 100644 --- a/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go +++ b/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go @@ -44,10 +44,6 @@ import ( restclient "k8s.io/client-go/rest" ) -var ( - NotifySystemD = true -) - // Info about an API group. type APIGroupInfo struct { PrioritizedVersions []schema.GroupVersion @@ -300,10 +296,8 @@ func (s preparedGenericAPIServer) NonBlockingRun(stopCh <-chan struct{}) error { s.RunPostStartHooks(stopCh) - if NotifySystemD { - if _, err := systemd.SdNotify(true, "READY=1\n"); err != nil { - klog.Errorf("Unable to send systemd daemon successful start message: %v\n", err) - } + if _, err := systemd.SdNotify(true, "READY=1\n"); err != nil { + klog.Errorf("Unable to send systemd daemon successful start message: %v\n", err) } return nil diff --git a/vendor/k8s.io/client-go/pkg/version/base.go b/vendor/k8s.io/client-go/pkg/version/base.go index 853fe6cf4c99..714eb40d8f83 100644 --- a/vendor/k8s.io/client-go/pkg/version/base.go +++ b/vendor/k8s.io/client-go/pkg/version/base.go @@ -3,8 +3,8 @@ package version var ( gitMajor = "1" gitMinor = "13" - gitVersion = "v1.13.4-k3s.1" - gitCommit = "7f72ee72d6dce73e2d36dbd3402413d146fad01e" + gitVersion = "v1.13.5-k3s.1" + gitCommit = "256ea73aeb2627eb9b510f6c22881af8f967dd0c" gitTreeState = "clean" - buildDate = "2019-03-04T01:05+00:00Z" + buildDate = "2019-03-27T18:49+00:00Z" ) diff --git a/vendor/k8s.io/client-go/tools/cache/reflector.go b/vendor/k8s.io/client-go/tools/cache/reflector.go index 12e2a3342212..56d0f5233063 100644 --- a/vendor/k8s.io/client-go/tools/cache/reflector.go +++ b/vendor/k8s.io/client-go/tools/cache/reflector.go @@ -24,10 +24,8 @@ import ( "net" "net/url" "reflect" - "strconv" "strings" "sync" - "sync/atomic" "syscall" "time" @@ -95,17 +93,10 @@ func NewReflector(lw ListerWatcher, expectedType interface{}, store Store, resyn return NewNamedReflector(naming.GetNameFromCallsite(internalPackages...), lw, expectedType, store, resyncPeriod) } -// reflectorDisambiguator is used to disambiguate started reflectors. -// initialized to an unstable value to ensure meaning isn't attributed to the suffix. -var reflectorDisambiguator = int64(time.Now().UnixNano() % 12345) - // NewNamedReflector same as NewReflector, but with a specified name for logging func NewNamedReflector(name string, lw ListerWatcher, expectedType interface{}, store Store, resyncPeriod time.Duration) *Reflector { - reflectorSuffix := atomic.AddInt64(&reflectorDisambiguator, 1) r := &Reflector{ - name: name, - // we need this to be unique per process (some names are still the same) but obvious who it belongs to - metrics: newReflectorMetrics(makeValidPrometheusMetricLabel(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))), + name: name, listerWatcher: lw, store: store, expectedType: reflect.TypeOf(expectedType), @@ -173,13 +164,10 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { // to be served from cache and potentially be delayed relative to // etcd contents. Reflector framework will catch up via Watch() eventually. options := metav1.ListOptions{ResourceVersion: "0"} - r.metrics.numberOfLists.Inc() - start := r.clock.Now() list, err := r.listerWatcher.List(options) if err != nil { return fmt.Errorf("%s: Failed to list %v: %v", r.name, r.expectedType, err) } - r.metrics.listDuration.Observe(time.Since(start).Seconds()) listMetaInterface, err := meta.ListAccessor(list) if err != nil { return fmt.Errorf("%s: Unable to understand list result %#v: %v", r.name, list, err) @@ -189,7 +177,6 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { if err != nil { return fmt.Errorf("%s: Unable to understand list result %#v (%v)", r.name, list, err) } - r.metrics.numberOfItemsInList.Observe(float64(len(items))) if err := r.syncWith(items, resourceVersion); err != nil { return fmt.Errorf("%s: Unable to sync list result: %v", r.name, err) } @@ -239,7 +226,6 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { TimeoutSeconds: &timeoutSeconds, } - r.metrics.numberOfWatches.Inc() w, err := r.listerWatcher.Watch(options) if err != nil { switch err { @@ -291,11 +277,6 @@ func (r *Reflector) watchHandler(w watch.Interface, resourceVersion *string, err // Stopping the watcher should be idempotent and if we return from this function there's no way // we're coming back in with the same watch interface. defer w.Stop() - // update metrics - defer func() { - r.metrics.numberOfItemsInWatch.Observe(float64(eventCount)) - r.metrics.watchDuration.Observe(time.Since(start).Seconds()) - }() loop: for { @@ -351,7 +332,6 @@ loop: watchDuration := r.clock.Now().Sub(start) if watchDuration < 1*time.Second && eventCount == 0 { - r.metrics.numberOfShortWatches.Inc() return fmt.Errorf("very short watch: %s: Unexpected watch close - watch lasted less than a second and no items received", r.name) } klog.V(4).Infof("%s: Watch close - %v total %v items received", r.name, r.expectedType, eventCount) @@ -370,9 +350,4 @@ func (r *Reflector) setLastSyncResourceVersion(v string) { r.lastSyncResourceVersionMutex.Lock() defer r.lastSyncResourceVersionMutex.Unlock() r.lastSyncResourceVersion = v - - rv, err := strconv.Atoi(v) - if err == nil { - r.metrics.lastResourceVersion.Set(float64(rv)) - } } diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md index 96fa83bcec5c..0c4079c57159 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md @@ -1,30 +1,37 @@ -- [v1.13.3](#v1133) - - [Downloads for v1.13.3](#downloads-for-v1133) +- [v1.13.4](#v1134) + - [Downloads for v1.13.4](#downloads-for-v1134) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.13.2](#changelog-since-v1132) + - [Changelog since v1.13.3](#changelog-since-v1133) - [Other notable changes](#other-notable-changes) -- [v1.13.2](#v1132) - - [Downloads for v1.13.2](#downloads-for-v1132) +- [v1.13.3](#v1133) + - [Downloads for v1.13.3](#downloads-for-v1133) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) - - [Changelog since v1.13.1](#changelog-since-v1131) + - [Changelog since v1.13.2](#changelog-since-v1132) - [Other notable changes](#other-notable-changes-1) -- [v1.13.1](#v1131) - - [Downloads for v1.13.1](#downloads-for-v1131) +- [v1.13.2](#v1132) + - [Downloads for v1.13.2](#downloads-for-v1132) - [Client Binaries](#client-binaries-2) - [Server Binaries](#server-binaries-2) - [Node Binaries](#node-binaries-2) - - [Changelog since v1.13.0](#changelog-since-v1130) + - [Changelog since v1.13.1](#changelog-since-v1131) - [Other notable changes](#other-notable-changes-2) -- [v1.13.0](#v1130) - - [Downloads for v1.13.0](#downloads-for-v1130) +- [v1.13.1](#v1131) + - [Downloads for v1.13.1](#downloads-for-v1131) - [Client Binaries](#client-binaries-3) - [Server Binaries](#server-binaries-3) - [Node Binaries](#node-binaries-3) + - [Changelog since v1.13.0](#changelog-since-v1130) + - [Other notable changes](#other-notable-changes-3) +- [v1.13.0](#v1130) + - [Downloads for v1.13.0](#downloads-for-v1130) + - [Client Binaries](#client-binaries-4) + - [Server Binaries](#server-binaries-4) + - [Node Binaries](#node-binaries-4) - [Kubernetes 1.13 Release Notes](#kubernetes-113-release-notes) - [Security Content](#security-content) - [Urgent Upgrade Notes](#urgent-upgrade-notes) @@ -73,60 +80,133 @@ - [External Dependencies](#external-dependencies) - [v1.13.0-rc.2](#v1130-rc2) - [Downloads for v1.13.0-rc.2](#downloads-for-v1130-rc2) - - [Client Binaries](#client-binaries-4) - - [Server Binaries](#server-binaries-4) - - [Node Binaries](#node-binaries-4) - - [Changelog since v1.13.0-rc.1](#changelog-since-v1130-rc1) - - [Other notable changes](#other-notable-changes-3) -- [v1.13.0-rc.1](#v1130-rc1) - - [Downloads for v1.13.0-rc.1](#downloads-for-v1130-rc1) - [Client Binaries](#client-binaries-5) - [Server Binaries](#server-binaries-5) - [Node Binaries](#node-binaries-5) - - [Changelog since v1.13.0-beta.2](#changelog-since-v1130-beta2) + - [Changelog since v1.13.0-rc.1](#changelog-since-v1130-rc1) - [Other notable changes](#other-notable-changes-4) -- [v1.13.0-beta.2](#v1130-beta2) - - [Downloads for v1.13.0-beta.2](#downloads-for-v1130-beta2) +- [v1.13.0-rc.1](#v1130-rc1) + - [Downloads for v1.13.0-rc.1](#downloads-for-v1130-rc1) - [Client Binaries](#client-binaries-6) - [Server Binaries](#server-binaries-6) - [Node Binaries](#node-binaries-6) - - [Changelog since v1.13.0-beta.1](#changelog-since-v1130-beta1) + - [Changelog since v1.13.0-beta.2](#changelog-since-v1130-beta2) - [Other notable changes](#other-notable-changes-5) -- [v1.13.0-beta.1](#v1130-beta1) - - [Downloads for v1.13.0-beta.1](#downloads-for-v1130-beta1) +- [v1.13.0-beta.2](#v1130-beta2) + - [Downloads for v1.13.0-beta.2](#downloads-for-v1130-beta2) - [Client Binaries](#client-binaries-7) - [Server Binaries](#server-binaries-7) - [Node Binaries](#node-binaries-7) - - [Changelog since v1.13.0-alpha.3](#changelog-since-v1130-alpha3) - - [Action Required](#action-required) + - [Changelog since v1.13.0-beta.1](#changelog-since-v1130-beta1) - [Other notable changes](#other-notable-changes-6) -- [v1.13.0-alpha.3](#v1130-alpha3) - - [Downloads for v1.13.0-alpha.3](#downloads-for-v1130-alpha3) +- [v1.13.0-beta.1](#v1130-beta1) + - [Downloads for v1.13.0-beta.1](#downloads-for-v1130-beta1) - [Client Binaries](#client-binaries-8) - [Server Binaries](#server-binaries-8) - [Node Binaries](#node-binaries-8) - - [Changelog since v1.13.0-alpha.2](#changelog-since-v1130-alpha2) + - [Changelog since v1.13.0-alpha.3](#changelog-since-v1130-alpha3) + - [Action Required](#action-required) - [Other notable changes](#other-notable-changes-7) -- [v1.13.0-alpha.2](#v1130-alpha2) - - [Downloads for v1.13.0-alpha.2](#downloads-for-v1130-alpha2) +- [v1.13.0-alpha.3](#v1130-alpha3) + - [Downloads for v1.13.0-alpha.3](#downloads-for-v1130-alpha3) - [Client Binaries](#client-binaries-9) - [Server Binaries](#server-binaries-9) - [Node Binaries](#node-binaries-9) - - [Changelog since v1.13.0-alpha.1](#changelog-since-v1130-alpha1) + - [Changelog since v1.13.0-alpha.2](#changelog-since-v1130-alpha2) - [Other notable changes](#other-notable-changes-8) -- [v1.13.0-alpha.1](#v1130-alpha1) - - [Downloads for v1.13.0-alpha.1](#downloads-for-v1130-alpha1) +- [v1.13.0-alpha.2](#v1130-alpha2) + - [Downloads for v1.13.0-alpha.2](#downloads-for-v1130-alpha2) - [Client Binaries](#client-binaries-10) - [Server Binaries](#server-binaries-10) - [Node Binaries](#node-binaries-10) + - [Changelog since v1.13.0-alpha.1](#changelog-since-v1130-alpha1) + - [Other notable changes](#other-notable-changes-9) +- [v1.13.0-alpha.1](#v1130-alpha1) + - [Downloads for v1.13.0-alpha.1](#downloads-for-v1130-alpha1) + - [Client Binaries](#client-binaries-11) + - [Server Binaries](#server-binaries-11) + - [Node Binaries](#node-binaries-11) - [Changelog since v1.12.0](#changelog-since-v1120) - [Action Required](#action-required-1) - - [Other notable changes](#other-notable-changes-9) + - [Other notable changes](#other-notable-changes-10) +# v1.13.4 + +[Documentation](https://docs.k8s.io) + +## Downloads for v1.13.4 + + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes.tar.gz) | `591cd3f4f479744a1d47544902817350321c63f8c37ad771d559e293bcdbc421e89d62663300a6739c667d34e1e24bb080dd73562dc29713381db079ba6e9223` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-src.tar.gz) | `3f3b5318321b661b028da62798b2cb85ccc7d5bfa90605944bd8a626c86e7e77f54fdb7e340587528f41e240fcf2c35bb6808ada7a2f50a4a3b0c755bc18b28c` + +### Client Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-darwin-386.tar.gz) | `78c604ac5c54beff498fffa398abcd6c91f6d6ee6ec7249b675f10a2fa5866e336a560b85275c408daf8bf250c5d2c8632d2e0a2592d98952fae70ae3586f4aa` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-darwin-amd64.tar.gz) | `0678f0305608589b15dbc6a5dca00de99adfb296d881a33fb1745a1393b17a2e9f59becb3978e519465936796dd6692fd2fda63af84b09bca2db5628ebf74503` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-linux-386.tar.gz) | `2c311839a0b843c9203d4b7a558f2c0cff3fa97c40ebcd3838cf592b764c9387d31c315e0ff39da32d73b4117e600cedf5177348e07beaa38a3faa98abee6c60` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-linux-amd64.tar.gz) | `71f813f0d8461967e9a002a9d8842b3ac40ffcaa59979d84499aff1958b2ac78d7ac75b562cffd5a9d122f0ce758a2c53d5dd788e0412df57756323cc4366a56` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-linux-arm.tar.gz) | `20c1779c51692b1bbcddc96dcb1f41868414d9585c53f62aa07ad0ca3ca4cf7a0e2414ee2095fb3a1096bf86bbe74bc8d323c7cd39ad1698a130bb15971c1daa` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-linux-arm64.tar.gz) | `58dd72a04f31613572b58095279a91fa9c16e8a8c052b0ec3e3badea60cf8a2a33953e9d5b839d931070c040c6f8cd098abec46f192db7cb2fdea75c4b7de096` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-linux-ppc64le.tar.gz) | `1e68cd52396cc554d6446575f5de4656fbe9965a432328fdd9ee317db232f875eda3925bcc2956543085560cbfff7231abc7434f52db446a21882cd0721a6edd` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-linux-s390x.tar.gz) | `3fcba2802db6662392b4eaf2465753f88c6b5de2e4e264e2669ad196f6a984dd4ac0a41bf7f11d955e130e543e8a06bb068d654f9c3b1606db380d146a01592e` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-windows-386.tar.gz) | `47c50b8a4bf9541096efba51e8034e4a9b796ff69221e5d0f5589bf921c186053c5f1617cd75913d8bbd288d394b0a3f38c7d789b9e45f4b7fb71b98488aa467` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-client-windows-amd64.tar.gz) | `0572c7755a5190b2f687645a17d6b75e8544dc8b84c1dd09a396fc8dec0ec56be367098da903db1127eeeb8a60275338895d0e03fc15e3fecc94930a15846810` + +### Server Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-server-linux-amd64.tar.gz) | `a36eff3dd5769df6af8a39c0b50268c6b324db5b7000fe4f6c9a5c83d87b971cf187abf1a38e9970602cb0c06373cfae35b41cc13ef8063824b5a92e74cf4740` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-server-linux-arm.tar.gz) | `9564dc220de5210d8e690a5a84f46a7ca0d43fd6e1f5f68b49754ab6335e4bb9e0faf8490109ff28417233f0f668791acbe9cbc90f62eeb92310e1eda3143313` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-server-linux-arm64.tar.gz) | `e9d345633188352caadd9356f3816cd66137721a32b28986bcb516fbd7b9d23dc0dd04223bf177619baf0e0eed6716a801fe51ea24ee6dd97c14f5d0f832f3f9` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-server-linux-ppc64le.tar.gz) | `3062e04932d9386aeccf142734a0ebe2aca0614b4c57ddef735d7554e439d60927a1a64cbf53160ba0b7c8d115deec40da04efb109cfe8f7863daa6cdd547ef8` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-server-linux-s390x.tar.gz) | `337cfb3894f818ca116630678e9b596f44506ce680670b416ee0edb2adae98be34110cbddd5faed5f7b672fd7771c315b12217e9a3858fc10c995fd8385d2b2d` + +### Node Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-node-linux-amd64.tar.gz) | `1e5e40bb5650a4aef147d21c31af322d44959aa4d7869cda84ba1e2bdd5c983710c6fe50b19c998fb3376cd86eceb45b65cefdfe3d37218d342fe395c73f2f26` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-node-linux-arm.tar.gz) | `c16b0adbf3296e886a0f0ec6ec36d5a18fb8ff62718bf59ac71ceb06985e73c5f33f0e2c9132faed75e54e8c1d5aa68020136c6167a962ee82269b994bd02b86` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-node-linux-arm64.tar.gz) | `16cc2c021c0bb09d903ce027a0e8eee5884395ee4e16998969fee29ef87af4e32540e96e6dd90584a6a919b842b9f4e24582406701bc32fc7a770b586cfffd1c` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-node-linux-ppc64le.tar.gz) | `0bbe3d990fa2aeccf4445980a4046b987d4b508db7d07e09cd6d2570f67d5a0620c11d2026afc142f2fb8cad82bb73267405c611e36c970c4a5dbe412625dd6b` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-node-linux-s390x.tar.gz) | `0bd7e19efcb09eb0136292dee397cf2893068378e584d098c451e759ffc6b52c86e877f4da2ec61e78871b7ac4c8e5515ae5c963f5665c42315036211725cf27` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.13.4/kubernetes-node-windows-amd64.tar.gz) | `1909c5b0cc63851f4b9dcbec871ad8e626f974eb86e3488a95eaf1f6736cf15cfd850904f44f2d278f8d6da21ba8251ec6607d61d4786caaf74707ece0cad44a` + +## Changelog since v1.13.3 + +### Other notable changes + +* fix get azure accounts timeout issue when there is no out-bound IP ([#74191](https://github.com/kubernetes/kubernetes/pull/74191), [@andyzhangx](https://github.com/andyzhangx)) +* fix issue: fail to detach azure disk when there is server side error ([#74398](https://github.com/kubernetes/kubernetes/pull/74398), [@andyzhangx](https://github.com/andyzhangx)) +* Fix keymutex issues which may crash in some platforms. ([#74386](https://github.com/kubernetes/kubernetes/pull/74386), [@danielqsj](https://github.com/danielqsj)) +* fix parse devicePath issue on Azure Disk ([#74499](https://github.com/kubernetes/kubernetes/pull/74499), [@andyzhangx](https://github.com/andyzhangx)) +* kubeadm: fixed nil pointer dereference caused by a bug in url parsing ([#74454](https://github.com/kubernetes/kubernetes/pull/74454), [@bart0sh](https://github.com/bart0sh)) +* fix mixed protocol issue for azure load balancer ([#74200](https://github.com/kubernetes/kubernetes/pull/74200), [@andyzhangx](https://github.com/andyzhangx)) +* fix smb remount issue on Windows ([#73661](https://github.com/kubernetes/kubernetes/pull/73661), [@andyzhangx](https://github.com/andyzhangx)) +* remove stale OutOfDisk condition from kubelet side ([#72507](https://github.com/kubernetes/kubernetes/pull/72507), [@dixudx](https://github.com/dixudx)) +* Adds deleting pods created by DaemonSet assigned to not existing nodes. ([#73401](https://github.com/kubernetes/kubernetes/pull/73401), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +* scheduler: use incremental scheduling cycle in PriorityQueue to put all in-flight unschedulable pods back to active queue if we received move request ([#73309](https://github.com/kubernetes/kubernetes/pull/73309), [@cofyc](https://github.com/cofyc)) +* Add `metrics-port` to kube-proxy cmd flags. ([#72682](https://github.com/kubernetes/kubernetes/pull/72682), [@whypro](https://github.com/whypro)) +* kube-apiserver: a request body of a CREATE/UPDATE/PATCH/DELETE resource operation larger than 100 MB will return a 413 "request entity too large" error. ([#73805](https://github.com/kubernetes/kubernetes/pull/73805), [@caesarxuchao](https://github.com/caesarxuchao)) + * Custom apiservers built with the latest apiserver library will have the 100MB limit on the body of resource requests as well. The limit can be altered via ServerRunOptions.MaxRequestBodyBytes. + * The body size limit does not apply to subresources like pods/proxy that proxy request content to another server. +* The apiserver, including both the kube-apiserver and apiservers built with the generic apiserver library, will now return 413 RequestEntityTooLarge error if a json patch contains more than 10,000 operations. ([#74000](https://github.com/kubernetes/kubernetes/pull/74000), [@caesarxuchao](https://github.com/caesarxuchao)) +* Fix watch to not send the same set of events multiple times causing watcher to go back in time ([#73845](https://github.com/kubernetes/kubernetes/pull/73845), [@wojtek-t](https://github.com/wojtek-t)) +* fixes an error processing watch events when running skewed apiservers ([#73482](https://github.com/kubernetes/kubernetes/pull/73482), [@liggitt](https://github.com/liggitt)) +* MAC Address filter has been fixed in vSphere Cloud Provider, it no longer ignores `00:1c:14` and `00:05:69` prefixes ([#73721](https://github.com/kubernetes/kubernetes/pull/73721), [@frapposelli](https://github.com/frapposelli)) + + + # v1.13.3 [Documentation](https://docs.k8s.io) diff --git a/vendor/k8s.io/kubernetes/README.md b/vendor/k8s.io/kubernetes/README.md index 9d0e4a6993f2..b2ee495f438a 100644 --- a/vendor/k8s.io/kubernetes/README.md +++ b/vendor/k8s.io/kubernetes/README.md @@ -45,7 +45,7 @@ git rebase -i ${VERSION} ```bash VERSION=v1.13.4 -./deps && ./tag.sh ${VERSION}-k3s.1 +./deps.sh && ./tag.sh ${VERSION}-k3s.1 ``` * Update the README.md with anything that might have changed in the procedure diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go index a92c1492f5d6..468b2c725ade 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go @@ -47,6 +47,7 @@ import ( utilnode "k8s.io/kubernetes/pkg/util/node" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" "k8s.io/utils/exec" + rsystem "github.com/opencontainers/runc/libcontainer/system" "k8s.io/klog" ) @@ -258,6 +259,12 @@ func newProxyServer( iptInterface.AddReloadFunc(proxier.Sync) + var connTracker Conntracker + if !rsystem.RunningInUserNS(){ + // if we are in userns, sysctl does not work and connTracker should be kept nil + connTracker = &realConntracker{} + } + return &ProxyServer{ Client: client, EventClient: eventClient, @@ -269,7 +276,7 @@ func newProxyServer( Broadcaster: eventBroadcaster, Recorder: recorder, ConntrackConfiguration: config.Conntrack, - Conntracker: &realConntracker{}, + Conntracker: connTracker, ProxyMode: proxyMode, NodeRef: nodeRef, MetricsBindAddress: config.MetricsBindAddress, diff --git a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD index 0ff21c914a80..4c4646b5a2b7 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD @@ -29,9 +29,12 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/client-go/informers/core/v1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", + "//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/client-go/util/workqueue:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go index 403bd9c0eeeb..865404b1a8e5 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go @@ -32,17 +32,19 @@ import ( "k8s.io/apimachinery/pkg/util/wait" coreinformers "k8s.io/client-go/informers/core/v1" clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/scheme" + v1core "k8s.io/client-go/kubernetes/typed/core/v1" corelisters "k8s.io/client-go/listers/core/v1" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/leaderelection/resourcelock" + "k8s.io/client-go/tools/record" "k8s.io/client-go/util/workqueue" + "k8s.io/klog" "k8s.io/kubernetes/pkg/api/v1/endpoints" podutil "k8s.io/kubernetes/pkg/api/v1/pod" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/util/metrics" - - "k8s.io/klog" ) const ( @@ -71,6 +73,11 @@ const ( // NewEndpointController returns a new *EndpointController. func NewEndpointController(podInformer coreinformers.PodInformer, serviceInformer coreinformers.ServiceInformer, endpointsInformer coreinformers.EndpointsInformer, client clientset.Interface) *EndpointController { + broadcaster := record.NewBroadcaster() + broadcaster.StartLogging(klog.Infof) + broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: client.CoreV1().Events("")}) + recorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "endpoint-controller"}) + if client != nil && client.CoreV1().RESTClient().GetRateLimiter() != nil { metrics.RegisterMetricAndTrackRateLimiterUsage("endpoint_controller", client.CoreV1().RESTClient().GetRateLimiter()) } @@ -101,12 +108,16 @@ func NewEndpointController(podInformer coreinformers.PodInformer, serviceInforme e.endpointsLister = endpointsInformer.Lister() e.endpointsSynced = endpointsInformer.Informer().HasSynced + e.eventBroadcaster = broadcaster + e.eventRecorder = recorder return e } // EndpointController manages selector-based service endpoints. type EndpointController struct { - client clientset.Interface + client clientset.Interface + eventBroadcaster record.EventBroadcaster + eventRecorder record.EventRecorder // serviceLister is able to list/get services and is populated by the shared informer passed to // NewEndpointController. @@ -522,6 +533,13 @@ func (e *EndpointController) syncService(key string) error { // Given the frequency of 1, we log at a lower level. klog.V(5).Infof("Forbidden from creating endpoints: %v", err) } + + if createEndpoints { + e.eventRecorder.Eventf(newEndpoints, v1.EventTypeWarning, "FailedToCreateEndpoint", "Failed to create endpoint for service %v/%v: %v", service.Namespace, service.Name, err) + } else { + e.eventRecorder.Eventf(newEndpoints, v1.EventTypeWarning, "FailedToUpdateEndpoint", "Failed to update endpoint %v/%v: %v", service.Namespace, service.Name, err) + } + return err } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go index 71df2070972e..aa2879c961b8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go @@ -421,7 +421,7 @@ func NewKubectlCommand(in io.Reader, out, err io.Writer) *cobra.Command { addProfilingFlags(flags) - kubeConfigFlags := genericclioptions.NewConfigFlags() + kubeConfigFlags := genericclioptions.NewConfigFlags().WithDeprecatedPasswordFlag() kubeConfigFlags.AddFlags(flags) matchVersionKubeConfigFlags := cmdutil.NewMatchVersionFlags(kubeConfigFlags) matchVersionKubeConfigFlags.AddFlags(cmds.PersistentFlags()) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp/cp.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp/cp.go index a3b62fdeebdf..78e9f0506628 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp/cp.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp/cp.go @@ -302,7 +302,7 @@ func (o *CopyOptions) copyFromPod(src, dest fileSpec) error { // remove extraneous path shortcuts - these could occur if a path contained extra "../" // and attempted to navigate beyond "/" in a remote filesystem prefix = stripPathShortcuts(prefix) - return untarAll(reader, dest.File, prefix) + return o.untarAll(reader, dest.File, prefix) } // stripPathShortcuts removes any leading or trailing "../" from a given path @@ -407,7 +407,7 @@ func clean(fileName string) string { return path.Clean(string(os.PathSeparator) + fileName) } -func untarAll(reader io.Reader, destFile, prefix string) error { +func (o *CopyOptions) untarAll(reader io.Reader, destFile, prefix string) error { entrySeq := -1 // TODO: use compression here? @@ -422,6 +422,12 @@ func untarAll(reader io.Reader, destFile, prefix string) error { } entrySeq++ mode := header.FileInfo().Mode() + // all the files will start with the prefix, which is the directory where + // they were located on the pod, we need to strip down that prefix, but + // if the prefix is missing it means the tar was tempered with + if !strings.HasPrefix(header.Name, prefix) { + return fmt.Errorf("tar contents corrupted") + } outFileName := path.Join(destFile, clean(header.Name[len(prefix):])) baseName := path.Dir(outFileName) if err := os.MkdirAll(baseName, 0755); err != nil { @@ -446,8 +452,16 @@ func untarAll(reader io.Reader, destFile, prefix string) error { } if mode&os.ModeSymlink != 0 { - err := os.Symlink(header.Linkname, outFileName) - if err != nil { + linkname := header.Linkname + // error is returned if linkname can't be made relative to destFile, + // but relative can end up being ../dir that's why we also need to + // verify if relative path is the same after Clean-ing + relative, err := filepath.Rel(destFile, linkname) + if path.IsAbs(linkname) && (err != nil || relative != stripPathShortcuts(relative)) { + fmt.Fprintf(o.IOStreams.ErrOut, "warning: link %q is pointing to %q which is outside target destination, skipping\n", outFileName, header.Linkname) + continue + } + if err := os.Symlink(linkname, outFileName); err != nil { return err } } else { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/v1beta1/defaults.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/v1beta1/defaults.go index 0aebb8447b84..f623038a874a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/v1beta1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/v1beta1/defaults.go @@ -214,7 +214,7 @@ func SetDefaults_KubeletConfiguration(obj *kubeletconfigv1beta1.KubeletConfigura obj.ContainerLogMaxFiles = utilpointer.Int32Ptr(5) } if obj.ConfigMapAndSecretChangeDetectionStrategy == "" { - obj.ConfigMapAndSecretChangeDetectionStrategy = kubeletconfigv1beta1.WatchChangeDetectionStrategy + obj.ConfigMapAndSecretChangeDetectionStrategy = kubeletconfigv1beta1.TTLCacheChangeDetectionStrategy } if obj.EnforceNodeAllocatable == nil { obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cgroup_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cgroup_manager_linux.go index 1e4149be663d..3fe9d93d3b25 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cgroup_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cgroup_manager_linux.go @@ -28,6 +28,7 @@ import ( libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" libcontainerconfigs "github.com/opencontainers/runc/libcontainer/configs" + rsystem "github.com/opencontainers/runc/libcontainer/system" "k8s.io/klog" "k8s.io/apimachinery/pkg/util/sets" @@ -97,8 +98,9 @@ func (l *libcontainerAdapter) newManager(cgroups *libcontainerconfigs.Cgroup, pa switch l.cgroupManagerType { case libcontainerCgroupfs: return &cgroupfs.Manager{ - Cgroups: cgroups, - Paths: paths, + Cgroups: cgroups, + Rootless: rsystem.RunningInUserNS(), + Paths: paths, }, nil } return nil, fmt.Errorf("invalid cgroup manager configuration") @@ -368,7 +370,9 @@ func (m *cgroupManagerImpl) Create(cgroupConfig *CgroupConfig) error { // in the tasks file. We use the function to create all the required // cgroup files but not attach any "real" pid to the cgroup. if err := manager.Apply(-1); err != nil { - return err + if !rsystem.RunningInUserNS() { + return err + } } // it may confuse why we call set after we do apply, but the issue is that runc diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go index 3d0c08bf37ce..a3f4f95537e9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go @@ -32,6 +32,7 @@ import ( "github.com/opencontainers/runc/libcontainer/cgroups" "github.com/opencontainers/runc/libcontainer/cgroups/fs" "github.com/opencontainers/runc/libcontainer/configs" + rsystem "github.com/opencontainers/runc/libcontainer/system" "k8s.io/klog" "k8s.io/api/core/v1" @@ -375,7 +376,11 @@ func setupKernelTunables(option KernelTunableBehavior) error { klog.V(2).Infof("Updating kernel flag: %v, expected value: %v, actual value: %v", flag, expectedValue, val) err = sysctl.SetSysctl(flag, expectedValue) if err != nil { - errList = append(errList, err) + if rsystem.RunningInUserNS() { + klog.Warningf("Updating kernel flag failed: %v: %v", flag, err) + } else { + errList = append(errList, err) + } } } } @@ -461,13 +466,20 @@ func (cm *containerManagerImpl) setupNode(activePods ActivePodsFunc) error { }, } cont.ensureStateFunc = func(_ *fs.Manager) error { - return ensureProcessInContainerWithOOMScore(os.Getpid(), qos.KubeletOOMScoreAdj, &manager) + err := ensureProcessInContainerWithOOMScore(os.Getpid(), qos.KubeletOOMScoreAdj, &manager) + if rsystem.RunningInUserNS() { + // if we are in userns, cgroups might not be available + err = nil + } + return err } systemContainers = append(systemContainers, cont) } else { cm.periodicTasks = append(cm.periodicTasks, func() { if err := ensureProcessInContainerWithOOMScore(os.Getpid(), qos.KubeletOOMScoreAdj, nil); err != nil { - klog.Error(err) + if !rsystem.RunningInUserNS() { + klog.Error(err) + } return } cont, err := getContainer(os.Getpid()) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go index 3d3b9e006495..e42191f89937 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go @@ -310,10 +310,7 @@ func (m *ManagerImpl) isVersionCompatibleWithPlugin(versions []string) bool { return false } -// Allocate is the call that you can use to allocate a set of devices -// from the registered device plugins. -func (m *ManagerImpl) Allocate(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error { - pod := attrs.Pod +func (m *ManagerImpl) allocatePodResources(pod *v1.Pod) error { devicesToReuse := make(map[string]sets.String) for _, container := range pod.Spec.InitContainers { if err := m.allocateContainerResources(pod, &container, devicesToReuse); err != nil { @@ -327,6 +324,18 @@ func (m *ManagerImpl) Allocate(node *schedulercache.NodeInfo, attrs *lifecycle.P } m.podDevices.removeContainerAllocatedResources(string(pod.UID), container.Name, devicesToReuse) } + return nil +} + +// Allocate is the call that you can use to allocate a set of devices +// from the registered device plugins. +func (m *ManagerImpl) Allocate(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error { + pod := attrs.Pod + err := m.allocatePodResources(pod) + if err != nil { + klog.Errorf("Failed to allocate device plugin resource for pod %s: %v", string(pod.UID), err) + return err + } m.mutex.Lock() defer m.mutex.Unlock() @@ -716,6 +725,7 @@ func (m *ManagerImpl) allocateContainerResources(pod *v1.Pod, container *v1.Cont func (m *ManagerImpl) GetDeviceRunContainerOptions(pod *v1.Pod, container *v1.Container) (*DeviceRunContainerOptions, error) { podUID := string(pod.UID) contName := container.Name + needsReAllocate := false for k := range container.Resources.Limits { resource := string(k) if !m.isDevicePluginResource(resource) { @@ -725,6 +735,16 @@ func (m *ManagerImpl) GetDeviceRunContainerOptions(pod *v1.Pod, container *v1.Co if err != nil { return nil, err } + // This is a device plugin resource yet we don't have cached + // resource state. This is likely due to a race during node + // restart. We re-issue allocate request to cover this race. + if m.podDevices.containerDevices(podUID, contName, resource) == nil { + needsReAllocate = true + } + } + if needsReAllocate { + klog.V(2).Infof("needs re-allocate device plugin resources for pod %s", podUID) + m.allocatePodResources(pod) } m.mutex.Lock() defer m.mutex.Unlock() diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go index cc8192ff82e4..249825f47e24 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go @@ -28,6 +28,7 @@ import ( units "github.com/docker/go-units" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" + rsystem "github.com/opencontainers/runc/libcontainer/system" "k8s.io/api/core/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/api/v1/resource" @@ -82,7 +83,9 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis cm := m.cgroupManager rootContainer := m.cgroupRoot if !cm.Exists(rootContainer) { - return fmt.Errorf("root container %v doesn't exist", rootContainer) + if !rsystem.RunningInUserNS() { + return fmt.Errorf("root container %v doesn't exist", rootContainer) + } } // Top level for Qos containers are created only for Burstable @@ -120,7 +123,11 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis } else { // to ensure we actually have the right state, we update the config on startup if err := cm.Update(containerConfig); err != nil { - return fmt.Errorf("failed to update top level %v QOS cgroup : %v", qosClass, err) + if rsystem.RunningInUserNS() { + klog.Errorf("failed to update top level %v QOS cgroup : %v", qosClass, err) + } else { + return fmt.Errorf("failed to update top level %v QOS cgroup : %v", qosClass, err) + } } } } @@ -296,15 +303,23 @@ func (m *qosContainerManagerImpl) UpdateCgroups() error { } } + updateSuccess := true for _, config := range qosConfigs { err := m.cgroupManager.Update(config) if err != nil { - klog.Errorf("[ContainerManager]: Failed to update QoS cgroup configuration") - return err + if rsystem.RunningInUserNS() { + // if we are in userns, cgroups might not available + updateSuccess = false + } else { + klog.Errorf("[ContainerManager]: Failed to update QoS cgroup configuration") + return err + } } } - klog.V(4).Infof("[ContainerManager]: Updated QoS cgroup configuration") + if updateSuccess { + klog.V(4).Infof("[ContainerManager]: Updated QoS cgroup configuration") + } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go index b59c6a08364c..77fb9b87bb86 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go @@ -27,6 +27,7 @@ import ( "github.com/opencontainers/runc/libcontainer/cgroups/fs" "github.com/opencontainers/runc/libcontainer/configs" + rsystem "github.com/opencontainers/runc/libcontainer/system" utilversion "k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog" @@ -95,7 +96,10 @@ func (m *containerManager) doWork() { // 1. Ensure processes run in the cgroups if m.cgroupsManager is not nil. // 2. Ensure processes have the OOM score applied. if err := kubecm.EnsureDockerInContainer(version, dockerOOMScoreAdj, m.cgroupsManager); err != nil { - klog.Errorf("Unable to ensure the docker processes run in the desired containers: %v", err) + // if we are in userns, the operation is likely to fail, unless cgroupfs is properly chown-ed. + if !rsystem.RunningInUserNS() { + klog.Errorf("Unable to ensure the docker processes run in the desired containers: %v", err) + } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go index 0443793d8db1..ec18905cdf1b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go @@ -27,6 +27,8 @@ import ( dockertypes "github.com/docker/docker/api/types" dockercontainer "github.com/docker/docker/api/types/container" dockerfilters "github.com/docker/docker/api/types/filters" + rsystem "github.com/opencontainers/runc/libcontainer/system" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/klog" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2" @@ -535,11 +537,13 @@ func (ds *dockerService) ListPodSandbox(_ context.Context, r *runtimeapi.ListPod checkpoint := NewPodSandboxCheckpoint("", "", &CheckpointData{}) err := ds.checkpointManager.GetCheckpoint(id, checkpoint) if err != nil { - klog.Errorf("Failed to retrieve checkpoint for sandbox %q: %v", id, err) - if err == errors.ErrCorruptCheckpoint { - err = ds.checkpointManager.RemoveCheckpoint(id) - if err != nil { - klog.Errorf("Failed to delete corrupt checkpoint for sandbox %q: %v", id, err) + if !rsystem.RunningInUserNS() { + klog.Errorf("Failed to retrieve checkpoint for sandbox %q: %v", id, err) + if err == errors.ErrCorruptCheckpoint { + err = ds.checkpointManager.RemoveCheckpoint(id) + if err != nil { + klog.Errorf("Failed to delete corrupt checkpoint for sandbox %q: %v", id, err) + } } } continue diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go index 7e1ede9eeb75..a16ab7306bb1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go @@ -57,6 +57,8 @@ type managerImpl struct { config Config // the function to invoke to kill a pod killPodFunc KillPodFunc + // the function to get the mirror pod by a given statid pod + mirrorPodFunc MirrorPodFunc // the interface that knows how to do image gc imageGC ImageGC // the interface that knows how to do container gc @@ -99,6 +101,7 @@ func NewManager( summaryProvider stats.SummaryProvider, config Config, killPodFunc KillPodFunc, + mirrorPodFunc MirrorPodFunc, imageGC ImageGC, containerGC ContainerGC, recorder record.EventRecorder, @@ -108,6 +111,7 @@ func NewManager( manager := &managerImpl{ clock: clock, killPodFunc: killPodFunc, + mirrorPodFunc: mirrorPodFunc, imageGC: imageGC, containerGC: containerGC, config: config, @@ -544,9 +548,19 @@ func (m *managerImpl) evictPod(pod *v1.Pod, gracePeriodOverride int64, evictMsg // If the pod is marked as critical and static, and support for critical pod annotations is enabled, // do not evict such pods. Static pods are not re-admitted after evictions. // https://github.com/kubernetes/kubernetes/issues/40573 has more details. - if kubelettypes.IsCriticalPod(pod) && kubepod.IsStaticPod(pod) { - klog.Errorf("eviction manager: cannot evict a critical static pod %s", format.Pod(pod)) - return false + if kubepod.IsStaticPod(pod) { + // need mirrorPod to check its "priority" value; static pod doesn't carry it + if mirrorPod, ok := m.mirrorPodFunc(pod); ok && mirrorPod != nil { + // skip only when it's a static and critical pod + if kubelettypes.IsCriticalPod(mirrorPod) { + klog.Errorf("eviction manager: cannot evict a critical static pod %s", format.Pod(pod)) + return false + } + } else { + // we should never hit this + klog.Errorf("eviction manager: cannot get mirror pod from static pod %s, so cannot evict it", format.Pod(pod)) + return false + } } status := v1.PodStatus{ Phase: v1.PodFailed, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go index d78e7e0695b2..7256f4edb25a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/types.go @@ -94,6 +94,10 @@ type ContainerGC interface { // gracePeriodOverride - the grace period override to use instead of what is on the pod spec type KillPodFunc func(pod *v1.Pod, status v1.PodStatus, gracePeriodOverride *int64) error +// MirrorPodFunc returns the mirror pod for the given static pod and +// whether it was known to the pod manager. +type MirrorPodFunc func(*v1.Pod) (*v1.Pod, bool) + // ActivePodsFunc returns pods bound to the kubelet that are active (i.e. non-terminal state) type ActivePodsFunc func() []*v1.Pod diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index 7fde032eda47..b02cd553262c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -32,6 +32,7 @@ import ( cadvisorapi "github.com/google/cadvisor/info/v1" cadvisorapiv2 "github.com/google/cadvisor/info/v2" + rsystem "github.com/opencontainers/runc/libcontainer/system" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" @@ -792,7 +793,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, klet.podKillingCh = make(chan *kubecontainer.PodPair, podKillingChannelCapacity) // setup eviction manager - evictionManager, evictionAdmitHandler := eviction.NewManager(klet.resourceAnalyzer, evictionConfig, killPodNow(klet.podWorkers, kubeDeps.Recorder), 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) klet.evictionManager = evictionManager klet.admitHandlers.AddPodAdmitHandler(evictionAdmitHandler) @@ -1514,10 +1515,13 @@ func (kl *Kubelet) syncPod(o syncPodOptions) error { break } } + + // TODO(AkihiroSuda): implement rootless cgroup manager that can emulate Exists() properly + // Don't kill containers in pod if pod's cgroups already // exists or the pod is running for the first time podKilled := false - if !pcm.Exists(pod) && !firstSync { + if !pcm.Exists(pod) && !firstSync && !rsystem.RunningInUserNS() { if err := kl.killPod(pod, nil, podStatus, nil); err == nil { podKilled = true } @@ -1536,7 +1540,9 @@ func (kl *Kubelet) syncPod(o syncPodOptions) error { } if err := pcm.EnsureExists(pod); err != nil { kl.recorder.Eventf(pod, v1.EventTypeWarning, events.FailedToCreatePodContainer, "unable to ensure pod container exists: %v", err) - return fmt.Errorf("failed to ensure that the pod: %v cgroups exist and are correctly applied: %v", pod.UID, err) + if !rsystem.RunningInUserNS() { + return fmt.Errorf("failed to ensure that the pod: %v cgroups exist and are correctly applied: %v", pod.UID, err) + } } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go index 5c9930a3445f..5ba1592d3536 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go @@ -132,6 +132,7 @@ func (kl *Kubelet) reconcileExtendedResource(initialNode, node *v1.Node) bool { requiresUpdate := false for k := range node.Status.Capacity { if v1helper.IsExtendedResourceName(k) { + klog.Infof("Zero out resource %s capacity in existing node.", k) node.Status.Capacity[k] = *resource.NewQuantity(int64(0), resource.DecimalSI) node.Status.Allocatable[k] = *resource.NewQuantity(int64(0), resource.DecimalSI) requiresUpdate = true diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go index 93aef69ed87d..f8900249b67f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go @@ -21,7 +21,9 @@ import ( "k8s.io/klog" + rsystem "github.com/opencontainers/runc/libcontainer/system" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/util" ) @@ -73,7 +75,13 @@ func (sp *summaryProviderImpl) Get(updateStats bool) (*statsapi.Summary, error) nodeConfig := sp.provider.GetNodeConfig() rootStats, networkStats, err := sp.provider.GetCgroupStats("/", updateStats) if err != nil { - return nil, fmt.Errorf("failed to get root cgroup stats: %v", err) + if !rsystem.RunningInUserNS() { + return nil, fmt.Errorf("failed to get root cgroup stats: %v", err) + } + // if we are in userns, cgroups might not be available + klog.Errorf("failed to get root cgroup stats: %v", err) + rootStats = &statsapi.ContainerStats{} + networkStats = &statsapi.NetworkStats{} } rootFsStats, err := sp.provider.RootFsStats() if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go index bafd24d65c4f..b6d78b874043 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go @@ -435,12 +435,18 @@ func (p *criStatsProvider) makeContainerStats( if stats.Cpu.UsageCoreNanoSeconds != nil { result.CPU.UsageCoreNanoSeconds = &stats.Cpu.UsageCoreNanoSeconds.Value } + } else { + result.CPU.Time = metav1.NewTime(time.Unix(0, time.Now().UnixNano())) + result.CPU.UsageCoreNanoSeconds = Uint64Ptr(0) } if stats.Memory != nil { result.Memory.Time = metav1.NewTime(time.Unix(0, stats.Memory.Timestamp)) if stats.Memory.WorkingSetBytes != nil { result.Memory.WorkingSetBytes = &stats.Memory.WorkingSetBytes.Value } + } else { + result.Memory.Time = metav1.NewTime(time.Unix(0, time.Now().UnixNano())) + result.Memory.WorkingSetBytes = Uint64Ptr(0) } if stats.WritableLayer != nil { result.Rootfs.Time = metav1.NewTime(time.Unix(0, stats.WritableLayer.Timestamp)) @@ -491,13 +497,20 @@ func (p *criStatsProvider) makeContainerCPUAndMemoryStats( if stats.Cpu.UsageCoreNanoSeconds != nil { result.CPU.UsageCoreNanoSeconds = &stats.Cpu.UsageCoreNanoSeconds.Value } + } else { + result.CPU.Time = metav1.NewTime(time.Unix(0, time.Now().UnixNano())) + result.CPU.UsageCoreNanoSeconds = Uint64Ptr(0) } if stats.Memory != nil { result.Memory.Time = metav1.NewTime(time.Unix(0, stats.Memory.Timestamp)) if stats.Memory.WorkingSetBytes != nil { result.Memory.WorkingSetBytes = &stats.Memory.WorkingSetBytes.Value } + } else { + result.Memory.Time = metav1.NewTime(time.Unix(0, time.Now().UnixNano())) + result.Memory.WorkingSetBytes = Uint64Ptr(0) } + return result } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go index 54f3093e5530..a26790a5ec20 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/helper.go @@ -326,3 +326,7 @@ func getUint64Value(value *uint64) uint64 { return *value } + +func Uint64Ptr(i uint64) *uint64 { + return &i +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go index 7a7e154a72fe..b1d7bc3bf125 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go @@ -325,7 +325,7 @@ func (rc *reconciler) StatesHasBeenSynced() bool { type podVolume struct { podName volumetypes.UniquePodName volumeSpecName string - mountPath string + volumePath string pluginName string volumeMode v1.PersistentVolumeMode } @@ -461,7 +461,7 @@ func (rc *reconciler) reconstructVolume(volume podVolume) (*reconstructedVolume, pod.UID, volume.podName, volume.volumeSpecName, - volume.mountPath, + volume.volumePath, volume.pluginName) if err != nil { return nil, err @@ -476,15 +476,6 @@ func (rc *reconciler) reconstructVolume(volume podVolume) (*reconstructedVolume, } else { uniqueVolumeName = util.GetUniqueVolumeNameFromSpecWithPod(volume.podName, plugin, volumeSpec) } - // Check existence of mount point for filesystem volume or symbolic link for block volume - isExist, checkErr := rc.operationExecutor.CheckVolumeExistenceOperation(volumeSpec, volume.mountPath, volumeSpec.Name(), rc.mounter, uniqueVolumeName, volume.podName, pod.UID, attachablePlugin) - if checkErr != nil { - return nil, checkErr - } - // If mount or symlink doesn't exist, volume reconstruction should be failed - if !isExist { - return nil, fmt.Errorf("Volume: %q is not mounted", uniqueVolumeName) - } volumeMounter, newMounterErr := plugin.NewMounter( volumeSpec, @@ -500,6 +491,16 @@ func (rc *reconciler) reconstructVolume(volume podVolume) (*reconstructedVolume, newMounterErr) } + // Check existence of mount point for filesystem volume or symbolic link for block volume + isExist, checkErr := rc.operationExecutor.CheckVolumeExistenceOperation(volumeSpec, volumeMounter.GetPath(), volumeSpec.Name(), rc.mounter, uniqueVolumeName, volume.podName, pod.UID, attachablePlugin) + if checkErr != nil { + return nil, checkErr + } + // If mount or symlink doesn't exist, volume reconstruction should be failed + if !isExist { + return nil, fmt.Errorf("Volume: %q is not mounted", uniqueVolumeName) + } + // TODO: remove feature gate check after no longer needed var volumeMapper volumepkg.BlockVolumeMapper if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) && volume.volumeMode == v1.PersistentVolumeBlock { @@ -664,12 +665,12 @@ func getVolumesFromPodDir(podDir string) ([]podVolume, error) { } unescapePluginName := utilstrings.UnescapeQualifiedNameForDisk(pluginName) for _, volumeName := range volumePluginDirs { - mountPath := path.Join(volumePluginPath, volumeName) - klog.V(5).Infof("podName: %v, mount path from volume plugin directory: %v, ", podName, mountPath) + volumePath := path.Join(volumePluginPath, volumeName) + klog.V(5).Infof("podName: %v, volume path from volume plugin directory: %v, ", podName, volumePath) volumes = append(volumes, podVolume{ podName: volumetypes.UniquePodName(podName), volumeSpecName: volumeName, - mountPath: mountPath, + volumePath: volumePath, pluginName: unescapePluginName, volumeMode: volumeMode, }) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go index 40e32477b1c2..020cec3c0802 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go @@ -566,7 +566,7 @@ func cleanupIptablesLeftovers(ipt utiliptables.Interface) (encounteredError bool } } - // Flush and remove all of our chains. + // Flush and remove all of our chains. Flushing all chains before removing them also removes all links between chains first. for _, ch := range iptablesChains { if err := ipt.FlushChain(ch.table, ch.chain); err != nil { if !utiliptables.IsNotFoundError(err) { @@ -574,6 +574,10 @@ func cleanupIptablesLeftovers(ipt utiliptables.Interface) (encounteredError bool encounteredError = true } } + } + + // Remove all of our chains. + for _, ch := range iptablesChains { if err := ipt.DeleteChain(ch.table, ch.chain); err != nil { if !utiliptables.IsNotFoundError(err) { klog.Errorf("Error removing iptables rules in ipvs proxier: %v", err) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go index 661092b1b2b4..c0983f6e4442 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go @@ -25,6 +25,7 @@ import ( "sync/atomic" "time" + rsystem "github.com/opencontainers/runc/libcontainer/system" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" @@ -179,7 +180,10 @@ func NewCustomProxier(loadBalancer LoadBalancer, listenIP net.IP, iptables iptab err = setRLimit(64 * 1000) if err != nil { - return nil, fmt.Errorf("failed to set open file handler limit: %v", err) + if !rsystem.RunningInUserNS() { + return nil, fmt.Errorf("failed to set open file handler limit to 64000: %v", err) + } + klog.Errorf("failed to set open file handler limit to 64000: %v", err) } proxyPorts := newPortAllocator(pr) diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go index a06871e4789e..42b002059839 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go @@ -120,5 +120,5 @@ func IsCorruptedMnt(err error) bool { underlyingError = pe.Err } - return underlyingError == syscall.ENOTCONN || underlyingError == syscall.ESTALE || underlyingError == syscall.EIO + return underlyingError == syscall.ENOTCONN || underlyingError == syscall.ESTALE || underlyingError == syscall.EIO || underlyingError == syscall.EACCES } diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go index 85a901696875..2ab4d1059ed1 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go @@ -1003,10 +1003,14 @@ func (mounter *Mounter) SafeMakeDir(subdir string, base string, perm os.FileMode } func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { - if _, err := os.Stat(pathname); os.IsNotExist(err) { + pathExists, pathErr := PathExists(pathname) + if !pathExists { return []string{}, nil - } else if err != nil { - return nil, err + } else if IsCorruptedMnt(pathErr) { + klog.Warningf("GetMountRefs found corrupted mount at %s, treating as unmounted path", pathname) + return []string{}, nil + } else if pathErr != nil { + return nil, fmt.Errorf("error checking path %s: %v", pathname, pathErr) } realpath, err := filepath.EvalSymlinks(pathname) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go index 5a4f27630058..0930330c1618 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go @@ -496,10 +496,14 @@ func getAllParentLinks(path string) ([]string, error) { // GetMountRefs : empty implementation here since there is no place to query all mount points on Windows func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { - if _, err := os.Stat(normalizeWindowsPath(pathname)); os.IsNotExist(err) { + pathExists, pathErr := PathExists(normalizeWindowsPath(pathname)) + // TODO(#75012): Need a Windows specific IsCorruptedMnt function that checks against whatever errno's + // Windows emits when we try to Stat a corrupted mount + // https://golang.org/pkg/syscall/?GOOS=windows&GOARCH=amd64#Errno + if !pathExists { return []string{}, nil - } else if err != nil { - return nil, err + } else if pathErr != nil { + return nil, fmt.Errorf("error checking path %s: %v", normalizeWindowsPath(pathname), pathErr) } return []string{pathname}, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go b/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go index 958a0007cddb..63657e9c55de 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go +++ b/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go @@ -85,8 +85,6 @@ func init() { prometheus.MustRegister(watchDuration) prometheus.MustRegister(itemsPerWatch) prometheus.MustRegister(lastResourceVersion) - - cache.SetReflectorMetricsProvider(prometheusMetricsProvider{}) } type prometheusMetricsProvider struct{} diff --git a/vendor/k8s.io/kubernetes/pkg/version/base.go b/vendor/k8s.io/kubernetes/pkg/version/base.go index 853fe6cf4c99..714eb40d8f83 100644 --- a/vendor/k8s.io/kubernetes/pkg/version/base.go +++ b/vendor/k8s.io/kubernetes/pkg/version/base.go @@ -3,8 +3,8 @@ package version var ( gitMajor = "1" gitMinor = "13" - gitVersion = "v1.13.4-k3s.1" - gitCommit = "7f72ee72d6dce73e2d36dbd3402413d146fad01e" + gitVersion = "v1.13.5-k3s.1" + gitCommit = "256ea73aeb2627eb9b510f6c22881af8f967dd0c" gitTreeState = "clean" - buildDate = "2019-03-04T01:05+00:00Z" + buildDate = "2019-03-27T18:49+00:00Z" ) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_block.go b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_block.go index 2cd58eae8c0e..30e3e3ad7493 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_block.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_block.go @@ -26,7 +26,7 @@ import ( "k8s.io/klog" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1beta1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/kubernetes" @@ -36,8 +36,8 @@ import ( ) type csiBlockMapper struct { + csiClientGetter k8s kubernetes.Interface - csiClient csiClient plugin *csiPlugin driverName csiDriverName specName string diff --git a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_client.go b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_client.go index bbe30134629b..630278c59fe0 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_client.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_client.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "net" + "sync" "time" csipbv1 "github.com/container-storage-interface/spec/lib/go/csi" @@ -720,3 +721,36 @@ func versionRequiresV0Client(version *utilversion.Version) bool { return false } + +// CSI client getter with cache. +// This provides a method to initialize CSI client with driver name and caches +// it for later use. When CSI clients have not been discovered yet (e.g. +// on kubelet restart), client initialization will fail. Users of CSI client (e.g. +// mounter manager and block mapper) can use this to delay CSI client +// initialization until needed. +type csiClientGetter struct { + sync.RWMutex + csiClient csiClient + driverName csiDriverName +} + +func (c *csiClientGetter) Get() (csiClient, error) { + c.RLock() + if c.csiClient != nil { + c.RUnlock() + return c.csiClient, nil + } + c.RUnlock() + c.Lock() + defer c.Unlock() + // Double-checking locking criterion. + if c.csiClient != nil { + return c.csiClient, nil + } + csi, err := newCsiDriverClient(c.driverName) + if err != nil { + return nil, err + } + c.csiClient = csi + return c.csiClient, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_mounter.go b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_mounter.go index acd2f72b2978..6fb20b3ec4db 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_mounter.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_mounter.go @@ -51,7 +51,7 @@ var ( ) type csiMountMgr struct { - csiClient csiClient + csiClientGetter k8s kubernetes.Interface plugin *csiPlugin driverName csiDriverName @@ -111,7 +111,11 @@ func (c *csiMountMgr) SetUpAt(dir string, fsGroup *int64) error { return err } - csi := c.csiClient + csi, err := c.csiClientGetter.Get() + if err != nil { + klog.Error(log("mounter.SetUpAt failed to get CSI client: %v", err)) + return err + } ctx, cancel := context.WithTimeout(context.Background(), csiTimeout) defer cancel() @@ -271,7 +275,11 @@ func (c *csiMountMgr) TearDownAt(dir string) error { } volID := c.volumeID - csi := c.csiClient + csi, err := c.csiClientGetter.Get() + if err != nil { + klog.Error(log("mounter.SetUpAt failed to get CSI client: %v", err)) + return err + } ctx, cancel := context.WithTimeout(context.Background(), csiTimeout) defer cancel() diff --git a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_plugin.go b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_plugin.go index 4b121d48f549..0643a7a2f54e 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_plugin.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/csi/csi_plugin.go @@ -54,13 +54,13 @@ const ( ) type csiPlugin struct { - host volume.VolumeHost + host volume.VolumeHost } // ProbeVolumePlugins returns implemented plugins func ProbeVolumePlugins() []volume.VolumePlugin { p := &csiPlugin{ - host: nil, + host: nil, } return []volume.VolumePlugin{p} } @@ -273,11 +273,6 @@ func (p *csiPlugin) NewMounter( return nil, errors.New("failed to get a Kubernetes client") } - csi, err := newCsiDriverClient(csiDriverName(pvSource.Driver)) - if err != nil { - return nil, err - } - mounter := &csiMountMgr{ plugin: p, k8s: k8s, @@ -287,9 +282,9 @@ func (p *csiPlugin) NewMounter( driverName: csiDriverName(pvSource.Driver), volumeID: pvSource.VolumeHandle, specVolumeID: spec.Name(), - csiClient: csi, readOnly: readOnly, } + mounter.csiClientGetter.driverName = csiDriverName(pvSource.Driver) // Save volume info in pod dir dir := mounter.GetPath() @@ -345,10 +340,7 @@ func (p *csiPlugin) NewUnmounter(specName string, podUID types.UID) (volume.Unmo } unmounter.driverName = csiDriverName(data[volDataKey.driverName]) unmounter.volumeID = data[volDataKey.volHandle] - unmounter.csiClient, err = newCsiDriverClient(unmounter.driverName) - if err != nil { - return nil, err - } + unmounter.csiClientGetter.driverName = unmounter.driverName return unmounter, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/plugins.go b/vendor/k8s.io/kubernetes/pkg/volume/plugins.go index ce78d0ee5e49..729b3b1a136f 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/plugins.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/plugins.go @@ -134,10 +134,10 @@ type VolumePlugin interface { NewUnmounter(name string, podUID types.UID) (Unmounter, error) // ConstructVolumeSpec constructs a volume spec based on the given volume name - // and mountPath. The spec may have incomplete information due to limited + // and volumePath. The spec may have incomplete information due to limited // information from input. This function is used by volume manager to reconstruct // volume spec by reading the volume directories from disk - ConstructVolumeSpec(volumeName, mountPath string) (*Spec, error) + ConstructVolumeSpec(volumeName, volumePath string) (*Spec, error) // SupportsMountOption returns true if volume plugins supports Mount options // Specifying mount options in a volume plugin that doesn't support @@ -274,7 +274,7 @@ type BlockVolumePlugin interface { // The spec may have incomplete information due to limited information // from input. This function is used by volume manager to reconstruct // volume spec by reading the volume directories from disk. - ConstructBlockVolumeSpec(podUID types.UID, volumeName, mountPath string) (*Spec, error) + ConstructBlockVolumeSpec(podUID types.UID, volumeName, volumePath string) (*Spec, error) } // VolumeHost is an interface that plugins can use to access the kubelet. diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go index cfcc249f8bd1..268a9edaf92d 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go @@ -145,7 +145,7 @@ type OperationExecutor interface { // ExpandVolumeFSWithoutUnmounting will resize volume's file system to expected size without unmounting the volume. ExpandVolumeFSWithoutUnmounting(volumeToMount VolumeToMount, actualStateOfWorld ActualStateOfWorldMounterUpdater) error // ReconstructVolumeOperation construct a new volumeSpec and returns it created by plugin - ReconstructVolumeOperation(volumeMode v1.PersistentVolumeMode, plugin volume.VolumePlugin, mapperPlugin volume.BlockVolumePlugin, uid types.UID, podName volumetypes.UniquePodName, volumeSpecName string, mountPath string, pluginName string) (*volume.Spec, error) + ReconstructVolumeOperation(volumeMode v1.PersistentVolumeMode, plugin volume.VolumePlugin, mapperPlugin volume.BlockVolumePlugin, uid types.UID, podName volumetypes.UniquePodName, volumeSpecName string, volumePath string, pluginName string) (*volume.Spec, error) // CheckVolumeExistenceOperation checks volume existence CheckVolumeExistenceOperation(volumeSpec *volume.Spec, mountPath, volumeName string, mounter mount.Interface, uniqueVolumeName v1.UniqueVolumeName, podName volumetypes.UniquePodName, podUID types.UID, attachable volume.AttachableVolumePlugin) (bool, error) } @@ -856,14 +856,14 @@ func (oe *operationExecutor) ReconstructVolumeOperation( uid types.UID, podName volumetypes.UniquePodName, volumeSpecName string, - mountPath string, + volumePath string, pluginName string) (*volume.Spec, error) { // Filesystem Volume case if volumeMode == v1.PersistentVolumeFilesystem { // Create volumeSpec from mount path klog.V(5).Infof("Starting operationExecutor.ReconstructVolumepodName") - volumeSpec, err := plugin.ConstructVolumeSpec(volumeSpecName, mountPath) + volumeSpec, err := plugin.ConstructVolumeSpec(volumeSpecName, volumePath) if err != nil { return nil, err } @@ -880,17 +880,17 @@ func (oe *operationExecutor) ReconstructVolumeOperation( podName, uid) } - // mountPath contains volumeName on the path. In the case of block volume, {volumeName} is symbolic link + // volumePath contains volumeName on the path. In the case of block volume, {volumeName} is symbolic link // corresponding to raw block device. - // ex. mountPath: pods/{podUid}}/{DefaultKubeletVolumeDevicesDirName}/{escapeQualifiedPluginName}/{volumeName} - volumeSpec, err := mapperPlugin.ConstructBlockVolumeSpec(uid, volumeSpecName, mountPath) + // ex. volumePath: pods/{podUid}}/{DefaultKubeletVolumeDevicesDirName}/{escapeQualifiedPluginName}/{volumeName} + volumeSpec, err := mapperPlugin.ConstructBlockVolumeSpec(uid, volumeSpecName, volumePath) if err != nil { return nil, err } return volumeSpec, nil } -// CheckVolumeExistenceOperation return a func() to check mount path directory if volume still exists +// CheckVolumeExistenceOperation checks mount path directory if volume still exists func (oe *operationExecutor) CheckVolumeExistenceOperation( volumeSpec *volume.Spec, mountPath, volumeName string, diff --git a/vendor/k8s.io/kubernetes/vendor.conf b/vendor/k8s.io/kubernetes/vendor.conf index 9dd030a16dde..5bbb16e9a3e5 100644 --- a/vendor/k8s.io/kubernetes/vendor.conf +++ b/vendor/k8s.io/kubernetes/vendor.conf @@ -3,12 +3,22 @@ package=k8s.io/kubernetes/cmd/hyperkube bitbucket.org/bertimus9/systemstat 0eeff89b0690611fc32e21f0cd2e4434abf8fe53 cloud.google.com/go v0.1.0-115-g3b1ae45394a234 -github.com/armon/circbuf bbbad097214e2918d8543d5201d12bfd7bca254d -github.com/asaskevich/govalidator v9-26-gf9ffefc3facfbe -github.com/aws/aws-sdk-go v1.14.12 github.com/Azure/azure-sdk-for-go v21.3.0 github.com/Azure/go-ansiterm d6e3b3328b783f23731bc4d058875b0371ff8109 github.com/Azure/go-autorest v11.1.0 +github.com/GeertJohan/go.rice c02ca9a983da5807ddf7d796784928f5be4afd09 +github.com/JeffAshton/win_pdh 76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2 +github.com/MakeNowJust/heredoc bb23615498cded5e105af4ce27de75b089cbe851 +github.com/Microsoft/go-winio v0.4.5 +github.com/Microsoft/hcsshim v0.6.11 +github.com/NYTimes/gziphandler 56545f4a5d46df9a6648819d1664c3a03a13ffdb +github.com/Nvveen/Gotty cd527374f1e5bff4938207604a14f2e38a9cf512 +github.com/PuerkitoBio/purell v1.0.0 +github.com/PuerkitoBio/urlesc 5bd2802263f21d8788851d5305584c82a5c75d7e +github.com/Rican7/retry v0.1.0-9-g272ad122d6e5ce +github.com/armon/circbuf bbbad097214e2918d8543d5201d12bfd7bca254d +github.com/asaskevich/govalidator v9-26-gf9ffefc3facfbe +github.com/aws/aws-sdk-go v1.14.12 github.com/bazelbuild/bazel-gazelle 0.15.0 github.com/bazelbuild/buildtools 0.6.0-60-g1a9c38e0df9397 github.com/beorn7/perks 3ac7bf7a47d159a033b107610db8a1b6575507a4 @@ -18,10 +28,10 @@ github.com/client9/misspell v0.3.0-7-g9ce5d979ffdaca github.com/cloudflare/cfssl 1.3.2-21-g56268a613adfed github.com/clusterhq/flocker-go 2b8b7259d3139c96c4a6871031355808ab3fd3b3 github.com/codedellemc/goscaleio 20e2ce2cf8852dc78bd42b76698dcd8dcd77b7b1 +github.com/container-storage-interface/spec v1.0.0 github.com/containerd/console 84eeaae905fa414d03e07bcd6c8d3f19e7cf180e github.com/containerd/containerd v1.0.2 github.com/containernetworking/cni v0.6.0 -github.com/container-storage-interface/spec v1.0.0 github.com/coreos/bbolt v1.3.1-coreos.6 github.com/coreos/etcd v3.3.10 github.com/coreos/go-oidc 065b426bd41667456c1a924468f507673629c46b @@ -47,35 +57,35 @@ github.com/elazarl/go-bindata-assetfs 3dcc96556217539f50599357fb481ac0dc7439b9 github.com/elazarl/goproxy v1.0-104-gc4fc26588b6ef8 github.com/emicklei/go-restful 2.2.0-4-gff4f55a206334e github.com/emicklei/go-restful-swagger12 1.0.1 +github.com/emicklei/go-restful 2.2.0-4-gff4f55a206334e github.com/euank/go-kmsg-parser v2.0.0 github.com/evanphx/json-patch v4.1.0-19-g5858425f75500d github.com/exponent-io/jsonpath d6023ce2651d8eafb5c75bb0c7167536102ec9f5 github.com/fatih/camelcase f6a740d52f961c60348ebb109adde9f4635d7540 github.com/fsnotify/fsnotify v1.3.1-1-gf12c6236fe7b5c -github.com/GeertJohan/go.rice c02ca9a983da5807ddf7d796784928f5be4afd09 github.com/ghodss/yaml v1.0.0-4-gc7ce16629ff4cd github.com/globalsign/mgo r2018.06.15-9-geeefdecb41b842 +github.com/go-ini/ini v1.25.4 +github.com/go-openapi/analysis v0.17.2 +github.com/go-openapi/jsonpointer v0.18.0 +github.com/go-openapi/loads v0.17.2 +github.com/go-openapi/strfmt v0.17.0 +github.com/go-openapi/swag v0.17.2 +github.com/go-openapi/validate v0.18.0 +github.com/go-ozzo/ozzo-validation v3.5.0 +github.com/go-sql-driver/mysql v1.3.0 github.com/godbus/dbus v3 github.com/gogo/protobuf v0.5 -github.com/go-ini/ini v1.25.4 github.com/golang/groupcache 02826c3e79038b59d737d3b1c0a1d937f71a4433 github.com/golang/mock bd3c8e81be01eef76d4b503f5e687d2d1354d2d9 github.com/golang/protobuf v1.1.0 -github.com/googleapis/gnostic 0c5108395e2debce0d731cf0287ddf7242066aba github.com/google/btree 7d79101e329e5a3adf994758c578dab82b90c017 github.com/google/certificate-transparency-go v1.0.21 github.com/google/gofuzz 44d81051d367757e1c7c6a5a86423ece9afcf63c github.com/google/uuid 0.2-15-g8c31c18f31ede9 -github.com/go-openapi/analysis v0.17.2 -github.com/go-openapi/jsonpointer v0.18.0 -github.com/go-openapi/loads v0.17.2 -github.com/go-openapi/strfmt v0.17.0 -github.com/go-openapi/swag v0.17.2 -github.com/go-openapi/validate v0.18.0 -github.com/go-ozzo/ozzo-validation v3.5.0 +github.com/googleapis/gnostic 0c5108395e2debce0d731cf0287ddf7242066aba github.com/gophercloud/gophercloud 781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d github.com/gorilla/websocket v1.2.0-9-g4201258b820c74 -github.com/go-sql-driver/mysql v1.3.0 github.com/gregjones/httpcache 787624de3eb7bd915c329cba748687a3b22666a6 github.com/grpc-ecosystem/go-grpc-middleware v1.0.0-4-g498ae206fc3cfe github.com/grpc-ecosystem/go-grpc-prometheus v1.1-4-g2500245aa6110c @@ -85,7 +95,6 @@ github.com/hashicorp/hcl d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1 github.com/heketi/heketi v8.0.0-49-g558b29266ce0a8 github.com/imdario/mergo v0.3.5 github.com/inconshreveable/mousetrap v1.0 -github.com/JeffAshton/win_pdh 76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2 github.com/jmespath/go-jmespath 0.2.2-12-g0b12d6b521d83f github.com/jmhodges/clock v1.1 github.com/jmoiron/sqlx sqlx-v1.1-131-g05cef0741ade10 @@ -99,19 +108,16 @@ github.com/kr/fs 2788f0dbd16903de03cb8186e5c7d97b69ad387b github.com/kr/pretty go.weekly.2011-12-22-24-gf31442d60e5146 github.com/kr/text 6807e777504f54ad073ecef66747de158294b639 github.com/kubernetes/repo-infra f2459dc75fc429b813d92c0622b408fd7f0d4cac -github.com/libopenstorage/openstorage 093a0c3888753c2056e7373183693d670c6bba01 github.com/lib/pq 88edab0803230a3898347e77b474f8c1820a1f20 +github.com/libopenstorage/openstorage 093a0c3888753c2056e7373183693d670c6bba01 github.com/magiconair/properties v1.7.0-4-g61b492c03cf472 github.com/mailru/easyjson 2f5df55504ebc322e4d52d34df6a1f5b503bf26d -github.com/MakeNowJust/heredoc bb23615498cded5e105af4ce27de75b089cbe851 github.com/marstr/guid v1.1.0-2-g8bdf7d1a087ccc github.com/mattn/go-shellwords v1.0.3-20-gf8471b0a71ded0 github.com/mattn/go-sqlite3 v1.6.0 github.com/matttproud/golang_protobuf_extensions v1.0.1 github.com/mesos/mesos-go mesos-1.6.x-12-gff8175bfda54b1 github.com/mholt/caddy v0.10.10-57-g2de495001514ed -github.com/Microsoft/go-winio v0.4.5 -github.com/Microsoft/hcsshim v0.6.11 github.com/miekg/dns 5d001d020961ae1c184f9f8152fdc73810481677 github.com/mindprince/gonvml fee913ce8fb235edf54739d259ca0ecc226c7b8a github.com/mistifyio/go-zfs v2.1.1-5-g1b4ae6fb4e77b0 @@ -123,8 +129,6 @@ github.com/mohae/deepcopy 491d3605edfb866af34a48075bd4355ac1bf46ca github.com/mrunalp/fileutils 4ee1cc9a80582a0c75febdd5cfa779ee4361cbca github.com/mvdan/xurls v0.8.0-14-g1b768d7c393abd github.com/mxk/go-flowrate cca7078d478f8520f85629ad7c68962d31ed7682 -github.com/Nvveen/Gotty cd527374f1e5bff4938207604a14f2e38a9cf512 -github.com/NYTimes/gziphandler 56545f4a5d46df9a6648819d1664c3a03a13ffdb github.com/onsi/ginkgo v1.2.0-95-g67b9df7f55fe11 github.com/onsi/gomega v1.0-122-gd59fa0ac68bb5d github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb @@ -143,12 +147,9 @@ github.com/prometheus/client_golang v0.8.0-83-ge7e903064f5e9e github.com/prometheus/client_model model-0.0.2-12-gfa8ad6fec33561 github.com/prometheus/common 13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207 github.com/prometheus/procfs 65c1f6f8f0fc1e2185eb9863a3bc751496404259 -github.com/PuerkitoBio/purell v1.0.0 -github.com/PuerkitoBio/urlesc 5bd2802263f21d8788851d5305584c82a5c75d7e github.com/quobyte/api v0.1.1-4-g206ef832283c1a github.com/rancher/go-rancher v0.1.0-196-g09693a8743ba5e github.com/renstrom/dedent v1.0.0-3-g020d11c3b9c0c7 -github.com/Rican7/retry v0.1.0-9-g272ad122d6e5ce github.com/robfig/cron v1-53-gdf38d32658d878 github.com/rubiojr/go-vhd 0bfd3b39853cdde5762efda92289f14b0ac0491b github.com/russross/blackfriday v1.4-2-g300106c228d52c @@ -176,6 +177,9 @@ github.com/vmware/govmomi v0.18.0-48-g22f74650cf39ba github.com/vmware/photon-controller-go-sdk PROMOTED-488 github.com/xanzy/go-cloudstack v2.1.1-1-g1e2cbf647e57fa github.com/xiang90/probing 0.0.1 +go.uber.org/atomic v1.3.2-3-g8dc6146f756937 +go.uber.org/multierr v1.1.0-2-gddea229ff1dff9 +go.uber.org/zap v1.9.1-1-g67bc79d13d155c golang.org/x/crypto de0752318171da717af4ce24d0a2e8626afaeb11 golang.org/x/lint 8f45f776aaf18cebc8d65861cc70c33c60471952 golang.org/x/net 0ed95abb35c445290478a5348a7b38bb154135fd @@ -188,15 +192,12 @@ gonum.org/v1/gonum cebdade430ccb61c1feba4878085f6cf8cb3320e google.golang.org/api 3639d6d93f377f39a1de765fa4ef37b3c7ca8bd9 google.golang.org/genproto 09f6ed296fc66555a25fe4ce95173148778dfa85 google.golang.org/grpc v1.13.0 -gopkg.in/gcfg.v1/scanner v1.2.0 +gopkg.in/gcfg.v1 v1.2.0 gopkg.in/inf.v0 v0.9.0 gopkg.in/natefinch/lumberjack.v2 v1.0-16-g20b71e5b60d756 gopkg.in/square/go-jose.v2 v2.1.6-4-g89060dee6a84df gopkg.in/warnings.v0 v0.1.1 gopkg.in/yaml.v2 v2.2.1 -go.uber.org/atomic v1.3.2-3-g8dc6146f756937 -go.uber.org/multierr v1.1.0-2-gddea229ff1dff9 -go.uber.org/zap/buffer v1.9.1-1-g67bc79d13d155c k8s.io/gengo 51747d6e00da1fc578d5a333a93bb2abcbce7a95 k8s.io/heapster v1.2.0-beta.1 k8s.io/klog 8139d8cb77af419532b33dfa7dd09fbc5f1d344f