diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 54d02e16258..6e363ef6248 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -10,24 +10,16 @@ load( go_test( name = "go_default_test", - srcs = [ - "bootstrap_test.go", - "server_test.go", - ], + srcs = ["server_test.go"], library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/apis/componentconfig:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], + deps = ["//pkg/apis/componentconfig:go_default_library"], ) go_library( name = "go_default_library", srcs = [ "auth.go", - "bootstrap.go", "plugins.go", "server.go", "server_linux.go", @@ -51,6 +43,7 @@ go_library( "//pkg/kubelet:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/certificate:go_default_library", + "//pkg/kubelet/certificate/bootstrap:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -65,7 +58,6 @@ go_library( "//pkg/kubelet/server:go_default_library", "//pkg/kubelet/server/streaming:go_default_library", "//pkg/kubelet/types:go_default_library", - "//pkg/kubelet/util/csr:go_default_library", "//pkg/util/configz:go_default_library", "//pkg/util/flock:go_default_library", "//pkg/util/io:go_default_library", @@ -124,11 +116,9 @@ go_library( "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", ], diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 99c23eb9ace..d8a0f7bfdf7 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -65,6 +65,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet" "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/certificate" + "k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap" "k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/config" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" @@ -448,7 +449,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { } if s.BootstrapKubeconfig != "" { - if err := bootstrapClientCert(s.KubeConfig.Value(), s.BootstrapKubeconfig, s.CertDirectory, nodeName); err != nil { + if err := bootstrap.LoadClientCert(s.KubeConfig.Value(), s.BootstrapKubeconfig, s.CertDirectory, nodeName); err != nil { return err } } diff --git a/pkg/kubelet/certificate/BUILD b/pkg/kubelet/certificate/BUILD index 9cf175f3c4f..5ee550b6579 100644 --- a/pkg/kubelet/certificate/BUILD +++ b/pkg/kubelet/certificate/BUILD @@ -58,6 +58,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//pkg/kubelet/certificate/bootstrap:all-srcs", + ], tags = ["automanaged"], ) diff --git a/pkg/kubelet/certificate/bootstrap/BUILD b/pkg/kubelet/certificate/bootstrap/BUILD new file mode 100644 index 00000000000..cff67f14cee --- /dev/null +++ b/pkg/kubelet/certificate/bootstrap/BUILD @@ -0,0 +1,49 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["bootstrap_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = ["bootstrap.go"], + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/util/csr:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", + "//vendor/k8s.io/client-go/util/cert:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/kubelet/app/bootstrap.go b/pkg/kubelet/certificate/bootstrap/bootstrap.go similarity index 95% rename from cmd/kubelet/app/bootstrap.go rename to pkg/kubelet/certificate/bootstrap/bootstrap.go index 18ac878f948..2952ba0bd62 100644 --- a/cmd/kubelet/app/bootstrap.go +++ b/pkg/kubelet/certificate/bootstrap/bootstrap.go @@ -14,11 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -package app +package bootstrap import ( "fmt" - _ "net/http/pprof" "os" "path/filepath" @@ -38,11 +37,11 @@ const ( defaultKubeletClientKeyFile = "kubelet-client.key" ) -// bootstrapClientCert requests a client cert for kubelet if the kubeconfigPath file does not exist. +// LoadClientCert requests a client cert for kubelet if the kubeconfigPath file does not exist. // The kubeconfig at bootstrapPath is used to request a client certificate from the API server. // On success, a kubeconfig file referencing the generated key and obtained certificate is written to kubeconfigPath. // The certificate and key file are stored in certDir. -func bootstrapClientCert(kubeconfigPath string, bootstrapPath string, certDir string, nodeName types.NodeName) error { +func LoadClientCert(kubeconfigPath string, bootstrapPath string, certDir string, nodeName types.NodeName) error { // Short-circuit if the kubeconfig file already exists. // TODO: inspect the kubeconfig, ensure a rest client can be built from it, verify client cert expiration, etc. _, err := os.Stat(kubeconfigPath) diff --git a/cmd/kubelet/app/bootstrap_test.go b/pkg/kubelet/certificate/bootstrap/bootstrap_test.go similarity index 99% rename from cmd/kubelet/app/bootstrap_test.go rename to pkg/kubelet/certificate/bootstrap/bootstrap_test.go index 9f60028eaa3..2885719b6f1 100644 --- a/cmd/kubelet/app/bootstrap_test.go +++ b/pkg/kubelet/certificate/bootstrap/bootstrap_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package app +package bootstrap import ( "io/ioutil"