From 2e74df97a429a0ed555acdf47a7fea9cc61f29f5 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Tue, 3 Nov 2020 22:10:03 +0100 Subject: [PATCH 1/3] Introduce kubectl-convert plugin --- cmd/kubectl-convert/OWNERS | 9 ++++ cmd/kubectl-convert/kubectl-convert.go | 57 ++++++++++++++++++++++++++ pkg/kubectl/cmd/convert/convert.go | 8 ---- test/cmd/template-output.sh | 2 +- 4 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 cmd/kubectl-convert/OWNERS create mode 100644 cmd/kubectl-convert/kubectl-convert.go diff --git a/cmd/kubectl-convert/OWNERS b/cmd/kubectl-convert/OWNERS new file mode 100644 index 00000000000..a1f6b7eee30 --- /dev/null +++ b/cmd/kubectl-convert/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-cli-maintainers +reviewers: +- sig-cli +labels: +- area/kubectl +- sig/cli diff --git a/cmd/kubectl-convert/kubectl-convert.go b/cmd/kubectl-convert/kubectl-convert.go new file mode 100644 index 00000000000..d030ae8bf3a --- /dev/null +++ b/cmd/kubectl-convert/kubectl-convert.go @@ -0,0 +1,57 @@ +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + goflag "flag" + "os" + + "github.com/spf13/pflag" + + "k8s.io/cli-runtime/pkg/genericclioptions" + cliflag "k8s.io/component-base/cli/flag" + cmdutil "k8s.io/kubectl/pkg/cmd/util" + "k8s.io/kubectl/pkg/util/logs" + "k8s.io/kubernetes/pkg/kubectl/cmd/convert" +) + +func main() { + flags := pflag.NewFlagSet("kubectl-convert", pflag.ExitOnError) + pflag.CommandLine = flags + + kubeConfigFlags := genericclioptions.NewConfigFlags(true).WithDeprecatedPasswordFlag() + kubeConfigFlags.AddFlags(flags) + matchVersionKubeConfigFlags := cmdutil.NewMatchVersionFlags(kubeConfigFlags) + + f := cmdutil.NewFactory(matchVersionKubeConfigFlags) + + // TODO: once we switch everything over to Cobra commands, we can go back to calling + // cliflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the + // normalize func and add the go flag set by hand. + pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) + pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) + // cliflag.InitFlags() + logs.InitLogs() + defer logs.FlushLogs() + + cmd := convert.NewCmdConvert(f, genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr}) + matchVersionKubeConfigFlags.AddFlags(cmd.PersistentFlags()) + if err := cmd.Execute(); err != nil { + os.Exit(1) + } + +} diff --git a/pkg/kubectl/cmd/convert/convert.go b/pkg/kubectl/cmd/convert/convert.go index b8460e3ff33..74b16ccbbe4 100644 --- a/pkg/kubectl/cmd/convert/convert.go +++ b/pkg/kubectl/cmd/convert/convert.go @@ -137,14 +137,6 @@ func (o *ConvertOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) (err er // RunConvert implements the generic Convert command func (o *ConvertOptions) RunConvert() error { - - // Convert must be removed from kubectl, since kubectl can not depend on - // Kubernetes "internal" dependencies. These "internal" dependencies can - // not be removed from convert. Another way to convert a resource is to - // "kubectl apply" it to the cluster, then "kubectl get" at the desired version. - // Another possible solution is to make convert a plugin. - fmt.Fprintf(o.ErrOut, "kubectl convert is DEPRECATED and will be removed in a future version.\nIn order to convert, kubectl apply the object to the cluster, then kubectl get at the desired version.\n") - b := o.builder(). WithScheme(scheme.Scheme). LocalParam(o.local) diff --git a/test/cmd/template-output.sh b/test/cmd/template-output.sh index fae45802e00..b5e9fff2e27 100755 --- a/test/cmd/template-output.sh +++ b/test/cmd/template-output.sh @@ -63,7 +63,7 @@ run_template_output_tests() { kube::test::if_has_string "${output_message}" 'redis-slave:' # check that convert command supports --template output - output_message=$(kubectl "${kube_flags[@]:?}" convert -f hack/testdata/deployment-revision1.yaml --output-version=apps/v1beta1 --template="{{ .metadata.name }}:") + output_message=$(kubectl convert "${kube_flags[@]:?}" -f hack/testdata/deployment-revision1.yaml --output-version=apps/v1beta1 --template="{{ .metadata.name }}:") kube::test::if_has_string "${output_message}" 'nginx:' # check that run command supports --template output From 9b8247e5ddb15f3fb9ffe59871172d9a3268af55 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Tue, 3 Nov 2020 22:11:39 +0100 Subject: [PATCH 2/3] Move the remaining kubectl bits to k8s.io/kubectl --- cmd/clicheck/check_cli_conventions.go | 2 +- cmd/gendocs/gen_kubectl_docs.go | 2 +- cmd/genman/gen_kube_man.go | 2 +- cmd/genyaml/gen_kubectl_yaml.go | 2 +- cmd/kubectl/kubectl.go | 2 +- pkg/kubectl/cmd/plugin/testdata/kubectl-foo | 3 --- pkg/kubectl/cmd/plugin/testdata/kubectl-version | 4 ---- {pkg/kubectl => staging/src/k8s.io/kubectl/pkg}/cmd/cmd.go | 5 +---- .../src/k8s.io/kubectl/pkg}/cmd/cmd_test.go | 0 .../src/k8s.io/kubectl/pkg}/cmd/profiling.go | 0 10 files changed, 6 insertions(+), 16 deletions(-) delete mode 100755 pkg/kubectl/cmd/plugin/testdata/kubectl-foo delete mode 100755 pkg/kubectl/cmd/plugin/testdata/kubectl-version rename {pkg/kubectl => staging/src/k8s.io/kubectl/pkg}/cmd/cmd.go (99%) rename {pkg/kubectl => staging/src/k8s.io/kubectl/pkg}/cmd/cmd_test.go (100%) rename {pkg/kubectl => staging/src/k8s.io/kubectl/pkg}/cmd/profiling.go (100%) diff --git a/cmd/clicheck/check_cli_conventions.go b/cmd/clicheck/check_cli_conventions.go index 7747c8a1192..e24d6930a12 100644 --- a/cmd/clicheck/check_cli_conventions.go +++ b/cmd/clicheck/check_cli_conventions.go @@ -21,8 +21,8 @@ import ( "io/ioutil" "os" + "k8s.io/kubectl/pkg/cmd" cmdsanity "k8s.io/kubectl/pkg/cmd/util/sanity" - "k8s.io/kubernetes/pkg/kubectl/cmd" ) func main() { diff --git a/cmd/gendocs/gen_kubectl_docs.go b/cmd/gendocs/gen_kubectl_docs.go index dc03a0e8260..fe0bcff123b 100644 --- a/cmd/gendocs/gen_kubectl_docs.go +++ b/cmd/gendocs/gen_kubectl_docs.go @@ -22,8 +22,8 @@ import ( "os" "github.com/spf13/cobra/doc" + "k8s.io/kubectl/pkg/cmd" "k8s.io/kubernetes/cmd/genutils" - "k8s.io/kubernetes/pkg/kubectl/cmd" ) func main() { diff --git a/cmd/genman/gen_kube_man.go b/cmd/genman/gen_kube_man.go index b15da4d26de..9a95e76217a 100644 --- a/cmd/genman/gen_kube_man.go +++ b/cmd/genman/gen_kube_man.go @@ -26,6 +26,7 @@ import ( mangen "github.com/cpuguy83/go-md2man/v2/md2man" "github.com/spf13/cobra" "github.com/spf13/pflag" + kubectlcmd "k8s.io/kubectl/pkg/cmd" "k8s.io/kubernetes/cmd/genutils" apiservapp "k8s.io/kubernetes/cmd/kube-apiserver/app" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app" @@ -33,7 +34,6 @@ import ( schapp "k8s.io/kubernetes/cmd/kube-scheduler/app" kubeadmapp "k8s.io/kubernetes/cmd/kubeadm/app/cmd" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" - kubectlcmd "k8s.io/kubernetes/pkg/kubectl/cmd" ) func main() { diff --git a/cmd/genyaml/gen_kubectl_yaml.go b/cmd/genyaml/gen_kubectl_yaml.go index d317f5abeea..4f3c2159cb1 100644 --- a/cmd/genyaml/gen_kubectl_yaml.go +++ b/cmd/genyaml/gen_kubectl_yaml.go @@ -26,8 +26,8 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" "gopkg.in/yaml.v2" + "k8s.io/kubectl/pkg/cmd" "k8s.io/kubernetes/cmd/genutils" - "k8s.io/kubernetes/pkg/kubectl/cmd" ) type cmdOption struct { diff --git a/cmd/kubectl/kubectl.go b/cmd/kubectl/kubectl.go index 53934ac2b00..a5e24493a41 100644 --- a/cmd/kubectl/kubectl.go +++ b/cmd/kubectl/kubectl.go @@ -25,8 +25,8 @@ import ( "github.com/spf13/pflag" cliflag "k8s.io/component-base/cli/flag" + "k8s.io/kubectl/pkg/cmd" "k8s.io/kubectl/pkg/util/logs" - "k8s.io/kubernetes/pkg/kubectl/cmd" // Import to initialize client auth plugins. _ "k8s.io/client-go/plugin/pkg/client/auth" diff --git a/pkg/kubectl/cmd/plugin/testdata/kubectl-foo b/pkg/kubectl/cmd/plugin/testdata/kubectl-foo deleted file mode 100755 index 651b7662dda..00000000000 --- a/pkg/kubectl/cmd/plugin/testdata/kubectl-foo +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -echo "I am plugin foo" diff --git a/pkg/kubectl/cmd/plugin/testdata/kubectl-version b/pkg/kubectl/cmd/plugin/testdata/kubectl-version deleted file mode 100755 index 3718966b689..00000000000 --- a/pkg/kubectl/cmd/plugin/testdata/kubectl-version +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -# This plugin is a no-op and is used to test plugins -# that overshadow existing kubectl commands diff --git a/pkg/kubectl/cmd/cmd.go b/staging/src/k8s.io/kubectl/pkg/cmd/cmd.go similarity index 99% rename from pkg/kubectl/cmd/cmd.go rename to staging/src/k8s.io/kubectl/pkg/cmd/cmd.go index 234c5c6bab5..999e0e4cb3d 100644 --- a/pkg/kubectl/cmd/cmd.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/cmd.go @@ -31,7 +31,6 @@ import ( "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" cliflag "k8s.io/component-base/cli/flag" - cmdpkg "k8s.io/kubectl/pkg/cmd" "k8s.io/kubectl/pkg/cmd/annotate" "k8s.io/kubectl/pkg/cmd/apiresources" "k8s.io/kubectl/pkg/cmd/apply" @@ -74,7 +73,6 @@ import ( "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" "k8s.io/kubectl/pkg/util/term" - "k8s.io/kubernetes/pkg/kubectl/cmd/convert" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/kubectl/pkg/cmd/kustomize" @@ -567,7 +565,6 @@ func NewKubectlCommand(in io.Reader, out, err io.Writer) *cobra.Command { patch.NewCmdPatch(f, ioStreams), replace.NewCmdReplace(f, ioStreams), wait.NewCmdWait(f, ioStreams), - convert.NewCmdConvert(f, ioStreams), kustomize.NewCmdKustomize(ioStreams), }, }, @@ -585,7 +582,7 @@ func NewKubectlCommand(in io.Reader, out, err io.Writer) *cobra.Command { filters := []string{"options"} // Hide the "alpha" subcommand if there are no alpha commands in this build. - alpha := cmdpkg.NewCmdAlpha(f, ioStreams) + alpha := NewCmdAlpha(f, ioStreams) if !alpha.HasSubCommands() { filters = append(filters, alpha.Name()) } diff --git a/pkg/kubectl/cmd/cmd_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/cmd_test.go similarity index 100% rename from pkg/kubectl/cmd/cmd_test.go rename to staging/src/k8s.io/kubectl/pkg/cmd/cmd_test.go diff --git a/pkg/kubectl/cmd/profiling.go b/staging/src/k8s.io/kubectl/pkg/cmd/profiling.go similarity index 100% rename from pkg/kubectl/cmd/profiling.go rename to staging/src/k8s.io/kubectl/pkg/cmd/profiling.go From 523854a0e27789e938ecad2ea59f0dee11f713dc Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Tue, 3 Nov 2020 22:12:04 +0100 Subject: [PATCH 3/3] Generated changes --- cmd/BUILD | 1 + cmd/clicheck/BUILD | 2 +- cmd/gendocs/BUILD | 2 +- cmd/genman/BUILD | 2 +- cmd/genyaml/BUILD | 2 +- cmd/kubectl-convert/BUILD | 44 +++++++++++ cmd/kubectl/BUILD | 2 +- pkg/kubectl/cmd/BUILD | 77 ------------------- staging/src/k8s.io/kubectl/pkg/cmd/BUILD | 62 ++++++++++++++- .../src/k8s.io/kubectl/pkg/cmd/plugin/BUILD | 5 +- .../kubectl/pkg}/cmd/plugin/testdata/BUILD | 0 11 files changed, 114 insertions(+), 85 deletions(-) create mode 100644 cmd/kubectl-convert/BUILD rename {pkg/kubectl => staging/src/k8s.io/kubectl/pkg}/cmd/plugin/testdata/BUILD (100%) diff --git a/cmd/BUILD b/cmd/BUILD index 8432bb4f70e..2da1a0ac88d 100644 --- a/cmd/BUILD +++ b/cmd/BUILD @@ -27,6 +27,7 @@ filegroup( "//cmd/kube-scheduler:all-srcs", "//cmd/kubeadm:all-srcs", "//cmd/kubectl:all-srcs", + "//cmd/kubectl-convert:all-srcs", "//cmd/kubelet:all-srcs", "//cmd/kubemark:all-srcs", "//cmd/linkcheck:all-srcs", diff --git a/cmd/clicheck/BUILD b/cmd/clicheck/BUILD index ab931819360..a8bff329b02 100644 --- a/cmd/clicheck/BUILD +++ b/cmd/clicheck/BUILD @@ -16,7 +16,7 @@ go_library( srcs = ["check_cli_conventions.go"], importpath = "k8s.io/kubernetes/cmd/clicheck", deps = [ - "//pkg/kubectl/cmd:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/util/sanity:go_default_library", ], ) diff --git a/cmd/gendocs/BUILD b/cmd/gendocs/BUILD index 6b2af89afb8..5988ad15ece 100644 --- a/cmd/gendocs/BUILD +++ b/cmd/gendocs/BUILD @@ -17,7 +17,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/gendocs", deps = [ "//cmd/genutils:go_default_library", - "//pkg/kubectl/cmd:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd:go_default_library", "//vendor/github.com/spf13/cobra/doc:go_default_library", ], ) diff --git a/cmd/genman/BUILD b/cmd/genman/BUILD index b1d5687a430..2e372b5aae7 100644 --- a/cmd/genman/BUILD +++ b/cmd/genman/BUILD @@ -23,7 +23,7 @@ go_library( "//cmd/kube-scheduler/app:go_default_library", "//cmd/kubeadm/app/cmd:go_default_library", "//cmd/kubelet/app:go_default_library", - "//pkg/kubectl/cmd:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd:go_default_library", "//vendor/github.com/cpuguy83/go-md2man/v2/md2man:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/genyaml/BUILD b/cmd/genyaml/BUILD index b659a379622..d9313554a32 100644 --- a/cmd/genyaml/BUILD +++ b/cmd/genyaml/BUILD @@ -17,7 +17,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/genyaml", deps = [ "//cmd/genutils:go_default_library", - "//pkg/kubectl/cmd:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/gopkg.in/yaml.v2:go_default_library", diff --git a/cmd/kubectl-convert/BUILD b/cmd/kubectl-convert/BUILD new file mode 100644 index 00000000000..81d97a72154 --- /dev/null +++ b/cmd/kubectl-convert/BUILD @@ -0,0 +1,44 @@ +load( + "@io_bazel_rules_go//go:def.bzl", + "go_binary", + "go_library", +) +load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs") + +go_binary( + name = "kubectl", + embed = [":go_default_library"], + pure = "on", + visibility = ["//visibility:public"], + x_defs = version_x_defs(), +) + +go_library( + name = "go_default_library", + srcs = ["kubectl-convert.go"], + importpath = "k8s.io/kubernetes/cmd/kubectl-convert", + visibility = ["//visibility:private"], + deps = [ + "//pkg/kubectl/cmd/convert:go_default_library", + "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", + "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/logs:go_default_library", + "//vendor/github.com/spf13/pflag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = [ + "//build/visible_to:cmd_kubectl_CONSUMERS", + ], +) diff --git a/cmd/kubectl/BUILD b/cmd/kubectl/BUILD index 0f6a8cd3cbb..e386c960327 100644 --- a/cmd/kubectl/BUILD +++ b/cmd/kubectl/BUILD @@ -19,9 +19,9 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubectl", visibility = ["//visibility:private"], deps = [ - "//pkg/kubectl/cmd:go_default_library", "//staging/src/k8s.io/client-go/plugin/pkg/client/auth:go_default_library", "//staging/src/k8s.io/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/logs:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index 6689b6bb040..24b79143191 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -1,79 +1,3 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = [ - "cmd.go", - "profiling.go", - ], - importpath = "k8s.io/kubernetes/pkg/kubectl/cmd", - visibility = ["//visibility:public"], - deps = [ - "//pkg/kubectl/cmd/convert:go_default_library", - "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions: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/component-base/cli/flag:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/annotate:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/apiresources:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/apply:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/attach:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/auth:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/autoscale:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/certificates:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/clusterinfo:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/completion:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/config:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/cp:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/create:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/debug:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/delete:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/describe:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/diff:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/drain:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/edit:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/exec:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/explain:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/expose:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/get:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/kustomize:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/label:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/logs:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/options:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/patch:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/plugin:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/portforward:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/proxy:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/replace:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/rollout:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/run:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/scale:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/set:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/taint:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/top:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/version:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/wait:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/i18n:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/templates:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/term:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["cmd_test.go"], - data = ["//pkg/kubectl/cmd/plugin/testdata"], - embed = [":go_default_library"], - deps = [ - "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), @@ -86,7 +10,6 @@ filegroup( srcs = [ ":package-srcs", "//pkg/kubectl/cmd/convert:all-srcs", - "//pkg/kubectl/cmd/plugin/testdata:all-srcs", ], tags = ["automanaged"], visibility = ["//visibility:public"], diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/BUILD b/staging/src/k8s.io/kubectl/pkg/cmd/BUILD index 1b208e2b9dd..9c09bab8cbc 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/BUILD +++ b/staging/src/k8s.io/kubectl/pkg/cmd/BUILD @@ -1,8 +1,12 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", - srcs = ["alpha.go"], + srcs = [ + "alpha.go", + "cmd.go", + "profiling.go", + ], importmap = "k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd", importpath = "k8s.io/kubectl/pkg/cmd", visibility = [ @@ -10,11 +14,54 @@ go_library( ], deps = [ "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions: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/component-base/cli/flag:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/annotate:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/apiresources:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/apply:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/attach:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/auth:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/autoscale:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/certificates:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/clusterinfo:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/completion:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/config:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/cp:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/create:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/debug:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/delete:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/describe:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/diff:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/drain:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/edit:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/exec:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/explain:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/expose:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/get:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/kustomize:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/label:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/logs:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/options:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/patch:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/plugin:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/portforward:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/proxy:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/replace:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/rollout:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/run:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/scale:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/set:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/taint:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/top:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/version:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/wait:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/i18n:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/templates:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/term:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/github.com/spf13/pflag:go_default_library", ], ) @@ -74,3 +121,14 @@ filegroup( tags = ["automanaged"], visibility = ["//visibility:public"], ) + +go_test( + name = "go_default_test", + srcs = ["cmd_test.go"], + data = ["//staging/src/k8s.io/kubectl/pkg/cmd/plugin/testdata"], + embed = [":go_default_library"], + deps = [ + "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", + ], +) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/plugin/BUILD b/staging/src/k8s.io/kubectl/pkg/cmd/plugin/BUILD index 0ca4f4e62cc..0c8cdb68b2f 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/plugin/BUILD +++ b/staging/src/k8s.io/kubectl/pkg/cmd/plugin/BUILD @@ -24,7 +24,10 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/kubectl/pkg/cmd/plugin/testdata:all-srcs", + ], tags = ["automanaged"], visibility = ["//visibility:public"], ) diff --git a/pkg/kubectl/cmd/plugin/testdata/BUILD b/staging/src/k8s.io/kubectl/pkg/cmd/plugin/testdata/BUILD similarity index 100% rename from pkg/kubectl/cmd/plugin/testdata/BUILD rename to staging/src/k8s.io/kubectl/pkg/cmd/plugin/testdata/BUILD