mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Merge pull request #88758 from soltysh/hide_last_applied
Hide kubectl.kubernetes.io/last-applied-configuration in describe
This commit is contained in:
commit
0535520f6e
@ -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
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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",
|
||||
],
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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",
|
||||
],
|
||||
)
|
||||
|
@ -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"
|
||||
@ -90,11 +89,16 @@ const (
|
||||
LEVEL_4
|
||||
)
|
||||
|
||||
var (
|
||||
// globally skipped annotations
|
||||
skipAnnotations = sets.NewString(corev1.LastAppliedConfigAnnotation)
|
||||
|
||||
// DescriberFn gives a way to easily override the function for unit testing if needed
|
||||
var 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
|
||||
@ -152,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},
|
||||
@ -206,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)
|
||||
@ -219,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 {
|
||||
@ -242,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
|
||||
@ -339,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{}
|
||||
@ -364,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
|
||||
@ -537,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{})
|
||||
@ -564,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{})
|
||||
@ -634,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 {
|
||||
@ -1325,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{})
|
||||
@ -1473,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{})
|
||||
@ -1946,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)
|
||||
|
||||
@ -2021,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)
|
||||
|
||||
@ -2083,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
|
||||
@ -2144,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
|
||||
@ -2243,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)
|
||||
|
||||
@ -2301,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{})
|
||||
@ -2318,8 +2322,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)
|
||||
|
||||
@ -2341,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 {
|
||||
@ -2370,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)
|
||||
@ -2438,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 {
|
||||
@ -2447,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)
|
||||
@ -2473,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{})
|
||||
@ -2576,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{})
|
||||
@ -2651,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{})
|
||||
@ -2744,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{})
|
||||
@ -2861,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
|
||||
@ -2900,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
|
||||
@ -2956,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
|
||||
@ -2988,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
|
||||
@ -3020,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 {
|
||||
@ -3176,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
|
||||
@ -3234,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
|
||||
@ -3319,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
|
||||
@ -3647,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
|
||||
@ -3750,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{})
|
||||
@ -3788,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{})
|
||||
@ -3944,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
|
||||
@ -3996,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
|
||||
@ -4071,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
|
||||
@ -4120,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
|
||||
@ -4156,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
|
||||
@ -4322,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
|
||||
@ -4369,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)
|
||||
@ -4682,21 +4685,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("<none>")
|
||||
@ -4706,7 +4698,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 +4708,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)
|
||||
@ -4852,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)
|
||||
}
|
||||
}
|
||||
@ -4878,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
|
||||
}
|
@ -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)
|
||||
}
|
@ -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)
|
||||
}
|
||||
|
||||
|
@ -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"],
|
||||
)
|
@ -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",
|
||||
|
@ -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"
|
||||
)
|
||||
|
1
vendor/modules.txt
vendored
1
vendor/modules.txt
vendored
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user