Update containerd to 1.4.0-beta.2 and K8s to 1.19.0-rc.0

This unbreaks bbolt (as part of containerd) on 1.14+ (see https://github.com/etcd-io/bbolt/pull/201 and
https://github.com/etcd-io/bbolt/pull/220), pulls in my patch to ignore image-defined volumes
(https://github.com/containerd/cri/pull/1504) and gets us some robustness fixes in containerd CNI/CRI integration
(https://github.com/containerd/cri/pull/1405). This also updates K8s at the same time since they share a lot of
dependencies and only updating one is very annoying. On the K8s side we mostly get the standard stream of fixes
plus some patches that are no longer necessary.

One annoying on the K8s side (but with no impact to the functionality) are these messages in the logs of various
components:
```
W0714 11:51:26.323590       1 warnings.go:67] policy/v1beta1 PodSecurityPolicy is deprecated in v1.22+, unavailable in v1.25+
```
They are caused by KEP-1635, but there's not explanation why this gets logged so aggressively considering the operators
cannot do anything about it. There's no newer version of PodSecurityPolicy and you are pretty much required to use it if
you use RBAC.

Test Plan: Covered by existing tests

Bug: T753

X-Origin-Diff: phab/D597
GitOrigin-RevId: f6c447da1de037c27646f9ec9f45ebd5d6660ab0
diff --git a/third_party/go/patches/cadvisor-build.patch b/third_party/go/patches/cadvisor-build.patch
deleted file mode 100644
index 5e7a11f..0000000
--- a/third_party/go/patches/cadvisor-build.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright 2020 The Monogon Project Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This patch updates BUILD files to reflect changes in Go sources. This only needs to be applied because Gazelle applies patches after BUILDfile generation.
-
-diff -ur com_github_google_cadvisor.orig/fs/fs.go com_github_google_cadvisor/fs/fs.go
---- com_github_google_cadvisor.orig/fs/BUILD.bazel	2020-04-15 17:54:23.086143468 +0200
-+++ com_github_google_cadvisor/fs/BUILD.bazel	2020-04-15 17:56:17.098546899 +0200
-@@ -12,14 +12,12 @@
-         "@io_bazel_rules_go//go/platform:android": [
-             "//devicemapper:go_default_library",
-             "//utils:go_default_library",
--            "@com_github_mistifyio_go_zfs//:go_default_library",
-             "@io_k8s_klog//:go_default_library",
-             "@io_k8s_utils//mount:go_default_library",
-         ],
-         "@io_bazel_rules_go//go/platform:linux": [
-             "//devicemapper:go_default_library",
-             "//utils:go_default_library",
--            "@com_github_mistifyio_go_zfs//:go_default_library",
-             "@io_k8s_klog//:go_default_library",
-             "@io_k8s_utils//mount:go_default_library",
-         ],
-diff -ur com_github_google_cadvisor.orig/fs/fs.go com_github_google_cadvisor/fs/fs.go
---- com_github_google_cadvisor.orig/container/docker/BUILD.bazel	2020-04-15 17:54:23.086143468 +0200
-+++ com_github_google_cadvisor/container/docker/BUILD.bazel	2020-04-15 17:56:17.098546899 +0200
-@@ -21,7 +21,6 @@
-         "//info/v1:go_default_library",
-         "//machine:go_default_library",
-         "//watcher:go_default_library",
--        "//zfs:go_default_library",
-         "@com_github_blang_semver//:go_default_library",
-         "@com_github_docker_docker//api/types:go_default_library",
-         "@com_github_docker_docker//api/types/container:go_default_library",
-
diff --git a/third_party/go/patches/cadvisor.patch b/third_party/go/patches/cadvisor.patch
deleted file mode 100644
index 9761dee..0000000
--- a/third_party/go/patches/cadvisor.patch
+++ /dev/null
@@ -1,415 +0,0 @@
-Copyright 2020 The Monogon Project Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This rips out ZFS support from cadvisor. This should be turned into an upstream change for allowing zfs to be disabled via a build tag.
-
-diff -ur com_github_google_cadvisor.orig/container/docker/factory.go com_github_google_cadvisor/container/docker/factory.go
---- com_github_google_cadvisor.orig/container/docker/factory.go	2020-04-15 17:54:23.082143453 +0200
-+++ com_github_google_cadvisor/container/docker/factory.go	2020-04-16 15:08:47.394501543 +0200
-@@ -34,7 +34,6 @@
- 	info "github.com/google/cadvisor/info/v1"
- 	"github.com/google/cadvisor/machine"
- 	"github.com/google/cadvisor/watcher"
--	"github.com/google/cadvisor/zfs"
- 
- 	docker "github.com/docker/docker/client"
- 	"golang.org/x/net/context"
-@@ -102,7 +101,6 @@
- 	aufsStorageDriver         storageDriver = "aufs"
- 	overlayStorageDriver      storageDriver = "overlay"
- 	overlay2StorageDriver     storageDriver = "overlay2"
--	zfsStorageDriver          storageDriver = "zfs"
- )
- 
- type dockerFactory struct {
-@@ -127,8 +125,6 @@
- 
- 	thinPoolName    string
- 	thinPoolWatcher *devicemapper.ThinPoolWatcher
--
--	zfsWatcher *zfs.ZfsWatcher
- }
- 
- func (self *dockerFactory) String() string {
-@@ -157,7 +153,6 @@
- 		self.includedMetrics,
- 		self.thinPoolName,
- 		self.thinPoolWatcher,
--		self.zfsWatcher,
- 	)
- 	return
- }
-@@ -246,21 +241,6 @@
- 	return thinPoolWatcher, nil
- }
- 
--func startZfsWatcher(dockerInfo *dockertypes.Info) (*zfs.ZfsWatcher, error) {
--	filesystem, err := dockerutil.DockerZfsFilesystem(*dockerInfo)
--	if err != nil {
--		return nil, err
--	}
--
--	zfsWatcher, err := zfs.NewZfsWatcher(filesystem)
--	if err != nil {
--		return nil, err
--	}
--
--	go zfsWatcher.Start()
--	return zfsWatcher, nil
--}
--
- func ensureThinLsKernelVersion(kernelVersion string) error {
- 	// kernel 4.4.0 has the proper bug fixes to allow thin_ls to work without corrupting the thin pool
- 	minKernelVersion := semver.MustParse("4.4.0")
-@@ -358,14 +338,6 @@
- 		thinPoolName = status.DriverStatus[dockerutil.DriverStatusPoolName]
- 	}
- 
--	var zfsWatcher *zfs.ZfsWatcher
--	if storageDriver(dockerInfo.Driver) == zfsStorageDriver {
--		zfsWatcher, err = startZfsWatcher(dockerInfo)
--		if err != nil {
--			klog.Errorf("zfs filesystem stats will not be reported: %v", err)
--		}
--	}
--
- 	klog.V(1).Infof("Registering Docker factory")
- 	f := &dockerFactory{
- 		cgroupSubsystems:   cgroupSubsystems,
-@@ -379,7 +351,6 @@
- 		includedMetrics:    includedMetrics,
- 		thinPoolName:       thinPoolName,
- 		thinPoolWatcher:    thinPoolWatcher,
--		zfsWatcher:         zfsWatcher,
- 	}
- 
- 	container.RegisterContainerHandlerFactory(f, []watcher.ContainerWatchSource{watcher.Raw})
-diff -ur com_github_google_cadvisor.orig/container/docker/handler.go com_github_google_cadvisor/container/docker/handler.go
---- com_github_google_cadvisor.orig/container/docker/handler.go	2020-04-15 17:54:23.082143453 +0200
-+++ com_github_google_cadvisor/container/docker/handler.go	2020-04-16 15:45:56.432489633 +0200
-@@ -25,12 +25,10 @@
- 
- 	"github.com/google/cadvisor/container"
- 	"github.com/google/cadvisor/container/common"
--	dockerutil "github.com/google/cadvisor/container/docker/utils"
- 	containerlibcontainer "github.com/google/cadvisor/container/libcontainer"
- 	"github.com/google/cadvisor/devicemapper"
- 	"github.com/google/cadvisor/fs"
- 	info "github.com/google/cadvisor/info/v1"
--	"github.com/google/cadvisor/zfs"
- 
- 	dockercontainer "github.com/docker/docker/api/types/container"
- 	docker "github.com/docker/docker/client"
-@@ -87,9 +85,6 @@
- 	// the devicemapper poolname
- 	poolName string
- 
--	// zfsParent is the parent for docker zfs
--	zfsParent string
--
- 	// Reference to the container
- 	reference info.ContainerReference
- 
-@@ -130,7 +125,6 @@
- 	includedMetrics container.MetricSet,
- 	thinPoolName string,
- 	thinPoolWatcher *devicemapper.ThinPoolWatcher,
--	zfsWatcher *zfs.ZfsWatcher,
- ) (container.ContainerHandler, error) {
- 	// Create the cgroup paths.
- 	cgroupPaths := common.MakeCgroupPaths(cgroupSubsystems.MountPoints, name)
-@@ -164,8 +158,6 @@
- 	// For devicemapper, we only need the thin pool name, and that is passed in to this call
- 	var (
- 		rootfsStorageDir string
--		zfsFilesystem    string
--		zfsParent        string
- 	)
- 	switch storageDriver {
- 	case aufsStorageDriver:
-@@ -174,13 +166,6 @@
- 		rootfsStorageDir = path.Join(storageDir, string(storageDriver), rwLayerID, overlayRWLayer)
- 	case overlay2StorageDriver:
- 		rootfsStorageDir = path.Join(storageDir, string(storageDriver), rwLayerID, overlay2RWLayer)
--	case zfsStorageDriver:
--		status, err := Status()
--		if err != nil {
--			return nil, fmt.Errorf("unable to determine docker status: %v", err)
--		}
--		zfsParent = status.DriverStatus[dockerutil.DriverStatusParentDataset]
--		zfsFilesystem = path.Join(zfsParent, rwLayerID)
- 	}
- 
- 	// We assume that if Inspect fails then the container is not known to docker.
-@@ -200,7 +185,6 @@
- 		envs:               make(map[string]string),
- 		labels:             ctnr.Config.Labels,
- 		includedMetrics:    includedMetrics,
--		zfsParent:          zfsParent,
- 	}
- 	// Timestamp returned by Docker is in time.RFC3339Nano format.
- 	handler.creationTime, err = time.Parse(time.RFC3339Nano, ctnr.Created)
-@@ -244,9 +228,6 @@
- 		handler.fsHandler = &dockerFsHandler{
- 			fsHandler:       common.NewFsHandler(common.DefaultPeriod, rootfsStorageDir, otherStorageDir, fsInfo),
- 			thinPoolWatcher: thinPoolWatcher,
--			zfsWatcher:      zfsWatcher,
--			deviceID:        ctnr.GraphDriver.Data["DeviceId"],
--			zfsFilesystem:   zfsFilesystem,
- 		}
- 	}
- 
-@@ -271,7 +252,7 @@
- }
- 
- // dockerFsHandler is a composite FsHandler implementation the incorporates
--// the common fs handler, a devicemapper ThinPoolWatcher, and a zfsWatcher
-+// the common fs handler and a devicemapper ThinPoolWatcher
- type dockerFsHandler struct {
- 	fsHandler common.FsHandler
- 
-@@ -279,11 +260,6 @@
- 	thinPoolWatcher *devicemapper.ThinPoolWatcher
- 	// deviceID is the id of the container's fs device
- 	deviceID string
--
--	// zfsWatcher is the zfs filesystem watcher
--	zfsWatcher *zfs.ZfsWatcher
--	// zfsFilesystem is the docker zfs filesystem
--	zfsFilesystem string
- }
- 
- var _ common.FsHandler = &dockerFsHandler{}
-@@ -316,16 +292,6 @@
- 			usage.TotalUsageBytes += thinPoolUsage
- 		}
- 	}
--
--	if h.zfsWatcher != nil {
--		zfsUsage, err := h.zfsWatcher.GetUsage(h.zfsFilesystem)
--		if err != nil {
--			klog.V(5).Infof("unable to get fs usage from zfs for filesystem %s: %v", h.zfsFilesystem, err)
--		} else {
--			usage.BaseUsageBytes = zfsUsage
--			usage.TotalUsageBytes += zfsUsage
--		}
--	}
- 	return usage
- }
- 
-@@ -389,8 +355,6 @@
- 			return fmt.Errorf("unable to determine device info for dir: %v: %v", self.rootfsStorageDir, err)
- 		}
- 		device = deviceInfo.Device
--	case zfsStorageDriver:
--		device = self.zfsParent
- 	default:
- 		return nil
- 	}
-diff -ur com_github_google_cadvisor.orig/container/docker/utils/docker.go com_github_google_cadvisor/container/docker/utils/docker.go
---- com_github_google_cadvisor.orig/container/docker/utils/docker.go	2020-04-15 17:54:23.082143453 +0200
-+++ com_github_google_cadvisor/container/docker/utils/docker.go	2020-04-16 15:10:30.379817831 +0200
-@@ -69,12 +69,3 @@
- 
- 	return metadataDevice, nil
- }
--
--func DockerZfsFilesystem(info dockertypes.Info) (string, error) {
--	filesystem := DriverStatusValue(info.DriverStatus, DriverStatusParentDataset)
--	if len(filesystem) == 0 {
--		return "", fmt.Errorf("Could not get zfs filesystem")
--	}
--
--	return filesystem, nil
--}
-diff -ur com_github_google_cadvisor.orig/fs/fs.go com_github_google_cadvisor/fs/fs.go
---- com_github_google_cadvisor.orig/fs/fs.go	2020-04-15 17:54:23.086143468 +0200
-+++ com_github_google_cadvisor/fs/fs.go	2020-04-16 15:39:57.294333566 +0200
-@@ -32,7 +32,6 @@
- 
- 	"github.com/google/cadvisor/devicemapper"
- 	"github.com/google/cadvisor/utils"
--	zfs "github.com/mistifyio/go-zfs"
- 
- 	"k8s.io/klog"
- 	"k8s.io/utils/mount"
-@@ -167,11 +166,9 @@
- 
- 	supportedFsType := map[string]bool{
- 		// all ext systems are checked through prefix.
--		"btrfs":   true,
- 		"overlay": true,
- 		"tmpfs":   true,
- 		"xfs":     true,
--		"zfs":     true,
- 	}
- 
- 	for _, mount := range mounts {
-@@ -200,17 +197,6 @@
- 		if mount.FsType == "tmpfs" {
- 			mount.Source = mount.MountPoint
- 		}
--		// btrfs fix: following workaround fixes wrong btrfs Major and Minor Ids reported in /proc/self/mountinfo.
--		// instead of using values from /proc/self/mountinfo we use stat to get Ids from btrfs mount point
--		if mount.FsType == "btrfs" && mount.Major == 0 && strings.HasPrefix(mount.Source, "/dev/") {
--			major, minor, err := getBtrfsMajorMinorIds(&mount)
--			if err != nil {
--				klog.Warningf("%s", err)
--			} else {
--				mount.Major = major
--				mount.Minor = minor
--			}
--		}
- 
- 		// overlay fix: Making mount source unique for all overlay mounts, using the mount's major and minor ids.
- 		if mount.FsType == "overlay" {
-@@ -312,7 +298,7 @@
- 
- 	// TODO(rjnagal): Detect docker root and graphdriver directories from docker info.
- 	dockerRoot := context.Docker.Root
--	for _, dir := range []string{"devicemapper", "btrfs", "aufs", "overlay", "overlay2", "zfs"} {
-+	for _, dir := range []string{"devicemapper", "overlay", "overlay2"} {
- 		dockerImagePaths[path.Join(dockerRoot, dir)] = struct{}{}
- 	}
- 	for dockerRoot != "/" && dockerRoot != "." {
-@@ -390,14 +376,6 @@
- 				fs.Capacity, fs.Free, fs.Available, err = getDMStats(device, partition.blockSize)
- 				klog.V(5).Infof("got devicemapper fs capacity stats: capacity: %v free: %v available: %v:", fs.Capacity, fs.Free, fs.Available)
- 				fs.Type = DeviceMapper
--			case ZFS.String():
--				if _, devzfs := os.Stat("/dev/zfs"); os.IsExist(devzfs) {
--					fs.Capacity, fs.Free, fs.Available, err = getZfstats(device)
--					fs.Type = ZFS
--					break
--				}
--				// if /dev/zfs is not present default to VFS
--				fallthrough
- 			default:
- 				var inodes, inodesFree uint64
- 				if utils.FileExists(partition.mountpoint) {
-@@ -521,30 +499,6 @@
- 		}
- 	}
- 
--	mount, found := self.mounts[dir]
--	// try the parent dir if not found until we reach the root dir
--	// this is an issue on btrfs systems where the directory is not
--	// the subvolume
--	for !found {
--		pathdir, _ := filepath.Split(dir)
--		// break when we reach root
--		if pathdir == "/" {
--			break
--		}
--		// trim "/" from the new parent path otherwise the next possible
--		// filepath.Split in the loop will not split the string any further
--		dir = strings.TrimSuffix(pathdir, "/")
--		mount, found = self.mounts[dir]
--	}
--
--	if found && mount.FsType == "btrfs" && mount.Major == 0 && strings.HasPrefix(mount.Source, "/dev/") {
--		major, minor, err := getBtrfsMajorMinorIds(&mount)
--		if err != nil {
--			klog.Warningf("%s", err)
--		} else {
--			return &DeviceInfo{mount.Source, uint(major), uint(minor)}, nil
--		}
--	}
- 	return nil, fmt.Errorf("could not find device with major: %d, minor: %d in cached partitions map", major, minor)
- }
- 
-@@ -715,18 +669,6 @@
- 	return used, total, nil
- }
- 
--// getZfstats returns ZFS mount stats using zfsutils
--func getZfstats(poolName string) (uint64, uint64, uint64, error) {
--	dataset, err := zfs.GetDataset(poolName)
--	if err != nil {
--		return 0, 0, 0, err
--	}
--
--	total := dataset.Used + dataset.Avail + dataset.Usedbydataset
--
--	return total, dataset.Avail, dataset.Avail, nil
--}
--
- // Simple io.Writer implementation that counts how many bytes were written.
- type byteCounter struct{ bytesWritten uint64 }
- 
-@@ -734,33 +676,3 @@
- 	b.bytesWritten += uint64(len(p))
- 	return len(p), nil
- }
--
--// Get major and minor Ids for a mount point using btrfs as filesystem.
--func getBtrfsMajorMinorIds(mount *mount.MountInfo) (int, int, error) {
--	// btrfs fix: following workaround fixes wrong btrfs Major and Minor Ids reported in /proc/self/mountinfo.
--	// instead of using values from /proc/self/mountinfo we use stat to get Ids from btrfs mount point
--
--	buf := new(syscall.Stat_t)
--	err := syscall.Stat(mount.Source, buf)
--	if err != nil {
--		err = fmt.Errorf("stat failed on %s with error: %s", mount.Source, err)
--		return 0, 0, err
--	}
--
--	klog.V(4).Infof("btrfs mount %#v", mount)
--	if buf.Mode&syscall.S_IFMT == syscall.S_IFBLK {
--		err := syscall.Stat(mount.MountPoint, buf)
--		if err != nil {
--			err = fmt.Errorf("stat failed on %s with error: %s", mount.MountPoint, err)
--			return 0, 0, err
--		}
--
--		// The type Dev and Rdev in Stat_t are 32bit on mips.
--		klog.V(4).Infof("btrfs dev major:minor %d:%d\n", int(major(uint64(buf.Dev))), int(minor(uint64(buf.Dev))))    // nolint: unconvert
--		klog.V(4).Infof("btrfs rdev major:minor %d:%d\n", int(major(uint64(buf.Rdev))), int(minor(uint64(buf.Rdev)))) // nolint: unconvert
--
--		return int(major(uint64(buf.Dev))), int(minor(uint64(buf.Dev))), nil // nolint: unconvert
--	} else {
--		return 0, 0, fmt.Errorf("%s is not a block device", mount.Source)
--	}
--}
-diff -ur com_github_google_cadvisor.orig/fs/fs_test.go com_github_google_cadvisor/fs/fs_test.go
---- com_github_google_cadvisor.orig/fs/fs_test.go	2020-04-15 17:54:23.086143468 +0200
-+++ com_github_google_cadvisor/fs/fs_test.go	2020-04-16 15:10:42.829856068 +0200
-@@ -516,7 +516,6 @@
- 				{Root: "/", MountPoint: "/b", Source: "/dev/sdb", FsType: "ext4", Major: 253, Minor: 1},
- 				{Root: "/", MountPoint: "/c", Source: "/dev/sdc", FsType: "btrfs", Major: 253, Minor: 2},
- 				{Root: "/", MountPoint: "/d", Source: "/dev/sdd", FsType: "xfs", Major: 253, Minor: 3},
--				{Root: "/", MountPoint: "/e", Source: "/dev/sde", FsType: "zfs", Major: 253, Minor: 4},
- 				{Root: "/", MountPoint: "/f", Source: "overlay", FsType: "overlay", Major: 253, Minor: 5},
- 				{Root: "/", MountPoint: "/test1", Source: "tmpfs", FsType: "tmpfs", Major: 253, Minor: 4},
- 				{Root: "/", MountPoint: "/test2", Source: "tmpfs", FsType: "tmpfs", Major: 253, Minor: 4},
-@@ -526,7 +525,6 @@
- 				"/dev/sdb":      {fsType: "ext4", mountpoint: "/b", major: 253, minor: 1},
- 				"/dev/sdc":      {fsType: "btrfs", mountpoint: "/c", major: 253, minor: 2},
- 				"/dev/sdd":      {fsType: "xfs", mountpoint: "/d", major: 253, minor: 3},
--				"/dev/sde":      {fsType: "zfs", mountpoint: "/e", major: 253, minor: 4},
- 				"overlay_253-5": {fsType: "overlay", mountpoint: "/f", major: 253, minor: 5},
- 				"/test1":        {fsType: "tmpfs", mountpoint: "/test1", major: 253, minor: 4},
- 				"/test2":        {fsType: "tmpfs", mountpoint: "/test2", major: 253, minor: 4},
-diff -ur com_github_google_cadvisor.orig/fs/types.go com_github_google_cadvisor/fs/types.go
---- com_github_google_cadvisor.orig/fs/types.go	2020-04-15 17:54:23.086143468 +0200
-+++ com_github_google_cadvisor/fs/types.go	2020-04-16 15:10:48.264872763 +0200
-@@ -47,7 +47,6 @@
- }
- 
- const (
--	ZFS          FsType = "zfs"
- 	DeviceMapper FsType = "devicemapper"
- 	VFS          FsType = "vfs"
- )
diff --git a/third_party/go/patches/k8s-kubernetes.patch b/third_party/go/patches/k8s-kubernetes.patch
index 27a1dec..49250e5 100644
--- a/third_party/go/patches/k8s-kubernetes.patch
+++ b/third_party/go/patches/k8s-kubernetes.patch
@@ -209,7 +209,7 @@
 @@ -28,10 +28,6 @@
  	"k8s.io/component-base/logs"
  	"k8s.io/component-base/version/verflag"
- 	"k8s.io/klog"
+ 	"k8s.io/klog/v2"
 -
 -	// ensure libs have a chance to globally register their flags
 -	_ "k8s.io/kubernetes/pkg/credentialprovider/azure"
@@ -303,42 +303,6 @@
  	allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
  	return allPlugins, nil
  }
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/plugins_providers.go io_k8s_kubernetes/cmd/kubelet/app/plugins_providers.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/plugins_providers.go	2020-04-15 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kubelet/app/plugins_providers.go	2020-04-15 16:29:49.402465237 +0200
-@@ -24,13 +24,7 @@
- 	"k8s.io/klog"
- 	"k8s.io/kubernetes/pkg/features"
- 	"k8s.io/kubernetes/pkg/volume"
--	"k8s.io/kubernetes/pkg/volume/awsebs"
--	"k8s.io/kubernetes/pkg/volume/azure_dd"
--	"k8s.io/kubernetes/pkg/volume/azure_file"
--	"k8s.io/kubernetes/pkg/volume/cinder"
- 	"k8s.io/kubernetes/pkg/volume/csimigration"
--	"k8s.io/kubernetes/pkg/volume/gcepd"
--	"k8s.io/kubernetes/pkg/volume/vsphere_volume"
- )
- 
- type probeFn func() []volume.VolumePlugin
-@@ -60,11 +54,6 @@
- 
- func appendLegacyProviderVolumes(allPlugins []volume.VolumePlugin, featureGate featuregate.FeatureGate) ([]volume.VolumePlugin, error) {
- 	pluginMigrationStatus := make(map[string]pluginInfo)
--	pluginMigrationStatus[plugins.AWSEBSInTreePluginName] = pluginInfo{pluginMigrationFeature: features.CSIMigrationAWS, pluginMigrationCompleteFeature: features.CSIMigrationAWSComplete, pluginProbeFunction: awsebs.ProbeVolumePlugins}
--	pluginMigrationStatus[plugins.GCEPDInTreePluginName] = pluginInfo{pluginMigrationFeature: features.CSIMigrationGCE, pluginMigrationCompleteFeature: features.CSIMigrationGCEComplete, pluginProbeFunction: gcepd.ProbeVolumePlugins}
--	pluginMigrationStatus[plugins.CinderInTreePluginName] = pluginInfo{pluginMigrationFeature: features.CSIMigrationOpenStack, pluginMigrationCompleteFeature: features.CSIMigrationOpenStackComplete, pluginProbeFunction: cinder.ProbeVolumePlugins}
--	pluginMigrationStatus[plugins.AzureDiskInTreePluginName] = pluginInfo{pluginMigrationFeature: features.CSIMigrationAzureDisk, pluginMigrationCompleteFeature: features.CSIMigrationAzureDiskComplete, pluginProbeFunction: azure_dd.ProbeVolumePlugins}
--	pluginMigrationStatus[plugins.AzureFileInTreePluginName] = pluginInfo{pluginMigrationFeature: features.CSIMigrationAzureFile, pluginMigrationCompleteFeature: features.CSIMigrationAzureFileComplete, pluginProbeFunction: azure_file.ProbeVolumePlugins}
- 
- 	var err error
- 	for pluginName, pluginInfo := range pluginMigrationStatus {
-@@ -74,6 +63,5 @@
- 		}
- 	}
- 
--	allPlugins = append(allPlugins, vsphere_volume.ProbeVolumePlugins()...)
- 	return allPlugins, nil
- }
 diff -ur io_k8s_kubernetes.orig/cmd/kubelet/BUILD io_k8s_kubernetes/cmd/kubelet/BUILD
 --- io_k8s_kubernetes.orig/cmd/kubelet/BUILD	2020-04-15 13:43:57.827669732 +0200
 +++ io_k8s_kubernetes/cmd/kubelet/BUILD	2020-04-20 14:56:20.446965836 +0200
diff --git a/third_party/go/patches/k8s-native-metrics.patch b/third_party/go/patches/k8s-native-metrics.patch
index 9568764..859ee74 100644
--- a/third_party/go/patches/k8s-native-metrics.patch
+++ b/third_party/go/patches/k8s-native-metrics.patch
@@ -43,7 +43,7 @@
          "@io_k8s_client_go//tools/record:go_default_library",
          "@io_k8s_cloud_provider//:go_default_library",
 +        "@org_golang_x_sys//unix:go_default_library",
-         "@io_k8s_klog//:go_default_library",
+         "@io_k8s_klog_v2//:go_default_library",
          "@io_k8s_utils//exec:go_default_library",
          "@io_k8s_utils//mount:go_default_library",
 @@ -55,6 +57,7 @@ go_test(
diff --git a/third_party/go/patches/k8s-native-mounter.patch b/third_party/go/patches/k8s-native-mounter.patch
index 5e95bfd..2f754b6 100644
--- a/third_party/go/patches/k8s-native-mounter.patch
+++ b/third_party/go/patches/k8s-native-mounter.patch
@@ -60,7 +60,7 @@
  	"syscall"
  
 +	"golang.org/x/sys/unix"
- 	"k8s.io/klog"
+ 	"k8s.io/klog/v2"
  	utilexec "k8s.io/utils/exec"
  	utilio "k8s.io/utils/io"
 @@ -49,8 +51,10 @@ const (