From c77b297babc6b21b71f2a449c4cce95af9f6b89e Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Tue, 3 Mar 2020 12:54:00 +0100 Subject: [PATCH 1/2] Hide kubectl.kubernetes.io/last-applied-configuration in describe --- .../pkg/describe/versioned/describe.go | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go b/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go index 678fc89fca6..a548d49fd93 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go @@ -90,8 +90,13 @@ const ( LEVEL_4 ) -// DescriberFn gives a way to easily override the function for unit testing if needed -var DescriberFn describe.DescriberFunc = Describer +var ( + // globally skipped annotations + skipAnnotations = sets.NewString(corev1.LastAppliedConfigAnnotation) + + // DescriberFn gives a way to easily override the function for unit testing if needed + DescriberFn describe.DescriberFunc = Describer +) // Describer returns a Describer for displaying the specified RESTMapping type or an error. func Describer(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (describe.Describer, error) { @@ -2318,8 +2323,7 @@ func describeSecret(secret *corev1.Secret) (string, error) { w.Write(LEVEL_0, "Name:\t%s\n", secret.Name) w.Write(LEVEL_0, "Namespace:\t%s\n", secret.Namespace) printLabelsMultiline(w, "Labels", secret.Labels) - skipAnnotations := sets.NewString(corev1.LastAppliedConfigAnnotation) - printAnnotationsMultilineWithFilter(w, "Annotations", secret.Annotations, skipAnnotations) + printAnnotationsMultiline(w, "Annotations", secret.Annotations) w.Write(LEVEL_0, "\nType:\t%s\n", secret.Type) @@ -4682,21 +4686,10 @@ func (list SortableVolumeDevices) Less(i, j int) bool { var maxAnnotationLen = 140 -// printAnnotationsMultilineWithFilter prints filtered multiple annotations with a proper alignment. -func printAnnotationsMultilineWithFilter(w PrefixWriter, title string, annotations map[string]string, skip sets.String) { - printAnnotationsMultilineWithIndent(w, "", title, "\t", annotations, skip) -} - // printAnnotationsMultiline prints multiple annotations with a proper alignment. -func printAnnotationsMultiline(w PrefixWriter, title string, annotations map[string]string) { - printAnnotationsMultilineWithIndent(w, "", title, "\t", annotations, sets.NewString()) -} - -// printAnnotationsMultilineWithIndent prints multiple annotations with a user-defined alignment. // If annotation string is too long, we omit chars more than 200 length. -func printAnnotationsMultilineWithIndent(w PrefixWriter, initialIndent, title, innerIndent string, annotations map[string]string, skip sets.String) { - - w.Write(LEVEL_0, "%s%s:%s", initialIndent, title, innerIndent) +func printAnnotationsMultiline(w PrefixWriter, title string, annotations map[string]string) { + w.Write(LEVEL_0, "%s:\t", title) if len(annotations) == 0 { w.WriteLine("") @@ -4706,7 +4699,7 @@ func printAnnotationsMultilineWithIndent(w PrefixWriter, initialIndent, title, i // to print labels in the sorted order keys := make([]string, 0, len(annotations)) for key := range annotations { - if skip.Has(key) { + if skipAnnotations.Has(key) { continue } keys = append(keys, key) @@ -4716,7 +4709,7 @@ func printAnnotationsMultilineWithIndent(w PrefixWriter, initialIndent, title, i return } sort.Strings(keys) - indent := initialIndent + innerIndent + indent := "\t" for i, key := range keys { if i != 0 { w.Write(LEVEL_0, indent) From 02cd65d7bb5e4aea84a4f466186bcbbe604c4b27 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Tue, 3 Mar 2020 13:06:26 +0100 Subject: [PATCH 2/2] Squash pkg/describe/versioned/ into pkg/describe/ --- hack/.golint_failures | 2 +- pkg/kubectl/cmd/auth/BUILD | 2 +- pkg/kubectl/cmd/auth/cani.go | 4 +- .../src/k8s.io/kubectl/pkg/cmd/describe/BUILD | 2 - .../kubectl/pkg/cmd/describe/describe.go | 7 +- .../kubectl/pkg/cmd/describe/describe_test.go | 39 ++++--- staging/src/k8s.io/kubectl/pkg/describe/BUILD | 81 +++++++++++++- .../pkg/describe/{versioned => }/describe.go | 105 +++++++++--------- .../describe/{versioned => }/describe_test.go | 69 ++++++------ .../k8s.io/kubectl/pkg/describe/interface.go | 6 +- .../kubectl/pkg/describe/versioned/BUILD | 98 ---------------- .../kubectl/pkg/polymorphichelpers/BUILD | 2 +- .../kubectl/pkg/polymorphichelpers/history.go | 2 +- vendor/modules.txt | 1 - 14 files changed, 192 insertions(+), 228 deletions(-) rename staging/src/k8s.io/kubectl/pkg/describe/{versioned => }/describe.go (98%) rename staging/src/k8s.io/kubectl/pkg/describe/{versioned => }/describe_test.go (97%) delete mode 100644 staging/src/k8s.io/kubectl/pkg/describe/versioned/BUILD diff --git a/hack/.golint_failures b/hack/.golint_failures index 00fb27756d0..a5db2cbb235 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -488,7 +488,7 @@ staging/src/k8s.io/kubectl/pkg/cmd/testing staging/src/k8s.io/kubectl/pkg/cmd/top staging/src/k8s.io/kubectl/pkg/cmd/util staging/src/k8s.io/kubectl/pkg/cmd/wait -staging/src/k8s.io/kubectl/pkg/describe/versioned +staging/src/k8s.io/kubectl/pkg/describe staging/src/k8s.io/kubectl/pkg/generate staging/src/k8s.io/kubectl/pkg/generate/versioned staging/src/k8s.io/kubectl/pkg/metricsutil diff --git a/pkg/kubectl/cmd/auth/BUILD b/pkg/kubectl/cmd/auth/BUILD index 828bbbfc4dd..b9840301ea2 100644 --- a/pkg/kubectl/cmd/auth/BUILD +++ b/pkg/kubectl/cmd/auth/BUILD @@ -34,7 +34,7 @@ go_library( "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/describe/versioned:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/describe:go_default_library", "//staging/src/k8s.io/kubectl/pkg/scheme:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/rbac:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/templates:go_default_library", diff --git a/pkg/kubectl/cmd/auth/cani.go b/pkg/kubectl/cmd/auth/cani.go index 5d55ddf775f..0fd4c1e9552 100644 --- a/pkg/kubectl/cmd/auth/cani.go +++ b/pkg/kubectl/cmd/auth/cani.go @@ -39,7 +39,7 @@ import ( discovery "k8s.io/client-go/discovery" authorizationv1client "k8s.io/client-go/kubernetes/typed/authorization/v1" cmdutil "k8s.io/kubectl/pkg/cmd/util" - describeutil "k8s.io/kubectl/pkg/describe/versioned" + "k8s.io/kubectl/pkg/describe" rbacutil "k8s.io/kubectl/pkg/util/rbac" "k8s.io/kubectl/pkg/util/templates" ) @@ -367,7 +367,7 @@ func printAccessHeaders(out io.Writer) error { func printAccess(out io.Writer, rules []rbacv1.PolicyRule) error { for _, r := range rules { - if _, err := fmt.Fprintf(out, "%s\t%v\t%v\t%v\n", describeutil.CombineResourceGroup(r.Resources, r.APIGroups), r.NonResourceURLs, r.ResourceNames, r.Verbs); err != nil { + if _, err := fmt.Fprintf(out, "%s\t%v\t%v\t%v\n", describe.CombineResourceGroup(r.Resources, r.APIGroups), r.NonResourceURLs, r.ResourceNames, r.Verbs); err != nil { return err } } diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/describe/BUILD b/staging/src/k8s.io/kubectl/pkg/cmd/describe/BUILD index 6d777870548..45d41128f0b 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/describe/BUILD +++ b/staging/src/k8s.io/kubectl/pkg/cmd/describe/BUILD @@ -15,7 +15,6 @@ go_library( "//staging/src/k8s.io/cli-runtime/pkg/resource:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", "//staging/src/k8s.io/kubectl/pkg/describe:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/describe/versioned: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", "//vendor/github.com/spf13/cobra:go_default_library", @@ -34,7 +33,6 @@ go_test( "//staging/src/k8s.io/client-go/rest/fake:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/testing:go_default_library", "//staging/src/k8s.io/kubectl/pkg/describe:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/describe/versioned:go_default_library", "//staging/src/k8s.io/kubectl/pkg/scheme:go_default_library", ], ) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe.go b/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe.go index 0ad87047447..bfc794978d3 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe.go @@ -30,7 +30,6 @@ import ( "k8s.io/cli-runtime/pkg/resource" cmdutil "k8s.io/kubectl/pkg/cmd/util" "k8s.io/kubectl/pkg/describe" - describeversioned "k8s.io/kubectl/pkg/describe/versioned" "k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/templates" ) @@ -74,7 +73,7 @@ type DescribeOptions struct { Selector string Namespace string - Describer func(*meta.RESTMapping) (describe.Describer, error) + Describer func(*meta.RESTMapping) (describe.ResourceDescriber, error) NewBuilder func() *resource.Builder BuilderArgs []string @@ -136,8 +135,8 @@ func (o *DescribeOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [ o.BuilderArgs = args - o.Describer = func(mapping *meta.RESTMapping) (describe.Describer, error) { - return describeversioned.DescriberFn(f, mapping) + o.Describer = func(mapping *meta.RESTMapping) (describe.ResourceDescriber, error) { + return describe.DescriberFn(f, mapping) } o.NewBuilder = f.NewBuilder diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe_test.go index 34ae6bc5f4e..ea9d1cf9feb 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/describe/describe_test.go @@ -28,18 +28,17 @@ import ( "k8s.io/client-go/rest/fake" cmdtesting "k8s.io/kubectl/pkg/cmd/testing" "k8s.io/kubectl/pkg/describe" - versioneddescribe "k8s.io/kubectl/pkg/describe/versioned" "k8s.io/kubectl/pkg/scheme" ) // Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get. func TestDescribeUnknownSchemaObject(t *testing.T) { d := &testDescriber{Output: "test output"} - oldFn := versioneddescribe.DescriberFn + oldFn := describe.DescriberFn defer func() { - versioneddescribe.DescriberFn = oldFn + describe.DescriberFn = oldFn }() - versioneddescribe.DescriberFn = d.describerFor + describe.DescriberFn = d.describerFor tf := cmdtesting.NewTestFactory().WithNamespace("non-default") defer tf.Cleanup() @@ -67,11 +66,11 @@ func TestDescribeUnknownSchemaObject(t *testing.T) { // Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get. func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) { d := &testDescriber{Output: "test output"} - oldFn := versioneddescribe.DescriberFn + oldFn := describe.DescriberFn defer func() { - versioneddescribe.DescriberFn = oldFn + describe.DescriberFn = oldFn }() - versioneddescribe.DescriberFn = d.describerFor + describe.DescriberFn = d.describerFor tf := cmdtesting.NewTestFactory() defer tf.Cleanup() @@ -99,11 +98,11 @@ func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) { func TestDescribeObject(t *testing.T) { d := &testDescriber{Output: "test output"} - oldFn := versioneddescribe.DescriberFn + oldFn := describe.DescriberFn defer func() { - versioneddescribe.DescriberFn = oldFn + describe.DescriberFn = oldFn }() - versioneddescribe.DescriberFn = d.describerFor + describe.DescriberFn = d.describerFor _, _, rc := cmdtesting.TestData() tf := cmdtesting.NewTestFactory().WithNamespace("test") @@ -140,11 +139,11 @@ func TestDescribeObject(t *testing.T) { func TestDescribeListObjects(t *testing.T) { d := &testDescriber{Output: "test output"} - oldFn := versioneddescribe.DescriberFn + oldFn := describe.DescriberFn defer func() { - versioneddescribe.DescriberFn = oldFn + describe.DescriberFn = oldFn }() - versioneddescribe.DescriberFn = d.describerFor + describe.DescriberFn = d.describerFor pods, _, _ := cmdtesting.TestData() tf := cmdtesting.NewTestFactory().WithNamespace("test") @@ -167,11 +166,11 @@ func TestDescribeListObjects(t *testing.T) { func TestDescribeObjectShowEvents(t *testing.T) { d := &testDescriber{Output: "test output"} - oldFn := versioneddescribe.DescriberFn + oldFn := describe.DescriberFn defer func() { - versioneddescribe.DescriberFn = oldFn + describe.DescriberFn = oldFn }() - versioneddescribe.DescriberFn = d.describerFor + describe.DescriberFn = d.describerFor pods, _, _ := cmdtesting.TestData() tf := cmdtesting.NewTestFactory().WithNamespace("test") @@ -193,11 +192,11 @@ func TestDescribeObjectShowEvents(t *testing.T) { func TestDescribeObjectSkipEvents(t *testing.T) { d := &testDescriber{Output: "test output"} - oldFn := versioneddescribe.DescriberFn + oldFn := describe.DescriberFn defer func() { - versioneddescribe.DescriberFn = oldFn + describe.DescriberFn = oldFn }() - versioneddescribe.DescriberFn = d.describerFor + describe.DescriberFn = d.describerFor pods, _, _ := cmdtesting.TestData() tf := cmdtesting.NewTestFactory().WithNamespace("test") @@ -310,6 +309,6 @@ func (t *testDescriber) Describe(namespace, name string, describerSettings descr t.Settings = describerSettings return t.Output, t.Err } -func (t *testDescriber) describerFor(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (describe.Describer, error) { +func (t *testDescriber) describerFor(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (describe.ResourceDescriber, error) { return t, nil } diff --git a/staging/src/k8s.io/kubectl/pkg/describe/BUILD b/staging/src/k8s.io/kubectl/pkg/describe/BUILD index 8b2255674a2..1d49bb620fa 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/BUILD +++ b/staging/src/k8s.io/kubectl/pkg/describe/BUILD @@ -1,14 +1,60 @@ -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 = ["interface.go"], + srcs = [ + "describe.go", + "interface.go", + ], importmap = "k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/describe", importpath = "k8s.io/kubectl/pkg/describe", visibility = ["//visibility:public"], deps = [ + "//staging/src/k8s.io/api/apps/v1:go_default_library", + "//staging/src/k8s.io/api/autoscaling/v1:go_default_library", + "//staging/src/k8s.io/api/autoscaling/v2beta2:go_default_library", + "//staging/src/k8s.io/api/batch/v1:go_default_library", + "//staging/src/k8s.io/api/batch/v1beta1:go_default_library", + "//staging/src/k8s.io/api/certificates/v1beta1:go_default_library", + "//staging/src/k8s.io/api/coordination/v1:go_default_library", + "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/api/discovery/v1beta1:go_default_library", + "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", + "//staging/src/k8s.io/api/networking/v1:go_default_library", + "//staging/src/k8s.io/api/networking/v1beta1:go_default_library", + "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", + "//staging/src/k8s.io/api/rbac/v1:go_default_library", + "//staging/src/k8s.io/api/scheduling/v1:go_default_library", + "//staging/src/k8s.io/api/storage/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/duration:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", + "//staging/src/k8s.io/client-go/dynamic:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//staging/src/k8s.io/client-go/rest:go_default_library", + "//staging/src/k8s.io/client-go/tools/reference:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/scheme:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/certificate:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/deployment:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/event:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/fieldpath:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/qos:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/rbac:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/resource:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/slice:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/util/storage:go_default_library", + "//vendor/github.com/fatih/camelcase:go_default_library", + "//vendor/k8s.io/klog:go_default_library", ], ) @@ -21,10 +67,33 @@ filegroup( filegroup( name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/kubectl/pkg/describe/versioned:all-srcs", - ], + srcs = [":package-srcs"], tags = ["automanaged"], visibility = ["//visibility:public"], ) + +go_test( + name = "go_default_test", + srcs = ["describe_test.go"], + embed = [":go_default_library"], + deps = [ + "//staging/src/k8s.io/api/apps/v1:go_default_library", + "//staging/src/k8s.io/api/autoscaling/v1:go_default_library", + "//staging/src/k8s.io/api/autoscaling/v2beta2:go_default_library", + "//staging/src/k8s.io/api/coordination/v1:go_default_library", + "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/api/discovery/v1beta1:go_default_library", + "//staging/src/k8s.io/api/networking/v1:go_default_library", + "//staging/src/k8s.io/api/networking/v1beta1:go_default_library", + "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", + "//staging/src/k8s.io/api/storage/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", + "//vendor/k8s.io/utils/pointer:go_default_library", + ], +) diff --git a/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go b/staging/src/k8s.io/kubectl/pkg/describe/describe.go similarity index 98% rename from staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go rename to staging/src/k8s.io/kubectl/pkg/describe/describe.go index a548d49fd93..a213ae3f538 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package versioned +package describe import ( "bytes" @@ -68,7 +68,6 @@ import ( "k8s.io/client-go/rest" "k8s.io/client-go/tools/reference" "k8s.io/klog" - "k8s.io/kubectl/pkg/describe" "k8s.io/kubectl/pkg/scheme" "k8s.io/kubectl/pkg/util/certificate" deploymentutil "k8s.io/kubectl/pkg/util/deployment" @@ -95,11 +94,11 @@ var ( skipAnnotations = sets.NewString(corev1.LastAppliedConfigAnnotation) // DescriberFn gives a way to easily override the function for unit testing if needed - DescriberFn describe.DescriberFunc = Describer + DescriberFn DescriberFunc = Describer ) // Describer returns a Describer for displaying the specified RESTMapping type or an error. -func Describer(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (describe.Describer, error) { +func Describer(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (ResourceDescriber, error) { clientConfig, err := restClientGetter.ToRESTConfig() if err != nil { return nil, err @@ -157,13 +156,13 @@ func (pw *prefixWriter) Flush() { } } -func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]describe.Describer, error) { +func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]ResourceDescriber, error) { c, err := clientset.NewForConfig(clientConfig) if err != nil { return nil, err } - m := map[schema.GroupKind]describe.Describer{ + m := map[schema.GroupKind]ResourceDescriber{ {Group: corev1.GroupName, Kind: "Pod"}: &PodDescriber{c}, {Group: corev1.GroupName, Kind: "ReplicationController"}: &ReplicationControllerDescriber{c}, {Group: corev1.GroupName, Kind: "Secret"}: &SecretDescriber{c}, @@ -211,7 +210,7 @@ func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]describe.Desc // DescriberFor returns the default describe functions for each of the standard // Kubernetes types. -func DescriberFor(kind schema.GroupKind, clientConfig *rest.Config) (describe.Describer, bool) { +func DescriberFor(kind schema.GroupKind, clientConfig *rest.Config) (ResourceDescriber, bool) { describers, err := describerMap(clientConfig) if err != nil { klog.V(1).Info(err) @@ -224,7 +223,7 @@ func DescriberFor(kind schema.GroupKind, clientConfig *rest.Config) (describe.De // GenericDescriberFor returns a generic describer for the specified mapping // that uses only information available from runtime.Unstructured -func GenericDescriberFor(mapping *meta.RESTMapping, clientConfig *rest.Config) (describe.Describer, bool) { +func GenericDescriberFor(mapping *meta.RESTMapping, clientConfig *rest.Config) (ResourceDescriber, bool) { // used to fetch the resource dynamicClient, err := dynamic.NewForConfig(clientConfig) if err != nil { @@ -247,7 +246,7 @@ type genericDescriber struct { events corev1client.EventsGetter } -func (g *genericDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (output string, err error) { +func (g *genericDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (output string, err error) { obj, err := g.dynamic.Resource(g.mapping.Resource).Namespace(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", err @@ -344,7 +343,7 @@ func smartLabelFor(field string) string { } // DefaultObjectDescriber can describe the default Kubernetes objects. -var DefaultObjectDescriber describe.ObjectDescriber +var DefaultObjectDescriber ObjectDescriber func init() { d := &Describers{} @@ -369,7 +368,7 @@ type NamespaceDescriber struct { clientset.Interface } -func (d *NamespaceDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *NamespaceDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { ns, err := d.CoreV1().Namespaces().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -542,7 +541,7 @@ type LimitRangeDescriber struct { clientset.Interface } -func (d *LimitRangeDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *LimitRangeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { lr := d.CoreV1().LimitRanges(namespace) limitRange, err := lr.Get(context.TODO(), name, metav1.GetOptions{}) @@ -569,7 +568,7 @@ type ResourceQuotaDescriber struct { clientset.Interface } -func (d *ResourceQuotaDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ResourceQuotaDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { rq := d.CoreV1().ResourceQuotas(namespace) resourceQuota, err := rq.Get(context.TODO(), name, metav1.GetOptions{}) @@ -639,7 +638,7 @@ type PodDescriber struct { clientset.Interface } -func (d *PodDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *PodDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { pod, err := d.CoreV1().Pods(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { if describerSettings.ShowEvents { @@ -1330,7 +1329,7 @@ type PersistentVolumeDescriber struct { clientset.Interface } -func (d *PersistentVolumeDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *PersistentVolumeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().PersistentVolumes() pv, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -1478,7 +1477,7 @@ type PersistentVolumeClaimDescriber struct { clientset.Interface } -func (d *PersistentVolumeClaimDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *PersistentVolumeClaimDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().PersistentVolumeClaims(namespace) pvc, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -1951,7 +1950,7 @@ type ReplicationControllerDescriber struct { clientset.Interface } -func (d *ReplicationControllerDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ReplicationControllerDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { rc := d.CoreV1().ReplicationControllers(namespace) pc := d.CoreV1().Pods(namespace) @@ -2026,7 +2025,7 @@ type ReplicaSetDescriber struct { clientset.Interface } -func (d *ReplicaSetDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ReplicaSetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { rsc := d.AppsV1().ReplicaSets(namespace) pc := d.CoreV1().Pods(namespace) @@ -2088,7 +2087,7 @@ type JobDescriber struct { clientset.Interface } -func (d *JobDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *JobDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { job, err := d.BatchV1().Jobs(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -2149,7 +2148,7 @@ type CronJobDescriber struct { client clientset.Interface } -func (d *CronJobDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *CronJobDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { cronJob, err := d.client.BatchV1beta1().CronJobs(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -2248,7 +2247,7 @@ type DaemonSetDescriber struct { clientset.Interface } -func (d *DaemonSetDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *DaemonSetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { dc := d.AppsV1().DaemonSets(namespace) pc := d.CoreV1().Pods(namespace) @@ -2306,7 +2305,7 @@ type SecretDescriber struct { clientset.Interface } -func (d *SecretDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *SecretDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().Secrets(namespace) secret, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -2345,7 +2344,7 @@ type IngressDescriber struct { clientset.Interface } -func (i *IngressDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (i *IngressDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := i.NetworkingV1beta1().Ingresses(namespace) ing, err := c.Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { @@ -2374,7 +2373,7 @@ func (i *IngressDescriber) describeBackend(ns string, backend *networkingv1beta1 return formatEndpoints(endpoints, sets.NewString(spName)) } -func (i *IngressDescriber) describeIngress(ing *networkingv1beta1.Ingress, describerSettings describe.DescriberSettings) (string, error) { +func (i *IngressDescriber) describeIngress(ing *networkingv1beta1.Ingress, describerSettings DescriberSettings) (string, error) { return tabbedString(func(out io.Writer) error { w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%v\n", ing.Name) @@ -2442,7 +2441,7 @@ type IngressClassDescriber struct { clientset.Interface } -func (i *IngressClassDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (i *IngressClassDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := i.NetworkingV1beta1().IngressClasses() ic, err := c.Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { @@ -2451,7 +2450,7 @@ func (i *IngressClassDescriber) Describe(namespace, name string, describerSettin return i.describeIngressClass(ic, describerSettings) } -func (i *IngressClassDescriber) describeIngressClass(ic *networkingv1beta1.IngressClass, describerSettings describe.DescriberSettings) (string, error) { +func (i *IngressClassDescriber) describeIngressClass(ic *networkingv1beta1.IngressClass, describerSettings DescriberSettings) (string, error) { return tabbedString(func(out io.Writer) error { w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%s\n", ic.Name) @@ -2477,7 +2476,7 @@ type ServiceDescriber struct { clientset.Interface } -func (d *ServiceDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ServiceDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().Services(namespace) service, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -2580,7 +2579,7 @@ type EndpointsDescriber struct { clientset.Interface } -func (d *EndpointsDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *EndpointsDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().Endpoints(namespace) ep, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -2655,7 +2654,7 @@ type EndpointSliceDescriber struct { clientset.Interface } -func (d *EndpointSliceDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *EndpointSliceDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.DiscoveryV1beta1().EndpointSlices(namespace) eps, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -2748,7 +2747,7 @@ type ServiceAccountDescriber struct { clientset.Interface } -func (d *ServiceAccountDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ServiceAccountDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().ServiceAccounts(namespace) serviceAccount, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -2865,7 +2864,7 @@ type RoleDescriber struct { clientset.Interface } -func (d *RoleDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *RoleDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { role, err := d.RbacV1().Roles(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -2904,7 +2903,7 @@ type ClusterRoleDescriber struct { clientset.Interface } -func (d *ClusterRoleDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ClusterRoleDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { role, err := d.RbacV1().ClusterRoles().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -2960,7 +2959,7 @@ type RoleBindingDescriber struct { clientset.Interface } -func (d *RoleBindingDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *RoleBindingDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { binding, err := d.RbacV1().RoleBindings(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -2992,7 +2991,7 @@ type ClusterRoleBindingDescriber struct { clientset.Interface } -func (d *ClusterRoleBindingDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ClusterRoleBindingDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { binding, err := d.RbacV1().ClusterRoleBindings().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -3024,7 +3023,7 @@ type NodeDescriber struct { clientset.Interface } -func (d *NodeDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *NodeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { mc := d.CoreV1().Nodes() node, err := mc.Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { @@ -3180,7 +3179,7 @@ type StatefulSetDescriber struct { client clientset.Interface } -func (p *StatefulSetDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (p *StatefulSetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { ps, err := p.client.AppsV1().StatefulSets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -3238,7 +3237,7 @@ type CertificateSigningRequestDescriber struct { client clientset.Interface } -func (p *CertificateSigningRequestDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (p *CertificateSigningRequestDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { csr, err := p.client.CertificatesV1beta1().CertificateSigningRequests().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -3323,7 +3322,7 @@ type HorizontalPodAutoscalerDescriber struct { client clientset.Interface } -func (d *HorizontalPodAutoscalerDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *HorizontalPodAutoscalerDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { var events *corev1.EventList // autoscaling/v2beta2 is introduced since v1.12 and autoscaling/v1 does not have full backward compatibility @@ -3651,7 +3650,7 @@ type DeploymentDescriber struct { client clientset.Interface } -func (dd *DeploymentDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (dd *DeploymentDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { d, err := dd.client.AppsV1().Deployments(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -3754,7 +3753,7 @@ type ConfigMapDescriber struct { clientset.Interface } -func (d *ConfigMapDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *ConfigMapDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.CoreV1().ConfigMaps(namespace) configMap, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -3792,7 +3791,7 @@ type NetworkPolicyDescriber struct { clientset.Interface } -func (d *NetworkPolicyDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *NetworkPolicyDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { c := d.NetworkingV1().NetworkPolicies(namespace) networkPolicy, err := c.Get(context.TODO(), name, metav1.GetOptions{}) @@ -3948,7 +3947,7 @@ type StorageClassDescriber struct { clientset.Interface } -func (s *StorageClassDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (s *StorageClassDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { sc, err := s.StorageV1().StorageClasses().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -4000,7 +3999,7 @@ type CSINodeDescriber struct { clientset.Interface } -func (c *CSINodeDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (c *CSINodeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { csi, err := c.StorageV1().CSINodes().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -4075,7 +4074,7 @@ type PodDisruptionBudgetDescriber struct { clientset.Interface } -func (p *PodDisruptionBudgetDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (p *PodDisruptionBudgetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { pdb, err := p.PolicyV1beta1().PodDisruptionBudgets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -4124,7 +4123,7 @@ type PriorityClassDescriber struct { clientset.Interface } -func (s *PriorityClassDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (s *PriorityClassDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { pc, err := s.SchedulingV1().PriorityClasses().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -4160,7 +4159,7 @@ type PodSecurityPolicyDescriber struct { clientset.Interface } -func (d *PodSecurityPolicyDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) { +func (d *PodSecurityPolicyDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) { psp, err := d.PolicyV1beta1().PodSecurityPolicies().Get(context.TODO(), name, metav1.GetOptions{}) if err != nil { return "", err @@ -4326,7 +4325,7 @@ func newErrNoDescriber(types ...reflect.Type) error { for _, t := range types { names = append(names, t.String()) } - return describe.ErrNoDescriber{Types: names} + return ErrNoDescriber{Types: names} } // Describers implements ObjectDescriber against functions registered via Add. Those functions can @@ -4373,7 +4372,7 @@ func (d *Describers) DescribeObject(exact interface{}, extra ...interface{}) (st return "", newErrNoDescriber(append([]reflect.Type{exactType}, types...)...) } -// Add adds one or more describer functions to the describe.Describer. The passed function must +// Add adds one or more describer functions to the Describer. The passed function must // match the signature: // // func(...) (string, error) @@ -4845,12 +4844,12 @@ func findNodeRoles(node *corev1.Node) []string { roles := sets.NewString() for k, v := range node.Labels { switch { - case strings.HasPrefix(k, describe.LabelNodeRolePrefix): - if role := strings.TrimPrefix(k, describe.LabelNodeRolePrefix); len(role) > 0 { + case strings.HasPrefix(k, LabelNodeRolePrefix): + if role := strings.TrimPrefix(k, LabelNodeRolePrefix); len(role) > 0 { roles.Insert(role) } - case k == describe.NodeLabelRole && v != "": + case k == NodeLabelRole && v != "": roles.Insert(v) } } @@ -4871,8 +4870,8 @@ func loadBalancerStatusStringer(s corev1.LoadBalancerStatus, wide bool) string { } r := strings.Join(result.List(), ",") - if !wide && len(r) > describe.LoadBalancerWidth { - r = r[0:(describe.LoadBalancerWidth-3)] + "..." + if !wide && len(r) > LoadBalancerWidth { + r = r[0:(LoadBalancerWidth-3)] + "..." } return r } diff --git a/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe_test.go b/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go similarity index 97% rename from staging/src/k8s.io/kubectl/pkg/describe/versioned/describe_test.go rename to staging/src/k8s.io/kubectl/pkg/describe/describe_test.go index 654b8718099..ead5e0d9dc7 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/versioned/describe_test.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package versioned +package describe import ( "bytes" @@ -42,7 +42,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubectl/pkg/describe" utilpointer "k8s.io/utils/pointer" ) @@ -86,7 +85,7 @@ func TestDescribePod(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := PodDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -131,7 +130,7 @@ func TestDescribePodEphemeralContainers(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := PodDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -159,7 +158,7 @@ func TestDescribePodNode(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := PodDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -189,7 +188,7 @@ func TestDescribePodTolerations(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := PodDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{}) + out, err := d.Describe("foo", "bar", DescriberSettings{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -216,7 +215,7 @@ func TestDescribeSecret(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := SecretDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{}) + out, err := d.Describe("foo", "bar", DescriberSettings{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -236,7 +235,7 @@ func TestDescribeNamespace(t *testing.T) { }) c := &describeClient{T: t, Namespace: "", Interface: fake} d := NamespaceDescriber{c} - out, err := d.Describe("", "myns", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("", "myns", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -258,7 +257,7 @@ func TestDescribePodPriority(t *testing.T) { }) c := &describeClient{T: t, Namespace: "", Interface: fake} d := PodDescriber{c} - out, err := d.Describe("", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -280,7 +279,7 @@ func TestDescribeConfigMap(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := ConfigMapDescriber{c} - out, err := d.Describe("foo", "mycm", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "mycm", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -321,7 +320,7 @@ func TestDescribeLimitRange(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := LimitRangeDescriber{c} - out, err := d.Describe("foo", "mylr", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "mylr", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -485,7 +484,7 @@ func TestDescribeService(t *testing.T) { fake := fake.NewSimpleClientset(testCase.service) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := ServiceDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -538,7 +537,7 @@ func TestPodDescribeResultsSorted(t *testing.T) { d := PodDescriber{c} // Act - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) // Assert if err != nil { @@ -889,7 +888,7 @@ func TestDescribers(t *testing.T) { if out, err := d.DescribeObject(first, second, third); out != "" || err == nil { t.Errorf("unexpected result: %s %v", out, err) } else { - if noDescriber, ok := err.(describe.ErrNoDescriber); ok { + if noDescriber, ok := err.(ErrNoDescriber); ok { if !reflect.DeepEqual(noDescriber.Types, []string{"*v1.Event", "*v1.Pod", "*v1.Pod"}) { t.Errorf("unexpected describer: %v", err) } @@ -1389,7 +1388,7 @@ func TestPersistentVolumeDescriber(t *testing.T) { t.Run(test.name, func(t *testing.T) { fake := fake.NewSimpleClientset(test.pv) c := PersistentVolumeDescriber{fake} - str, err := c.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + str, err := c.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("Unexpected error for test %s: %v", test.plugin, err) } @@ -1625,7 +1624,7 @@ func TestPersistentVolumeClaimDescriber(t *testing.T) { t.Run(test.name, func(t *testing.T) { fake := fake.NewSimpleClientset(test.pvc) c := PersistentVolumeClaimDescriber{fake} - str, err := c.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + str, err := c.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("Unexpected error for test %s: %v", test.name, err) } @@ -1665,7 +1664,7 @@ func TestDescribeDeployment(t *testing.T) { }, }) d := DeploymentDescriber{fakeClient} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1720,7 +1719,7 @@ func TestDescribeStorageClass(t *testing.T) { }, }) s := StorageClassDescriber{f} - out, err := s.Describe("", "foo", describe.DescriberSettings{ShowEvents: true}) + out, err := s.Describe("", "foo", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1758,7 +1757,7 @@ func TestDescribePodDisruptionBudget(t *testing.T) { }, }) s := PodDisruptionBudgetDescriber{f} - out, err := s.Describe("ns1", "pdb1", describe.DescriberSettings{ShowEvents: true}) + out, err := s.Describe("ns1", "pdb1", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -2498,7 +2497,7 @@ func TestDescribeHorizontalPodAutoscaler(t *testing.T) { } fake := fake.NewSimpleClientset(&test.hpa) desc := HorizontalPodAutoscalerDescriber{fake} - str, err := desc.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + str, err := desc.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("Unexpected error for test %s: %v", test.name, err) } @@ -2593,7 +2592,7 @@ func TestDescribeHorizontalPodAutoscaler(t *testing.T) { } fake := fake.NewSimpleClientset(&test.hpa) desc := HorizontalPodAutoscalerDescriber{fake} - str, err := desc.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + str, err := desc.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("Unexpected error for test %s: %v", test.name, err) } @@ -2623,7 +2622,7 @@ func TestDescribeEvents(t *testing.T) { }, } - m := map[string]describe.Describer{ + m := map[string]ResourceDescriber{ "DaemonSetDescriber": &DaemonSetDescriber{ fake.NewSimpleClientset(&appsv1.DaemonSet{ ObjectMeta: metav1.ObjectMeta{ @@ -2745,7 +2744,7 @@ func TestDescribeEvents(t *testing.T) { for name, d := range m { t.Run(name, func(t *testing.T) { - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error for %q: %v", name, err) } @@ -2756,7 +2755,7 @@ func TestDescribeEvents(t *testing.T) { t.Errorf("events not found for %q when ShowEvents=true: %s", name, out) } - out, err = d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: false}) + out, err = d.Describe("foo", "bar", DescriberSettings{ShowEvents: false}) if err != nil { t.Errorf("unexpected error for %q: %s", name, err) } @@ -2959,7 +2958,7 @@ func TestDescribePodSecurityPolicy(t *testing.T) { c := &describeClient{T: t, Namespace: "", Interface: fake} d := PodSecurityPolicyDescriber{c} - out, err := d.Describe("", "mypsp", describe.DescriberSettings{}) + out, err := d.Describe("", "mypsp", DescriberSettings{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -2998,7 +2997,7 @@ func TestDescribeResourceQuota(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := ResourceQuotaDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -3027,7 +3026,7 @@ func TestDescribeIngressClass(t *testing.T) { c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := IngressClassDescriber{c} - out, err := d.Describe("", "example-class", describe.DescriberSettings{}) + out, err := d.Describe("", "example-class", DescriberSettings{}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -3241,7 +3240,7 @@ Spec: }, }) d := NetworkPolicyDescriber{versionedFake} - out, err := d.Describe("default", "network-policy-1", describe.DescriberSettings{}) + out, err := d.Describe("default", "network-policy-1", DescriberSettings{}) if err != nil { t.Errorf("unexpected error: %s", err) } @@ -3368,7 +3367,7 @@ Spec: }, }) d := NetworkPolicyDescriber{versionedFake} - out, err := d.Describe("default", "network-policy-1", describe.DescriberSettings{}) + out, err := d.Describe("default", "network-policy-1", DescriberSettings{}) if err != nil { t.Errorf("unexpected error: %s", err) } @@ -3496,7 +3495,7 @@ Spec: }, }) d := NetworkPolicyDescriber{versionedFake} - out, err := d.Describe("default", "network-policy-1", describe.DescriberSettings{}) + out, err := d.Describe("default", "network-policy-1", DescriberSettings{}) if err != nil { t.Errorf("unexpected error: %s", err) } @@ -3524,7 +3523,7 @@ func TestDescribeServiceAccount(t *testing.T) { }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := ServiceAccountDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -3633,7 +3632,7 @@ func TestDescribeNode(t *testing.T) { ) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := NodeDescriber{c} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -3682,7 +3681,7 @@ func TestDescribeStatefulSet(t *testing.T) { }, }) d := StatefulSetDescriber{fake} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -3736,7 +3735,7 @@ func TestDescribeEndpointSlice(t *testing.T) { c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := EndpointSliceDescriber{c} - out, err := d.Describe("bar", "foo.123", describe.DescriberSettings{ShowEvents: true}) + out, err := d.Describe("bar", "foo.123", DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -3854,7 +3853,7 @@ func TestControllerRef(t *testing.T) { }, }) d := ReplicationControllerDescriber{f} - out, err := d.Describe("foo", "bar", describe.DescriberSettings{ShowEvents: false}) + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: false}) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/staging/src/k8s.io/kubectl/pkg/describe/interface.go b/staging/src/k8s.io/kubectl/pkg/describe/interface.go index 58429918787..0f54e1e0e9d 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/interface.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/interface.go @@ -35,12 +35,12 @@ const ( ) // DescriberFunc gives a way to display the specified RESTMapping type -type DescriberFunc func(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (Describer, error) +type DescriberFunc func(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (ResourceDescriber, error) -// Describer generates output for the named resource or an error +// ResourceDescriber generates output for the named resource or an error // if the output could not be generated. Implementers typically // abstract the retrieval of the named object from a remote server. -type Describer interface { +type ResourceDescriber interface { Describe(namespace, name string, describerSettings DescriberSettings) (output string, err error) } diff --git a/staging/src/k8s.io/kubectl/pkg/describe/versioned/BUILD b/staging/src/k8s.io/kubectl/pkg/describe/versioned/BUILD deleted file mode 100644 index 9ca5eacd0b8..00000000000 --- a/staging/src/k8s.io/kubectl/pkg/describe/versioned/BUILD +++ /dev/null @@ -1,98 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = ["describe.go"], - importmap = "k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/describe/versioned", - importpath = "k8s.io/kubectl/pkg/describe/versioned", - visibility = ["//visibility:public"], - deps = [ - "//staging/src/k8s.io/api/apps/v1:go_default_library", - "//staging/src/k8s.io/api/autoscaling/v1:go_default_library", - "//staging/src/k8s.io/api/autoscaling/v2beta2:go_default_library", - "//staging/src/k8s.io/api/batch/v1:go_default_library", - "//staging/src/k8s.io/api/batch/v1beta1:go_default_library", - "//staging/src/k8s.io/api/certificates/v1beta1:go_default_library", - "//staging/src/k8s.io/api/coordination/v1:go_default_library", - "//staging/src/k8s.io/api/core/v1:go_default_library", - "//staging/src/k8s.io/api/discovery/v1beta1:go_default_library", - "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", - "//staging/src/k8s.io/api/networking/v1:go_default_library", - "//staging/src/k8s.io/api/networking/v1beta1:go_default_library", - "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", - "//staging/src/k8s.io/api/rbac/v1:go_default_library", - "//staging/src/k8s.io/api/scheduling/v1:go_default_library", - "//staging/src/k8s.io/api/storage/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/duration:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", - "//staging/src/k8s.io/client-go/dynamic:go_default_library", - "//staging/src/k8s.io/client-go/kubernetes:go_default_library", - "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - "//staging/src/k8s.io/client-go/rest:go_default_library", - "//staging/src/k8s.io/client-go/tools/reference:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/describe:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/scheme:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/certificate:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/deployment:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/event:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/fieldpath:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/qos:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/rbac:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/resource:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/slice:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/util/storage:go_default_library", - "//vendor/github.com/fatih/camelcase:go_default_library", - "//vendor/k8s.io/klog:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["describe_test.go"], - embed = [":go_default_library"], - deps = [ - "//staging/src/k8s.io/api/apps/v1:go_default_library", - "//staging/src/k8s.io/api/autoscaling/v1:go_default_library", - "//staging/src/k8s.io/api/autoscaling/v2beta2:go_default_library", - "//staging/src/k8s.io/api/coordination/v1:go_default_library", - "//staging/src/k8s.io/api/core/v1:go_default_library", - "//staging/src/k8s.io/api/discovery/v1beta1:go_default_library", - "//staging/src/k8s.io/api/networking/v1:go_default_library", - "//staging/src/k8s.io/api/networking/v1beta1:go_default_library", - "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", - "//staging/src/k8s.io/api/storage/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//staging/src/k8s.io/client-go/kubernetes:go_default_library", - "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/describe:go_default_library", - "//vendor/k8s.io/utils/pointer:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/BUILD b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/BUILD index 6e950c73321..37ff8eba97a 100644 --- a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/BUILD +++ b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/BUILD @@ -53,7 +53,7 @@ go_library( "//staging/src/k8s.io/client-go/tools/watch:go_default_library", "//staging/src/k8s.io/kubectl/pkg/apps:go_default_library", "//staging/src/k8s.io/kubectl/pkg/cmd/util:go_default_library", - "//staging/src/k8s.io/kubectl/pkg/describe/versioned:go_default_library", + "//staging/src/k8s.io/kubectl/pkg/describe:go_default_library", "//staging/src/k8s.io/kubectl/pkg/scheme:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/deployment:go_default_library", "//staging/src/k8s.io/kubectl/pkg/util/podutils:go_default_library", diff --git a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/history.go b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/history.go index 28cc6a81c20..0d00f4ab009 100644 --- a/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/history.go +++ b/staging/src/k8s.io/kubectl/pkg/polymorphichelpers/history.go @@ -36,7 +36,7 @@ import ( "k8s.io/client-go/kubernetes" clientappsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" "k8s.io/kubectl/pkg/apps" - describe "k8s.io/kubectl/pkg/describe/versioned" + "k8s.io/kubectl/pkg/describe" deploymentutil "k8s.io/kubectl/pkg/util/deployment" sliceutil "k8s.io/kubectl/pkg/util/slice" ) diff --git a/vendor/modules.txt b/vendor/modules.txt index 85cf480eb63..ae6b5aa91e5 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1824,7 +1824,6 @@ k8s.io/kubectl/pkg/cmd/util/sanity k8s.io/kubectl/pkg/cmd/version k8s.io/kubectl/pkg/cmd/wait k8s.io/kubectl/pkg/describe -k8s.io/kubectl/pkg/describe/versioned k8s.io/kubectl/pkg/drain k8s.io/kubectl/pkg/explain k8s.io/kubectl/pkg/generate