Merge pull request #70889 from dims/update-cadvisor-and-other-repos-for-klog-take-2

Update cadvisor and other repos for klog
This commit is contained in:
k8s-ci-robot 2018-11-10 07:08:39 -08:00 committed by GitHub
commit a3ccea9d87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1398 changed files with 12747 additions and 10880 deletions

213
Godeps/Godeps.json generated
View File

@ -1789,10 +1789,6 @@
"Comment": "v0.5", "Comment": "v0.5",
"Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
}, },
{
"ImportPath": "github.com/golang/glog",
"Rev": "44145f04b68cf362d9c4df2182967c2275eaefed"
},
{ {
"ImportPath": "github.com/golang/groupcache/lru", "ImportPath": "github.com/golang/groupcache/lru",
"Rev": "02826c3e79038b59d737d3b1c0a1d937f71a4433" "Rev": "02826c3e79038b59d737d3b1c0a1d937f71a4433"
@ -1847,188 +1843,188 @@
}, },
{ {
"ImportPath": "github.com/google/cadvisor/accelerators", "ImportPath": "github.com/google/cadvisor/accelerators",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/cache/memory", "ImportPath": "github.com/google/cadvisor/cache/memory",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/client/v2", "ImportPath": "github.com/google/cadvisor/client/v2",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/collector", "ImportPath": "github.com/google/cadvisor/collector",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container", "ImportPath": "github.com/google/cadvisor/container",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/common", "ImportPath": "github.com/google/cadvisor/container/common",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/containerd", "ImportPath": "github.com/google/cadvisor/container/containerd",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/crio", "ImportPath": "github.com/google/cadvisor/container/crio",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/docker", "ImportPath": "github.com/google/cadvisor/container/docker",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/libcontainer", "ImportPath": "github.com/google/cadvisor/container/libcontainer",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/mesos", "ImportPath": "github.com/google/cadvisor/container/mesos",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/raw", "ImportPath": "github.com/google/cadvisor/container/raw",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/rkt", "ImportPath": "github.com/google/cadvisor/container/rkt",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/container/systemd", "ImportPath": "github.com/google/cadvisor/container/systemd",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/devicemapper", "ImportPath": "github.com/google/cadvisor/devicemapper",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/events", "ImportPath": "github.com/google/cadvisor/events",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/fs", "ImportPath": "github.com/google/cadvisor/fs",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/info/v1", "ImportPath": "github.com/google/cadvisor/info/v1",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/info/v2", "ImportPath": "github.com/google/cadvisor/info/v2",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/machine", "ImportPath": "github.com/google/cadvisor/machine",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager", "ImportPath": "github.com/google/cadvisor/manager",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager/watcher", "ImportPath": "github.com/google/cadvisor/manager/watcher",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager/watcher/raw", "ImportPath": "github.com/google/cadvisor/manager/watcher/raw",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", "ImportPath": "github.com/google/cadvisor/manager/watcher/rkt",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/metrics", "ImportPath": "github.com/google/cadvisor/metrics",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/storage", "ImportPath": "github.com/google/cadvisor/storage",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/summary", "ImportPath": "github.com/google/cadvisor/summary",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils", "ImportPath": "github.com/google/cadvisor/utils",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/cloudinfo", "ImportPath": "github.com/google/cadvisor/utils/cloudinfo",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/cpuload", "ImportPath": "github.com/google/cadvisor/utils/cpuload",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", "ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/docker", "ImportPath": "github.com/google/cadvisor/utils/docker",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/oomparser", "ImportPath": "github.com/google/cadvisor/utils/oomparser",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/sysfs", "ImportPath": "github.com/google/cadvisor/utils/sysfs",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/utils/sysinfo", "ImportPath": "github.com/google/cadvisor/utils/sysinfo",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/version", "ImportPath": "github.com/google/cadvisor/version",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/cadvisor/zfs", "ImportPath": "github.com/google/cadvisor/zfs",
"Comment": "v0.31.0", "Comment": "v0.31.0-34-g4c77cd7d7f7114",
"Rev": "fc17731afdcf184832482e324913c8f1a91b54ee" "Rev": "4c77cd7d7f7114bc8643c5a7d0fd1cbbb661d9c0"
}, },
{ {
"ImportPath": "github.com/google/certificate-transparency-go", "ImportPath": "github.com/google/certificate-transparency-go",
@ -2361,6 +2357,11 @@
"ImportPath": "github.com/kardianos/osext", "ImportPath": "github.com/kardianos/osext",
"Rev": "8fef92e41e22a70e700a96b29f066cda30ea24ef" "Rev": "8fef92e41e22a70e700a96b29f066cda30ea24ef"
}, },
{
"ImportPath": "github.com/karrick/godirwalk",
"Comment": "v1.7.5",
"Rev": "2de2192f9e35ce981c152a873ed943b93b79ced4"
},
{ {
"ImportPath": "github.com/kisielk/sqlstruct", "ImportPath": "github.com/kisielk/sqlstruct",
"Rev": "648daed35d49dac24a4bff253b190a80da3ab6a5" "Rev": "648daed35d49dac24a4bff253b190a80da3ab6a5"
@ -2380,7 +2381,7 @@
}, },
{ {
"ImportPath": "github.com/kubernetes/repo-infra/kazel", "ImportPath": "github.com/kubernetes/repo-infra/kazel",
"Rev": "d9bb9fdc907665c61c228baa64fed9b91c7dc1b0" "Rev": "f2459dc75fc429b813d92c0622b408fd7f0d4cac"
}, },
{ {
"ImportPath": "github.com/lib/pq", "ImportPath": "github.com/lib/pq",
@ -3002,6 +3003,10 @@
"ImportPath": "github.com/shurcooL/sanitized_anchor_name", "ImportPath": "github.com/shurcooL/sanitized_anchor_name",
"Rev": "10ef21a441db47d8b13ebcc5fd2310f636973c77" "Rev": "10ef21a441db47d8b13ebcc5fd2310f636973c77"
}, },
{
"ImportPath": "github.com/sigma/go-inotify",
"Rev": "c87b6cf5033d2c6486046f045eeebdc3d910fd38"
},
{ {
"ImportPath": "github.com/sirupsen/logrus", "ImportPath": "github.com/sirupsen/logrus",
"Comment": "v1.0.3-11-g89742aefa4b206", "Comment": "v1.0.3-11-g89742aefa4b206",
@ -3897,100 +3902,104 @@
}, },
{ {
"ImportPath": "k8s.io/gengo/args", "ImportPath": "k8s.io/gengo/args",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators", "ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators", "ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/import-boss/generators", "ImportPath": "k8s.io/gengo/examples/import-boss/generators",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/set-gen/generators", "ImportPath": "k8s.io/gengo/examples/set-gen/generators",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/examples/set-gen/sets", "ImportPath": "k8s.io/gengo/examples/set-gen/sets",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/generator", "ImportPath": "k8s.io/gengo/generator",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/namer", "ImportPath": "k8s.io/gengo/namer",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/parser", "ImportPath": "k8s.io/gengo/parser",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/gengo/types", "ImportPath": "k8s.io/gengo/types",
"Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2" "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
}, },
{ {
"ImportPath": "k8s.io/heapster/metrics/api/v1/types", "ImportPath": "k8s.io/heapster/metrics/api/v1/types",
"Comment": "v1.2.0-beta.1", "Comment": "v1.2.0-beta.1",
"Rev": "c2ac40f1adf8c42a79badddb2a2acd673cae3bcb" "Rev": "c2ac40f1adf8c42a79badddb2a2acd673cae3bcb"
}, },
{
"ImportPath": "k8s.io/klog",
"Rev": "8139d8cb77af419532b33dfa7dd09fbc5f1d344f"
},
{ {
"ImportPath": "k8s.io/kube-openapi/cmd/openapi-gen", "ImportPath": "k8s.io/kube-openapi/cmd/openapi-gen",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/cmd/openapi-gen/args", "ImportPath": "k8s.io/kube-openapi/cmd/openapi-gen/args",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/aggregator", "ImportPath": "k8s.io/kube-openapi/pkg/aggregator",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/builder", "ImportPath": "k8s.io/kube-openapi/pkg/builder",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/common", "ImportPath": "k8s.io/kube-openapi/pkg/common",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/generators", "ImportPath": "k8s.io/kube-openapi/pkg/generators",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/generators/rules", "ImportPath": "k8s.io/kube-openapi/pkg/generators/rules",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/handler", "ImportPath": "k8s.io/kube-openapi/pkg/handler",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/util", "ImportPath": "k8s.io/kube-openapi/pkg/util",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto", "ImportPath": "k8s.io/kube-openapi/pkg/util/proto",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto/testing", "ImportPath": "k8s.io/kube-openapi/pkg/util/proto/testing",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto/validation", "ImportPath": "k8s.io/kube-openapi/pkg/util/proto/validation",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/kube-openapi/pkg/util/sets", "ImportPath": "k8s.io/kube-openapi/pkg/util/sets",
"Rev": "72693cb1fadd73ae2742f6fe29af77d1aecdd8cd" "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d"
}, },
{ {
"ImportPath": "k8s.io/utils/clock", "ImportPath": "k8s.io/utils/clock",

466
Godeps/LICENSES generated
View File

@ -50388,205 +50388,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================================================ ================================================================================
================================================================================
= vendor/github.com/golang/glog licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
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.
= vendor/github.com/golang/glog/LICENSE 19cbd64715b51267a47bf3750cc6a8a5
================================================================================
================================================================================ ================================================================================
= vendor/github.com/golang/groupcache/lru licensed under: = = vendor/github.com/golang/groupcache/lru licensed under: =
@ -72487,6 +72288,39 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================================================ ================================================================================
================================================================================
= vendor/github.com/karrick/godirwalk licensed under: =
BSD 2-Clause License
Copyright (c) 2017, Karrick McDermott
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/karrick/godirwalk/LICENSE 7bea66fc0a31c6329f9392034bee75d2
================================================================================
================================================================================ ================================================================================
= vendor/github.com/kisielk/sqlstruct licensed under: = = vendor/github.com/kisielk/sqlstruct licensed under: =
@ -87880,6 +87714,41 @@ THE SOFTWARE.
================================================================================ ================================================================================
================================================================================
= vendor/github.com/sigma/go-inotify licensed under: =
Copyright (c) 2009 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/sigma/go-inotify/LICENSE 5d4950ecb7b26d2c5e4e7b4e0dd74707
================================================================================
================================================================================ ================================================================================
= vendor/github.com/sirupsen/logrus licensed under: = = vendor/github.com/sirupsen/logrus licensed under: =
@ -108888,6 +108757,205 @@ Apache License
================================================================================ ================================================================================
================================================================================
= vendor/k8s.io/klog licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
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.
= vendor/k8s.io/klog/LICENSE 19cbd64715b51267a47bf3750cc6a8a5
================================================================================
================================================================================ ================================================================================
= vendor/k8s.io/kube-openapi/cmd/openapi-gen licensed under: = = vendor/k8s.io/kube-openapi/cmd/openapi-gen licensed under: =

View File

@ -22,7 +22,7 @@ go_library(
"//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -24,11 +24,11 @@ import (
"strings" "strings"
"time" "time"
"github.com/golang/glog"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
restclient "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd"
clientapi "k8s.io/client-go/tools/clientcmd/api" clientapi "k8s.io/client-go/tools/clientcmd/api"
"k8s.io/klog"
api "k8s.io/kubernetes/pkg/apis/core" api "k8s.io/kubernetes/pkg/apis/core"
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
) )
@ -61,22 +61,22 @@ func flattenSubsets(subsets []api.EndpointSubset) []string {
func main() { func main() {
flag.Parse() flag.Parse()
glog.Info("Kubernetes Elasticsearch logging discovery") klog.Info("Kubernetes Elasticsearch logging discovery")
cc, err := buildConfigFromEnvs(os.Getenv("APISERVER_HOST"), os.Getenv("KUBE_CONFIG_FILE")) cc, err := buildConfigFromEnvs(os.Getenv("APISERVER_HOST"), os.Getenv("KUBE_CONFIG_FILE"))
if err != nil { if err != nil {
glog.Fatalf("Failed to make client: %v", err) klog.Fatalf("Failed to make client: %v", err)
} }
client, err := clientset.NewForConfig(cc) client, err := clientset.NewForConfig(cc)
if err != nil { if err != nil {
glog.Fatalf("Failed to make client: %v", err) klog.Fatalf("Failed to make client: %v", err)
} }
namespace := metav1.NamespaceSystem namespace := metav1.NamespaceSystem
envNamespace := os.Getenv("NAMESPACE") envNamespace := os.Getenv("NAMESPACE")
if envNamespace != "" { if envNamespace != "" {
if _, err := client.Core().Namespaces().Get(envNamespace, metav1.GetOptions{}); err != nil { if _, err := client.Core().Namespaces().Get(envNamespace, metav1.GetOptions{}); err != nil {
glog.Fatalf("%s namespace doesn't exist: %v", envNamespace, err) klog.Fatalf("%s namespace doesn't exist: %v", envNamespace, err)
} }
namespace = envNamespace namespace = envNamespace
} }
@ -98,7 +98,7 @@ func main() {
// If we did not find an elasticsearch logging service then log a warning // If we did not find an elasticsearch logging service then log a warning
// and return without adding any unicast hosts. // and return without adding any unicast hosts.
if elasticsearch == nil { if elasticsearch == nil {
glog.Warningf("Failed to find the elasticsearch-logging service: %v", err) klog.Warningf("Failed to find the elasticsearch-logging service: %v", err)
return return
} }
@ -112,17 +112,17 @@ func main() {
continue continue
} }
addrs = flattenSubsets(endpoints.Subsets) addrs = flattenSubsets(endpoints.Subsets)
glog.Infof("Found %s", addrs) klog.Infof("Found %s", addrs)
if len(addrs) > 0 && len(addrs) >= count { if len(addrs) > 0 && len(addrs) >= count {
break break
} }
} }
// If there was an error finding endpoints then log a warning and quit. // If there was an error finding endpoints then log a warning and quit.
if err != nil { if err != nil {
glog.Warningf("Error finding endpoints: %v", err) klog.Warningf("Error finding endpoints: %v", err)
return return
} }
glog.Infof("Endpoints = %s", addrs) klog.Infof("Endpoints = %s", addrs)
fmt.Printf("discovery.zen.ping.unicast.hosts: [%s]\n", strings.Join(addrs, ", ")) fmt.Printf("discovery.zen.ping.unicast.hosts: [%s]\n", strings.Join(addrs, ", "))
} }

View File

@ -17,12 +17,12 @@ go_library(
importpath = "k8s.io/kubernetes/cluster/images/etcd-version-monitor", importpath = "k8s.io/kubernetes/cluster/images/etcd-version-monitor",
deps = [ deps = [
"//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library",
"//vendor/github.com/prometheus/client_model/go:go_default_library", "//vendor/github.com/prometheus/client_model/go:go_default_library",
"//vendor/github.com/prometheus/common/expfmt:go_default_library", "//vendor/github.com/prometheus/common/expfmt:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -25,12 +25,12 @@ import (
"time" "time"
"github.com/gogo/protobuf/proto" "github.com/gogo/protobuf/proto"
"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/client_golang/prometheus/promhttp"
dto "github.com/prometheus/client_model/go" dto "github.com/prometheus/client_model/go"
"github.com/prometheus/common/expfmt" "github.com/prometheus/common/expfmt"
"github.com/spf13/pflag" "github.com/spf13/pflag"
"k8s.io/klog"
) )
// Initialize the prometheus instrumentation and client related flags. // Initialize the prometheus instrumentation and client related flags.
@ -245,7 +245,7 @@ func getVersionPeriodically(stopCh <-chan struct{}) {
lastSeenBinaryVersion := "" lastSeenBinaryVersion := ""
for { for {
if err := getVersion(&lastSeenBinaryVersion); err != nil { if err := getVersion(&lastSeenBinaryVersion); err != nil {
glog.Errorf("Failed to fetch etcd version: %v", err) klog.Errorf("Failed to fetch etcd version: %v", err)
} }
select { select {
case <-stopCh: case <-stopCh:
@ -399,7 +399,7 @@ func main() {
go getVersionPeriodically(stopCh) go getVersionPeriodically(stopCh)
// Serve our metrics on listenAddress/metricsPath. // Serve our metrics on listenAddress/metricsPath.
glog.Infof("Listening on: %v", listenAddress) klog.Infof("Listening on: %v", listenAddress)
http.Handle(metricsPath, promhttp.HandlerFor(gatherer, promhttp.HandlerOpts{})) http.Handle(metricsPath, promhttp.HandlerFor(gatherer, promhttp.HandlerOpts{}))
glog.Errorf("Stopped listening/serving metrics: %v", http.ListenAndServe(listenAddress, nil)) klog.Errorf("Stopped listening/serving metrics: %v", http.ListenAndServe(listenAddress, nil))
} }

View File

@ -42,8 +42,8 @@ go_library(
"//vendor/github.com/coreos/etcd/wal:go_default_library", "//vendor/github.com/coreos/etcd/wal:go_default_library",
"//vendor/github.com/coreos/etcd/wal/walpb:go_default_library", "//vendor/github.com/coreos/etcd/wal/walpb:go_default_library",
"//vendor/github.com/coreos/go-semver/semver:go_default_library", "//vendor/github.com/coreos/go-semver/semver:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -25,7 +25,7 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/golang/glog" "k8s.io/klog"
) )
// DataDirectory provides utilities for initializing and backing up an // DataDirectory provides utilities for initializing and backing up an
@ -45,7 +45,7 @@ func OpenOrCreateDataDirectory(path string) (*DataDirectory, error) {
return nil, err return nil, err
} }
if !exists { if !exists {
glog.Infof("data directory '%s' does not exist, creating it", path) klog.Infof("data directory '%s' does not exist, creating it", path)
err := os.MkdirAll(path, 0777) err := os.MkdirAll(path, 0777)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create data directory %s: %v", path, err) return nil, fmt.Errorf("failed to create data directory %s: %v", path, err)
@ -67,7 +67,7 @@ func (d *DataDirectory) Initialize(target *EtcdVersionPair) error {
return err return err
} }
if isEmpty { if isEmpty {
glog.Infof("data directory '%s' is empty, writing target version '%s' to version.txt", d.path, target) klog.Infof("data directory '%s' is empty, writing target version '%s' to version.txt", d.path, target)
err = d.versionFile.Write(target) err = d.versionFile.Write(target)
if err != nil { if err != nil {
return fmt.Errorf("failed to write version.txt to '%s': %v", d.path, err) return fmt.Errorf("failed to write version.txt to '%s': %v", d.path, err)

View File

@ -21,8 +21,8 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
) )
const ( const (
@ -85,7 +85,7 @@ func runMigrate() {
if opts.name == "" { if opts.name == "" {
hostname, err := os.Hostname() hostname, err := os.Hostname()
if err != nil { if err != nil {
glog.Errorf("Error while getting hostname to supply default --name: %v", err) klog.Errorf("Error while getting hostname to supply default --name: %v", err)
os.Exit(1) os.Exit(1)
} }
opts.name = fmt.Sprintf("etcd-%s", hostname) opts.name = fmt.Sprintf("etcd-%s", hostname)
@ -98,29 +98,29 @@ func runMigrate() {
opts.initialCluster = fmt.Sprintf("%s=http://localhost:2380", opts.name) opts.initialCluster = fmt.Sprintf("%s=http://localhost:2380", opts.name)
} }
if opts.targetStorage == "" { if opts.targetStorage == "" {
glog.Errorf("--target-storage is required") klog.Errorf("--target-storage is required")
os.Exit(1) os.Exit(1)
} }
if opts.targetVersion == "" { if opts.targetVersion == "" {
glog.Errorf("--target-version is required") klog.Errorf("--target-version is required")
os.Exit(1) os.Exit(1)
} }
if opts.dataDir == "" { if opts.dataDir == "" {
glog.Errorf("--data-dir is required") klog.Errorf("--data-dir is required")
os.Exit(1) os.Exit(1)
} }
if opts.bundledVersionString == "" { if opts.bundledVersionString == "" {
glog.Errorf("--bundled-versions is required") klog.Errorf("--bundled-versions is required")
os.Exit(1) os.Exit(1)
} }
bundledVersions, err := ParseSupportedVersions(opts.bundledVersionString) bundledVersions, err := ParseSupportedVersions(opts.bundledVersionString)
if err != nil { if err != nil {
glog.Errorf("Failed to parse --supported-versions: %v", err) klog.Errorf("Failed to parse --supported-versions: %v", err)
} }
err = validateBundledVersions(bundledVersions, opts.binDir) err = validateBundledVersions(bundledVersions, opts.binDir)
if err != nil { if err != nil {
glog.Errorf("Failed to validate that 'etcd-<version>' and 'etcdctl-<version>' binaries exist in --bin-dir '%s' for all --bundled-verions '%s': %v", klog.Errorf("Failed to validate that 'etcd-<version>' and 'etcdctl-<version>' binaries exist in --bin-dir '%s' for all --bundled-verions '%s': %v",
opts.binDir, opts.bundledVersionString, err) opts.binDir, opts.bundledVersionString, err)
os.Exit(1) os.Exit(1)
} }
@ -139,7 +139,7 @@ func migrate(name string, port uint64, peerListenUrls string, peerAdvertiseUrls
dataDir, err := OpenOrCreateDataDirectory(dataDirPath) dataDir, err := OpenOrCreateDataDirectory(dataDirPath)
if err != nil { if err != nil {
glog.Errorf("Error opening or creating data directory %s: %v", dataDirPath, err) klog.Errorf("Error opening or creating data directory %s: %v", dataDirPath, err)
os.Exit(1) os.Exit(1)
} }
@ -158,7 +158,7 @@ func migrate(name string, port uint64, peerListenUrls string, peerAdvertiseUrls
} }
client, err := NewEtcdMigrateClient(cfg) client, err := NewEtcdMigrateClient(cfg)
if err != nil { if err != nil {
glog.Errorf("Migration failed: %v", err) klog.Errorf("Migration failed: %v", err)
os.Exit(1) os.Exit(1)
} }
defer client.Close() defer client.Close()
@ -167,7 +167,7 @@ func migrate(name string, port uint64, peerListenUrls string, peerAdvertiseUrls
err = migrator.MigrateIfNeeded(target) err = migrator.MigrateIfNeeded(target)
if err != nil { if err != nil {
glog.Errorf("Migration failed: %v", err) klog.Errorf("Migration failed: %v", err)
os.Exit(1) os.Exit(1)
} }
} }

View File

@ -29,7 +29,7 @@ import (
clientv2 "github.com/coreos/etcd/client" clientv2 "github.com/coreos/etcd/client"
"github.com/coreos/etcd/clientv3" "github.com/coreos/etcd/clientv3"
"github.com/golang/glog" "k8s.io/klog"
) )
// CombinedEtcdClient provides an implementation of EtcdMigrateClient using a combination of the etcd v2 client, v3 client // CombinedEtcdClient provides an implementation of EtcdMigrateClient using a combination of the etcd v2 client, v3 client
@ -202,13 +202,13 @@ func (e *CombinedEtcdClient) AttachLease(leaseDuration time.Duration) error {
if err != nil { if err != nil {
return fmt.Errorf("Error while creating lease: %v", err) return fmt.Errorf("Error while creating lease: %v", err)
} }
glog.Infof("Lease with TTL: %v created", lease.TTL) klog.Infof("Lease with TTL: %v created", lease.TTL)
glog.Infof("Attaching lease to %d entries", len(objectsResp.Kvs)) klog.Infof("Attaching lease to %d entries", len(objectsResp.Kvs))
for _, kv := range objectsResp.Kvs { for _, kv := range objectsResp.Kvs {
putResp, err := v3client.KV.Put(ctx, string(kv.Key), string(kv.Value), clientv3.WithLease(lease.ID), clientv3.WithPrevKV()) putResp, err := v3client.KV.Put(ctx, string(kv.Key), string(kv.Value), clientv3.WithLease(lease.ID), clientv3.WithPrevKV())
if err != nil { if err != nil {
glog.Errorf("Error while attaching lease to: %s", string(kv.Key)) klog.Errorf("Error while attaching lease to: %s", string(kv.Key))
} }
if bytes.Compare(putResp.PrevKv.Value, kv.Value) != 0 { if bytes.Compare(putResp.PrevKv.Value, kv.Value) != 0 {
return fmt.Errorf("concurrent access to key detected when setting lease on %s, expected previous value of %s but got %s", return fmt.Errorf("concurrent access to key detected when setting lease on %s, expected previous value of %s but got %s",

View File

@ -23,7 +23,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/golang/glog" "k8s.io/klog"
) )
// EtcdMigrateServer manages starting and stopping a versioned etcd server binary. // EtcdMigrateServer manages starting and stopping a versioned etcd server binary.
@ -75,10 +75,10 @@ func (r *EtcdMigrateServer) Start(version *EtcdVersion) error {
case <-interval.C: case <-interval.C:
err := r.client.SetEtcdVersionKeyValue(version) err := r.client.SetEtcdVersionKeyValue(version)
if err != nil { if err != nil {
glog.Infof("Still waiting for etcd to start, current error: %v", err) klog.Infof("Still waiting for etcd to start, current error: %v", err)
// keep waiting // keep waiting
} else { } else {
glog.Infof("Etcd on port %d is up.", r.cfg.port) klog.Infof("Etcd on port %d is up.", r.cfg.port)
r.cmd = etcdCmd r.cmd = etcdCmd
return nil return nil
} }
@ -114,7 +114,7 @@ func (r *EtcdMigrateServer) Stop() error {
case <-stopped: case <-stopped:
return return
case <-timedout: case <-timedout:
glog.Infof("etcd server has not terminated gracefully after %s, killing it.", gracefulWait) klog.Infof("etcd server has not terminated gracefully after %s, killing it.", gracefulWait)
r.cmd.Process.Kill() r.cmd.Process.Kill()
return return
} }
@ -122,11 +122,11 @@ func (r *EtcdMigrateServer) Stop() error {
err = r.cmd.Wait() err = r.cmd.Wait()
stopped <- true stopped <- true
if exiterr, ok := err.(*exec.ExitError); ok { if exiterr, ok := err.(*exec.ExitError); ok {
glog.Infof("etcd server stopped (signal: %s)", exiterr.Error()) klog.Infof("etcd server stopped (signal: %s)", exiterr.Error())
// stopped // stopped
} else if err != nil { } else if err != nil {
return fmt.Errorf("error waiting for etcd to stop: %v", err) return fmt.Errorf("error waiting for etcd to stop: %v", err)
} }
glog.Infof("Stopped etcd server %s", r.cfg.name) klog.Infof("Stopped etcd server %s", r.cfg.name)
return nil return nil
} }

View File

@ -23,7 +23,7 @@ import (
"time" "time"
"github.com/blang/semver" "github.com/blang/semver"
"github.com/golang/glog" "k8s.io/klog"
) )
// EtcdMigrateCfg provides all configuration required to perform etcd data upgrade/downgrade migrations. // EtcdMigrateCfg provides all configuration required to perform etcd data upgrade/downgrade migrations.
@ -63,7 +63,7 @@ type Migrator struct {
// MigrateIfNeeded upgrades or downgrades the etcd data directory to the given target version. // MigrateIfNeeded upgrades or downgrades the etcd data directory to the given target version.
func (m *Migrator) MigrateIfNeeded(target *EtcdVersionPair) error { func (m *Migrator) MigrateIfNeeded(target *EtcdVersionPair) error {
glog.Infof("Starting migration to %s", target) klog.Infof("Starting migration to %s", target)
err := m.dataDirectory.Initialize(target) err := m.dataDirectory.Initialize(target)
if err != nil { if err != nil {
return fmt.Errorf("failed to initialize data directory %s: %v", m.dataDirectory.path, err) return fmt.Errorf("failed to initialize data directory %s: %v", m.dataDirectory.path, err)
@ -84,28 +84,28 @@ func (m *Migrator) MigrateIfNeeded(target *EtcdVersionPair) error {
} }
for { for {
glog.Infof("Converging current version '%s' to target version '%s'", current, target) klog.Infof("Converging current version '%s' to target version '%s'", current, target)
currentNextMinorVersion := &EtcdVersion{Version: semver.Version{Major: current.version.Major, Minor: current.version.Minor + 1}} currentNextMinorVersion := &EtcdVersion{Version: semver.Version{Major: current.version.Major, Minor: current.version.Minor + 1}}
switch { switch {
case current.version.MajorMinorEquals(target.version) || currentNextMinorVersion.MajorMinorEquals(target.version): case current.version.MajorMinorEquals(target.version) || currentNextMinorVersion.MajorMinorEquals(target.version):
glog.Infof("current version '%s' equals or is one minor version previous of target version '%s' - migration complete", current, target) klog.Infof("current version '%s' equals or is one minor version previous of target version '%s' - migration complete", current, target)
err = m.dataDirectory.versionFile.Write(target) err = m.dataDirectory.versionFile.Write(target)
if err != nil { if err != nil {
return fmt.Errorf("failed to write version.txt to '%s': %v", m.dataDirectory.path, err) return fmt.Errorf("failed to write version.txt to '%s': %v", m.dataDirectory.path, err)
} }
return nil return nil
case current.storageVersion == storageEtcd2 && target.storageVersion == storageEtcd3: case current.storageVersion == storageEtcd2 && target.storageVersion == storageEtcd3:
glog.Infof("upgrading from etcd2 storage to etcd3 storage") klog.Infof("upgrading from etcd2 storage to etcd3 storage")
current, err = m.etcd2ToEtcd3Upgrade(current, target) current, err = m.etcd2ToEtcd3Upgrade(current, target)
case current.version.Major == 3 && target.version.Major == 2: case current.version.Major == 3 && target.version.Major == 2:
glog.Infof("downgrading from etcd 3.x to 2.x") klog.Infof("downgrading from etcd 3.x to 2.x")
current, err = m.rollbackToEtcd2(current, target) current, err = m.rollbackToEtcd2(current, target)
case current.version.Major == target.version.Major && current.version.Minor < target.version.Minor: case current.version.Major == target.version.Major && current.version.Minor < target.version.Minor:
stepVersion := m.cfg.supportedVersions.NextVersionPair(current) stepVersion := m.cfg.supportedVersions.NextVersionPair(current)
glog.Infof("upgrading etcd from %s to %s", current, stepVersion) klog.Infof("upgrading etcd from %s to %s", current, stepVersion)
current, err = m.minorVersionUpgrade(current, stepVersion) current, err = m.minorVersionUpgrade(current, stepVersion)
case current.version.Major == 3 && target.version.Major == 3 && current.version.Minor > target.version.Minor: case current.version.Major == 3 && target.version.Major == 3 && current.version.Minor > target.version.Minor:
glog.Infof("rolling etcd back from %s to %s", current, target) klog.Infof("rolling etcd back from %s to %s", current, target)
current, err = m.rollbackEtcd3MinorVersion(current, target) current, err = m.rollbackEtcd3MinorVersion(current, target)
} }
if err != nil { if err != nil {
@ -116,13 +116,13 @@ func (m *Migrator) MigrateIfNeeded(target *EtcdVersionPair) error {
func (m *Migrator) backupEtcd2(current *EtcdVersion) error { func (m *Migrator) backupEtcd2(current *EtcdVersion) error {
backupDir := fmt.Sprintf("%s/%s", m.dataDirectory, "migration-backup") backupDir := fmt.Sprintf("%s/%s", m.dataDirectory, "migration-backup")
glog.Infof("Backup etcd before starting migration") klog.Infof("Backup etcd before starting migration")
err := os.Mkdir(backupDir, 0666) err := os.Mkdir(backupDir, 0666)
if err != nil { if err != nil {
return fmt.Errorf("failed to create backup directory before starting migration: %v", err) return fmt.Errorf("failed to create backup directory before starting migration: %v", err)
} }
m.client.Backup(current, backupDir) m.client.Backup(current, backupDir)
glog.Infof("Backup done in %s", backupDir) klog.Infof("Backup done in %s", backupDir)
return nil return nil
} }
@ -131,7 +131,7 @@ func (m *Migrator) rollbackEtcd3MinorVersion(current *EtcdVersionPair, target *E
return nil, fmt.Errorf("rollback from %s to %s not supported, only rollbacks to the previous minor version are supported", current.version, target.version) return nil, fmt.Errorf("rollback from %s to %s not supported, only rollbacks to the previous minor version are supported", current.version, target.version)
} }
glog.Infof("Performing etcd %s -> %s rollback", current.version, target.version) klog.Infof("Performing etcd %s -> %s rollback", current.version, target.version)
err := m.dataDirectory.Backup() err := m.dataDirectory.Backup()
if err != nil { if err != nil {
return nil, err return nil, err
@ -145,14 +145,14 @@ func (m *Migrator) rollbackEtcd3MinorVersion(current *EtcdVersionPair, target *E
// Start current version of etcd. // Start current version of etcd.
runner := m.newServer() runner := m.newServer()
glog.Infof("Starting etcd version %s to capture rollback snapshot.", current.version) klog.Infof("Starting etcd version %s to capture rollback snapshot.", current.version)
err = runner.Start(current.version) err = runner.Start(current.version)
if err != nil { if err != nil {
glog.Fatalf("Unable to automatically downgrade etcd: starting etcd version %s to capture rollback snapshot failed: %v", current.version, err) klog.Fatalf("Unable to automatically downgrade etcd: starting etcd version %s to capture rollback snapshot failed: %v", current.version, err)
return nil, err return nil, err
} }
glog.Infof("Snapshotting etcd %s to %s", current.version, snapshotFilename) klog.Infof("Snapshotting etcd %s to %s", current.version, snapshotFilename)
err = m.client.Snapshot(current.version, snapshotFilename) err = m.client.Snapshot(current.version, snapshotFilename)
if err != nil { if err != nil {
return nil, err return nil, err
@ -163,7 +163,7 @@ func (m *Migrator) rollbackEtcd3MinorVersion(current *EtcdVersionPair, target *E
return nil, err return nil, err
} }
glog.Infof("Backing up data before rolling back") klog.Infof("Backing up data before rolling back")
backupDir := fmt.Sprintf("%s.bak", m.dataDirectory) backupDir := fmt.Sprintf("%s.bak", m.dataDirectory)
err = os.RemoveAll(backupDir) err = os.RemoveAll(backupDir)
if err != nil { if err != nil {
@ -178,7 +178,7 @@ func (m *Migrator) rollbackEtcd3MinorVersion(current *EtcdVersionPair, target *E
return nil, err return nil, err
} }
glog.Infof("Restoring etcd %s from %s", target.version, snapshotFilename) klog.Infof("Restoring etcd %s from %s", target.version, snapshotFilename)
err = m.client.Restore(target.version, snapshotFilename) err = m.client.Restore(target.version, snapshotFilename)
if err != nil { if err != nil {
return nil, err return nil, err
@ -195,7 +195,7 @@ func (m *Migrator) rollbackToEtcd2(current *EtcdVersionPair, target *EtcdVersion
if !(current.version.Major == 3 && current.version.Minor == 0 && target.version.Major == 2 && target.version.Minor == 2) { if !(current.version.Major == 3 && current.version.Minor == 0 && target.version.Major == 2 && target.version.Minor == 2) {
return nil, fmt.Errorf("etcd3 -> etcd2 downgrade is supported only between 3.0.x and 2.2.x, got current %s target %s", current, target) return nil, fmt.Errorf("etcd3 -> etcd2 downgrade is supported only between 3.0.x and 2.2.x, got current %s target %s", current, target)
} }
glog.Infof("Backup and remove all existing v2 data") klog.Infof("Backup and remove all existing v2 data")
err := m.dataDirectory.Backup() err := m.dataDirectory.Backup()
if err != nil { if err != nil {
return nil, err return nil, err
@ -214,12 +214,12 @@ func (m *Migrator) etcd2ToEtcd3Upgrade(current *EtcdVersionPair, target *EtcdVer
} }
runner := m.newServer() runner := m.newServer()
glog.Infof("Performing etcd2 -> etcd3 migration") klog.Infof("Performing etcd2 -> etcd3 migration")
err := m.client.Migrate(target.version) err := m.client.Migrate(target.version)
if err != nil { if err != nil {
return nil, err return nil, err
} }
glog.Infof("Attaching leases to TTL entries") klog.Infof("Attaching leases to TTL entries")
// Now attach lease to all keys. // Now attach lease to all keys.
// To do it, we temporarily start etcd on a random port (so that // To do it, we temporarily start etcd on a random port (so that

View File

@ -42,7 +42,7 @@ import (
"github.com/coreos/etcd/wal" "github.com/coreos/etcd/wal"
"github.com/coreos/etcd/wal/walpb" "github.com/coreos/etcd/wal/walpb"
"github.com/coreos/go-semver/semver" "github.com/coreos/go-semver/semver"
"github.com/golang/glog" "k8s.io/klog"
) )
const rollbackVersion = "2.2.0" const rollbackVersion = "2.2.0"
@ -50,7 +50,7 @@ const rollbackVersion = "2.2.0"
// RollbackV3ToV2 rolls back an etcd 3.0.x data directory to the 2.x.x version specified by rollbackVersion. // RollbackV3ToV2 rolls back an etcd 3.0.x data directory to the 2.x.x version specified by rollbackVersion.
func RollbackV3ToV2(migrateDatadir string, ttl time.Duration) error { func RollbackV3ToV2(migrateDatadir string, ttl time.Duration) error {
dbpath := path.Join(migrateDatadir, "member", "snap", "db") dbpath := path.Join(migrateDatadir, "member", "snap", "db")
glog.Infof("Rolling db file %s back to etcd 2.x", dbpath) klog.Infof("Rolling db file %s back to etcd 2.x", dbpath)
// etcd3 store backend. We will use it to parse v3 data files and extract information. // etcd3 store backend. We will use it to parse v3 data files and extract information.
be := backend.NewDefaultBackend(dbpath) be := backend.NewDefaultBackend(dbpath)
@ -139,7 +139,7 @@ func RollbackV3ToV2(migrateDatadir string, ttl time.Duration) error {
v = rollbackVersion v = rollbackVersion
} }
if _, err := st.Set(n.Key, n.Dir, v, store.TTLOptionSet{}); err != nil { if _, err := st.Set(n.Key, n.Dir, v, store.TTLOptionSet{}); err != nil {
glog.Error(err) klog.Error(err)
} }
// update nodes // update nodes
@ -147,7 +147,7 @@ func RollbackV3ToV2(migrateDatadir string, ttl time.Duration) error {
if len(fields) == 4 && fields[2] == "members" { if len(fields) == 4 && fields[2] == "members" {
nodeID, err := strconv.ParseUint(fields[3], 16, 64) nodeID, err := strconv.ParseUint(fields[3], 16, 64)
if err != nil { if err != nil {
glog.Fatalf("failed to parse member ID (%s): %v", fields[3], err) klog.Fatalf("failed to parse member ID (%s): %v", fields[3], err)
} }
nodes = append(nodes, nodeID) nodes = append(nodes, nodeID)
} }
@ -172,7 +172,7 @@ func RollbackV3ToV2(migrateDatadir string, ttl time.Duration) error {
if err := snapshotter.SaveSnap(raftSnap); err != nil { if err := snapshotter.SaveSnap(raftSnap); err != nil {
return err return err
} }
glog.Infof("Finished successfully") klog.Infof("Finished successfully")
return nil return nil
} }
@ -214,7 +214,7 @@ func traverseAndDeleteEmptyDir(st store.Store, dir string) error {
} }
for _, node := range e.Node.Nodes { for _, node := range e.Node.Nodes {
if !node.Dir { if !node.Dir {
glog.V(2).Infof("key: %s", node.Key[len(etcdserver.StoreKeysPrefix):]) klog.V(2).Infof("key: %s", node.Key[len(etcdserver.StoreKeysPrefix):])
} else { } else {
err := traverseAndDeleteEmptyDir(st, node.Key) err := traverseAndDeleteEmptyDir(st, node.Key)
if err != nil { if err != nil {
@ -344,6 +344,6 @@ func applyRequest(r *pb.Request, applyV2 etcdserver.ApplierV2) {
case "POST", "QGET", "SYNC": case "POST", "QGET", "SYNC":
return return
default: default:
glog.Fatal("unknown command") klog.Fatal("unknown command")
} }
} }

View File

@ -24,8 +24,8 @@ go_library(
"//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library",
"//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library",
"//staging/src/k8s.io/cloud-provider:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -24,8 +24,8 @@ import (
"strings" "strings"
"time" "time"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
@ -58,7 +58,7 @@ const (
func NewCloudControllerManagerCommand() *cobra.Command { func NewCloudControllerManagerCommand() *cobra.Command {
s, err := options.NewCloudControllerManagerOptions() s, err := options.NewCloudControllerManagerOptions()
if err != nil { if err != nil {
glog.Fatalf("unable to initialize command options: %v", err) klog.Fatalf("unable to initialize command options: %v", err)
} }
cmd := &cobra.Command{ cmd := &cobra.Command{
@ -106,21 +106,21 @@ the cloud specific control loops shipped with Kubernetes.`,
// Run runs the ExternalCMServer. This should never exit. // Run runs the ExternalCMServer. This should never exit.
func Run(c *cloudcontrollerconfig.CompletedConfig, stopCh <-chan struct{}) error { func Run(c *cloudcontrollerconfig.CompletedConfig, stopCh <-chan struct{}) error {
// To help debugging, immediately log version // To help debugging, immediately log version
glog.Infof("Version: %+v", version.Get()) klog.Infof("Version: %+v", version.Get())
cloud, err := cloudprovider.InitCloudProvider(c.ComponentConfig.KubeCloudShared.CloudProvider.Name, c.ComponentConfig.KubeCloudShared.CloudProvider.CloudConfigFile) cloud, err := cloudprovider.InitCloudProvider(c.ComponentConfig.KubeCloudShared.CloudProvider.Name, c.ComponentConfig.KubeCloudShared.CloudProvider.CloudConfigFile)
if err != nil { if err != nil {
glog.Fatalf("Cloud provider could not be initialized: %v", err) klog.Fatalf("Cloud provider could not be initialized: %v", err)
} }
if cloud == nil { if cloud == nil {
glog.Fatalf("cloud provider is nil") klog.Fatalf("cloud provider is nil")
} }
if cloud.HasClusterID() == false { if cloud.HasClusterID() == false {
if c.ComponentConfig.KubeCloudShared.AllowUntaggedCloud == true { if c.ComponentConfig.KubeCloudShared.AllowUntaggedCloud == true {
glog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") klog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues")
} else { } else {
glog.Fatalf("no ClusterID found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option") klog.Fatalf("no ClusterID found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option")
} }
} }
@ -128,7 +128,7 @@ func Run(c *cloudcontrollerconfig.CompletedConfig, stopCh <-chan struct{}) error
if cz, err := configz.New(ConfigzName); err == nil { if cz, err := configz.New(ConfigzName); err == nil {
cz.Set(c.ComponentConfig) cz.Set(c.ComponentConfig)
} else { } else {
glog.Errorf("unable to register configz: %c", err) klog.Errorf("unable to register configz: %c", err)
} }
// Start the controller manager HTTP server // Start the controller manager HTTP server
@ -150,7 +150,7 @@ func Run(c *cloudcontrollerconfig.CompletedConfig, stopCh <-chan struct{}) error
run := func(ctx context.Context) { run := func(ctx context.Context) {
if err := startControllers(c, ctx.Done(), cloud); err != nil { if err := startControllers(c, ctx.Done(), cloud); err != nil {
glog.Fatalf("error running controllers: %v", err) klog.Fatalf("error running controllers: %v", err)
} }
} }
@ -177,7 +177,7 @@ func Run(c *cloudcontrollerconfig.CompletedConfig, stopCh <-chan struct{}) error
EventRecorder: c.EventRecorder, EventRecorder: c.EventRecorder,
}) })
if err != nil { if err != nil {
glog.Fatalf("error creating lock: %v", err) klog.Fatalf("error creating lock: %v", err)
} }
// Try and become the leader and start cloud controller manager loops // Try and become the leader and start cloud controller manager loops
@ -189,7 +189,7 @@ func Run(c *cloudcontrollerconfig.CompletedConfig, stopCh <-chan struct{}) error
Callbacks: leaderelection.LeaderCallbacks{ Callbacks: leaderelection.LeaderCallbacks{
OnStartedLeading: run, OnStartedLeading: run,
OnStoppedLeading: func() { OnStoppedLeading: func() {
glog.Fatalf("leaderelection lost") klog.Fatalf("leaderelection lost")
}, },
}, },
}) })
@ -230,7 +230,7 @@ func startControllers(c *cloudcontrollerconfig.CompletedConfig, stop <-chan stru
c.ComponentConfig.KubeCloudShared.ClusterName, c.ComponentConfig.KubeCloudShared.ClusterName,
) )
if err != nil { if err != nil {
glog.Errorf("Failed to start service controller: %v", err) klog.Errorf("Failed to start service controller: %v", err)
} else { } else {
go serviceController.Run(stop, int(c.ComponentConfig.ServiceController.ConcurrentServiceSyncs)) go serviceController.Run(stop, int(c.ComponentConfig.ServiceController.ConcurrentServiceSyncs))
time.Sleep(wait.Jitter(c.ComponentConfig.Generic.ControllerStartInterval.Duration, ControllerStartJitter)) time.Sleep(wait.Jitter(c.ComponentConfig.Generic.ControllerStartInterval.Duration, ControllerStartJitter))
@ -239,13 +239,13 @@ func startControllers(c *cloudcontrollerconfig.CompletedConfig, stop <-chan stru
// If CIDRs should be allocated for pods and set on the CloudProvider, then start the route controller // If CIDRs should be allocated for pods and set on the CloudProvider, then start the route controller
if c.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs && c.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes { if c.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs && c.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes {
if routes, ok := cloud.Routes(); !ok { if routes, ok := cloud.Routes(); !ok {
glog.Warning("configure-cloud-routes is set, but cloud provider does not support routes. Will not configure cloud provider routes.") klog.Warning("configure-cloud-routes is set, but cloud provider does not support routes. Will not configure cloud provider routes.")
} else { } else {
var clusterCIDR *net.IPNet var clusterCIDR *net.IPNet
if len(strings.TrimSpace(c.ComponentConfig.KubeCloudShared.ClusterCIDR)) != 0 { if len(strings.TrimSpace(c.ComponentConfig.KubeCloudShared.ClusterCIDR)) != 0 {
_, clusterCIDR, err = net.ParseCIDR(c.ComponentConfig.KubeCloudShared.ClusterCIDR) _, clusterCIDR, err = net.ParseCIDR(c.ComponentConfig.KubeCloudShared.ClusterCIDR)
if err != nil { if err != nil {
glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", c.ComponentConfig.KubeCloudShared.ClusterCIDR, err) klog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", c.ComponentConfig.KubeCloudShared.ClusterCIDR, err)
} }
} }
@ -254,14 +254,14 @@ func startControllers(c *cloudcontrollerconfig.CompletedConfig, stop <-chan stru
time.Sleep(wait.Jitter(c.ComponentConfig.Generic.ControllerStartInterval.Duration, ControllerStartJitter)) time.Sleep(wait.Jitter(c.ComponentConfig.Generic.ControllerStartInterval.Duration, ControllerStartJitter))
} }
} else { } else {
glog.Infof("Will not configure cloud provider routes for allocate-node-cidrs: %v, configure-cloud-routes: %v.", c.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs, c.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes) klog.Infof("Will not configure cloud provider routes for allocate-node-cidrs: %v, configure-cloud-routes: %v.", c.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs, c.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes)
} }
// If apiserver is not running we should wait for some time and fail only then. This is particularly // If apiserver is not running we should wait for some time and fail only then. This is particularly
// important when we start apiserver and controller manager at the same time. // important when we start apiserver and controller manager at the same time.
err = genericcontrollermanager.WaitForAPIServer(c.VersionedClient, 10*time.Second) err = genericcontrollermanager.WaitForAPIServer(c.VersionedClient, 10*time.Second)
if err != nil { if err != nil {
glog.Fatalf("Failed to wait for apiserver being healthy: %v", err) klog.Fatalf("Failed to wait for apiserver being healthy: %v", err)
} }
c.SharedInformers.Start(stop) c.SharedInformers.Start(stop)

View File

@ -32,7 +32,7 @@ go_library(
"//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -22,7 +22,7 @@ import (
"net" "net"
"time" "time"
"github.com/golang/glog" "k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -265,7 +265,7 @@ func (o *CloudControllerManagerOptions) Config() (*cloudcontrollerconfig.Config,
func createRecorder(kubeClient clientset.Interface, userAgent string) record.EventRecorder { func createRecorder(kubeClient clientset.Interface, userAgent string) record.EventRecorder {
eventBroadcaster := record.NewBroadcaster() eventBroadcaster := record.NewBroadcaster()
eventBroadcaster.StartLogging(glog.Infof) eventBroadcaster.StartLogging(klog.Infof)
eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")}) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")})
// TODO: remove dependence on the legacyscheme // TODO: remove dependence on the legacyscheme
return eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: userAgent}) return eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: userAgent})

View File

@ -21,8 +21,8 @@ go_library(
"//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -21,9 +21,9 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/golang/glog"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog"
) )
// WaitForAPIServer waits for the API Server's /healthz endpoint to report "ok" with timeout. // WaitForAPIServer waits for the API Server's /healthz endpoint to report "ok" with timeout.
@ -40,7 +40,7 @@ func WaitForAPIServer(client clientset.Interface, timeout time.Duration) error {
if healthStatus != http.StatusOK { if healthStatus != http.StatusOK {
content, _ := result.Raw() content, _ := result.Raw()
lastErr = fmt.Errorf("APIServer isn't healthy: %v", string(content)) lastErr = fmt.Errorf("APIServer isn't healthy: %v", string(content))
glog.Warningf("APIServer isn't healthy yet: %v. Waiting a little while.", string(content)) klog.Warningf("APIServer isn't healthy yet: %v. Waiting a little while.", string(content))
return false, nil return false, nil
} }

View File

@ -17,8 +17,8 @@ go_library(
importpath = "k8s.io/kubernetes/cmd/genswaggertypedocs", importpath = "k8s.io/kubernetes/cmd/genswaggertypedocs",
deps = [ deps = [
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -23,8 +23,8 @@ import (
kruntime "k8s.io/apimachinery/pkg/runtime" kruntime "k8s.io/apimachinery/pkg/runtime"
"github.com/golang/glog"
flag "github.com/spf13/pflag" flag "github.com/spf13/pflag"
"k8s.io/klog"
) )
var ( var (
@ -37,7 +37,7 @@ func main() {
flag.Parse() flag.Parse()
if *typeSrc == "" { if *typeSrc == "" {
glog.Fatalf("Please define -s flag as it is the source file") klog.Fatalf("Please define -s flag as it is the source file")
} }
var funcOut io.Writer var funcOut io.Writer
@ -46,7 +46,7 @@ func main() {
} else { } else {
file, err := os.Create(*functionDest) file, err := os.Create(*functionDest)
if err != nil { if err != nil {
glog.Fatalf("Couldn't open %v: %v", *functionDest, err) klog.Fatalf("Couldn't open %v: %v", *functionDest, err)
} }
defer file.Close() defer file.Close()
funcOut = file funcOut = file

View File

@ -73,8 +73,8 @@ go_library(
"//staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion:go_default_library",
"//staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister:go_default_library", "//staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister:go_default_library",
"//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/kube-openapi/pkg/common:go_default_library", "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library",
], ],
) )

View File

@ -26,7 +26,7 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/golang/glog" "k8s.io/klog"
apiextensionsinformers "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion" apiextensionsinformers "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -167,7 +167,7 @@ func makeAPIService(gv schema.GroupVersion) *apiregistration.APIService {
if !ok { if !ok {
// if we aren't found, then we shouldn't register ourselves because it could result in a CRD group version // if we aren't found, then we shouldn't register ourselves because it could result in a CRD group version
// being permanently stuck in the APIServices list. // being permanently stuck in the APIServices list.
glog.Infof("Skipping APIService creation for %v", gv) klog.Infof("Skipping APIService creation for %v", gv)
return nil return nil
} }
return &apiregistration.APIService{ return &apiregistration.APIService{

View File

@ -32,8 +32,8 @@ import (
"time" "time"
"github.com/go-openapi/spec" "github.com/go-openapi/spec"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
extensionsapiserver "k8s.io/apiextensions-apiserver/pkg/apiserver" extensionsapiserver "k8s.io/apiextensions-apiserver/pkg/apiserver"
"k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -142,7 +142,7 @@ cluster's shared state through which all other components interact.`,
// Run runs the specified APIServer. This should never exit. // Run runs the specified APIServer. This should never exit.
func Run(completeOptions completedServerRunOptions, stopCh <-chan struct{}) error { func Run(completeOptions completedServerRunOptions, stopCh <-chan struct{}) error {
// To help debugging, immediately log version // To help debugging, immediately log version
glog.Infof("Version: %+v", version.Get()) klog.Infof("Version: %+v", version.Get())
server, err := CreateServerChain(completeOptions, stopCh) server, err := CreateServerChain(completeOptions, stopCh)
if err != nil { if err != nil {
@ -585,7 +585,7 @@ func Complete(s *options.ServerRunOptions) (completedServerRunOptions, error) {
return options, fmt.Errorf("error finding host name: %v", err) return options, fmt.Errorf("error finding host name: %v", err)
} }
} }
glog.Infof("external host was not specified, using %v", s.GenericServerRunOptions.ExternalHost) klog.Infof("external host was not specified, using %v", s.GenericServerRunOptions.ExternalHost)
} }
s.Authentication.ApplyAuthorization(s.Authorization) s.Authentication.ApplyAuthorization(s.Authorization)
@ -601,13 +601,13 @@ func Complete(s *options.ServerRunOptions) (completedServerRunOptions, error) {
if kubeauthenticator.IsValidServiceAccountKeyFile(s.SecureServing.ServerCert.CertKey.KeyFile) { if kubeauthenticator.IsValidServiceAccountKeyFile(s.SecureServing.ServerCert.CertKey.KeyFile) {
s.Authentication.ServiceAccounts.KeyFiles = []string{s.SecureServing.ServerCert.CertKey.KeyFile} s.Authentication.ServiceAccounts.KeyFiles = []string{s.SecureServing.ServerCert.CertKey.KeyFile}
} else { } else {
glog.Warning("No TLS key provided, service account token authentication disabled") klog.Warning("No TLS key provided, service account token authentication disabled")
} }
} }
} }
if s.Etcd.EnableWatchCache { if s.Etcd.EnableWatchCache {
glog.V(2).Infof("Initializing cache sizes based on %dMB limit", s.GenericServerRunOptions.TargetRAMMB) klog.V(2).Infof("Initializing cache sizes based on %dMB limit", s.GenericServerRunOptions.TargetRAMMB)
sizes := cachesize.NewHeuristicWatchCacheSizes(s.GenericServerRunOptions.TargetRAMMB) sizes := cachesize.NewHeuristicWatchCacheSizes(s.GenericServerRunOptions.TargetRAMMB)
if userSpecified, err := serveroptions.ParseWatchCacheSizes(s.Etcd.WatchCacheSizes); err == nil { if userSpecified, err := serveroptions.ParseWatchCacheSizes(s.Etcd.WatchCacheSizes); err == nil {
for resource, size := range userSpecified { for resource, size := range userSpecified {

View File

@ -132,8 +132,8 @@ go_library(
"//staging/src/k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1:go_default_library", "//staging/src/k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/custom_metrics:go_default_library", "//staging/src/k8s.io/metrics/pkg/client/custom_metrics:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/external_metrics:go_default_library", "//staging/src/k8s.io/metrics/pkg/client/external_metrics:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
], ],
) )

View File

@ -24,7 +24,7 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/golang/glog" "k8s.io/klog"
"net/http" "net/http"
@ -69,7 +69,7 @@ func startCSRSigningController(ctx ControllerContext) (http.Handler, bool, error
switch { switch {
case (keyFileExists && keyUsesDefault) || (certFileExists && certUsesDefault): case (keyFileExists && keyUsesDefault) || (certFileExists && certUsesDefault):
glog.Warningf("You might be using flag defaulting for --cluster-signing-cert-file and" + klog.Warningf("You might be using flag defaulting for --cluster-signing-cert-file and" +
" --cluster-signing-key-file. These defaults are deprecated and will be removed" + " --cluster-signing-key-file. These defaults are deprecated and will be removed" +
" in a subsequent release. Please pass these options explicitly.") " in a subsequent release. Please pass these options explicitly.")
case (!keyFileExists && keyUsesDefault) && (!certFileExists && certUsesDefault): case (!keyFileExists && keyUsesDefault) && (!certFileExists && certUsesDefault):

View File

@ -19,7 +19,7 @@ package app
import ( import (
"fmt" "fmt"
"github.com/golang/glog" "k8s.io/klog"
"k8s.io/client-go/informers" "k8s.io/client-go/informers"
cloudprovider "k8s.io/cloud-provider" cloudprovider "k8s.io/cloud-provider"
@ -50,7 +50,7 @@ func createCloudProvider(cloudProvider string, externalCloudVolumePlugin string,
if cloud != nil && cloud.HasClusterID() == false { if cloud != nil && cloud.HasClusterID() == false {
if allowUntaggedCloud == true { if allowUntaggedCloud == true {
glog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") klog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues")
} else { } else {
return nil, loopMode, fmt.Errorf("no ClusterID Found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option") return nil, loopMode, fmt.Errorf("no ClusterID Found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option")
} }

View File

@ -29,8 +29,8 @@ import (
"os" "os"
"time" "time"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@ -79,7 +79,7 @@ const (
func NewControllerManagerCommand() *cobra.Command { func NewControllerManagerCommand() *cobra.Command {
s, err := options.NewKubeControllerManagerOptions() s, err := options.NewKubeControllerManagerOptions()
if err != nil { if err != nil {
glog.Fatalf("unable to initialize command options: %v", err) klog.Fatalf("unable to initialize command options: %v", err)
} }
cmd := &cobra.Command{ cmd := &cobra.Command{
@ -142,12 +142,12 @@ func ResyncPeriod(c *config.CompletedConfig) func() time.Duration {
// Run runs the KubeControllerManagerOptions. This should never exit. // Run runs the KubeControllerManagerOptions. This should never exit.
func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error { func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error {
// To help debugging, immediately log version // To help debugging, immediately log version
glog.Infof("Version: %+v", version.Get()) klog.Infof("Version: %+v", version.Get())
if cfgz, err := configz.New(ConfigzName); err == nil { if cfgz, err := configz.New(ConfigzName); err == nil {
cfgz.Set(c.ComponentConfig) cfgz.Set(c.ComponentConfig)
} else { } else {
glog.Errorf("unable to register configz: %c", err) klog.Errorf("unable to register configz: %c", err)
} }
// Start the controller manager HTTP server // Start the controller manager HTTP server
@ -178,7 +178,7 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error {
if len(c.ComponentConfig.SAController.ServiceAccountKeyFile) == 0 { if len(c.ComponentConfig.SAController.ServiceAccountKeyFile) == 0 {
// It'c possible another controller process is creating the tokens for us. // It'c possible another controller process is creating the tokens for us.
// If one isn't, we'll timeout and exit when our client builder is unable to create the tokens. // If one isn't, we'll timeout and exit when our client builder is unable to create the tokens.
glog.Warningf("--use-service-account-credentials was specified without providing a --service-account-private-key-file") klog.Warningf("--use-service-account-credentials was specified without providing a --service-account-private-key-file")
} }
clientBuilder = controller.SAControllerClientBuilder{ clientBuilder = controller.SAControllerClientBuilder{
ClientConfig: restclient.AnonymousClientConfig(c.Kubeconfig), ClientConfig: restclient.AnonymousClientConfig(c.Kubeconfig),
@ -191,12 +191,12 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error {
} }
controllerContext, err := CreateControllerContext(c, rootClientBuilder, clientBuilder, ctx.Done()) controllerContext, err := CreateControllerContext(c, rootClientBuilder, clientBuilder, ctx.Done())
if err != nil { if err != nil {
glog.Fatalf("error building controller context: %v", err) klog.Fatalf("error building controller context: %v", err)
} }
saTokenControllerInitFunc := serviceAccountTokenControllerStarter{rootClientBuilder: rootClientBuilder}.startServiceAccountTokenController saTokenControllerInitFunc := serviceAccountTokenControllerStarter{rootClientBuilder: rootClientBuilder}.startServiceAccountTokenController
if err := StartControllers(controllerContext, saTokenControllerInitFunc, NewControllerInitializers(controllerContext.LoopMode), unsecuredMux); err != nil { if err := StartControllers(controllerContext, saTokenControllerInitFunc, NewControllerInitializers(controllerContext.LoopMode), unsecuredMux); err != nil {
glog.Fatalf("error starting controllers: %v", err) klog.Fatalf("error starting controllers: %v", err)
} }
controllerContext.InformerFactory.Start(controllerContext.Stop) controllerContext.InformerFactory.Start(controllerContext.Stop)
@ -226,7 +226,7 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error {
EventRecorder: c.EventRecorder, EventRecorder: c.EventRecorder,
}) })
if err != nil { if err != nil {
glog.Fatalf("error creating lock: %v", err) klog.Fatalf("error creating lock: %v", err)
} }
leaderelection.RunOrDie(context.TODO(), leaderelection.LeaderElectionConfig{ leaderelection.RunOrDie(context.TODO(), leaderelection.LeaderElectionConfig{
@ -237,7 +237,7 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error {
Callbacks: leaderelection.LeaderCallbacks{ Callbacks: leaderelection.LeaderCallbacks{
OnStartedLeading: run, OnStartedLeading: run,
OnStoppedLeading: func() { OnStoppedLeading: func() {
glog.Fatalf("leaderelection lost") klog.Fatalf("leaderelection lost")
}, },
}, },
}) })
@ -476,20 +476,20 @@ func StartControllers(ctx ControllerContext, startSATokenController InitFunc, co
for controllerName, initFn := range controllers { for controllerName, initFn := range controllers {
if !ctx.IsControllerEnabled(controllerName) { if !ctx.IsControllerEnabled(controllerName) {
glog.Warningf("%q is disabled", controllerName) klog.Warningf("%q is disabled", controllerName)
continue continue
} }
time.Sleep(wait.Jitter(ctx.ComponentConfig.Generic.ControllerStartInterval.Duration, ControllerStartJitter)) time.Sleep(wait.Jitter(ctx.ComponentConfig.Generic.ControllerStartInterval.Duration, ControllerStartJitter))
glog.V(1).Infof("Starting %q", controllerName) klog.V(1).Infof("Starting %q", controllerName)
debugHandler, started, err := initFn(ctx) debugHandler, started, err := initFn(ctx)
if err != nil { if err != nil {
glog.Errorf("Error starting %q", controllerName) klog.Errorf("Error starting %q", controllerName)
return err return err
} }
if !started { if !started {
glog.Warningf("Skipping %q", controllerName) klog.Warningf("Skipping %q", controllerName)
continue continue
} }
if debugHandler != nil && unsecuredMux != nil { if debugHandler != nil && unsecuredMux != nil {
@ -497,7 +497,7 @@ func StartControllers(ctx ControllerContext, startSATokenController InitFunc, co
unsecuredMux.UnlistedHandle(basePath, http.StripPrefix(basePath, debugHandler)) unsecuredMux.UnlistedHandle(basePath, http.StripPrefix(basePath, debugHandler))
unsecuredMux.UnlistedHandlePrefix(basePath+"/", http.StripPrefix(basePath, debugHandler)) unsecuredMux.UnlistedHandlePrefix(basePath+"/", http.StripPrefix(basePath, debugHandler))
} }
glog.Infof("Started %q", controllerName) klog.Infof("Started %q", controllerName)
} }
return nil return nil
@ -512,12 +512,12 @@ type serviceAccountTokenControllerStarter struct {
func (c serviceAccountTokenControllerStarter) startServiceAccountTokenController(ctx ControllerContext) (http.Handler, bool, error) { func (c serviceAccountTokenControllerStarter) startServiceAccountTokenController(ctx ControllerContext) (http.Handler, bool, error) {
if !ctx.IsControllerEnabled(saTokenControllerName) { if !ctx.IsControllerEnabled(saTokenControllerName) {
glog.Warningf("%q is disabled", saTokenControllerName) klog.Warningf("%q is disabled", saTokenControllerName)
return nil, false, nil return nil, false, nil
} }
if len(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) == 0 { if len(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) == 0 {
glog.Warningf("%q is disabled because there is no private key", saTokenControllerName) klog.Warningf("%q is disabled because there is no private key", saTokenControllerName)
return nil, false, nil return nil, false, nil
} }
privateKey, err := certutil.PrivateKeyFromFile(ctx.ComponentConfig.SAController.ServiceAccountKeyFile) privateKey, err := certutil.PrivateKeyFromFile(ctx.ComponentConfig.SAController.ServiceAccountKeyFile)

View File

@ -26,7 +26,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/golang/glog" "k8s.io/klog"
"net/http" "net/http"
@ -73,7 +73,7 @@ func startServiceController(ctx ControllerContext) (http.Handler, bool, error) {
) )
if err != nil { if err != nil {
// This error shouldn't fail. It lives like this as a legacy. // This error shouldn't fail. It lives like this as a legacy.
glog.Errorf("Failed to start service controller: %v", err) klog.Errorf("Failed to start service controller: %v", err)
return nil, false, nil return nil, false, nil
} }
go serviceController.Run(ctx.Stop, int(ctx.ComponentConfig.ServiceController.ConcurrentServiceSyncs)) go serviceController.Run(ctx.Stop, int(ctx.ComponentConfig.ServiceController.ConcurrentServiceSyncs))
@ -92,14 +92,14 @@ func startNodeIpamController(ctx ControllerContext) (http.Handler, bool, error)
if len(strings.TrimSpace(ctx.ComponentConfig.KubeCloudShared.ClusterCIDR)) != 0 { if len(strings.TrimSpace(ctx.ComponentConfig.KubeCloudShared.ClusterCIDR)) != 0 {
_, clusterCIDR, err = net.ParseCIDR(ctx.ComponentConfig.KubeCloudShared.ClusterCIDR) _, clusterCIDR, err = net.ParseCIDR(ctx.ComponentConfig.KubeCloudShared.ClusterCIDR)
if err != nil { if err != nil {
glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.ComponentConfig.KubeCloudShared.ClusterCIDR, err) klog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.ComponentConfig.KubeCloudShared.ClusterCIDR, err)
} }
} }
if len(strings.TrimSpace(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR)) != 0 { if len(strings.TrimSpace(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR)) != 0 {
_, serviceCIDR, err = net.ParseCIDR(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR) _, serviceCIDR, err = net.ParseCIDR(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR)
if err != nil { if err != nil {
glog.Warningf("Unsuccessful parsing of service CIDR %v: %v", ctx.ComponentConfig.NodeIPAMController.ServiceCIDR, err) klog.Warningf("Unsuccessful parsing of service CIDR %v: %v", ctx.ComponentConfig.NodeIPAMController.ServiceCIDR, err)
} }
} }
@ -148,21 +148,21 @@ func startNodeLifecycleController(ctx ControllerContext) (http.Handler, bool, er
func startRouteController(ctx ControllerContext) (http.Handler, bool, error) { func startRouteController(ctx ControllerContext) (http.Handler, bool, error) {
if !ctx.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs || !ctx.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes { if !ctx.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs || !ctx.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes {
glog.Infof("Will not configure cloud provider routes for allocate-node-cidrs: %v, configure-cloud-routes: %v.", ctx.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs, ctx.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes) klog.Infof("Will not configure cloud provider routes for allocate-node-cidrs: %v, configure-cloud-routes: %v.", ctx.ComponentConfig.KubeCloudShared.AllocateNodeCIDRs, ctx.ComponentConfig.KubeCloudShared.ConfigureCloudRoutes)
return nil, false, nil return nil, false, nil
} }
if ctx.Cloud == nil { if ctx.Cloud == nil {
glog.Warning("configure-cloud-routes is set, but no cloud provider specified. Will not configure cloud provider routes.") klog.Warning("configure-cloud-routes is set, but no cloud provider specified. Will not configure cloud provider routes.")
return nil, false, nil return nil, false, nil
} }
routes, ok := ctx.Cloud.Routes() routes, ok := ctx.Cloud.Routes()
if !ok { if !ok {
glog.Warning("configure-cloud-routes is set, but cloud provider does not support routes. Will not configure cloud provider routes.") klog.Warning("configure-cloud-routes is set, but cloud provider does not support routes. Will not configure cloud provider routes.")
return nil, false, nil return nil, false, nil
} }
_, clusterCIDR, err := net.ParseCIDR(ctx.ComponentConfig.KubeCloudShared.ClusterCIDR) _, clusterCIDR, err := net.ParseCIDR(ctx.ComponentConfig.KubeCloudShared.ClusterCIDR)
if err != nil { if err != nil {
glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.ComponentConfig.KubeCloudShared.ClusterCIDR, err) klog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.ComponentConfig.KubeCloudShared.ClusterCIDR, err)
} }
routeController := routecontroller.New(routes, ctx.ClientBuilder.ClientOrDie("route-controller"), ctx.InformerFactory.Core().V1().Nodes(), ctx.ComponentConfig.KubeCloudShared.ClusterName, clusterCIDR) routeController := routecontroller.New(routes, ctx.ClientBuilder.ClientOrDie("route-controller"), ctx.InformerFactory.Core().V1().Nodes(), ctx.ComponentConfig.KubeCloudShared.ClusterName, clusterCIDR)
go routeController.Run(ctx.Stop, ctx.ComponentConfig.KubeCloudShared.RouteReconciliationPeriod.Duration) go routeController.Run(ctx.Stop, ctx.ComponentConfig.KubeCloudShared.RouteReconciliationPeriod.Duration)

View File

@ -53,8 +53,8 @@ go_library(
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library", "//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -45,7 +45,7 @@ import (
// add the kubernetes feature gates // add the kubernetes feature gates
_ "k8s.io/kubernetes/pkg/features" _ "k8s.io/kubernetes/pkg/features"
"github.com/golang/glog" "k8s.io/klog"
) )
const ( const (
@ -438,7 +438,7 @@ func (s KubeControllerManagerOptions) Config(allControllers []string, disabledBy
func createRecorder(kubeClient clientset.Interface, userAgent string) record.EventRecorder { func createRecorder(kubeClient clientset.Interface, userAgent string) record.EventRecorder {
eventBroadcaster := record.NewBroadcaster() eventBroadcaster := record.NewBroadcaster()
eventBroadcaster.StartLogging(glog.Infof) eventBroadcaster.StartLogging(klog.Infof)
eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")}) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")})
// TODO: remove dependency on the legacyscheme // TODO: remove dependency on the legacyscheme
return eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: userAgent}) return eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: userAgent})

View File

@ -23,7 +23,7 @@ import (
"fmt" "fmt"
"github.com/golang/glog" "k8s.io/klog"
// Cloud providers // Cloud providers
cloudprovider "k8s.io/cloud-provider" cloudprovider "k8s.io/cloud-provider"
@ -133,7 +133,7 @@ func ProbeControllerVolumePlugins(cloud cloudprovider.Interface, config kubectrl
ProvisioningEnabled: config.EnableHostPathProvisioning, ProvisioningEnabled: config.EnableHostPathProvisioning,
} }
if err := AttemptToLoadRecycler(config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathHostPath, &hostPathConfig); err != nil { if err := AttemptToLoadRecycler(config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathHostPath, &hostPathConfig); err != nil {
glog.Fatalf("Could not create hostpath recycler pod from file %s: %+v", config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathHostPath, err) klog.Fatalf("Could not create hostpath recycler pod from file %s: %+v", config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathHostPath, err)
} }
allPlugins = append(allPlugins, host_path.ProbeVolumePlugins(hostPathConfig)...) allPlugins = append(allPlugins, host_path.ProbeVolumePlugins(hostPathConfig)...)
@ -143,7 +143,7 @@ func ProbeControllerVolumePlugins(cloud cloudprovider.Interface, config kubectrl
RecyclerPodTemplate: volume.NewPersistentVolumeRecyclerPodTemplate(), RecyclerPodTemplate: volume.NewPersistentVolumeRecyclerPodTemplate(),
} }
if err := AttemptToLoadRecycler(config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, &nfsConfig); err != nil { if err := AttemptToLoadRecycler(config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, &nfsConfig); err != nil {
glog.Fatalf("Could not create NFS recycler pod from file %s: %+v", config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, err) klog.Fatalf("Could not create NFS recycler pod from file %s: %+v", config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, err)
} }
allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(nfsConfig)...) allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(nfsConfig)...)
allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...) allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)

View File

@ -26,7 +26,7 @@ import (
"net/http" "net/http"
"github.com/golang/glog" "k8s.io/klog"
) )
func startDisruptionController(ctx ControllerContext) (http.Handler, bool, error) { func startDisruptionController(ctx ControllerContext) (http.Handler, bool, error) {
@ -35,7 +35,7 @@ func startDisruptionController(ctx ControllerContext) (http.Handler, bool, error
var resource = "poddisruptionbudgets" var resource = "poddisruptionbudgets"
if !ctx.AvailableResources[schema.GroupVersionResource{Group: group, Version: version, Resource: resource}] { if !ctx.AvailableResources[schema.GroupVersionResource{Group: group, Version: version, Resource: resource}] {
glog.Infof( klog.Infof(
"Refusing to start disruption because resource %q in group %q is not available.", "Refusing to start disruption because resource %q in group %q is not available.",
resource, group+"/"+version) resource, group+"/"+version)
return nil, false, nil return nil, false, nil

View File

@ -61,10 +61,10 @@ go_library(
"//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/kube-proxy/config/v1alpha1:go_default_library", "//staging/src/k8s.io/kube-proxy/config/v1alpha1:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
"//vendor/k8s.io/utils/pointer:go_default_library", "//vendor/k8s.io/utils/pointer:go_default_library",
] + select({ ] + select({

View File

@ -22,7 +22,7 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/golang/glog" "k8s.io/klog"
"k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/mount"
"k8s.io/kubernetes/pkg/util/sysctl" "k8s.io/kubernetes/pkg/util/sysctl"
@ -49,7 +49,7 @@ func (rct realConntracker) SetMax(max int) error {
if err := rct.setIntSysCtl("nf_conntrack_max", max); err != nil { if err := rct.setIntSysCtl("nf_conntrack_max", max); err != nil {
return err return err
} }
glog.Infof("Setting nf_conntrack_max to %d", max) klog.Infof("Setting nf_conntrack_max to %d", max)
// Linux does not support writing to /sys/module/nf_conntrack/parameters/hashsize // Linux does not support writing to /sys/module/nf_conntrack/parameters/hashsize
// when the writer process is not in the initial network namespace // when the writer process is not in the initial network namespace
@ -80,7 +80,7 @@ func (rct realConntracker) SetMax(max int) error {
return readOnlySysFSError return readOnlySysFSError
} }
// TODO: generify this and sysctl to a new sysfs.WriteInt() // TODO: generify this and sysctl to a new sysfs.WriteInt()
glog.Infof("Setting conntrack hashsize to %d", max/4) klog.Infof("Setting conntrack hashsize to %d", max/4)
return writeIntStringFile("/sys/module/nf_conntrack/parameters/hashsize", max/4) return writeIntStringFile("/sys/module/nf_conntrack/parameters/hashsize", max/4)
} }
@ -97,7 +97,7 @@ func (realConntracker) setIntSysCtl(name string, value int) error {
sys := sysctl.New() sys := sysctl.New()
if val, _ := sys.GetSysctl(entry); val != value { if val, _ := sys.GetSysctl(entry); val != value {
glog.Infof("Set sysctl '%v' to %v", entry, value) klog.Infof("Set sysctl '%v' to %v", entry, value)
if err := sys.SetSysctl(entry, value); err != nil { if err := sys.SetSysctl(entry, value); err != nil {
return err return err
} }
@ -112,7 +112,7 @@ func isSysFSWritable() (bool, error) {
m := mount.New("" /* default mount path */) m := mount.New("" /* default mount path */)
mountPoints, err := m.List() mountPoints, err := m.List()
if err != nil { if err != nil {
glog.Errorf("failed to list mount points: %v", err) klog.Errorf("failed to list mount points: %v", err)
return false, err return false, err
} }
@ -124,7 +124,7 @@ func isSysFSWritable() (bool, error) {
if len(mountPoint.Opts) > 0 && mountPoint.Opts[0] == permWritable { if len(mountPoint.Opts) > 0 && mountPoint.Opts[0] == permWritable {
return true, nil return true, nil
} }
glog.Errorf("sysfs is not writable: %+v (mount options are %v)", klog.Errorf("sysfs is not writable: %+v (mount options are %v)",
mountPoint, mountPoint.Opts) mountPoint, mountPoint.Opts)
return false, readOnlySysFSError return false, readOnlySysFSError
} }

View File

@ -72,10 +72,10 @@ import (
"k8s.io/utils/exec" "k8s.io/utils/exec"
utilpointer "k8s.io/utils/pointer" utilpointer "k8s.io/utils/pointer"
"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/pflag" "github.com/spf13/pflag"
"k8s.io/klog"
) )
const ( const (
@ -191,7 +191,7 @@ func NewOptions() *Options {
// Complete completes all the required options. // Complete completes all the required options.
func (o *Options) Complete() error { func (o *Options) Complete() error {
if len(o.ConfigFile) == 0 && len(o.WriteConfigTo) == 0 { if len(o.ConfigFile) == 0 && len(o.WriteConfigTo) == 0 {
glog.Warning("WARNING: all flags other than --config, --write-config-to, and --cleanup are deprecated. Please begin using a config file ASAP.") klog.Warning("WARNING: all flags other than --config, --write-config-to, and --cleanup are deprecated. Please begin using a config file ASAP.")
o.applyDeprecatedHealthzPortToConfig() o.applyDeprecatedHealthzPortToConfig()
} }
@ -280,7 +280,7 @@ func (o *Options) writeConfigFile() error {
return err return err
} }
glog.Infof("Wrote configuration to: %s\n", o.WriteConfigTo) klog.Infof("Wrote configuration to: %s\n", o.WriteConfigTo)
return nil return nil
} }
@ -365,23 +365,23 @@ with the apiserver API to configure the proxy.`,
utilflag.PrintFlags(cmd.Flags()) utilflag.PrintFlags(cmd.Flags())
if err := initForOS(opts.WindowsService); err != nil { if err := initForOS(opts.WindowsService); err != nil {
glog.Fatalf("failed OS init: %v", err) klog.Fatalf("failed OS init: %v", err)
} }
if err := opts.Complete(); err != nil { if err := opts.Complete(); err != nil {
glog.Fatalf("failed complete: %v", err) klog.Fatalf("failed complete: %v", err)
} }
if err := opts.Validate(args); err != nil { if err := opts.Validate(args); err != nil {
glog.Fatalf("failed validate: %v", err) klog.Fatalf("failed validate: %v", err)
} }
glog.Fatal(opts.Run()) klog.Fatal(opts.Run())
}, },
} }
var err error var err error
opts.config, err = opts.ApplyDefaults(opts.config) opts.config, err = opts.ApplyDefaults(opts.config)
if err != nil { if err != nil {
glog.Fatalf("unable to create flag defaults: %v", err) klog.Fatalf("unable to create flag defaults: %v", err)
} }
opts.AddFlags(cmd.Flags()) opts.AddFlags(cmd.Flags())
@ -426,7 +426,7 @@ func createClients(config apimachineryconfig.ClientConnectionConfiguration, mast
var err error var err error
if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 { if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 {
glog.Info("Neither kubeconfig file nor master URL was specified. Falling back to in-cluster config.") klog.Info("Neither kubeconfig file nor master URL was specified. Falling back to in-cluster config.")
kubeConfig, err = rest.InClusterConfig() kubeConfig, err = rest.InClusterConfig()
} else { } else {
// This creates a client, first loading any specified kubeconfig // This creates a client, first loading any specified kubeconfig
@ -461,7 +461,7 @@ func createClients(config apimachineryconfig.ClientConnectionConfiguration, mast
// Run runs the specified ProxyServer. This should never exit (unless CleanupAndExit is set). // Run runs the specified ProxyServer. This should never exit (unless CleanupAndExit is set).
func (s *ProxyServer) Run() error { func (s *ProxyServer) Run() error {
// To help debugging, immediately log version // To help debugging, immediately log version
glog.Infof("Version: %+v", version.Get()) klog.Infof("Version: %+v", version.Get())
// remove iptables rules and exit // remove iptables rules and exit
if s.CleanupAndExit { if s.CleanupAndExit {
encounteredError := userspace.CleanupLeftovers(s.IptInterface) encounteredError := userspace.CleanupLeftovers(s.IptInterface)
@ -478,16 +478,16 @@ func (s *ProxyServer) Run() error {
if s.OOMScoreAdj != nil { if s.OOMScoreAdj != nil {
oomAdjuster = oom.NewOOMAdjuster() oomAdjuster = oom.NewOOMAdjuster()
if err := oomAdjuster.ApplyOOMScoreAdj(0, int(*s.OOMScoreAdj)); err != nil { if err := oomAdjuster.ApplyOOMScoreAdj(0, int(*s.OOMScoreAdj)); err != nil {
glog.V(2).Info(err) klog.V(2).Info(err)
} }
} }
if len(s.ResourceContainer) != 0 { if len(s.ResourceContainer) != 0 {
// Run in its own container. // Run in its own container.
if err := resourcecontainer.RunInResourceContainer(s.ResourceContainer); err != nil { if err := resourcecontainer.RunInResourceContainer(s.ResourceContainer); err != nil {
glog.Warningf("Failed to start in resource-only container %q: %v", s.ResourceContainer, err) klog.Warningf("Failed to start in resource-only container %q: %v", s.ResourceContainer, err)
} else { } else {
glog.V(2).Infof("Running in resource-only container %q", s.ResourceContainer) klog.V(2).Infof("Running in resource-only container %q", s.ResourceContainer)
} }
} }
@ -595,7 +595,7 @@ func getConntrackMax(config kubeproxyconfig.KubeProxyConntrackConfiguration) (in
if config.MaxPerCore != nil && *config.MaxPerCore > 0 { if config.MaxPerCore != nil && *config.MaxPerCore > 0 {
return -1, fmt.Errorf("invalid config: Conntrack Max and Conntrack MaxPerCore are mutually exclusive") return -1, fmt.Errorf("invalid config: Conntrack Max and Conntrack MaxPerCore are mutually exclusive")
} }
glog.V(3).Infof("getConntrackMax: using absolute conntrack-max (deprecated)") klog.V(3).Infof("getConntrackMax: using absolute conntrack-max (deprecated)")
return int(*config.Max), nil return int(*config.Max), nil
} }
if config.MaxPerCore != nil && *config.MaxPerCore > 0 { if config.MaxPerCore != nil && *config.MaxPerCore > 0 {
@ -605,10 +605,10 @@ func getConntrackMax(config kubeproxyconfig.KubeProxyConntrackConfiguration) (in
} }
scaled := int(*config.MaxPerCore) * goruntime.NumCPU() scaled := int(*config.MaxPerCore) * goruntime.NumCPU()
if scaled > floor { if scaled > floor {
glog.V(3).Infof("getConntrackMax: using scaled conntrack-max-per-core") klog.V(3).Infof("getConntrackMax: using scaled conntrack-max-per-core")
return scaled, nil return scaled, nil
} }
glog.V(3).Infof("getConntrackMax: using conntrack-min") klog.V(3).Infof("getConntrackMax: using conntrack-min")
return floor, nil return floor, nil
} }
return 0, nil return 0, nil

View File

@ -48,7 +48,7 @@ import (
utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl"
"k8s.io/utils/exec" "k8s.io/utils/exec"
"github.com/golang/glog" "k8s.io/klog"
) )
// NewProxyServer returns a new ProxyServer. // NewProxyServer returns a new ProxyServer.
@ -75,7 +75,7 @@ func newProxyServer(
protocol := utiliptables.ProtocolIpv4 protocol := utiliptables.ProtocolIpv4
if net.ParseIP(config.BindAddress).To4() == nil { if net.ParseIP(config.BindAddress).To4() == nil {
glog.V(0).Infof("IPv6 bind address (%s), assume IPv6 operation", config.BindAddress) klog.V(0).Infof("IPv6 bind address (%s), assume IPv6 operation", config.BindAddress)
protocol = utiliptables.ProtocolIpv6 protocol = utiliptables.ProtocolIpv6
} }
@ -145,7 +145,7 @@ func newProxyServer(
nodeIP = utilnode.GetNodeIP(client, hostname) nodeIP = utilnode.GetNodeIP(client, hostname)
} }
if proxyMode == proxyModeIPTables { if proxyMode == proxyModeIPTables {
glog.V(0).Info("Using iptables Proxier.") klog.V(0).Info("Using iptables Proxier.")
if config.IPTables.MasqueradeBit == nil { if config.IPTables.MasqueradeBit == nil {
// MasqueradeBit must be specified or defaulted. // MasqueradeBit must be specified or defaulted.
return nil, fmt.Errorf("unable to read IPTables MasqueradeBit from config") return nil, fmt.Errorf("unable to read IPTables MasqueradeBit from config")
@ -175,7 +175,7 @@ func newProxyServer(
serviceEventHandler = proxierIPTables serviceEventHandler = proxierIPTables
endpointsEventHandler = proxierIPTables endpointsEventHandler = proxierIPTables
// No turning back. Remove artifacts that might still exist from the userspace Proxier. // No turning back. Remove artifacts that might still exist from the userspace Proxier.
glog.V(0).Info("Tearing down inactive rules.") klog.V(0).Info("Tearing down inactive rules.")
// TODO this has side effects that should only happen when Run() is invoked. // TODO this has side effects that should only happen when Run() is invoked.
userspace.CleanupLeftovers(iptInterface) userspace.CleanupLeftovers(iptInterface)
// IPVS Proxier will generate some iptables rules, need to clean them before switching to other proxy mode. // IPVS Proxier will generate some iptables rules, need to clean them before switching to other proxy mode.
@ -186,7 +186,7 @@ func newProxyServer(
ipvs.CleanupLeftovers(ipvsInterface, iptInterface, ipsetInterface, cleanupIPVS) ipvs.CleanupLeftovers(ipvsInterface, iptInterface, ipsetInterface, cleanupIPVS)
} }
} else if proxyMode == proxyModeIPVS { } else if proxyMode == proxyModeIPVS {
glog.V(0).Info("Using ipvs Proxier.") klog.V(0).Info("Using ipvs Proxier.")
proxierIPVS, err := ipvs.NewProxier( proxierIPVS, err := ipvs.NewProxier(
iptInterface, iptInterface,
ipvsInterface, ipvsInterface,
@ -213,12 +213,12 @@ func newProxyServer(
proxier = proxierIPVS proxier = proxierIPVS
serviceEventHandler = proxierIPVS serviceEventHandler = proxierIPVS
endpointsEventHandler = proxierIPVS endpointsEventHandler = proxierIPVS
glog.V(0).Info("Tearing down inactive rules.") klog.V(0).Info("Tearing down inactive rules.")
// TODO this has side effects that should only happen when Run() is invoked. // TODO this has side effects that should only happen when Run() is invoked.
userspace.CleanupLeftovers(iptInterface) userspace.CleanupLeftovers(iptInterface)
iptables.CleanupLeftovers(iptInterface) iptables.CleanupLeftovers(iptInterface)
} else { } else {
glog.V(0).Info("Using userspace Proxier.") klog.V(0).Info("Using userspace Proxier.")
// This is a proxy.LoadBalancer which NewProxier needs but has methods we don't need for // This is a proxy.LoadBalancer which NewProxier needs but has methods we don't need for
// our config.EndpointsConfigHandler. // our config.EndpointsConfigHandler.
loadBalancer := userspace.NewLoadBalancerRR() loadBalancer := userspace.NewLoadBalancerRR()
@ -244,7 +244,7 @@ func newProxyServer(
proxier = proxierUserspace proxier = proxierUserspace
// Remove artifacts from the iptables and ipvs Proxier, if not on Windows. // Remove artifacts from the iptables and ipvs Proxier, if not on Windows.
glog.V(0).Info("Tearing down inactive rules.") klog.V(0).Info("Tearing down inactive rules.")
// TODO this has side effects that should only happen when Run() is invoked. // TODO this has side effects that should only happen when Run() is invoked.
iptables.CleanupLeftovers(iptInterface) iptables.CleanupLeftovers(iptInterface)
// IPVS Proxier will generate some iptables rules, need to clean them before switching to other proxy mode. // IPVS Proxier will generate some iptables rules, need to clean them before switching to other proxy mode.
@ -292,7 +292,7 @@ func getProxyMode(proxyMode string, iptver iptables.IPTablesVersioner, khandle i
case proxyModeIPVS: case proxyModeIPVS:
return tryIPVSProxy(iptver, khandle, ipsetver, kcompat) return tryIPVSProxy(iptver, khandle, ipsetver, kcompat)
} }
glog.Warningf("Flag proxy-mode=%q unknown, assuming iptables proxy", proxyMode) klog.Warningf("Flag proxy-mode=%q unknown, assuming iptables proxy", proxyMode)
return tryIPTablesProxy(iptver, kcompat) return tryIPTablesProxy(iptver, kcompat)
} }
@ -309,7 +309,7 @@ func tryIPVSProxy(iptver iptables.IPTablesVersioner, khandle ipvs.KernelHandler,
} }
// Try to fallback to iptables before falling back to userspace // Try to fallback to iptables before falling back to userspace
glog.V(1).Infof("Can't use ipvs proxier, trying iptables proxier") klog.V(1).Infof("Can't use ipvs proxier, trying iptables proxier")
return tryIPTablesProxy(iptver, kcompat) return tryIPTablesProxy(iptver, kcompat)
} }
@ -324,6 +324,6 @@ func tryIPTablesProxy(iptver iptables.IPTablesVersioner, kcompat iptables.Kernel
return proxyModeIPTables return proxyModeIPTables
} }
// Fallback. // Fallback.
glog.V(1).Infof("Can't use iptables proxy, using userspace proxier") klog.V(1).Infof("Can't use iptables proxy, using userspace proxier")
return proxyModeUserspace return proxyModeUserspace
} }

View File

@ -42,7 +42,7 @@ import (
utilnode "k8s.io/kubernetes/pkg/util/node" utilnode "k8s.io/kubernetes/pkg/util/node"
"k8s.io/utils/exec" "k8s.io/utils/exec"
"github.com/golang/glog" "k8s.io/klog"
) )
// NewProxyServer returns a new ProxyServer. // NewProxyServer returns a new ProxyServer.
@ -99,7 +99,7 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi
proxyMode := getProxyMode(string(config.Mode), winkernel.WindowsKernelCompatTester{}) proxyMode := getProxyMode(string(config.Mode), winkernel.WindowsKernelCompatTester{})
if proxyMode == proxyModeKernelspace { if proxyMode == proxyModeKernelspace {
glog.V(0).Info("Using Kernelspace Proxier.") klog.V(0).Info("Using Kernelspace Proxier.")
proxierKernelspace, err := winkernel.NewProxier( proxierKernelspace, err := winkernel.NewProxier(
config.IPTables.SyncPeriod.Duration, config.IPTables.SyncPeriod.Duration,
config.IPTables.MinSyncPeriod.Duration, config.IPTables.MinSyncPeriod.Duration,
@ -118,7 +118,7 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi
endpointsEventHandler = proxierKernelspace endpointsEventHandler = proxierKernelspace
serviceEventHandler = proxierKernelspace serviceEventHandler = proxierKernelspace
} else { } else {
glog.V(0).Info("Using userspace Proxier.") klog.V(0).Info("Using userspace Proxier.")
execer := exec.New() execer := exec.New()
var netshInterface utilnetsh.Interface var netshInterface utilnetsh.Interface
netshInterface = utilnetsh.New(execer) netshInterface = utilnetsh.New(execer)
@ -143,7 +143,7 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi
} }
proxier = proxierUserspace proxier = proxierUserspace
serviceEventHandler = proxierUserspace serviceEventHandler = proxierUserspace
glog.V(0).Info("Tearing down pure-winkernel proxy rules.") klog.V(0).Info("Tearing down pure-winkernel proxy rules.")
winkernel.CleanupLeftovers() winkernel.CleanupLeftovers()
} }
@ -182,13 +182,13 @@ func tryWinKernelSpaceProxy(kcompat winkernel.KernelCompatTester) string {
// guaranteed false on error, error only necessary for debugging // guaranteed false on error, error only necessary for debugging
useWinKerelProxy, err := winkernel.CanUseWinKernelProxier(kcompat) useWinKerelProxy, err := winkernel.CanUseWinKernelProxier(kcompat)
if err != nil { if err != nil {
glog.Errorf("Can't determine whether to use windows kernel proxy, using userspace proxier: %v", err) klog.Errorf("Can't determine whether to use windows kernel proxy, using userspace proxier: %v", err)
return proxyModeUserspace return proxyModeUserspace
} }
if useWinKerelProxy { if useWinKerelProxy {
return proxyModeKernelspace return proxyModeKernelspace
} }
// Fallback. // Fallback.
glog.V(1).Infof("Can't use winkernel proxy, using userspace proxier") klog.V(1).Infof("Can't use winkernel proxy, using userspace proxier")
return proxyModeUserspace return proxyModeUserspace
} }

View File

@ -42,9 +42,9 @@ go_library(
"//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library", "//staging/src/k8s.io/client-go/informers/storage/v1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
"//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library", "//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -39,8 +39,8 @@ go_library(
"//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock: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/tools/record:go_default_library",
"//staging/src/k8s.io/kube-scheduler/config/v1alpha1:go_default_library", "//staging/src/k8s.io/kube-scheduler/config/v1alpha1:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -23,8 +23,8 @@ import (
"strconv" "strconv"
"time" "time"
"github.com/golang/glog"
"github.com/spf13/pflag" "github.com/spf13/pflag"
"k8s.io/klog"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
apimachineryconfig "k8s.io/apimachinery/pkg/apis/config" apimachineryconfig "k8s.io/apimachinery/pkg/apis/config"
@ -291,7 +291,7 @@ func makeLeaderElectionConfig(config kubeschedulerconfig.KubeSchedulerLeaderElec
// TODO remove masterOverride when CLI flags are removed. // TODO remove masterOverride when CLI flags are removed.
func createClients(config apimachineryconfig.ClientConnectionConfiguration, masterOverride string, timeout time.Duration) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) { func createClients(config apimachineryconfig.ClientConnectionConfiguration, masterOverride string, timeout time.Duration) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) {
if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 { if len(config.Kubeconfig) == 0 && len(masterOverride) == 0 {
glog.Warningf("Neither --kubeconfig nor --master was specified. Using default API client. This might not work.") klog.Warningf("Neither --kubeconfig nor --master was specified. Using default API client. This might not work.")
} }
// This creates a client, first loading any specified kubeconfig // This creates a client, first loading any specified kubeconfig

View File

@ -59,16 +59,16 @@ import (
"k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/pkg/version"
"k8s.io/kubernetes/pkg/version/verflag" "k8s.io/kubernetes/pkg/version/verflag"
"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
) )
// NewSchedulerCommand creates a *cobra.Command object with default parameters // NewSchedulerCommand creates a *cobra.Command object with default parameters
func NewSchedulerCommand() *cobra.Command { func NewSchedulerCommand() *cobra.Command {
opts, err := options.NewOptions() opts, err := options.NewOptions()
if err != nil { if err != nil {
glog.Fatalf("unable to initialize command options: %v", err) klog.Fatalf("unable to initialize command options: %v", err)
} }
cmd := &cobra.Command{ cmd := &cobra.Command{
@ -113,7 +113,7 @@ func runCommand(cmd *cobra.Command, args []string, opts *options.Options) error
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1) os.Exit(1)
} }
glog.Infof("Wrote configuration to: %s\n", opts.WriteConfigTo) klog.Infof("Wrote configuration to: %s\n", opts.WriteConfigTo)
} }
c, err := opts.Config() c, err := opts.Config()
@ -128,7 +128,7 @@ func runCommand(cmd *cobra.Command, args []string, opts *options.Options) error
cc := c.Complete() cc := c.Complete()
// To help debugging, immediately log version // To help debugging, immediately log version
glog.Infof("Version: %+v", version.Get()) klog.Infof("Version: %+v", version.Get())
// Apply algorithms based on feature gates. // Apply algorithms based on feature gates.
// TODO: make configurable? // TODO: make configurable?

View File

@ -132,7 +132,6 @@
"github.com/ghodss/yaml", "github.com/ghodss/yaml",
"github.com/gogo/protobuf/proto", "github.com/gogo/protobuf/proto",
"github.com/gogo/protobuf/sortkeys", "github.com/gogo/protobuf/sortkeys",
"github.com/golang/glog",
"github.com/golang/groupcache/lru", "github.com/golang/groupcache/lru",
"github.com/golang/protobuf/proto", "github.com/golang/protobuf/proto",
"github.com/golang/protobuf/protoc-gen-go/descriptor", "github.com/golang/protobuf/protoc-gen-go/descriptor",

View File

@ -18,7 +18,10 @@ go_library(
name = "go_default_library", name = "go_default_library",
srcs = ["kubeadm.go"], srcs = ["kubeadm.go"],
importpath = "k8s.io/kubernetes/cmd/kubeadm", importpath = "k8s.io/kubernetes/cmd/kubeadm",
deps = ["//cmd/kubeadm/app:go_default_library"], deps = [
"//cmd/kubeadm/app:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
],
) )
filegroup( filegroup(

View File

@ -12,8 +12,8 @@ go_library(
deps = [ deps = [
"//cmd/kubeadm/app/cmd:go_default_library", "//cmd/kubeadm/app/cmd:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -67,11 +67,11 @@ go_library(
"//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library",
"//staging/src/k8s.io/cluster-bootstrap/token/api:go_default_library", "//staging/src/k8s.io/cluster-bootstrap/token/api:go_default_library",
"//staging/src/k8s.io/cluster-bootstrap/token/util:go_default_library", "//staging/src/k8s.io/cluster-bootstrap/token/util:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/github.com/renstrom/dedent:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
"//vendor/sigs.k8s.io/yaml:go_default_library", "//vendor/sigs.k8s.io/yaml:go_default_library",
], ],

View File

@ -20,10 +20,10 @@ import (
"bytes" "bytes"
"io" "io"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/renstrom/dedent" "github.com/renstrom/dedent"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
) )
@ -138,7 +138,7 @@ func RunCompletion(out io.Writer, boilerPlate string, cmd *cobra.Command, args [
} }
func runCompletionBash(out io.Writer, kubeadm *cobra.Command) error { func runCompletionBash(out io.Writer, kubeadm *cobra.Command) error {
glog.V(1).Infoln("[completion] writing completion code for Bash") klog.V(1).Infoln("[completion] writing completion code for Bash")
return kubeadm.GenBashCompletion(out) return kubeadm.GenBashCompletion(out)
} }
@ -284,12 +284,12 @@ __kubeadm_convert_bash_to_zsh() {
-e "s/\\\$(type${RWORD}/\$(__kubeadm_type/g" \ -e "s/\\\$(type${RWORD}/\$(__kubeadm_type/g" \
<<'BASH_COMPLETION_EOF' <<'BASH_COMPLETION_EOF'
` `
glog.V(1).Infoln("[completion] writing completion code for Zsh") klog.V(1).Infoln("[completion] writing completion code for Zsh")
out.Write([]byte(zshInitialization)) out.Write([]byte(zshInitialization))
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
kubeadm.GenBashCompletion(buf) kubeadm.GenBashCompletion(buf)
glog.V(1).Infoln("[completion] writing completion code for Bash") klog.V(1).Infoln("[completion] writing completion code for Bash")
out.Write(buf.Bytes()) out.Write(buf.Bytes())
zshTail := ` zshTail := `

View File

@ -23,11 +23,11 @@ import (
"io/ioutil" "io/ioutil"
"strings" "strings"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/renstrom/dedent" "github.com/renstrom/dedent"
"github.com/spf13/cobra" "github.com/spf13/cobra"
flag "github.com/spf13/pflag" flag "github.com/spf13/pflag"
"k8s.io/klog"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
@ -373,7 +373,7 @@ func NewCmdConfigView(out io.Writer, kubeConfigFile *string) *cobra.Command {
The configuration is located in the %q namespace in the %q ConfigMap. The configuration is located in the %q namespace in the %q ConfigMap.
`), metav1.NamespaceSystem, constants.KubeadmConfigConfigMap), `), metav1.NamespaceSystem, constants.KubeadmConfigConfigMap),
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
glog.V(1).Infoln("[config] retrieving ClientSet from file") klog.V(1).Infoln("[config] retrieving ClientSet from file")
client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
@ -402,15 +402,15 @@ func NewCmdConfigUploadFromFile(out io.Writer, kubeConfigFile *string) *cobra.Co
kubeadmutil.CheckErr(errors.New("The --config flag is mandatory")) kubeadmutil.CheckErr(errors.New("The --config flag is mandatory"))
} }
glog.V(1).Infoln("[config] retrieving ClientSet from file") klog.V(1).Infoln("[config] retrieving ClientSet from file")
client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
// The default configuration is empty; everything should come from the file on disk // The default configuration is empty; everything should come from the file on disk
glog.V(1).Infoln("[config] creating empty default configuration") klog.V(1).Infoln("[config] creating empty default configuration")
defaultcfg := &kubeadmapiv1beta1.InitConfiguration{} defaultcfg := &kubeadmapiv1beta1.InitConfiguration{}
// Upload the configuration using the file; don't care about the defaultcfg really // Upload the configuration using the file; don't care about the defaultcfg really
glog.V(1).Infof("[config] uploading configuration") klog.V(1).Infof("[config] uploading configuration")
err = uploadConfiguration(client, cfgPath, defaultcfg) err = uploadConfiguration(client, cfgPath, defaultcfg)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
}, },
@ -438,17 +438,17 @@ func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.C
`), metav1.NamespaceSystem, constants.KubeadmConfigConfigMap), `), metav1.NamespaceSystem, constants.KubeadmConfigConfigMap),
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
var err error var err error
glog.V(1).Infoln("[config] creating new FeatureGates") klog.V(1).Infoln("[config] creating new FeatureGates")
if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, featureGatesString); err != nil { if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, featureGatesString); err != nil {
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
} }
glog.V(1).Infoln("[config] retrieving ClientSet from file") klog.V(1).Infoln("[config] retrieving ClientSet from file")
client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
// Default both statically and dynamically, convert to internal API type, and validate everything // Default both statically and dynamically, convert to internal API type, and validate everything
// The cfgPath argument is unset here as we shouldn't load a config file from disk, just go with cfg // The cfgPath argument is unset here as we shouldn't load a config file from disk, just go with cfg
glog.V(1).Infof("[config] uploading configuration") klog.V(1).Infof("[config] uploading configuration")
err = uploadConfiguration(client, "", cfg) err = uploadConfiguration(client, "", cfg)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
}, },
@ -460,7 +460,7 @@ func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.C
// RunConfigView gets the configuration persisted in the cluster // RunConfigView gets the configuration persisted in the cluster
func RunConfigView(out io.Writer, client clientset.Interface) error { func RunConfigView(out io.Writer, client clientset.Interface) error {
glog.V(1).Infoln("[config] getting the cluster configuration") klog.V(1).Infoln("[config] getting the cluster configuration")
cfgConfigMap, err := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(constants.KubeadmConfigConfigMap, metav1.GetOptions{}) cfgConfigMap, err := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(constants.KubeadmConfigConfigMap, metav1.GetOptions{})
if err != nil { if err != nil {
return err return err
@ -478,7 +478,7 @@ func uploadConfiguration(client clientset.Interface, cfgPath string, defaultcfg
// Default both statically and dynamically, convert to internal API type, and validate everything // Default both statically and dynamically, convert to internal API type, and validate everything
// First argument is unset here as we shouldn't load a config file from disk // First argument is unset here as we shouldn't load a config file from disk
glog.V(1).Infoln("[config] converting to internal API type") klog.V(1).Infoln("[config] converting to internal API type")
internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(cfgPath, defaultcfg) internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(cfgPath, defaultcfg)
if err != nil { if err != nil {
return err return err

View File

@ -25,13 +25,13 @@ import (
"strings" "strings"
"text/template" "text/template"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/renstrom/dedent" "github.com/renstrom/dedent"
"github.com/spf13/cobra" "github.com/spf13/cobra"
flag "github.com/spf13/pflag" flag "github.com/spf13/pflag"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
@ -460,7 +460,7 @@ func (d initData) Tokens() []string {
func runInit(i *initData, out io.Writer) error { func runInit(i *initData, out io.Writer) error {
// Get directories to write files to; can be faked if we're dry-running // Get directories to write files to; can be faked if we're dry-running
glog.V(1).Infof("[init] Getting certificates directory from configuration") klog.V(1).Infof("[init] Getting certificates directory from configuration")
certsDirToWriteTo, kubeConfigDir, _, _, err := getDirectoriesToUse(i.dryRun, i.dryRunDir, i.cfg.CertificatesDir) certsDirToWriteTo, kubeConfigDir, _, _, err := getDirectoriesToUse(i.dryRun, i.dryRunDir, i.cfg.CertificatesDir)
if err != nil { if err != nil {
return errors.Wrap(err, "error getting directories to use") return errors.Wrap(err, "error getting directories to use")
@ -481,18 +481,18 @@ func runInit(i *initData, out io.Writer) error {
// Upload currently used configuration to the cluster // Upload currently used configuration to the cluster
// Note: This is done right in the beginning of cluster initialization; as we might want to make other phases // Note: This is done right in the beginning of cluster initialization; as we might want to make other phases
// depend on centralized information from this source in the future // depend on centralized information from this source in the future
glog.V(1).Infof("[init] uploading currently used configuration to the cluster") klog.V(1).Infof("[init] uploading currently used configuration to the cluster")
if err := uploadconfigphase.UploadConfiguration(i.cfg, client); err != nil { if err := uploadconfigphase.UploadConfiguration(i.cfg, client); err != nil {
return errors.Wrap(err, "error uploading configuration") return errors.Wrap(err, "error uploading configuration")
} }
glog.V(1).Infof("[init] creating kubelet configuration configmap") klog.V(1).Infof("[init] creating kubelet configuration configmap")
if err := kubeletphase.CreateConfigMap(i.cfg, client); err != nil { if err := kubeletphase.CreateConfigMap(i.cfg, client); err != nil {
return errors.Wrap(err, "error creating kubelet configuration ConfigMap") return errors.Wrap(err, "error creating kubelet configuration ConfigMap")
} }
// PHASE 4: Mark the master with the right label/taint // PHASE 4: Mark the master with the right label/taint
glog.V(1).Infof("[init] marking the master with right label") klog.V(1).Infof("[init] marking the master with right label")
if err := markmasterphase.MarkMaster(client, i.cfg.NodeRegistration.Name, i.cfg.NodeRegistration.Taints); err != nil { if err := markmasterphase.MarkMaster(client, i.cfg.NodeRegistration.Name, i.cfg.NodeRegistration.Taints); err != nil {
return errors.Wrap(err, "error marking master") return errors.Wrap(err, "error marking master")
} }
@ -510,12 +510,12 @@ func runInit(i *initData, out io.Writer) error {
} }
} }
glog.V(1).Infof("[init] ensuring DNS addon") klog.V(1).Infof("[init] ensuring DNS addon")
if err := dnsaddonphase.EnsureDNSAddon(i.cfg, client); err != nil { if err := dnsaddonphase.EnsureDNSAddon(i.cfg, client); err != nil {
return errors.Wrap(err, "error ensuring dns addon") return errors.Wrap(err, "error ensuring dns addon")
} }
glog.V(1).Infof("[init] ensuring proxy addon") klog.V(1).Infof("[init] ensuring proxy addon")
if err := proxyaddonphase.EnsureProxyAddon(i.cfg, client); err != nil { if err := proxyaddonphase.EnsureProxyAddon(i.cfg, client); err != nil {
return errors.Wrap(err, "error ensuring proxy addon") return errors.Wrap(err, "error ensuring proxy addon")
} }

View File

@ -24,7 +24,6 @@ import (
"path/filepath" "path/filepath"
"text/template" "text/template"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/renstrom/dedent" "github.com/renstrom/dedent"
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -33,6 +32,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientcmdapi "k8s.io/client-go/tools/clientcmd/api" clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
certutil "k8s.io/client-go/util/cert" certutil "k8s.io/client-go/util/cert"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
@ -180,7 +180,7 @@ func NewCmdJoin(out io.Writer) *cobra.Command {
} }
if len(args) > 0 { if len(args) > 0 {
if len(cfgPath) == 0 && len(args) > 1 { if len(cfgPath) == 0 && len(args) > 1 {
glog.Warningf("[join] WARNING: More than one API server endpoint supplied on command line %v. Using the first one.", args) klog.Warningf("[join] WARNING: More than one API server endpoint supplied on command line %v. Using the first one.", args)
} }
cfg.Discovery.BootstrapToken.APIServerEndpoint = args[0] cfg.Discovery.BootstrapToken.APIServerEndpoint = args[0]
} }
@ -289,11 +289,11 @@ type Join struct {
func NewJoin(cfgPath string, defaultcfg *kubeadmapiv1beta1.JoinConfiguration, ignorePreflightErrors sets.String) (*Join, error) { func NewJoin(cfgPath string, defaultcfg *kubeadmapiv1beta1.JoinConfiguration, ignorePreflightErrors sets.String) (*Join, error) {
if defaultcfg.NodeRegistration.Name == "" { if defaultcfg.NodeRegistration.Name == "" {
glog.V(1).Infoln("[join] found NodeName empty; using OS hostname as NodeName") klog.V(1).Infoln("[join] found NodeName empty; using OS hostname as NodeName")
} }
if defaultcfg.APIEndpoint.AdvertiseAddress == "" { if defaultcfg.APIEndpoint.AdvertiseAddress == "" {
glog.V(1).Infoln("[join] found advertiseAddress empty; using default interface's IP address as advertiseAddress") klog.V(1).Infoln("[join] found advertiseAddress empty; using default interface's IP address as advertiseAddress")
} }
internalCfg, err := configutil.JoinConfigFileAndDefaultsToInternalConfig(cfgPath, defaultcfg) internalCfg, err := configutil.JoinConfigFileAndDefaultsToInternalConfig(cfgPath, defaultcfg)
@ -307,20 +307,20 @@ func NewJoin(cfgPath string, defaultcfg *kubeadmapiv1beta1.JoinConfiguration, ig
fmt.Println("[preflight] Running pre-flight checks") fmt.Println("[preflight] Running pre-flight checks")
// Start with general checks // Start with general checks
glog.V(1).Infoln("[preflight] Running general checks") klog.V(1).Infoln("[preflight] Running general checks")
if err := preflight.RunJoinNodeChecks(utilsexec.New(), internalCfg, ignorePreflightErrors); err != nil { if err := preflight.RunJoinNodeChecks(utilsexec.New(), internalCfg, ignorePreflightErrors); err != nil {
return nil, err return nil, err
} }
// Fetch the init configuration based on the join configuration // Fetch the init configuration based on the join configuration
glog.V(1).Infoln("[preflight] Fetching init configuration") klog.V(1).Infoln("[preflight] Fetching init configuration")
initCfg, tlsBootstrapCfg, err := fetchInitConfigurationFromJoinConfiguration(internalCfg) initCfg, tlsBootstrapCfg, err := fetchInitConfigurationFromJoinConfiguration(internalCfg)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// Continue with more specific checks based on the init configuration // Continue with more specific checks based on the init configuration
glog.V(1).Infoln("[preflight] Running configuration dependant checks") klog.V(1).Infoln("[preflight] Running configuration dependant checks")
if err := preflight.RunOptionalJoinNodeChecks(utilsexec.New(), initCfg, ignorePreflightErrors); err != nil { if err := preflight.RunOptionalJoinNodeChecks(utilsexec.New(), initCfg, ignorePreflightErrors); err != nil {
return nil, err return nil, err
} }
@ -457,7 +457,7 @@ func (j *Join) BootstrapKubelet(tlsBootstrapCfg *clientcmdapi.Config) error {
bootstrapKubeConfigFile := kubeadmconstants.GetBootstrapKubeletKubeConfigPath() bootstrapKubeConfigFile := kubeadmconstants.GetBootstrapKubeletKubeConfigPath()
// Write the bootstrap kubelet config file or the TLS-Boostrapped kubelet config file down to disk // Write the bootstrap kubelet config file or the TLS-Boostrapped kubelet config file down to disk
glog.V(1).Infoln("[join] writing bootstrap kubelet config file at", bootstrapKubeConfigFile) klog.V(1).Infoln("[join] writing bootstrap kubelet config file at", bootstrapKubeConfigFile)
if err := kubeconfigutil.WriteToDisk(bootstrapKubeConfigFile, tlsBootstrapCfg); err != nil { if err := kubeconfigutil.WriteToDisk(bootstrapKubeConfigFile, tlsBootstrapCfg); err != nil {
return errors.Wrap(err, "couldn't save bootstrap-kubelet.conf to disk") return errors.Wrap(err, "couldn't save bootstrap-kubelet.conf to disk")
} }
@ -482,7 +482,7 @@ func (j *Join) BootstrapKubelet(tlsBootstrapCfg *clientcmdapi.Config) error {
// Configure the kubelet. In this short timeframe, kubeadm is trying to stop/restart the kubelet // Configure the kubelet. In this short timeframe, kubeadm is trying to stop/restart the kubelet
// Try to stop the kubelet service so no race conditions occur when configuring it // Try to stop the kubelet service so no race conditions occur when configuring it
glog.V(1).Infof("Stopping the kubelet") klog.V(1).Infof("Stopping the kubelet")
kubeletphase.TryStopKubelet() kubeletphase.TryStopKubelet()
// Write the configuration for the kubelet (using the bootstrap token credentials) to disk so the kubelet can start // Write the configuration for the kubelet (using the bootstrap token credentials) to disk so the kubelet can start
@ -499,7 +499,7 @@ func (j *Join) BootstrapKubelet(tlsBootstrapCfg *clientcmdapi.Config) error {
} }
// Try to start the kubelet service in case it's inactive // Try to start the kubelet service in case it's inactive
glog.V(1).Infof("Starting the kubelet") klog.V(1).Infof("Starting the kubelet")
kubeletphase.TryStartKubelet() kubeletphase.TryStartKubelet()
// Now the kubelet will perform the TLS Bootstrap, transforming /etc/kubernetes/bootstrap-kubelet.conf to /etc/kubernetes/kubelet.conf // Now the kubelet will perform the TLS Bootstrap, transforming /etc/kubernetes/bootstrap-kubelet.conf to /etc/kubernetes/kubelet.conf
@ -517,7 +517,7 @@ func (j *Join) BootstrapKubelet(tlsBootstrapCfg *clientcmdapi.Config) error {
return err return err
} }
glog.V(1).Infof("[join] preserving the crisocket information for the node") klog.V(1).Infof("[join] preserving the crisocket information for the node")
if err := patchnodephase.AnnotateCRISocket(client, j.cfg.NodeRegistration.Name, j.cfg.NodeRegistration.CRISocket); err != nil { if err := patchnodephase.AnnotateCRISocket(client, j.cfg.NodeRegistration.Name, j.cfg.NodeRegistration.CRISocket); err != nil {
return errors.Wrap(err, "error uploading crisocket") return errors.Wrap(err, "error uploading crisocket")
} }
@ -552,18 +552,18 @@ func (j *Join) PostInstallControlPlane(initConfiguration *kubeadmapi.InitConfigu
// "If you add a new member to a 1-node cluster, the cluster cannot make progress before the new member starts // "If you add a new member to a 1-node cluster, the cluster cannot make progress before the new member starts
// because it needs two members as majority to agree on the consensus. You will only see this behavior between the time // because it needs two members as majority to agree on the consensus. You will only see this behavior between the time
// etcdctl member add informs the cluster about the new member and the new member successfully establishing a connection to the existing one." // etcdctl member add informs the cluster about the new member and the new member successfully establishing a connection to the existing one."
glog.V(1).Info("[join] adding etcd") klog.V(1).Info("[join] adding etcd")
if err := etcdphase.CreateStackedEtcdStaticPodManifestFile(client, kubeadmconstants.GetStaticPodDirectory(), initConfiguration); err != nil { if err := etcdphase.CreateStackedEtcdStaticPodManifestFile(client, kubeadmconstants.GetStaticPodDirectory(), initConfiguration); err != nil {
return errors.Wrap(err, "error creating local etcd static pod manifest file") return errors.Wrap(err, "error creating local etcd static pod manifest file")
} }
} }
glog.V(1).Info("[join] uploading currently used configuration to the cluster") klog.V(1).Info("[join] uploading currently used configuration to the cluster")
if err := uploadconfigphase.UploadConfiguration(initConfiguration, client); err != nil { if err := uploadconfigphase.UploadConfiguration(initConfiguration, client); err != nil {
return errors.Wrap(err, "error uploading configuration") return errors.Wrap(err, "error uploading configuration")
} }
glog.V(1).Info("[join] marking the master with right label") klog.V(1).Info("[join] marking the master with right label")
if err = markmasterphase.MarkMaster(client, initConfiguration.NodeRegistration.Name, initConfiguration.NodeRegistration.Taints); err != nil { if err = markmasterphase.MarkMaster(client, initConfiguration.NodeRegistration.Name, initConfiguration.NodeRegistration.Taints); err != nil {
return errors.Wrap(err, "error applying master label and taints") return errors.Wrap(err, "error applying master label and taints")
} }
@ -587,14 +587,14 @@ func waitForTLSBootstrappedClient() error {
func fetchInitConfigurationFromJoinConfiguration(cfg *kubeadmapi.JoinConfiguration) (*kubeadmapi.InitConfiguration, *clientcmdapi.Config, error) { func fetchInitConfigurationFromJoinConfiguration(cfg *kubeadmapi.JoinConfiguration) (*kubeadmapi.InitConfiguration, *clientcmdapi.Config, error) {
// Perform the Discovery, which turns a Bootstrap Token and optionally (and preferably) a CA cert hash into a KubeConfig // Perform the Discovery, which turns a Bootstrap Token and optionally (and preferably) a CA cert hash into a KubeConfig
// file that may be used for the TLS Bootstrapping process the kubelet performs using the Certificates API. // file that may be used for the TLS Bootstrapping process the kubelet performs using the Certificates API.
glog.V(1).Infoln("[join] Discovering cluster-info") klog.V(1).Infoln("[join] Discovering cluster-info")
tlsBootstrapCfg, err := discovery.For(cfg) tlsBootstrapCfg, err := discovery.For(cfg)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
// Retrieves the kubeadm configuration // Retrieves the kubeadm configuration
glog.V(1).Infoln("[join] Retrieving KubeConfig objects") klog.V(1).Infoln("[join] Retrieving KubeConfig objects")
initConfiguration, err := fetchInitConfiguration(tlsBootstrapCfg) initConfiguration, err := fetchInitConfiguration(tlsBootstrapCfg)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err

View File

@ -52,10 +52,10 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/github.com/renstrom/dedent:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
], ],
) )

View File

@ -19,8 +19,8 @@ package phases
import ( import (
"strings" "strings"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
@ -83,7 +83,7 @@ func EnsureAllAddons(cfg *kubeadmapi.InitConfiguration, client clientset.Interfa
proxyaddon.EnsureProxyAddon, proxyaddon.EnsureProxyAddon,
} }
glog.V(1).Infoln("[addon] installing all addons") klog.V(1).Infoln("[addon] installing all addons")
for _, action := range addonActions { for _, action := range addonActions {
err := action(cfg, client) err := action(cfg, client)
if err != nil { if err != nil {

View File

@ -19,8 +19,8 @@ package phases
import ( import (
"fmt" "fmt"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
@ -93,7 +93,7 @@ func runEtcdPhaseLocal() func(c workflow.RunData) error {
return errors.Wrap(err, "error creating local etcd static pod manifest file") return errors.Wrap(err, "error creating local etcd static pod manifest file")
} }
} else { } else {
glog.V(1).Infof("[etcd] External etcd mode. Skipping the creation of a manifest for local etcd") klog.V(1).Infof("[etcd] External etcd mode. Skipping the creation of a manifest for local etcd")
} }
return nil return nil
} }

View File

@ -17,8 +17,8 @@ limitations under the License.
package phases package phases
import ( import (
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
@ -68,7 +68,7 @@ func runKubeletStart(c workflow.RunData) error {
// First off, configure the kubelet. In this short timeframe, kubeadm is trying to stop/restart the kubelet // First off, configure the kubelet. In this short timeframe, kubeadm is trying to stop/restart the kubelet
// Try to stop the kubelet service so no race conditions occur when configuring it // Try to stop the kubelet service so no race conditions occur when configuring it
if !data.DryRun() { if !data.DryRun() {
glog.V(1).Infof("Stopping the kubelet") klog.V(1).Infof("Stopping the kubelet")
kubeletphase.TryStopKubelet() kubeletphase.TryStopKubelet()
} }
@ -86,7 +86,7 @@ func runKubeletStart(c workflow.RunData) error {
// Try to start the kubelet service in case it's inactive // Try to start the kubelet service in case it's inactive
if !data.DryRun() { if !data.DryRun() {
glog.V(1).Infof("Starting the kubelet") klog.V(1).Infof("Starting the kubelet")
kubeletphase.TryStartKubelet() kubeletphase.TryStartKubelet()
} }

View File

@ -19,10 +19,10 @@ package phases
import ( import (
"fmt" "fmt"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
@ -105,7 +105,7 @@ func runUploadKubeadmConfig(c workflow.RunData) error {
return err return err
} }
glog.V(1).Infof("[upload-config] Uploading the kubeadm ClusterConfiguration to a ConfigMap") klog.V(1).Infof("[upload-config] Uploading the kubeadm ClusterConfiguration to a ConfigMap")
if err := uploadconfig.UploadConfiguration(cfg, client); err != nil { if err := uploadconfig.UploadConfiguration(cfg, client); err != nil {
return errors.Wrap(err, "error uploading the kubeadm ClusterConfiguration") return errors.Wrap(err, "error uploading the kubeadm ClusterConfiguration")
} }
@ -119,12 +119,12 @@ func runUploadKubeletConfig(c workflow.RunData) error {
return err return err
} }
glog.V(1).Infof("[upload-config] Uploading the kubelet component config to a ConfigMap") klog.V(1).Infof("[upload-config] Uploading the kubelet component config to a ConfigMap")
if err = kubeletphase.CreateConfigMap(cfg, client); err != nil { if err = kubeletphase.CreateConfigMap(cfg, client); err != nil {
return errors.Wrap(err, "error creating kubelet configuration ConfigMap") return errors.Wrap(err, "error creating kubelet configuration ConfigMap")
} }
glog.V(1).Infof("[upload-config] Preserving the CRISocket information for the control-plane node") klog.V(1).Infof("[upload-config] Preserving the CRISocket information for the control-plane node")
if err := patchnodephase.AnnotateCRISocket(client, cfg.NodeRegistration.Name, cfg.NodeRegistration.CRISocket); err != nil { if err := patchnodephase.AnnotateCRISocket(client, cfg.NodeRegistration.Name, cfg.NodeRegistration.CRISocket); err != nil {
return errors.Wrap(err, "Error writing Crisocket information for the control-plane node") return errors.Wrap(err, "Error writing Crisocket information for the control-plane node")
} }

View File

@ -23,10 +23,10 @@ import (
"text/template" "text/template"
"time" "time"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/renstrom/dedent" "github.com/renstrom/dedent"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
@ -86,7 +86,7 @@ func runWaitControlPlanePhase(c workflow.RunData) error {
} }
// waiter holds the apiclient.Waiter implementation of choice, responsible for querying the API server in various ways and waiting for conditions to be fulfilled // waiter holds the apiclient.Waiter implementation of choice, responsible for querying the API server in various ways and waiting for conditions to be fulfilled
glog.V(1).Infof("[wait-control-plane] Waiting for the API server to be healthy") klog.V(1).Infof("[wait-control-plane] Waiting for the API server to be healthy")
client, err := data.Client() client, err := data.Client()
if err != nil { if err != nil {

View File

@ -26,8 +26,8 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
@ -129,7 +129,7 @@ func (r *Reset) Run(out io.Writer, client clientset.Interface) error {
// Only clear etcd data when using local etcd. // Only clear etcd data when using local etcd.
etcdManifestPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName, "etcd.yaml") etcdManifestPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName, "etcd.yaml")
glog.V(1).Infof("[reset] checking for etcd config") klog.V(1).Infof("[reset] checking for etcd config")
etcdDataDir, err := getEtcdDataDir(etcdManifestPath, client) etcdDataDir, err := getEtcdDataDir(etcdManifestPath, client)
if err == nil { if err == nil {
dirsToClean = append(dirsToClean, etcdDataDir) dirsToClean = append(dirsToClean, etcdDataDir)
@ -139,16 +139,16 @@ func (r *Reset) Run(out io.Writer, client clientset.Interface) error {
} }
// Try to stop the kubelet service // Try to stop the kubelet service
glog.V(1).Infof("[reset] getting init system") klog.V(1).Infof("[reset] getting init system")
initSystem, err := initsystem.GetInitSystem() initSystem, err := initsystem.GetInitSystem()
if err != nil { if err != nil {
glog.Warningln("[reset] the kubelet service could not be stopped by kubeadm. Unable to detect a supported init system!") klog.Warningln("[reset] the kubelet service could not be stopped by kubeadm. Unable to detect a supported init system!")
glog.Warningln("[reset] please ensure kubelet is stopped manually") klog.Warningln("[reset] please ensure kubelet is stopped manually")
} else { } else {
fmt.Println("[reset] stopping the kubelet service") fmt.Println("[reset] stopping the kubelet service")
if err := initSystem.ServiceStop("kubelet"); err != nil { if err := initSystem.ServiceStop("kubelet"); err != nil {
glog.Warningf("[reset] the kubelet service could not be stopped by kubeadm: [%v]\n", err) klog.Warningf("[reset] the kubelet service could not be stopped by kubeadm: [%v]\n", err)
glog.Warningln("[reset] please ensure kubelet is stopped manually") klog.Warningln("[reset] please ensure kubelet is stopped manually")
} }
} }
@ -156,29 +156,29 @@ func (r *Reset) Run(out io.Writer, client clientset.Interface) error {
fmt.Printf("[reset] unmounting mounted directories in %q\n", kubeadmconstants.KubeletRunDirectory) fmt.Printf("[reset] unmounting mounted directories in %q\n", kubeadmconstants.KubeletRunDirectory)
umountDirsCmd := fmt.Sprintf("awk '$2 ~ path {print $2}' path=%s /proc/mounts | xargs -r umount", kubeadmconstants.KubeletRunDirectory) umountDirsCmd := fmt.Sprintf("awk '$2 ~ path {print $2}' path=%s /proc/mounts | xargs -r umount", kubeadmconstants.KubeletRunDirectory)
glog.V(1).Infof("[reset] executing command %q", umountDirsCmd) klog.V(1).Infof("[reset] executing command %q", umountDirsCmd)
umountOutputBytes, err := exec.Command("sh", "-c", umountDirsCmd).Output() umountOutputBytes, err := exec.Command("sh", "-c", umountDirsCmd).Output()
if err != nil { if err != nil {
glog.Errorf("[reset] failed to unmount mounted directories in %s: %s\n", kubeadmconstants.KubeletRunDirectory, string(umountOutputBytes)) klog.Errorf("[reset] failed to unmount mounted directories in %s: %s\n", kubeadmconstants.KubeletRunDirectory, string(umountOutputBytes))
} }
glog.V(1).Info("[reset] removing Kubernetes-managed containers") klog.V(1).Info("[reset] removing Kubernetes-managed containers")
if err := removeContainers(utilsexec.New(), r.criSocketPath); err != nil { if err := removeContainers(utilsexec.New(), r.criSocketPath); err != nil {
glog.Errorf("[reset] failed to remove containers: %+v", err) klog.Errorf("[reset] failed to remove containers: %+v", err)
} }
dirsToClean = append(dirsToClean, []string{kubeadmconstants.KubeletRunDirectory, "/etc/cni/net.d", "/var/lib/dockershim", "/var/run/kubernetes"}...) dirsToClean = append(dirsToClean, []string{kubeadmconstants.KubeletRunDirectory, "/etc/cni/net.d", "/var/lib/dockershim", "/var/run/kubernetes"}...)
// Then clean contents from the stateful kubelet, etcd and cni directories // Then clean contents from the stateful kubelet, etcd and cni directories
fmt.Printf("[reset] deleting contents of stateful directories: %v\n", dirsToClean) fmt.Printf("[reset] deleting contents of stateful directories: %v\n", dirsToClean)
for _, dir := range dirsToClean { for _, dir := range dirsToClean {
glog.V(1).Infof("[reset] deleting content of %s", dir) klog.V(1).Infof("[reset] deleting content of %s", dir)
cleanDir(dir) cleanDir(dir)
} }
// Remove contents from the config and pki directories // Remove contents from the config and pki directories
glog.V(1).Infoln("[reset] removing contents from the config and pki directories") klog.V(1).Infoln("[reset] removing contents from the config and pki directories")
if r.certsDir != kubeadmapiv1beta1.DefaultCertificatesDir { if r.certsDir != kubeadmapiv1beta1.DefaultCertificatesDir {
glog.Warningf("[reset] WARNING: cleaning a non-default certificates directory: %q\n", r.certsDir) klog.Warningf("[reset] WARNING: cleaning a non-default certificates directory: %q\n", r.certsDir)
} }
resetConfigDir(kubeadmconstants.KubernetesDir, r.certsDir) resetConfigDir(kubeadmconstants.KubernetesDir, r.certsDir)
@ -193,7 +193,7 @@ func getEtcdDataDir(manifestPath string, client clientset.Interface) (string, er
if err == nil { if err == nil {
return cfg.Etcd.Local.DataDir, nil return cfg.Etcd.Local.DataDir, nil
} }
glog.Warningf("[reset] Unable to fetch the kubeadm-config ConfigMap, using etcd pod spec as fallback: %v", err) klog.Warningf("[reset] Unable to fetch the kubeadm-config ConfigMap, using etcd pod spec as fallback: %v", err)
etcdPod, err := utilstaticpod.ReadStaticPodFromDisk(manifestPath) etcdPod, err := utilstaticpod.ReadStaticPodFromDisk(manifestPath)
if err != nil { if err != nil {
@ -261,7 +261,7 @@ func resetConfigDir(configPathDir, pkiPathDir string) {
fmt.Printf("[reset] deleting contents of config directories: %v\n", dirsToClean) fmt.Printf("[reset] deleting contents of config directories: %v\n", dirsToClean)
for _, dir := range dirsToClean { for _, dir := range dirsToClean {
if err := cleanDir(dir); err != nil { if err := cleanDir(dir); err != nil {
glog.Errorf("[reset] failed to remove directory: %q [%v]\n", dir, err) klog.Errorf("[reset] failed to remove directory: %q [%v]\n", dir, err)
} }
} }
@ -275,7 +275,7 @@ func resetConfigDir(configPathDir, pkiPathDir string) {
fmt.Printf("[reset] deleting files: %v\n", filesToClean) fmt.Printf("[reset] deleting files: %v\n", filesToClean)
for _, path := range filesToClean { for _, path := range filesToClean {
if err := os.RemoveAll(path); err != nil { if err := os.RemoveAll(path); err != nil {
glog.Errorf("[reset] failed to remove file: %q [%v]\n", path, err) klog.Errorf("[reset] failed to remove file: %q [%v]\n", path, err)
} }
} }
} }

View File

@ -24,10 +24,10 @@ import (
"text/tabwriter" "text/tabwriter"
"time" "time"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/renstrom/dedent" "github.com/renstrom/dedent"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
@ -113,14 +113,14 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command {
if len(args) > 0 { if len(args) > 0 {
bto.TokenStr = args[0] bto.TokenStr = args[0]
} }
glog.V(1).Infoln("[token] validating mixed arguments") klog.V(1).Infoln("[token] validating mixed arguments")
err := validation.ValidateMixedArguments(tokenCmd.Flags()) err := validation.ValidateMixedArguments(tokenCmd.Flags())
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
err = bto.ApplyTo(cfg) err = bto.ApplyTo(cfg)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
glog.V(1).Infoln("[token] getting Clientsets from kubeconfig file") klog.V(1).Infoln("[token] getting Clientsets from kubeconfig file")
kubeConfigFile = cmdutil.FindExistingKubeConfig(kubeConfigFile) kubeConfigFile = cmdutil.FindExistingKubeConfig(kubeConfigFile)
client, err := getClientset(kubeConfigFile, dryRun) client, err := getClientset(kubeConfigFile, dryRun)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
@ -215,13 +215,13 @@ func RunCreateToken(out io.Writer, client clientset.Interface, cfgPath string, c
phaseutil.SetKubernetesVersion(cfg) phaseutil.SetKubernetesVersion(cfg)
// This call returns the ready-to-use configuration based on the configuration file that might or might not exist and the default cfg populated by flags // This call returns the ready-to-use configuration based on the configuration file that might or might not exist and the default cfg populated by flags
glog.V(1).Infoln("[token] loading configurations") klog.V(1).Infoln("[token] loading configurations")
internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(cfgPath, cfg) internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(cfgPath, cfg)
if err != nil { if err != nil {
return err return err
} }
glog.V(1).Infoln("[token] creating token") klog.V(1).Infoln("[token] creating token")
if err := tokenphase.CreateNewTokens(client, internalcfg.BootstrapTokens); err != nil { if err := tokenphase.CreateNewTokens(client, internalcfg.BootstrapTokens); err != nil {
return err return err
} }
@ -243,7 +243,7 @@ func RunCreateToken(out io.Writer, client clientset.Interface, cfgPath string, c
// RunGenerateToken just generates a random token for the user // RunGenerateToken just generates a random token for the user
func RunGenerateToken(out io.Writer) error { func RunGenerateToken(out io.Writer) error {
glog.V(1).Infoln("[token] generating random token") klog.V(1).Infoln("[token] generating random token")
token, err := bootstraputil.GenerateBootstrapToken() token, err := bootstraputil.GenerateBootstrapToken()
if err != nil { if err != nil {
return err return err
@ -256,7 +256,7 @@ func RunGenerateToken(out io.Writer) error {
// RunListTokens lists details on all existing bootstrap tokens on the server. // RunListTokens lists details on all existing bootstrap tokens on the server.
func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) error { func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) error {
// First, build our selector for bootstrap tokens only // First, build our selector for bootstrap tokens only
glog.V(1).Infoln("[token] preparing selector for bootstrap token") klog.V(1).Infoln("[token] preparing selector for bootstrap token")
tokenSelector := fields.SelectorFromSet( tokenSelector := fields.SelectorFromSet(
map[string]string{ map[string]string{
// TODO: We hard-code "type" here until `field_constants.go` that is // TODO: We hard-code "type" here until `field_constants.go` that is
@ -269,7 +269,7 @@ func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) er
FieldSelector: tokenSelector.String(), FieldSelector: tokenSelector.String(),
} }
glog.V(1).Infoln("[token] retrieving list of bootstrap tokens") klog.V(1).Infoln("[token] retrieving list of bootstrap tokens")
secrets, err := client.CoreV1().Secrets(metav1.NamespaceSystem).List(listOptions) secrets, err := client.CoreV1().Secrets(metav1.NamespaceSystem).List(listOptions)
if err != nil { if err != nil {
return errors.Wrap(err, "failed to list bootstrap tokens") return errors.Wrap(err, "failed to list bootstrap tokens")
@ -298,7 +298,7 @@ func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) er
func RunDeleteToken(out io.Writer, client clientset.Interface, tokenIDOrToken string) error { func RunDeleteToken(out io.Writer, client clientset.Interface, tokenIDOrToken string) error {
// Assume the given first argument is a token id and try to parse it // Assume the given first argument is a token id and try to parse it
tokenID := tokenIDOrToken tokenID := tokenIDOrToken
glog.V(1).Infoln("[token] parsing token ID") klog.V(1).Infoln("[token] parsing token ID")
if !bootstraputil.IsValidBootstrapTokenID(tokenIDOrToken) { if !bootstraputil.IsValidBootstrapTokenID(tokenIDOrToken) {
// Okay, the full token with both id and secret was probably passed. Parse it and extract the ID only // Okay, the full token with both id and secret was probably passed. Parse it and extract the ID only
bts, err := kubeadmapiv1beta1.NewBootstrapTokenString(tokenIDOrToken) bts, err := kubeadmapiv1beta1.NewBootstrapTokenString(tokenIDOrToken)
@ -310,7 +310,7 @@ func RunDeleteToken(out io.Writer, client clientset.Interface, tokenIDOrToken st
} }
tokenSecretName := bootstraputil.BootstrapTokenSecretName(tokenID) tokenSecretName := bootstraputil.BootstrapTokenSecretName(tokenID)
glog.V(1).Infoln("[token] deleting token") klog.V(1).Infoln("[token] deleting token")
if err := client.CoreV1().Secrets(metav1.NamespaceSystem).Delete(tokenSecretName, nil); err != nil { if err := client.CoreV1().Secrets(metav1.NamespaceSystem).Delete(tokenSecretName, nil); err != nil {
return errors.Wrap(err, "failed to delete bootstrap token") return errors.Wrap(err, "failed to delete bootstrap token")
} }

View File

@ -39,11 +39,11 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//staging/src/k8s.io/client-go/discovery/fake:go_default_library", "//staging/src/k8s.io/client-go/discovery/fake:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/github.com/pmezard/go-difflib/difflib:go_default_library", "//vendor/github.com/pmezard/go-difflib/difflib:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -21,11 +21,11 @@ import (
"os" "os"
"time" "time"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/version"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
@ -83,13 +83,13 @@ func NewCmdApply(apf *applyPlanFlags) *cobra.Command {
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
// Ensure the user is root // Ensure the user is root
glog.V(1).Infof("running preflight checks") klog.V(1).Infof("running preflight checks")
err = runPreflightChecks(flags.ignorePreflightErrorsSet) err = runPreflightChecks(flags.ignorePreflightErrorsSet)
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
// If the version is specified in config file, pick up that value. // If the version is specified in config file, pick up that value.
if flags.cfgPath != "" { if flags.cfgPath != "" {
glog.V(1).Infof("fetching configuration from file %s", flags.cfgPath) klog.V(1).Infof("fetching configuration from file %s", flags.cfgPath)
// Note that cfg isn't preserved here, it's just an one-off to populate flags.newK8sVersionStr based on --config // Note that cfg isn't preserved here, it's just an one-off to populate flags.newK8sVersionStr based on --config
cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1beta1.InitConfiguration{}) cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1beta1.InitConfiguration{})
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
@ -147,8 +147,8 @@ func NewCmdApply(apf *applyPlanFlags) *cobra.Command {
func RunApply(flags *applyFlags) error { func RunApply(flags *applyFlags) error {
// Start with the basics, verify that the cluster is healthy and get the configuration from the cluster (using the ConfigMap) // Start with the basics, verify that the cluster is healthy and get the configuration from the cluster (using the ConfigMap)
glog.V(1).Infof("[upgrade/apply] verifying health of cluster") klog.V(1).Infof("[upgrade/apply] verifying health of cluster")
glog.V(1).Infof("[upgrade/apply] retrieving configuration from cluster") klog.V(1).Infof("[upgrade/apply] retrieving configuration from cluster")
upgradeVars, err := enforceRequirements(flags.applyPlanFlags, flags.dryRun, flags.newK8sVersionStr) upgradeVars, err := enforceRequirements(flags.applyPlanFlags, flags.dryRun, flags.newK8sVersionStr)
if err != nil { if err != nil {
return err return err
@ -160,7 +160,7 @@ func RunApply(flags *applyFlags) error {
} }
// Validate requested and validate actual version // Validate requested and validate actual version
glog.V(1).Infof("[upgrade/apply] validating requested and actual version") klog.V(1).Infof("[upgrade/apply] validating requested and actual version")
if err := configutil.NormalizeKubernetesVersion(&upgradeVars.cfg.ClusterConfiguration); err != nil { if err := configutil.NormalizeKubernetesVersion(&upgradeVars.cfg.ClusterConfiguration); err != nil {
return err return err
} }
@ -178,7 +178,7 @@ func RunApply(flags *applyFlags) error {
} }
// Enforce the version skew policies // Enforce the version skew policies
glog.V(1).Infof("[upgrade/version] enforcing version skew policies") klog.V(1).Infof("[upgrade/version] enforcing version skew policies")
if err := EnforceVersionPolicies(flags, upgradeVars.versionGetter); err != nil { if err := EnforceVersionPolicies(flags, upgradeVars.versionGetter); err != nil {
return errors.Wrap(err, "[upgrade/version] FATAL") return errors.Wrap(err, "[upgrade/version] FATAL")
} }
@ -192,7 +192,7 @@ func RunApply(flags *applyFlags) error {
// Use a prepuller implementation based on creating DaemonSets // Use a prepuller implementation based on creating DaemonSets
// and block until all DaemonSets are ready; then we know for sure that all control plane images are cached locally // and block until all DaemonSets are ready; then we know for sure that all control plane images are cached locally
glog.V(1).Infof("[upgrade/apply] creating prepuller") klog.V(1).Infof("[upgrade/apply] creating prepuller")
prepuller := upgrade.NewDaemonSetPrepuller(upgradeVars.client, upgradeVars.waiter, &upgradeVars.cfg.ClusterConfiguration) prepuller := upgrade.NewDaemonSetPrepuller(upgradeVars.client, upgradeVars.waiter, &upgradeVars.cfg.ClusterConfiguration)
componentsToPrepull := constants.MasterComponents componentsToPrepull := constants.MasterComponents
if upgradeVars.cfg.Etcd.External != nil { if upgradeVars.cfg.Etcd.External != nil {
@ -203,13 +203,13 @@ func RunApply(flags *applyFlags) error {
} }
// Now; perform the upgrade procedure // Now; perform the upgrade procedure
glog.V(1).Infof("[upgrade/apply] performing upgrade") klog.V(1).Infof("[upgrade/apply] performing upgrade")
if err := PerformControlPlaneUpgrade(flags, upgradeVars.client, upgradeVars.waiter, upgradeVars.cfg); err != nil { if err := PerformControlPlaneUpgrade(flags, upgradeVars.client, upgradeVars.waiter, upgradeVars.cfg); err != nil {
return errors.Wrap(err, "[upgrade/apply] FATAL") return errors.Wrap(err, "[upgrade/apply] FATAL")
} }
// Upgrade RBAC rules and addons. // Upgrade RBAC rules and addons.
glog.V(1).Infof("[upgrade/postupgrade] upgrading RBAC rules and addons") klog.V(1).Infof("[upgrade/postupgrade] upgrading RBAC rules and addons")
if err := upgrade.PerformPostUpgradeTasks(upgradeVars.client, upgradeVars.cfg, flags.newK8sVersion, flags.dryRun); err != nil { if err := upgrade.PerformPostUpgradeTasks(upgradeVars.client, upgradeVars.cfg, flags.newK8sVersion, flags.dryRun); err != nil {
return errors.Wrap(err, "[upgrade/postupgrade] FATAL post-upgrade error") return errors.Wrap(err, "[upgrade/postupgrade] FATAL post-upgrade error")
} }

View File

@ -20,12 +20,12 @@ import (
"io" "io"
"io/ioutil" "io/ioutil"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/pmezard/go-difflib/difflib" "github.com/pmezard/go-difflib/difflib"
"github.com/spf13/cobra" "github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/version"
"k8s.io/klog"
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
@ -78,7 +78,7 @@ func NewCmdDiff(out io.Writer) *cobra.Command {
func runDiff(flags *diffFlags, args []string) error { func runDiff(flags *diffFlags, args []string) error {
// If the version is specified in config file, pick up that value. // If the version is specified in config file, pick up that value.
glog.V(1).Infof("fetching configuration from file %s", flags.cfgPath) klog.V(1).Infof("fetching configuration from file %s", flags.cfgPath)
cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1beta1.InitConfiguration{}) cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1beta1.InitConfiguration{})
if err != nil { if err != nil {
return err return err
@ -116,7 +116,7 @@ func runDiff(flags *diffFlags, args []string) error {
case constants.KubeScheduler: case constants.KubeScheduler:
path = flags.schedulerManifestPath path = flags.schedulerManifestPath
default: default:
glog.Errorf("[diff] unknown spec %v", spec) klog.Errorf("[diff] unknown spec %v", spec)
continue continue
} }

View File

@ -22,10 +22,10 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/version"
"k8s.io/klog"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
"k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/constants"
@ -126,7 +126,7 @@ func NewCmdUpgradeControlPlane() *cobra.Command {
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
if flags.nodeName == "" { if flags.nodeName == "" {
glog.V(1).Infoln("[upgrade] found NodeName empty; considered OS hostname as NodeName") klog.V(1).Infoln("[upgrade] found NodeName empty; considered OS hostname as NodeName")
} }
nodeName, err := node.GetHostname(flags.nodeName) nodeName, err := node.GetHostname(flags.nodeName)
if err != nil { if err != nil {

View File

@ -24,10 +24,10 @@ import (
"strings" "strings"
"text/tabwriter" "text/tabwriter"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/version"
"k8s.io/klog"
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
"k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/constants"
@ -62,7 +62,7 @@ func NewCmdPlan(apf *applyPlanFlags) *cobra.Command {
// If the version is specified in config file, pick up that value. // If the version is specified in config file, pick up that value.
if flags.cfgPath != "" { if flags.cfgPath != "" {
glog.V(1).Infof("fetching configuration from file %s", flags.cfgPath) klog.V(1).Infof("fetching configuration from file %s", flags.cfgPath)
cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1beta1.InitConfiguration{}) cfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(flags.cfgPath, &kubeadmapiv1beta1.InitConfiguration{})
kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(err)
@ -88,8 +88,8 @@ func NewCmdPlan(apf *applyPlanFlags) *cobra.Command {
// RunPlan takes care of outputting available versions to upgrade to for the user // RunPlan takes care of outputting available versions to upgrade to for the user
func RunPlan(flags *planFlags) error { func RunPlan(flags *planFlags) error {
// Start with the basics, verify that the cluster is healthy, build a client and a versionGetter. Never dry-run when planning. // Start with the basics, verify that the cluster is healthy, build a client and a versionGetter. Never dry-run when planning.
glog.V(1).Infof("[upgrade/plan] verifying health of cluster") klog.V(1).Infof("[upgrade/plan] verifying health of cluster")
glog.V(1).Infof("[upgrade/plan] retrieving configuration from cluster") klog.V(1).Infof("[upgrade/plan] retrieving configuration from cluster")
upgradeVars, err := enforceRequirements(flags.applyPlanFlags, false, flags.newK8sVersionStr) upgradeVars, err := enforceRequirements(flags.applyPlanFlags, false, flags.newK8sVersionStr)
if err != nil { if err != nil {
return err return err
@ -120,7 +120,7 @@ func RunPlan(flags *planFlags) error {
} }
// Compute which upgrade possibilities there are // Compute which upgrade possibilities there are
glog.V(1).Infof("[upgrade/plan] computing upgrade possibilities") klog.V(1).Infof("[upgrade/plan] computing upgrade possibilities")
availUpgrades, err := upgrade.GetAvailableUpgrades(upgradeVars.versionGetter, flags.allowExperimentalUpgrades, flags.allowRCUpgrades, etcdClient, upgradeVars.cfg.FeatureGates, upgradeVars.client) availUpgrades, err := upgrade.GetAvailableUpgrades(upgradeVars.versionGetter, flags.allowExperimentalUpgrades, flags.allowRCUpgrades, etcdClient, upgradeVars.cfg.FeatureGates, upgradeVars.client)
if err != nil { if err != nil {
return errors.Wrap(err, "[upgrade/versions] FATAL") return errors.Wrap(err, "[upgrade/versions] FATAL")

View File

@ -21,9 +21,9 @@ import (
"fmt" "fmt"
"io" "io"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"k8s.io/klog"
"sigs.k8s.io/yaml" "sigs.k8s.io/yaml"
apimachineryversion "k8s.io/apimachinery/pkg/version" apimachineryversion "k8s.io/apimachinery/pkg/version"
@ -53,7 +53,7 @@ func NewCmdVersion(out io.Writer) *cobra.Command {
// RunVersion provides the version information of kubeadm in format depending on arguments // RunVersion provides the version information of kubeadm in format depending on arguments
// specified in cobra.Command. // specified in cobra.Command.
func RunVersion(out io.Writer, cmd *cobra.Command) error { func RunVersion(out io.Writer, cmd *cobra.Command) error {
glog.V(1).Infoln("[version] retrieving version info") klog.V(1).Infoln("[version] retrieving version info")
clientVersion := version.Get() clientVersion := version.Get()
v := Version{ v := Version{
ClientVersion: &clientVersion, ClientVersion: &clientVersion,
@ -62,7 +62,7 @@ func RunVersion(out io.Writer, cmd *cobra.Command) error {
const flag = "output" const flag = "output"
of, err := cmd.Flags().GetString(flag) of, err := cmd.Flags().GetString(flag)
if err != nil { if err != nil {
glog.Fatalf("error accessing flag %s for command %s: %v", flag, cmd.Name(), err) klog.Fatalf("error accessing flag %s for command %s: %v", flag, cmd.Name(), err)
} }
switch of { switch of {

View File

@ -20,8 +20,8 @@ import (
"flag" "flag"
"os" "os"
_ "github.com/golang/glog"
"github.com/spf13/pflag" "github.com/spf13/pflag"
_ "k8s.io/klog"
utilflag "k8s.io/apiserver/pkg/util/flag" utilflag "k8s.io/apiserver/pkg/util/flag"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd" "k8s.io/kubernetes/cmd/kubeadm/app/cmd"

View File

@ -34,8 +34,8 @@ go_library(
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//staging/src/k8s.io/cluster-bootstrap/token/api:go_default_library", "//staging/src/k8s.io/cluster-bootstrap/token/api:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -19,8 +19,8 @@ package clusterinfo
import ( import (
"fmt" "fmt"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
rbac "k8s.io/api/rbac/v1" rbac "k8s.io/api/rbac/v1"
@ -44,7 +44,7 @@ func CreateBootstrapConfigMapIfNotExists(client clientset.Interface, file string
fmt.Printf("[bootstraptoken] creating the %q ConfigMap in the %q namespace\n", bootstrapapi.ConfigMapClusterInfo, metav1.NamespacePublic) fmt.Printf("[bootstraptoken] creating the %q ConfigMap in the %q namespace\n", bootstrapapi.ConfigMapClusterInfo, metav1.NamespacePublic)
glog.V(1).Infoln("[bootstraptoken] loading admin kubeconfig") klog.V(1).Infoln("[bootstraptoken] loading admin kubeconfig")
adminConfig, err := clientcmd.LoadFromFile(file) adminConfig, err := clientcmd.LoadFromFile(file)
if err != nil { if err != nil {
return errors.Wrap(err, "failed to load admin kubeconfig") return errors.Wrap(err, "failed to load admin kubeconfig")
@ -52,7 +52,7 @@ func CreateBootstrapConfigMapIfNotExists(client clientset.Interface, file string
adminCluster := adminConfig.Contexts[adminConfig.CurrentContext].Cluster adminCluster := adminConfig.Contexts[adminConfig.CurrentContext].Cluster
// Copy the cluster from admin.conf to the bootstrap kubeconfig, contains the CA cert and the server URL // Copy the cluster from admin.conf to the bootstrap kubeconfig, contains the CA cert and the server URL
glog.V(1).Infoln("[bootstraptoken] copying the cluster from admin.conf to the bootstrap kubeconfig") klog.V(1).Infoln("[bootstraptoken] copying the cluster from admin.conf to the bootstrap kubeconfig")
bootstrapConfig := &clientcmdapi.Config{ bootstrapConfig := &clientcmdapi.Config{
Clusters: map[string]*clientcmdapi.Cluster{ Clusters: map[string]*clientcmdapi.Cluster{
"": adminConfig.Clusters[adminCluster], "": adminConfig.Clusters[adminCluster],
@ -64,7 +64,7 @@ func CreateBootstrapConfigMapIfNotExists(client clientset.Interface, file string
} }
// Create or update the ConfigMap in the kube-public namespace // Create or update the ConfigMap in the kube-public namespace
glog.V(1).Infoln("[bootstraptoken] creating/updating ConfigMap in kube-public namespace") klog.V(1).Infoln("[bootstraptoken] creating/updating ConfigMap in kube-public namespace")
return apiclient.CreateOrUpdateConfigMap(client, &v1.ConfigMap{ return apiclient.CreateOrUpdateConfigMap(client, &v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: bootstrapapi.ConfigMapClusterInfo, Name: bootstrapapi.ConfigMapClusterInfo,
@ -78,7 +78,7 @@ func CreateBootstrapConfigMapIfNotExists(client clientset.Interface, file string
// CreateClusterInfoRBACRules creates the RBAC rules for exposing the cluster-info ConfigMap in the kube-public namespace to unauthenticated users // CreateClusterInfoRBACRules creates the RBAC rules for exposing the cluster-info ConfigMap in the kube-public namespace to unauthenticated users
func CreateClusterInfoRBACRules(client clientset.Interface) error { func CreateClusterInfoRBACRules(client clientset.Interface) error {
glog.V(1).Infoln("creating the RBAC rules for exposing the cluster-info ConfigMap in the kube-public namespace") klog.V(1).Infoln("creating the RBAC rules for exposing the cluster-info ConfigMap in the kube-public namespace")
err := apiclient.CreateOrUpdateRole(client, &rbac.Role{ err := apiclient.CreateOrUpdateRole(client, &rbac.Role{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: BootstrapSignerClusterRoleName, Name: BootstrapSignerClusterRoleName,

View File

@ -37,8 +37,8 @@ go_library(
"//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/util/pkiutil:go_default_library", "//cmd/kubeadm/app/util/pkiutil:go_default_library",
"//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -23,9 +23,9 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
certutil "k8s.io/client-go/util/cert" certutil "k8s.io/client-go/util/cert"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
"k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil" "k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil"
@ -34,7 +34,7 @@ import (
// CreatePKIAssets will create and write to disk all PKI assets necessary to establish the control plane. // CreatePKIAssets will create and write to disk all PKI assets necessary to establish the control plane.
// If the PKI assets already exists in the target folder, they are used only if evaluated equal; otherwise an error is returned. // If the PKI assets already exists in the target folder, they are used only if evaluated equal; otherwise an error is returned.
func CreatePKIAssets(cfg *kubeadmapi.InitConfiguration) error { func CreatePKIAssets(cfg *kubeadmapi.InitConfiguration) error {
glog.V(1).Infoln("creating PKI assets") klog.V(1).Infoln("creating PKI assets")
// This structure cannot handle multilevel CA hierarchies. // This structure cannot handle multilevel CA hierarchies.
// This isn't a problem right now, but may become one in the future. // This isn't a problem right now, but may become one in the future.
@ -69,7 +69,7 @@ func CreatePKIAssets(cfg *kubeadmapi.InitConfiguration) error {
// CreateServiceAccountKeyAndPublicKeyFiles create a new public/private key files for signing service account users. // CreateServiceAccountKeyAndPublicKeyFiles create a new public/private key files for signing service account users.
// If the sa public/private key files already exists in the target folder, they are used only if evaluated equals; otherwise an error is returned. // If the sa public/private key files already exists in the target folder, they are used only if evaluated equals; otherwise an error is returned.
func CreateServiceAccountKeyAndPublicKeyFiles(cfg *kubeadmapi.InitConfiguration) error { func CreateServiceAccountKeyAndPublicKeyFiles(cfg *kubeadmapi.InitConfiguration) error {
glog.V(1).Infoln("creating a new public/private key files for signing service account users") klog.V(1).Infoln("creating a new public/private key files for signing service account users")
saSigningKey, err := NewServiceAccountSigningKey() saSigningKey, err := NewServiceAccountSigningKey()
if err != nil { if err != nil {
return err return err
@ -110,7 +110,7 @@ func CreateCACertAndKeyFiles(certSpec *KubeadmCert, cfg *kubeadmapi.InitConfigur
if certSpec.CAName != "" { if certSpec.CAName != "" {
return errors.Errorf("this function should only be used for CAs, but cert %s has CA %s", certSpec.Name, certSpec.CAName) return errors.Errorf("this function should only be used for CAs, but cert %s has CA %s", certSpec.Name, certSpec.CAName)
} }
glog.V(1).Infof("creating a new certificate authority for %s", certSpec.Name) klog.V(1).Infof("creating a new certificate authority for %s", certSpec.Name)
certConfig, err := certSpec.GetConfig(cfg) certConfig, err := certSpec.GetConfig(cfg)
if err != nil { if err != nil {

View File

@ -47,8 +47,8 @@ go_library(
"//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -24,8 +24,8 @@ import (
"strconv" "strconv"
"strings" "strings"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/version"
@ -42,7 +42,7 @@ import (
// CreateInitStaticPodManifestFiles will write all static pod manifest files needed to bring up the control plane. // CreateInitStaticPodManifestFiles will write all static pod manifest files needed to bring up the control plane.
func CreateInitStaticPodManifestFiles(manifestDir string, cfg *kubeadmapi.InitConfiguration) error { func CreateInitStaticPodManifestFiles(manifestDir string, cfg *kubeadmapi.InitConfiguration) error {
glog.V(1).Infoln("[control-plane] creating static Pod files") klog.V(1).Infoln("[control-plane] creating static Pod files")
return CreateStaticPodFiles(manifestDir, cfg, kubeadmconstants.KubeAPIServer, kubeadmconstants.KubeControllerManager, kubeadmconstants.KubeScheduler) return CreateStaticPodFiles(manifestDir, cfg, kubeadmconstants.KubeAPIServer, kubeadmconstants.KubeControllerManager, kubeadmconstants.KubeScheduler)
} }
@ -97,7 +97,7 @@ func CreateStaticPodFiles(manifestDir string, cfg *kubeadmapi.InitConfiguration,
} }
// gets the StaticPodSpecs, actualized for the current InitConfiguration // gets the StaticPodSpecs, actualized for the current InitConfiguration
glog.V(1).Infoln("[control-plane] getting StaticPodSpecs") klog.V(1).Infoln("[control-plane] getting StaticPodSpecs")
specs := GetStaticPodSpecs(cfg, k8sVersion) specs := GetStaticPodSpecs(cfg, k8sVersion)
// creates required static pod specs // creates required static pod specs
@ -113,7 +113,7 @@ func CreateStaticPodFiles(manifestDir string, cfg *kubeadmapi.InitConfiguration,
return errors.Wrapf(err, "failed to create static pod manifest file for %q", componentName) return errors.Wrapf(err, "failed to create static pod manifest file for %q", componentName)
} }
glog.V(1).Infof("[control-plane] wrote static Pod manifest for component %q to %q\n", componentName, kubeadmconstants.GetStaticPodFilepath(componentName, manifestDir)) klog.V(1).Infof("[control-plane] wrote static Pod manifest for component %q to %q\n", componentName, kubeadmconstants.GetStaticPodFilepath(componentName, manifestDir))
} }
return nil return nil

View File

@ -31,8 +31,8 @@ go_library(
"//cmd/kubeadm/app/util/staticpod:go_default_library", "//cmd/kubeadm/app/util/staticpod:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -21,8 +21,8 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
@ -54,7 +54,7 @@ func CreateLocalEtcdStaticPodManifestFile(manifestDir string, cfg *kubeadmapi.In
return err return err
} }
glog.V(1).Infof("[etcd] wrote Static Pod manifest for a local etcd instance to %q\n", kubeadmconstants.GetStaticPodFilepath(kubeadmconstants.Etcd, manifestDir)) klog.V(1).Infof("[etcd] wrote Static Pod manifest for a local etcd instance to %q\n", kubeadmconstants.GetStaticPodFilepath(kubeadmconstants.Etcd, manifestDir))
return nil return nil
} }
@ -63,7 +63,7 @@ func CheckLocalEtcdClusterStatus(client clientset.Interface, cfg *kubeadmapi.Ini
fmt.Println("[etcd] Checking Etcd cluster health") fmt.Println("[etcd] Checking Etcd cluster health")
// creates an etcd client that connects to all the local/stacked etcd members // creates an etcd client that connects to all the local/stacked etcd members
glog.V(1).Info("creating etcd client that connects to etcd pods") klog.V(1).Info("creating etcd client that connects to etcd pods")
etcdClient, err := etcdutil.NewFromCluster(client, cfg.CertificatesDir) etcdClient, err := etcdutil.NewFromCluster(client, cfg.CertificatesDir)
if err != nil { if err != nil {
return err return err
@ -83,7 +83,7 @@ func CheckLocalEtcdClusterStatus(client clientset.Interface, cfg *kubeadmapi.Ini
// Other members of the etcd cluster will be notified of the joining node in beforehand as well. // Other members of the etcd cluster will be notified of the joining node in beforehand as well.
func CreateStackedEtcdStaticPodManifestFile(client clientset.Interface, manifestDir string, cfg *kubeadmapi.InitConfiguration) error { func CreateStackedEtcdStaticPodManifestFile(client clientset.Interface, manifestDir string, cfg *kubeadmapi.InitConfiguration) error {
// creates an etcd client that connects to all the local/stacked etcd members // creates an etcd client that connects to all the local/stacked etcd members
glog.V(1).Info("creating etcd client that connects to etcd pods") klog.V(1).Info("creating etcd client that connects to etcd pods")
etcdClient, err := etcdutil.NewFromCluster(client, cfg.CertificatesDir) etcdClient, err := etcdutil.NewFromCluster(client, cfg.CertificatesDir)
if err != nil { if err != nil {
return err return err
@ -92,15 +92,15 @@ func CreateStackedEtcdStaticPodManifestFile(client clientset.Interface, manifest
// notifies the other members of the etcd cluster about the joining member // notifies the other members of the etcd cluster about the joining member
etcdPeerAddress := fmt.Sprintf("https://%s:%d", cfg.LocalAPIEndpoint.AdvertiseAddress, kubeadmconstants.EtcdListenPeerPort) etcdPeerAddress := fmt.Sprintf("https://%s:%d", cfg.LocalAPIEndpoint.AdvertiseAddress, kubeadmconstants.EtcdListenPeerPort)
glog.V(1).Infof("Adding etcd member: %s", etcdPeerAddress) klog.V(1).Infof("Adding etcd member: %s", etcdPeerAddress)
initialCluster, err := etcdClient.AddMember(cfg.NodeRegistration.Name, etcdPeerAddress) initialCluster, err := etcdClient.AddMember(cfg.NodeRegistration.Name, etcdPeerAddress)
if err != nil { if err != nil {
return err return err
} }
fmt.Println("[etcd] Announced new etcd member joining to the existing etcd cluster") fmt.Println("[etcd] Announced new etcd member joining to the existing etcd cluster")
glog.V(1).Infof("Updated etcd member list: %v", initialCluster) klog.V(1).Infof("Updated etcd member list: %v", initialCluster)
glog.V(1).Info("Creating local etcd static pod manifest file") klog.V(1).Info("Creating local etcd static pod manifest file")
// gets etcd StaticPodSpec, actualized for the current InitConfiguration and the new list of etcd members // gets etcd StaticPodSpec, actualized for the current InitConfiguration and the new list of etcd members
spec := GetEtcdPodSpec(cfg, initialCluster) spec := GetEtcdPodSpec(cfg, initialCluster)
// writes etcd StaticPod to disk // writes etcd StaticPod to disk

View File

@ -22,8 +22,8 @@ go_library(
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -25,11 +25,11 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd"
clientcmdapi "k8s.io/client-go/tools/clientcmd/api" clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
certutil "k8s.io/client-go/util/cert" certutil "k8s.io/client-go/util/cert"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
@ -61,7 +61,7 @@ type kubeConfigSpec struct {
// to establish the control plane, including also the admin kubeconfig file. // to establish the control plane, including also the admin kubeconfig file.
// If kubeconfig files already exists, they are used only if evaluated equal; otherwise an error is returned. // If kubeconfig files already exists, they are used only if evaluated equal; otherwise an error is returned.
func CreateInitKubeConfigFiles(outDir string, cfg *kubeadmapi.InitConfiguration) error { func CreateInitKubeConfigFiles(outDir string, cfg *kubeadmapi.InitConfiguration) error {
glog.V(1).Infoln("creating all kubeconfig files") klog.V(1).Infoln("creating all kubeconfig files")
return createKubeConfigFiles( return createKubeConfigFiles(
outDir, outDir,
cfg, cfg,
@ -89,7 +89,7 @@ func CreateJoinControlPlaneKubeConfigFiles(outDir string, cfg *kubeadmapi.InitCo
// CreateKubeConfigFile creates a kubeconfig file. // CreateKubeConfigFile creates a kubeconfig file.
// If the kubeconfig file already exists, it is used only if evaluated equal; otherwise an error is returned. // If the kubeconfig file already exists, it is used only if evaluated equal; otherwise an error is returned.
func CreateKubeConfigFile(kubeConfigFileName string, outDir string, cfg *kubeadmapi.InitConfiguration) error { func CreateKubeConfigFile(kubeConfigFileName string, outDir string, cfg *kubeadmapi.InitConfiguration) error {
glog.V(1).Infof("creating kubeconfig file for %s", kubeConfigFileName) klog.V(1).Infof("creating kubeconfig file for %s", kubeConfigFileName)
return createKubeConfigFiles(outDir, cfg, kubeConfigFileName) return createKubeConfigFiles(outDir, cfg, kubeConfigFileName)
} }

View File

@ -29,8 +29,8 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
], ],
) )

View File

@ -23,8 +23,8 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1" kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
@ -78,7 +78,7 @@ func buildKubeletArgMap(opts kubeletFlagsOpts) map[string]string {
kubeletFlags["network-plugin"] = "cni" kubeletFlags["network-plugin"] = "cni"
driver, err := kubeadmutil.GetCgroupDriverDocker(opts.execer) driver, err := kubeadmutil.GetCgroupDriverDocker(opts.execer)
if err != nil { if err != nil {
glog.Warningf("cannot automatically assign a '--cgroup-driver' value when starting the Kubelet: %v\n", err) klog.Warningf("cannot automatically assign a '--cgroup-driver' value when starting the Kubelet: %v\n", err)
} else { } else {
kubeletFlags["cgroup-driver"] = driver kubeletFlags["cgroup-driver"] = driver
} }
@ -103,7 +103,7 @@ func buildKubeletArgMap(opts kubeletFlagsOpts) map[string]string {
// Make sure the node name we're passed will work with Kubelet // Make sure the node name we're passed will work with Kubelet
if opts.nodeRegOpts.Name != "" && opts.nodeRegOpts.Name != opts.defaultHostname { if opts.nodeRegOpts.Name != "" && opts.nodeRegOpts.Name != opts.defaultHostname {
glog.V(1).Infof("setting kubelet hostname-override to %q", opts.nodeRegOpts.Name) klog.V(1).Infof("setting kubelet hostname-override to %q", opts.nodeRegOpts.Name)
kubeletFlags["hostname-override"] = opts.nodeRegOpts.Name kubeletFlags["hostname-override"] = opts.nodeRegOpts.Name
} }

View File

@ -42,8 +42,8 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -22,7 +22,7 @@ import (
"os" "os"
"time" "time"
"github.com/golang/glog" "k8s.io/klog"
"github.com/pkg/errors" "github.com/pkg/errors"
apps "k8s.io/api/apps/v1" apps "k8s.io/api/apps/v1"
@ -57,12 +57,12 @@ const (
// Otherwise, there is a race condition when we proceed without kubelet having restarted the API server correctly and the next .Create call flakes // Otherwise, there is a race condition when we proceed without kubelet having restarted the API server correctly and the next .Create call flakes
// 9. Do that for the kube-apiserver, kube-controller-manager and kube-scheduler in a loop // 9. Do that for the kube-apiserver, kube-controller-manager and kube-scheduler in a loop
func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubeadmapi.InitConfiguration, client clientset.Interface, waiter apiclient.Waiter, dryRun bool, certsInSecrets bool) error { func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubeadmapi.InitConfiguration, client clientset.Interface, waiter apiclient.Waiter, dryRun bool, certsInSecrets bool) error {
glog.V(1).Infoln("creating self hosted control plane") klog.V(1).Infoln("creating self hosted control plane")
// Adjust the timeout slightly to something self-hosting specific // Adjust the timeout slightly to something self-hosting specific
waiter.SetTimeout(selfHostingWaitTimeout) waiter.SetTimeout(selfHostingWaitTimeout)
// Here the map of different mutators to use for the control plane's PodSpec is stored // Here the map of different mutators to use for the control plane's PodSpec is stored
glog.V(1).Infoln("getting mutators") klog.V(1).Infoln("getting mutators")
mutators := GetMutatorsFromFeatureGates(certsInSecrets) mutators := GetMutatorsFromFeatureGates(certsInSecrets)
if certsInSecrets { if certsInSecrets {

View File

@ -30,8 +30,8 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//vendor/github.com/PuerkitoBio/purell:go_default_library", "//vendor/github.com/PuerkitoBio/purell:go_default_library",
"//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/blang/semver:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
], ],
) )

View File

@ -36,8 +36,8 @@ import (
"github.com/PuerkitoBio/purell" "github.com/PuerkitoBio/purell"
"github.com/blang/semver" "github.com/blang/semver"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
netutil "k8s.io/apimachinery/pkg/util/net" netutil "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
@ -102,7 +102,7 @@ func (ContainerRuntimeCheck) Name() string {
// Check validates the container runtime // Check validates the container runtime
func (crc ContainerRuntimeCheck) Check() (warnings, errorList []error) { func (crc ContainerRuntimeCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating the container runtime") klog.V(1).Infoln("validating the container runtime")
if err := crc.runtime.IsRunning(); err != nil { if err := crc.runtime.IsRunning(); err != nil {
errorList = append(errorList, err) errorList = append(errorList, err)
} }
@ -128,7 +128,7 @@ func (sc ServiceCheck) Name() string {
// Check validates if the service is enabled and active. // Check validates if the service is enabled and active.
func (sc ServiceCheck) Check() (warnings, errorList []error) { func (sc ServiceCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating if the service is enabled and active") klog.V(1).Infoln("validating if the service is enabled and active")
initSystem, err := initsystem.GetInitSystem() initSystem, err := initsystem.GetInitSystem()
if err != nil { if err != nil {
return []error{err}, nil return []error{err}, nil
@ -169,7 +169,7 @@ func (FirewalldCheck) Name() string {
// Check validates if the firewall is enabled and active. // Check validates if the firewall is enabled and active.
func (fc FirewalldCheck) Check() (warnings, errorList []error) { func (fc FirewalldCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating if the firewall is enabled and active") klog.V(1).Infoln("validating if the firewall is enabled and active")
initSystem, err := initsystem.GetInitSystem() initSystem, err := initsystem.GetInitSystem()
if err != nil { if err != nil {
return []error{err}, nil return []error{err}, nil
@ -206,7 +206,7 @@ func (poc PortOpenCheck) Name() string {
// Check validates if the particular port is available. // Check validates if the particular port is available.
func (poc PortOpenCheck) Check() (warnings, errorList []error) { func (poc PortOpenCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("validating availability of port %d", poc.port) klog.V(1).Infof("validating availability of port %d", poc.port)
errorList = []error{} errorList = []error{}
ln, err := net.Listen("tcp", fmt.Sprintf(":%d", poc.port)) ln, err := net.Listen("tcp", fmt.Sprintf(":%d", poc.port))
if err != nil { if err != nil {
@ -243,7 +243,7 @@ func (dac DirAvailableCheck) Name() string {
// Check validates if a directory does not exist or empty. // Check validates if a directory does not exist or empty.
func (dac DirAvailableCheck) Check() (warnings, errorList []error) { func (dac DirAvailableCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("validating the existence and emptiness of directory %s", dac.Path) klog.V(1).Infof("validating the existence and emptiness of directory %s", dac.Path)
errorList = []error{} errorList = []error{}
// If it doesn't exist we are good: // If it doesn't exist we are good:
if _, err := os.Stat(dac.Path); os.IsNotExist(err) { if _, err := os.Stat(dac.Path); os.IsNotExist(err) {
@ -281,7 +281,7 @@ func (fac FileAvailableCheck) Name() string {
// Check validates if the given file does not already exist. // Check validates if the given file does not already exist.
func (fac FileAvailableCheck) Check() (warnings, errorList []error) { func (fac FileAvailableCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("validating the existence of file %s", fac.Path) klog.V(1).Infof("validating the existence of file %s", fac.Path)
errorList = []error{} errorList = []error{}
if _, err := os.Stat(fac.Path); err == nil { if _, err := os.Stat(fac.Path); err == nil {
errorList = append(errorList, errors.Errorf("%s already exists", fac.Path)) errorList = append(errorList, errors.Errorf("%s already exists", fac.Path))
@ -305,7 +305,7 @@ func (fac FileExistingCheck) Name() string {
// Check validates if the given file already exists. // Check validates if the given file already exists.
func (fac FileExistingCheck) Check() (warnings, errorList []error) { func (fac FileExistingCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("validating the existence of file %s", fac.Path) klog.V(1).Infof("validating the existence of file %s", fac.Path)
errorList = []error{} errorList = []error{}
if _, err := os.Stat(fac.Path); err != nil { if _, err := os.Stat(fac.Path); err != nil {
errorList = append(errorList, errors.Errorf("%s doesn't exist", fac.Path)) errorList = append(errorList, errors.Errorf("%s doesn't exist", fac.Path))
@ -330,7 +330,7 @@ func (fcc FileContentCheck) Name() string {
// Check validates if the given file contains the given content. // Check validates if the given file contains the given content.
func (fcc FileContentCheck) Check() (warnings, errorList []error) { func (fcc FileContentCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("validating the contents of file %s", fcc.Path) klog.V(1).Infof("validating the contents of file %s", fcc.Path)
f, err := os.Open(fcc.Path) f, err := os.Open(fcc.Path)
if err != nil { if err != nil {
return nil, []error{errors.Errorf("%s does not exist", fcc.Path)} return nil, []error{errors.Errorf("%s does not exist", fcc.Path)}
@ -371,7 +371,7 @@ func (ipc InPathCheck) Name() string {
// Check validates if the given executable is present in the path. // Check validates if the given executable is present in the path.
func (ipc InPathCheck) Check() (warnings, errs []error) { func (ipc InPathCheck) Check() (warnings, errs []error) {
glog.V(1).Infof("validating the presence of executable %s", ipc.executable) klog.V(1).Infof("validating the presence of executable %s", ipc.executable)
_, err := ipc.exec.LookPath(ipc.executable) _, err := ipc.exec.LookPath(ipc.executable)
if err != nil { if err != nil {
if ipc.mandatory { if ipc.mandatory {
@ -401,7 +401,7 @@ func (HostnameCheck) Name() string {
// Check validates if hostname match dns sub domain regex. // Check validates if hostname match dns sub domain regex.
func (hc HostnameCheck) Check() (warnings, errorList []error) { func (hc HostnameCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("checking whether the given node name is reachable using net.LookupHost") klog.V(1).Infof("checking whether the given node name is reachable using net.LookupHost")
errorList = []error{} errorList = []error{}
warnings = []error{} warnings = []error{}
addr, err := net.LookupHost(hc.nodeName) addr, err := net.LookupHost(hc.nodeName)
@ -428,7 +428,7 @@ func (hst HTTPProxyCheck) Name() string {
// Check validates http connectivity type, direct or via proxy. // Check validates http connectivity type, direct or via proxy.
func (hst HTTPProxyCheck) Check() (warnings, errorList []error) { func (hst HTTPProxyCheck) Check() (warnings, errorList []error) {
glog.V(1).Infof("validating if the connectivity type is via proxy or direct") klog.V(1).Infof("validating if the connectivity type is via proxy or direct")
u := (&url.URL{Scheme: hst.Proto, Host: hst.Host}).String() u := (&url.URL{Scheme: hst.Proto, Host: hst.Host}).String()
req, err := http.NewRequest("GET", u, nil) req, err := http.NewRequest("GET", u, nil)
@ -464,7 +464,7 @@ func (HTTPProxyCIDRCheck) Name() string {
// Check validates http connectivity to first IP address in the CIDR. // Check validates http connectivity to first IP address in the CIDR.
// If it is not directly connected and goes via proxy it will produce warning. // If it is not directly connected and goes via proxy it will produce warning.
func (subnet HTTPProxyCIDRCheck) Check() (warnings, errorList []error) { func (subnet HTTPProxyCIDRCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating http connectivity to first IP address in the CIDR") klog.V(1).Infoln("validating http connectivity to first IP address in the CIDR")
if len(subnet.CIDR) == 0 { if len(subnet.CIDR) == 0 {
return nil, nil return nil, nil
} }
@ -513,7 +513,7 @@ func (SystemVerificationCheck) Name() string {
// Check runs all individual checks // Check runs all individual checks
func (sysver SystemVerificationCheck) Check() (warnings, errorList []error) { func (sysver SystemVerificationCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("running all checks") klog.V(1).Infoln("running all checks")
// Create a buffered writer and choose a quite large value (1M) and suppose the output from the system verification test won't exceed the limit // Create a buffered writer and choose a quite large value (1M) and suppose the output from the system verification test won't exceed the limit
// Run the system verification check, but write to out buffered writer instead of stdout // Run the system verification check, but write to out buffered writer instead of stdout
bufw := bufio.NewWriterSize(os.Stdout, 1*1024*1024) bufw := bufio.NewWriterSize(os.Stdout, 1*1024*1024)
@ -570,7 +570,7 @@ func (KubernetesVersionCheck) Name() string {
// Check validates Kubernetes and kubeadm versions // Check validates Kubernetes and kubeadm versions
func (kubever KubernetesVersionCheck) Check() (warnings, errorList []error) { func (kubever KubernetesVersionCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating Kubernetes and kubeadm version") klog.V(1).Infoln("validating Kubernetes and kubeadm version")
// Skip this check for "super-custom builds", where apimachinery/the overall codebase version is not set. // Skip this check for "super-custom builds", where apimachinery/the overall codebase version is not set.
if strings.HasPrefix(kubever.KubeadmVersion, "v0.0.0") { if strings.HasPrefix(kubever.KubeadmVersion, "v0.0.0") {
return nil, nil return nil, nil
@ -611,7 +611,7 @@ func (KubeletVersionCheck) Name() string {
// Check validates kubelet version. It should be not less than minimal supported version // Check validates kubelet version. It should be not less than minimal supported version
func (kubever KubeletVersionCheck) Check() (warnings, errorList []error) { func (kubever KubeletVersionCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating kubelet version") klog.V(1).Infoln("validating kubelet version")
kubeletVersion, err := GetKubeletVersion(kubever.exec) kubeletVersion, err := GetKubeletVersion(kubever.exec)
if err != nil { if err != nil {
return nil, []error{errors.Wrap(err, "couldn't get kubelet version")} return nil, []error{errors.Wrap(err, "couldn't get kubelet version")}
@ -642,7 +642,7 @@ func (SwapCheck) Name() string {
// Check validates whether swap is enabled or not // Check validates whether swap is enabled or not
func (swc SwapCheck) Check() (warnings, errorList []error) { func (swc SwapCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating whether swap is enabled or not") klog.V(1).Infoln("validating whether swap is enabled or not")
f, err := os.Open("/proc/swaps") f, err := os.Open("/proc/swaps")
if err != nil { if err != nil {
// /proc/swaps not available, thus no reasons to warn // /proc/swaps not available, thus no reasons to warn
@ -683,7 +683,7 @@ func (ExternalEtcdVersionCheck) Name() string {
// Check validates external etcd version // Check validates external etcd version
// TODO: Use the official etcd Golang client for this instead? // TODO: Use the official etcd Golang client for this instead?
func (evc ExternalEtcdVersionCheck) Check() (warnings, errorList []error) { func (evc ExternalEtcdVersionCheck) Check() (warnings, errorList []error) {
glog.V(1).Infoln("validating the external etcd version") klog.V(1).Infoln("validating the external etcd version")
// Return quickly if the user isn't using external etcd // Return quickly if the user isn't using external etcd
if evc.Etcd.External.Endpoints == nil { if evc.Etcd.External.Endpoints == nil {
@ -831,13 +831,13 @@ func (ipc ImagePullCheck) Check() (warnings, errorList []error) {
for _, image := range ipc.imageList { for _, image := range ipc.imageList {
ret, err := ipc.runtime.ImageExists(image) ret, err := ipc.runtime.ImageExists(image)
if ret && err == nil { if ret && err == nil {
glog.V(1).Infof("image exists: %s", image) klog.V(1).Infof("image exists: %s", image)
continue continue
} }
if err != nil { if err != nil {
errorList = append(errorList, errors.Wrapf(err, "failed to check if image %s exists", image)) errorList = append(errorList, errors.Wrapf(err, "failed to check if image %s exists", image))
} }
glog.V(1).Infof("pulling %s", image) klog.V(1).Infof("pulling %s", image)
if err := ipc.runtime.PullImage(image); err != nil { if err := ipc.runtime.PullImage(image); err != nil {
errorList = append(errorList, errors.Wrapf(err, "failed to pull image %s", image)) errorList = append(errorList, errors.Wrapf(err, "failed to pull image %s", image))
} }

View File

@ -34,8 +34,8 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/yaml:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
"//vendor/sigs.k8s.io/yaml:go_default_library", "//vendor/sigs.k8s.io/yaml:go_default_library",
], ],

View File

@ -35,8 +35,8 @@ go_library(
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library",
"//staging/src/k8s.io/cluster-bootstrap/token/util:go_default_library", "//staging/src/k8s.io/cluster-bootstrap/token/util:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -21,8 +21,8 @@ import (
"net" "net"
"strings" "strings"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
netutil "k8s.io/apimachinery/pkg/util/net" netutil "k8s.io/apimachinery/pkg/util/net"
@ -103,7 +103,7 @@ func DetectUnsupportedVersion(b []byte) error {
} }
} }
if mutuallyExclusiveCount > 1 { if mutuallyExclusiveCount > 1 {
glog.Warningf("WARNING: Detected resource kinds that may not apply: %v", mutuallyExclusive) klog.Warningf("WARNING: Detected resource kinds that may not apply: %v", mutuallyExclusive)
} }
return nil return nil
@ -141,7 +141,7 @@ func LowercaseSANs(sans []string) {
for i, san := range sans { for i, san := range sans {
lowercase := strings.ToLower(san) lowercase := strings.ToLower(san)
if lowercase != san { if lowercase != san {
glog.V(1).Infof("lowercasing SAN %q to %q", san, lowercase) klog.V(1).Infof("lowercasing SAN %q to %q", san, lowercase)
sans[i] = lowercase sans[i] = lowercase
} }
} }
@ -166,7 +166,7 @@ func ChooseAPIServerBindAddress(bindAddress net.IP) (net.IP, error) {
ip, err := netutil.ChooseBindAddress(bindAddress) ip, err := netutil.ChooseBindAddress(bindAddress)
if err != nil { if err != nil {
if netutil.IsNoRoutesError(err) { if netutil.IsNoRoutesError(err) {
glog.Warningf("WARNING: could not obtain a bind address for the API Server: %v; using: %s", err, constants.DefaultAPIServerBindAddress) klog.Warningf("WARNING: could not obtain a bind address for the API Server: %v; using: %s", err, constants.DefaultAPIServerBindAddress)
defaultIP := net.ParseIP(constants.DefaultAPIServerBindAddress) defaultIP := net.ParseIP(constants.DefaultAPIServerBindAddress)
if defaultIP == nil { if defaultIP == nil {
return nil, errors.Errorf("cannot parse default IP address: %s", constants.DefaultAPIServerBindAddress) return nil, errors.Errorf("cannot parse default IP address: %s", constants.DefaultAPIServerBindAddress)

View File

@ -25,8 +25,8 @@ import (
"sort" "sort"
"strconv" "strconv"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
@ -165,7 +165,7 @@ func ConfigFileAndDefaultsToInternalConfig(cfgPath string, defaultversionedcfg *
if cfgPath != "" { if cfgPath != "" {
// Loads configuration from config file, if provided // Loads configuration from config file, if provided
// Nb. --config overrides command line flags // Nb. --config overrides command line flags
glog.V(1).Infoln("loading configuration from the given file") klog.V(1).Infoln("loading configuration from the given file")
b, err := ioutil.ReadFile(cfgPath) b, err := ioutil.ReadFile(cfgPath)
if err != nil { if err != nil {

View File

@ -19,8 +19,8 @@ package config
import ( import (
"io/ioutil" "io/ioutil"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
@ -56,7 +56,7 @@ func JoinConfigFileAndDefaultsToInternalConfig(cfgPath string, defaultversionedc
if cfgPath != "" { if cfgPath != "" {
// Loads configuration from config file, if provided // Loads configuration from config file, if provided
// Nb. --config overrides command line flags, TODO: fix this // Nb. --config overrides command line flags, TODO: fix this
glog.V(1).Infoln("loading configuration from the given file") klog.V(1).Infoln("loading configuration from the given file")
b, err := ioutil.ReadFile(cfgPath) b, err := ioutil.ReadFile(cfgPath)
if err != nil { if err != nil {

View File

@ -13,8 +13,8 @@ go_library(
"//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/coreos/etcd/clientv3:go_default_library",
"//vendor/github.com/coreos/etcd/pkg/transport:go_default_library", "//vendor/github.com/coreos/etcd/pkg/transport:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -26,9 +26,9 @@ import (
"github.com/coreos/etcd/clientv3" "github.com/coreos/etcd/clientv3"
"github.com/coreos/etcd/pkg/transport" "github.com/coreos/etcd/pkg/transport"
"github.com/golang/glog"
"github.com/pkg/errors" "github.com/pkg/errors"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/constants"
"k8s.io/kubernetes/cmd/kubeadm/app/util/config" "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
@ -145,7 +145,7 @@ func NewFromCluster(client clientset.Interface, certificatesDir string) (*Client
for _, e := range clusterStatus.APIEndpoints { for _, e := range clusterStatus.APIEndpoints {
endpoints = append(endpoints, fmt.Sprintf("https://%s:%d", e.AdvertiseAddress, constants.EtcdListenClientPort)) endpoints = append(endpoints, fmt.Sprintf("https://%s:%d", e.AdvertiseAddress, constants.EtcdListenClientPort))
} }
glog.V(1).Infof("etcd endpoints read from pods: %s", strings.Join(endpoints, ",")) klog.V(1).Infof("etcd endpoints read from pods: %s", strings.Join(endpoints, ","))
// Creates an etcd client // Creates an etcd client
etcdClient, err := New( etcdClient, err := New(
@ -185,7 +185,7 @@ func (c Client) Sync() error {
if err != nil { if err != nil {
return err return err
} }
glog.V(1).Infof("etcd endpoints read from etcd: %s", strings.Join(cli.Endpoints(), ",")) klog.V(1).Infof("etcd endpoints read from etcd: %s", strings.Join(cli.Endpoints(), ","))
c.Endpoints = cli.Endpoints() c.Endpoints = cli.Endpoints()
return nil return nil

View File

@ -27,8 +27,8 @@ go_library(
"//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/blang/semver:go_default_library",
"//vendor/github.com/docker/docker/api/types:go_default_library", "//vendor/github.com/docker/docker/api/types:go_default_library",
"//vendor/github.com/docker/docker/client:go_default_library", "//vendor/github.com/docker/docker/client:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/pkg/errors:go_default_library", "//vendor/github.com/pkg/errors:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
], ],
) )

View File

@ -29,8 +29,8 @@ import (
"regexp" "regexp"
"strings" "strings"
"github.com/golang/glog"
pkgerrors "github.com/pkg/errors" pkgerrors "github.com/pkg/errors"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/errors"
) )
@ -254,7 +254,7 @@ func (k *KernelValidator) parseKernelConfig(r io.Reader) (map[string]kConfigOpti
} }
fields := strings.Split(line, "=") fields := strings.Split(line, "=")
if len(fields) != 2 { if len(fields) != 2 {
glog.Errorf("Unexpected fields number in config %q", line) klog.Errorf("Unexpected fields number in config %q", line)
continue continue
} }
config[fields[0]] = kConfigOption(fields[1]) config[fields[0]] = kConfigOption(fields[1])

View File

@ -25,8 +25,8 @@ import (
"k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/errors"
"github.com/blang/semver" "github.com/blang/semver"
"github.com/golang/glog"
pkgerrors "github.com/pkg/errors" pkgerrors "github.com/pkg/errors"
"k8s.io/klog"
) )
// semVerDotsCount is the number of dots in a valid semantic version. // semVerDotsCount is the number of dots in a valid semantic version.
@ -127,7 +127,7 @@ func (self *packageValidator) validate(packageSpecs []PackageSpec, manager packa
// Get the version of the package on the running machine. // Get the version of the package on the running machine.
version, err := manager.getPackageVersion(packageName) version, err := manager.getPackageVersion(packageName)
if err != nil { if err != nil {
glog.V(1).Infof("Failed to get the version for the package %q: %s\n", packageName, err) klog.V(1).Infof("Failed to get the version for the package %q: %s\n", packageName, err)
errs = append(errs, err) errs = append(errs, err)
self.reporter.Report(nameWithVerRange, "not installed", bad) self.reporter.Report(nameWithVerRange, "not installed", bad)
continue continue
@ -145,7 +145,7 @@ func (self *packageValidator) validate(packageSpecs []PackageSpec, manager packa
// the version is in the range. // the version is in the range.
sv, err := semver.Make(toSemVer(version)) sv, err := semver.Make(toSemVer(version))
if err != nil { if err != nil {
glog.Errorf("Failed to convert %q to semantic version: %s\n", version, err) klog.Errorf("Failed to convert %q to semantic version: %s\n", version, err)
errs = append(errs, err) errs = append(errs, err)
self.reporter.Report(nameWithVerRange, "internal error", bad) self.reporter.Report(nameWithVerRange, "internal error", bad)
continue continue

View File

@ -25,10 +25,10 @@ import (
"strings" "strings"
"time" "time"
"github.com/golang/glog"
pkgerrors "github.com/pkg/errors" pkgerrors "github.com/pkg/errors"
netutil "k8s.io/apimachinery/pkg/util/net" netutil "k8s.io/apimachinery/pkg/util/net"
versionutil "k8s.io/apimachinery/pkg/util/version" versionutil "k8s.io/apimachinery/pkg/util/version"
"k8s.io/klog"
pkgversion "k8s.io/kubernetes/pkg/version" pkgversion "k8s.io/kubernetes/pkg/version"
) )
@ -91,8 +91,8 @@ func KubernetesReleaseVersion(version string) (string, error) {
return "", err return "", err
} }
// Handle air-gapped environments by falling back to the client version. // Handle air-gapped environments by falling back to the client version.
glog.Infof("could not fetch a Kubernetes version from the internet: %v", err) klog.Infof("could not fetch a Kubernetes version from the internet: %v", err)
glog.Infof("falling back to the local client version: %s", clientVersion) klog.Infof("falling back to the local client version: %s", clientVersion)
return KubernetesReleaseVersion(clientVersion) return KubernetesReleaseVersion(clientVersion)
} }
// both the client and the remote version are obtained; validate them and pick a stable version // both the client and the remote version are obtained; validate them and pick a stable version
@ -160,7 +160,7 @@ func splitVersion(version string) (string, string, error) {
// Internal helper: return content of URL // Internal helper: return content of URL
func fetchFromURL(url string, timeout time.Duration) (string, error) { func fetchFromURL(url string, timeout time.Duration) (string, error) {
glog.V(2).Infof("fetching Kubernetes version from URL: %s", url) klog.V(2).Infof("fetching Kubernetes version from URL: %s", url)
client := &http.Client{Timeout: timeout, Transport: netutil.SetOldTransportDefaults(&http.Transport{})} client := &http.Client{Timeout: timeout, Transport: netutil.SetOldTransportDefaults(&http.Transport{})}
resp, err := client.Get(url) resp, err := client.Get(url)
if err != nil { if err != nil {
@ -217,7 +217,7 @@ func kubeadmVersion(info string) (string, error) {
// the same Patch level release. // the same Patch level release.
func validateStableVersion(remoteVersion, clientVersion string) (string, error) { func validateStableVersion(remoteVersion, clientVersion string) (string, error) {
if clientVersion == "" { if clientVersion == "" {
glog.Infof("could not obtain client version; using remote version: %s", remoteVersion) klog.Infof("could not obtain client version; using remote version: %s", remoteVersion)
return remoteVersion, nil return remoteVersion, nil
} }
@ -234,7 +234,7 @@ func validateStableVersion(remoteVersion, clientVersion string) (string, error)
if verClient.Major() < verRemote.Major() || if verClient.Major() < verRemote.Major() ||
(verClient.Major() == verRemote.Major()) && verClient.Minor() < verRemote.Minor() { (verClient.Major() == verRemote.Major()) && verClient.Minor() < verRemote.Minor() {
estimatedRelease := fmt.Sprintf("stable-%d.%d", verClient.Major(), verClient.Minor()) estimatedRelease := fmt.Sprintf("stable-%d.%d", verClient.Major(), verClient.Minor())
glog.Infof("remote version is much newer: %s; falling back to: %s", remoteVersion, estimatedRelease) klog.Infof("remote version is much newer: %s; falling back to: %s", remoteVersion, estimatedRelease)
return estimatedRelease, nil return estimatedRelease, nil
} }
return remoteVersion, nil return remoteVersion, nil

View File

@ -20,10 +20,12 @@ import (
"fmt" "fmt"
"os" "os"
"k8s.io/klog"
"k8s.io/kubernetes/cmd/kubeadm/app" "k8s.io/kubernetes/cmd/kubeadm/app"
) )
func main() { func main() {
klog.InitFlags(nil)
if err := app.Run(); err != nil { if err := app.Run(); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err) fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(1) os.Exit(1)

View File

@ -123,9 +123,9 @@ go_library(
"//staging/src/k8s.io/csi-api/pkg/client/clientset/versioned:go_default_library", "//staging/src/k8s.io/csi-api/pkg/client/clientset/versioned:go_default_library",
"//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library", "//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library",
"//vendor/github.com/coreos/go-systemd/daemon:go_default_library", "//vendor/github.com/coreos/go-systemd/daemon:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library",
] + select({ ] + select({
"@io_bazel_rules_go//go/platform:linux": [ "@io_bazel_rules_go//go/platform:linux": [

View File

@ -37,8 +37,8 @@ go_library(
"//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/logs:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/logs:go_default_library",
"//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library", "//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
] + select({ ] + select({
"@io_bazel_rules_go//go/platform:linux": [ "@io_bazel_rules_go//go/platform:linux": [
"//vendor/github.com/google/cadvisor/container/common:go_default_library", "//vendor/github.com/google/cadvisor/container/common:go_default_library",

View File

@ -29,7 +29,7 @@ import (
"k8s.io/kubernetes/pkg/version/verflag" "k8s.io/kubernetes/pkg/version/verflag"
// ensure libs have a chance to globally register their flags // ensure libs have a chance to globally register their flags
_ "github.com/golang/glog" _ "k8s.io/klog"
_ "k8s.io/kubernetes/pkg/credentialprovider/azure" _ "k8s.io/kubernetes/pkg/credentialprovider/azure"
_ "k8s.io/kubernetes/pkg/credentialprovider/gcp" _ "k8s.io/kubernetes/pkg/credentialprovider/gcp"
) )
@ -91,7 +91,7 @@ func addCredentialProviderFlags(fs *pflag.FlagSet) {
fs.AddFlagSet(local) fs.AddFlagSet(local)
} }
// addGlogFlags adds flags from github.com/golang/glog // addGlogFlags adds flags from k8s.io/klog
func addGlogFlags(fs *pflag.FlagSet) { func addGlogFlags(fs *pflag.FlagSet) {
// lookup flags in global flag set and re-register the values with our flagset // lookup flags in global flag set and re-register the values with our flagset
global := flag.CommandLine global := flag.CommandLine

View File

@ -34,9 +34,9 @@ import (
"time" "time"
"github.com/coreos/go-systemd/daemon" "github.com/coreos/go-systemd/daemon"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/pflag" "github.com/spf13/pflag"
"k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
@ -111,7 +111,7 @@ func NewKubeletCommand(stopCh <-chan struct{}) *cobra.Command {
kubeletConfig, err := options.NewKubeletConfiguration() kubeletConfig, err := options.NewKubeletConfiguration()
// programmer error // programmer error
if err != nil { if err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
cmd := &cobra.Command{ cmd := &cobra.Command{
@ -144,20 +144,20 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
// initial flag parse, since we disable cobra's flag parsing // initial flag parse, since we disable cobra's flag parsing
if err := cleanFlagSet.Parse(args); err != nil { if err := cleanFlagSet.Parse(args); err != nil {
cmd.Usage() cmd.Usage()
glog.Fatal(err) klog.Fatal(err)
} }
// check if there are non-flag arguments in the command line // check if there are non-flag arguments in the command line
cmds := cleanFlagSet.Args() cmds := cleanFlagSet.Args()
if len(cmds) > 0 { if len(cmds) > 0 {
cmd.Usage() cmd.Usage()
glog.Fatalf("unknown command: %s", cmds[0]) klog.Fatalf("unknown command: %s", cmds[0])
} }
// short-circuit on help // short-circuit on help
help, err := cleanFlagSet.GetBool("help") help, err := cleanFlagSet.GetBool("help")
if err != nil { if err != nil {
glog.Fatal(`"help" flag is non-bool, programmer error, please correct`) klog.Fatal(`"help" flag is non-bool, programmer error, please correct`)
} }
if help { if help {
cmd.Help() cmd.Help()
@ -170,40 +170,40 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
// set feature gates from initial flags-based config // set feature gates from initial flags-based config
if err := utilfeature.DefaultFeatureGate.SetFromMap(kubeletConfig.FeatureGates); err != nil { if err := utilfeature.DefaultFeatureGate.SetFromMap(kubeletConfig.FeatureGates); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
// validate the initial KubeletFlags // validate the initial KubeletFlags
if err := options.ValidateKubeletFlags(kubeletFlags); err != nil { if err := options.ValidateKubeletFlags(kubeletFlags); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
if kubeletFlags.ContainerRuntime == "remote" && cleanFlagSet.Changed("pod-infra-container-image") { if kubeletFlags.ContainerRuntime == "remote" && cleanFlagSet.Changed("pod-infra-container-image") {
glog.Warning("Warning: For remote container runtime, --pod-infra-container-image is ignored in kubelet, which should be set in that remote runtime instead") klog.Warning("Warning: For remote container runtime, --pod-infra-container-image is ignored in kubelet, which should be set in that remote runtime instead")
} }
// load kubelet config file, if provided // load kubelet config file, if provided
if configFile := kubeletFlags.KubeletConfigFile; len(configFile) > 0 { if configFile := kubeletFlags.KubeletConfigFile; len(configFile) > 0 {
kubeletConfig, err = loadConfigFile(configFile) kubeletConfig, err = loadConfigFile(configFile)
if err != nil { if err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
// We must enforce flag precedence by re-parsing the command line into the new object. // We must enforce flag precedence by re-parsing the command line into the new object.
// This is necessary to preserve backwards-compatibility across binary upgrades. // This is necessary to preserve backwards-compatibility across binary upgrades.
// See issue #56171 for more details. // See issue #56171 for more details.
if err := kubeletConfigFlagPrecedence(kubeletConfig, args); err != nil { if err := kubeletConfigFlagPrecedence(kubeletConfig, args); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
// update feature gates based on new config // update feature gates based on new config
if err := utilfeature.DefaultFeatureGate.SetFromMap(kubeletConfig.FeatureGates); err != nil { if err := utilfeature.DefaultFeatureGate.SetFromMap(kubeletConfig.FeatureGates); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
} }
// We always validate the local configuration (command line + config file). // We always validate the local configuration (command line + config file).
// This is the default "last-known-good" config for dynamic config, and must always remain valid. // This is the default "last-known-good" config for dynamic config, and must always remain valid.
if err := kubeletconfigvalidation.ValidateKubeletConfiguration(kubeletConfig); err != nil { if err := kubeletconfigvalidation.ValidateKubeletConfiguration(kubeletConfig); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
// use dynamic kubelet config, if enabled // use dynamic kubelet config, if enabled
@ -219,7 +219,7 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
return kubeletConfigFlagPrecedence(kc, args) return kubeletConfigFlagPrecedence(kc, args)
}) })
if err != nil { if err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
// If we should just use our existing, local config, the controller will return a nil config // If we should just use our existing, local config, the controller will return a nil config
if dynamicKubeletConfig != nil { if dynamicKubeletConfig != nil {
@ -227,7 +227,7 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
// Note: flag precedence was already enforced in the controller, prior to validation, // Note: flag precedence was already enforced in the controller, prior to validation,
// by our above transform function. Now we simply update feature gates from the new config. // by our above transform function. Now we simply update feature gates from the new config.
if err := utilfeature.DefaultFeatureGate.SetFromMap(kubeletConfig.FeatureGates); err != nil { if err := utilfeature.DefaultFeatureGate.SetFromMap(kubeletConfig.FeatureGates); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
} }
} }
@ -241,7 +241,7 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
// use kubeletServer to construct the default KubeletDeps // use kubeletServer to construct the default KubeletDeps
kubeletDeps, err := UnsecuredDependencies(kubeletServer) kubeletDeps, err := UnsecuredDependencies(kubeletServer)
if err != nil { if err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
// add the kubelet config controller to kubeletDeps // add the kubelet config controller to kubeletDeps
@ -250,15 +250,15 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
// start the experimental docker shim, if enabled // start the experimental docker shim, if enabled
if kubeletServer.KubeletFlags.ExperimentalDockershim { if kubeletServer.KubeletFlags.ExperimentalDockershim {
if err := RunDockershim(&kubeletServer.KubeletFlags, kubeletConfig, stopCh); err != nil { if err := RunDockershim(&kubeletServer.KubeletFlags, kubeletConfig, stopCh); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
return return
} }
// run the kubelet // run the kubelet
glog.V(5).Infof("KubeletConfiguration: %#v", kubeletServer.KubeletConfiguration) klog.V(5).Infof("KubeletConfiguration: %#v", kubeletServer.KubeletConfiguration)
if err := Run(kubeletServer, kubeletDeps, stopCh); err != nil { if err := Run(kubeletServer, kubeletDeps, stopCh); err != nil {
glog.Fatal(err) klog.Fatal(err)
} }
}, },
} }
@ -361,7 +361,7 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err
mounter := mount.New(s.ExperimentalMounterPath) mounter := mount.New(s.ExperimentalMounterPath)
var pluginRunner = exec.New() var pluginRunner = exec.New()
if s.Containerized { if s.Containerized {
glog.V(2).Info("Running kubelet in containerized mode") klog.V(2).Info("Running kubelet in containerized mode")
ne, err := nsenter.NewNsenter(nsenter.DefaultHostRootFsPath, exec.New()) ne, err := nsenter.NewNsenter(nsenter.DefaultHostRootFsPath, exec.New())
if err != nil { if err != nil {
return nil, err return nil, err
@ -404,7 +404,7 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err
// not be generated. // not be generated.
func Run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan struct{}) error { func Run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan struct{}) error {
// To help debugging, immediately log version // To help debugging, immediately log version
glog.Infof("Version: %+v", version.Get()) klog.Infof("Version: %+v", version.Get())
if err := initForOS(s.KubeletFlags.WindowsService); err != nil { if err := initForOS(s.KubeletFlags.WindowsService); err != nil {
return fmt.Errorf("failed OS init: %v", err) return fmt.Errorf("failed OS init: %v", err)
} }
@ -439,11 +439,11 @@ func setConfigz(cz *configz.Config, kc *kubeletconfiginternal.KubeletConfigurati
func initConfigz(kc *kubeletconfiginternal.KubeletConfiguration) error { func initConfigz(kc *kubeletconfiginternal.KubeletConfiguration) error {
cz, err := configz.New("kubeletconfig") cz, err := configz.New("kubeletconfig")
if err != nil { if err != nil {
glog.Errorf("unable to register configz: %s", err) klog.Errorf("unable to register configz: %s", err)
return err return err
} }
if err := setConfigz(cz, kc); err != nil { if err := setConfigz(cz, kc); err != nil {
glog.Errorf("unable to register config: %s", err) klog.Errorf("unable to register config: %s", err)
return err return err
} }
return nil return nil
@ -456,12 +456,12 @@ func makeEventRecorder(kubeDeps *kubelet.Dependencies, nodeName types.NodeName)
} }
eventBroadcaster := record.NewBroadcaster() eventBroadcaster := record.NewBroadcaster()
kubeDeps.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: componentKubelet, Host: string(nodeName)}) kubeDeps.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: componentKubelet, Host: string(nodeName)})
eventBroadcaster.StartLogging(glog.V(3).Infof) eventBroadcaster.StartLogging(klog.V(3).Infof)
if kubeDeps.EventClient != nil { if kubeDeps.EventClient != nil {
glog.V(4).Infof("Sending events to api server.") klog.V(4).Infof("Sending events to api server.")
eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeDeps.EventClient.Events("")}) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeDeps.EventClient.Events("")})
} else { } else {
glog.Warning("No api server defined - no events will be sent to API server.") klog.Warning("No api server defined - no events will be sent to API server.")
} }
} }
@ -482,12 +482,12 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
} }
done := make(chan struct{}) done := make(chan struct{})
if s.LockFilePath != "" { if s.LockFilePath != "" {
glog.Infof("acquiring file lock on %q", s.LockFilePath) klog.Infof("acquiring file lock on %q", s.LockFilePath)
if err := flock.Acquire(s.LockFilePath); err != nil { if err := flock.Acquire(s.LockFilePath); err != nil {
return fmt.Errorf("unable to acquire file lock on %q: %v", s.LockFilePath, err) return fmt.Errorf("unable to acquire file lock on %q: %v", s.LockFilePath, err)
} }
if s.ExitOnLockContention { if s.ExitOnLockContention {
glog.Infof("watching for inotify events for: %v", s.LockFilePath) klog.Infof("watching for inotify events for: %v", s.LockFilePath)
if err := watchForLockfileContention(s.LockFilePath, done); err != nil { if err := watchForLockfileContention(s.LockFilePath, done); err != nil {
return err return err
} }
@ -497,7 +497,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
// Register current configuration with /configz endpoint // Register current configuration with /configz endpoint
err = initConfigz(&s.KubeletConfiguration) err = initConfigz(&s.KubeletConfiguration)
if err != nil { if err != nil {
glog.Errorf("unable to register KubeletConfiguration with configz, error: %v", err) klog.Errorf("unable to register KubeletConfiguration with configz, error: %v", err)
} }
// About to get clients and such, detect standaloneMode // About to get clients and such, detect standaloneMode
@ -520,9 +520,9 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
return err return err
} }
if cloud == nil { if cloud == nil {
glog.V(2).Infof("No cloud provider specified: %q from the config file: %q\n", s.CloudProvider, s.CloudConfigFile) klog.V(2).Infof("No cloud provider specified: %q from the config file: %q\n", s.CloudProvider, s.CloudConfigFile)
} else { } else {
glog.V(2).Infof("Successfully initialized cloud provider: %q from the config file: %q\n", s.CloudProvider, s.CloudConfigFile) klog.V(2).Infof("Successfully initialized cloud provider: %q from the config file: %q\n", s.CloudProvider, s.CloudConfigFile)
} }
kubeDeps.Cloud = cloud kubeDeps.Cloud = cloud
} }
@ -549,7 +549,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
kubeDeps.DynamicKubeClient = nil kubeDeps.DynamicKubeClient = nil
kubeDeps.EventClient = nil kubeDeps.EventClient = nil
kubeDeps.HeartbeatClient = nil kubeDeps.HeartbeatClient = nil
glog.Warningf("standalone mode, no API client") klog.Warningf("standalone mode, no API client")
} else if kubeDeps.KubeClient == nil || kubeDeps.EventClient == nil || kubeDeps.HeartbeatClient == nil || kubeDeps.DynamicKubeClient == nil { } else if kubeDeps.KubeClient == nil || kubeDeps.EventClient == nil || kubeDeps.HeartbeatClient == nil || kubeDeps.DynamicKubeClient == nil {
// initialize clients if not standalone mode and any of the clients are not provided // initialize clients if not standalone mode and any of the clients are not provided
var kubeClient clientset.Interface var kubeClient clientset.Interface
@ -579,15 +579,15 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
kubeClient, err = clientset.NewForConfig(clientConfig) kubeClient, err = clientset.NewForConfig(clientConfig)
if err != nil { if err != nil {
glog.Warningf("New kubeClient from clientConfig error: %v", err) klog.Warningf("New kubeClient from clientConfig error: %v", err)
} else if kubeClient.CertificatesV1beta1() != nil && clientCertificateManager != nil { } else if kubeClient.CertificatesV1beta1() != nil && clientCertificateManager != nil {
glog.V(2).Info("Starting client certificate rotation.") klog.V(2).Info("Starting client certificate rotation.")
clientCertificateManager.SetCertificateSigningRequestClient(kubeClient.CertificatesV1beta1().CertificateSigningRequests()) clientCertificateManager.SetCertificateSigningRequestClient(kubeClient.CertificatesV1beta1().CertificateSigningRequests())
clientCertificateManager.Start() clientCertificateManager.Start()
} }
dynamicKubeClient, err = dynamic.NewForConfig(clientConfig) dynamicKubeClient, err = dynamic.NewForConfig(clientConfig)
if err != nil { if err != nil {
glog.Warningf("Failed to initialize dynamic KubeClient: %v", err) klog.Warningf("Failed to initialize dynamic KubeClient: %v", err)
} }
// make a separate client for events // make a separate client for events
@ -596,7 +596,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
eventClientConfig.Burst = int(s.EventBurst) eventClientConfig.Burst = int(s.EventBurst)
eventClient, err = v1core.NewForConfig(&eventClientConfig) eventClient, err = v1core.NewForConfig(&eventClientConfig)
if err != nil { if err != nil {
glog.Warningf("Failed to create API Server client for Events: %v", err) klog.Warningf("Failed to create API Server client for Events: %v", err)
} }
// make a separate client for heartbeat with throttling disabled and a timeout attached // make a separate client for heartbeat with throttling disabled and a timeout attached
@ -612,14 +612,14 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
heartbeatClientConfig.QPS = float32(-1) heartbeatClientConfig.QPS = float32(-1)
heartbeatClient, err = clientset.NewForConfig(&heartbeatClientConfig) heartbeatClient, err = clientset.NewForConfig(&heartbeatClientConfig)
if err != nil { if err != nil {
glog.Warningf("Failed to create API Server client for heartbeat: %v", err) klog.Warningf("Failed to create API Server client for heartbeat: %v", err)
} }
// csiClient works with CRDs that support json only // csiClient works with CRDs that support json only
clientConfig.ContentType = "application/json" clientConfig.ContentType = "application/json"
csiClient, err := csiclientset.NewForConfig(clientConfig) csiClient, err := csiclientset.NewForConfig(clientConfig)
if err != nil { if err != nil {
glog.Warningf("Failed to create CSI API client: %v", err) klog.Warningf("Failed to create CSI API client: %v", err)
} }
kubeDeps.KubeClient = kubeClient kubeDeps.KubeClient = kubeClient
@ -663,7 +663,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
if kubeDeps.ContainerManager == nil { if kubeDeps.ContainerManager == nil {
if s.CgroupsPerQOS && s.CgroupRoot == "" { if s.CgroupsPerQOS && s.CgroupRoot == "" {
glog.Infof("--cgroups-per-qos enabled, but --cgroup-root was not specified. defaulting to /") klog.Infof("--cgroups-per-qos enabled, but --cgroup-root was not specified. defaulting to /")
s.CgroupRoot = "/" s.CgroupRoot = "/"
} }
kubeReserved, err := parseResourceList(s.KubeReserved) kubeReserved, err := parseResourceList(s.KubeReserved)
@ -727,7 +727,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
} }
if err := checkPermissions(); err != nil { if err := checkPermissions(); err != nil {
glog.Error(err) klog.Error(err)
} }
utilruntime.ReallyCrash = s.ReallyCrashForTesting utilruntime.ReallyCrash = s.ReallyCrashForTesting
@ -737,7 +737,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
// TODO(vmarmol): Do this through container config. // TODO(vmarmol): Do this through container config.
oomAdjuster := kubeDeps.OOMAdjuster oomAdjuster := kubeDeps.OOMAdjuster
if err := oomAdjuster.ApplyOOMScoreAdj(0, int(s.OOMScoreAdj)); err != nil { if err := oomAdjuster.ApplyOOMScoreAdj(0, int(s.OOMScoreAdj)); err != nil {
glog.Warning(err) klog.Warning(err)
} }
if err := RunKubelet(s, kubeDeps, s.RunOnce); err != nil { if err := RunKubelet(s, kubeDeps, s.RunOnce); err != nil {
@ -749,7 +749,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan
go wait.Until(func() { go wait.Until(func() {
err := http.ListenAndServe(net.JoinHostPort(s.HealthzBindAddress, strconv.Itoa(int(s.HealthzPort))), nil) err := http.ListenAndServe(net.JoinHostPort(s.HealthzBindAddress, strconv.Itoa(int(s.HealthzPort))), nil)
if err != nil { if err != nil {
glog.Errorf("Starting health server failed: %v", err) klog.Errorf("Starting health server failed: %v", err)
} }
}, 5*time.Second, wait.NeverStop) }, 5*time.Second, wait.NeverStop)
} }
@ -788,7 +788,7 @@ func getNodeName(cloud cloudprovider.Interface, hostname string) (types.NodeName
return "", fmt.Errorf("error fetching current node name from cloud provider: %v", err) return "", fmt.Errorf("error fetching current node name from cloud provider: %v", err)
} }
glog.V(2).Infof("cloud provider determined current node name to be %s", nodeName) klog.V(2).Infof("cloud provider determined current node name to be %s", nodeName)
return nodeName, nil return nodeName, nil
} }
@ -822,7 +822,7 @@ func InitializeTLS(kf *options.KubeletFlags, kc *kubeletconfiginternal.KubeletCo
return nil, err return nil, err
} }
glog.V(4).Infof("Using self-signed cert (%s, %s)", kc.TLSCertFile, kc.TLSPrivateKeyFile) klog.V(4).Infof("Using self-signed cert (%s, %s)", kc.TLSCertFile, kc.TLSPrivateKeyFile)
} }
} }
@ -938,7 +938,7 @@ func RunKubelet(kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencie
capabilities.Setup(kubeServer.AllowPrivileged, privilegedSources, 0) capabilities.Setup(kubeServer.AllowPrivileged, privilegedSources, 0)
credentialprovider.SetPreferredDockercfgPath(kubeServer.RootDirectory) credentialprovider.SetPreferredDockercfgPath(kubeServer.RootDirectory)
glog.V(2).Infof("Using root directory: %v", kubeServer.RootDirectory) klog.V(2).Infof("Using root directory: %v", kubeServer.RootDirectory)
if kubeDeps.OSInterface == nil { if kubeDeps.OSInterface == nil {
kubeDeps.OSInterface = kubecontainer.RealOS{} kubeDeps.OSInterface = kubecontainer.RealOS{}
@ -993,10 +993,10 @@ func RunKubelet(kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencie
if _, err := k.RunOnce(podCfg.Updates()); err != nil { if _, err := k.RunOnce(podCfg.Updates()); err != nil {
return fmt.Errorf("runonce failed: %v", err) return fmt.Errorf("runonce failed: %v", err)
} }
glog.Infof("Started kubelet as runonce") klog.Infof("Started kubelet as runonce")
} else { } else {
startKubelet(k, podCfg, &kubeServer.KubeletConfiguration, kubeDeps, kubeServer.EnableServer) startKubelet(k, podCfg, &kubeServer.KubeletConfiguration, kubeDeps, kubeServer.EnableServer)
glog.Infof("Started kubelet") klog.Infof("Started kubelet")
} }
return nil return nil
} }
@ -1180,7 +1180,7 @@ func RunDockershim(f *options.KubeletFlags, c *kubeletconfiginternal.KubeletConf
if err != nil { if err != nil {
return err return err
} }
glog.V(2).Infof("Starting the GRPC server for the docker CRI shim.") klog.V(2).Infof("Starting the GRPC server for the docker CRI shim.")
server := dockerremote.NewDockerServer(f.RemoteRuntimeEndpoint, ds) server := dockerremote.NewDockerServer(f.RemoteRuntimeEndpoint, ds)
if err := server.Start(); err != nil { if err := server.Start(); err != nil {
return err return err

View File

@ -17,26 +17,26 @@ limitations under the License.
package app package app
import ( import (
"github.com/golang/glog"
"golang.org/x/exp/inotify" "golang.org/x/exp/inotify"
"k8s.io/klog"
) )
func watchForLockfileContention(path string, done chan struct{}) error { func watchForLockfileContention(path string, done chan struct{}) error {
watcher, err := inotify.NewWatcher() watcher, err := inotify.NewWatcher()
if err != nil { if err != nil {
glog.Errorf("unable to create watcher for lockfile: %v", err) klog.Errorf("unable to create watcher for lockfile: %v", err)
return err return err
} }
if err = watcher.AddWatch(path, inotify.IN_OPEN|inotify.IN_DELETE_SELF); err != nil { if err = watcher.AddWatch(path, inotify.IN_OPEN|inotify.IN_DELETE_SELF); err != nil {
glog.Errorf("unable to watch lockfile: %v", err) klog.Errorf("unable to watch lockfile: %v", err)
return err return err
} }
go func() { go func() {
select { select {
case ev := <-watcher.Event: case ev := <-watcher.Event:
glog.Infof("inotify event: %v", ev) klog.Infof("inotify event: %v", ev)
case err = <-watcher.Error: case err = <-watcher.Error:
glog.Errorf("inotify watcher error: %v", err) klog.Errorf("inotify watcher error: %v", err)
} }
close(done) close(done)
}() }()

View File

@ -35,9 +35,9 @@ go_library(
"//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/utils/exec/testing:go_default_library", "//vendor/k8s.io/utils/exec/testing:go_default_library",
], ],
) )

View File

@ -23,9 +23,9 @@ import (
"os" "os"
"time" "time"
"github.com/golang/glog"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/pflag" "github.com/spf13/pflag"
"k8s.io/klog"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
@ -138,18 +138,18 @@ func newHollowNodeCommand() *cobra.Command {
func run(config *HollowNodeConfig) { func run(config *HollowNodeConfig) {
if !knownMorphs.Has(config.Morph) { if !knownMorphs.Has(config.Morph) {
glog.Fatalf("Unknown morph: %v. Allowed values: %v", config.Morph, knownMorphs.List()) klog.Fatalf("Unknown morph: %v. Allowed values: %v", config.Morph, knownMorphs.List())
} }
// create a client to communicate with API server. // create a client to communicate with API server.
clientConfig, err := config.createClientConfigFromFile() clientConfig, err := config.createClientConfigFromFile()
if err != nil { if err != nil {
glog.Fatalf("Failed to create a ClientConfig: %v. Exiting.", err) klog.Fatalf("Failed to create a ClientConfig: %v. Exiting.", err)
} }
client, err := clientset.NewForConfig(clientConfig) client, err := clientset.NewForConfig(clientConfig)
if err != nil { if err != nil {
glog.Fatalf("Failed to create a ClientSet: %v. Exiting.", err) klog.Fatalf("Failed to create a ClientSet: %v. Exiting.", err)
} }
if config.Morph == "kubelet" { if config.Morph == "kubelet" {
@ -181,7 +181,7 @@ func run(config *HollowNodeConfig) {
if config.Morph == "proxy" { if config.Morph == "proxy" {
client, err := clientset.NewForConfig(clientConfig) client, err := clientset.NewForConfig(clientConfig)
if err != nil { if err != nil {
glog.Fatalf("Failed to create API Server client: %v", err) klog.Fatalf("Failed to create API Server client: %v", err)
} }
iptInterface := fakeiptables.NewFake() iptInterface := fakeiptables.NewFake()
sysctl := fakesysctl.NewFake() sysctl := fakesysctl.NewFake()
@ -203,7 +203,7 @@ func run(config *HollowNodeConfig) {
config.ProxierMinSyncPeriod, config.ProxierMinSyncPeriod,
) )
if err != nil { if err != nil {
glog.Fatalf("Failed to create hollowProxy instance: %v", err) klog.Fatalf("Failed to create hollowProxy instance: %v", err)
} }
hollowProxy.Run() hollowProxy.Run()
} }

Some files were not shown because too many files have changed in this diff Show More