From 40e52bf07d986d326f38acbf185c6e3b50337a68 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Tue, 8 May 2018 16:05:48 -0400 Subject: [PATCH] remove legacyscheme dep from printFlags --- pkg/kubectl/cmd/annotate.go | 5 +++-- pkg/kubectl/cmd/apply.go | 3 ++- pkg/kubectl/cmd/apply_set_last_applied.go | 3 ++- pkg/kubectl/cmd/auth/reconcile.go | 2 +- pkg/kubectl/cmd/autoscale.go | 2 +- pkg/kubectl/cmd/certificates.go | 4 ++-- pkg/kubectl/cmd/clusterinfo_dump.go | 3 ++- pkg/kubectl/cmd/config/BUILD | 2 ++ pkg/kubectl/cmd/config/flags.go | 7 ++++--- pkg/kubectl/cmd/config/view.go | 3 ++- pkg/kubectl/cmd/convert.go | 2 +- pkg/kubectl/cmd/create/create.go | 7 +++---- .../cmd/create/create_deployment_test.go | 2 +- pkg/kubectl/cmd/create/create_job.go | 3 ++- pkg/kubectl/cmd/create/create_job_test.go | 3 ++- pkg/kubectl/cmd/create/create_pdb_test.go | 2 +- .../cmd/create/create_priorityclass_test.go | 2 +- pkg/kubectl/cmd/create/create_role.go | 3 ++- pkg/kubectl/cmd/create/create_role_test.go | 10 +++++----- pkg/kubectl/cmd/create/flags.go | 7 ++++--- pkg/kubectl/cmd/drain.go | 6 +++--- pkg/kubectl/cmd/drain_test.go | 2 +- pkg/kubectl/cmd/expose.go | 2 +- pkg/kubectl/cmd/get/get.go | 2 +- pkg/kubectl/cmd/get/get_flags.go | 7 ++++--- pkg/kubectl/cmd/label.go | 3 ++- pkg/kubectl/cmd/patch.go | 3 ++- pkg/kubectl/cmd/replace.go | 3 ++- pkg/kubectl/cmd/rollingupdate.go | 2 +- pkg/kubectl/cmd/rollout/rollout_pause.go | 2 +- pkg/kubectl/cmd/rollout/rollout_resume.go | 2 +- pkg/kubectl/cmd/rollout/rollout_undo.go | 6 +++--- pkg/kubectl/cmd/run.go | 2 +- pkg/kubectl/cmd/run_test.go | 4 ++-- pkg/kubectl/cmd/scale.go | 3 ++- pkg/kubectl/cmd/set/set_env.go | 3 ++- pkg/kubectl/cmd/set/set_env_test.go | 16 ++++++++-------- pkg/kubectl/cmd/set/set_image.go | 3 ++- pkg/kubectl/cmd/set/set_image_test.go | 17 +++++++++-------- pkg/kubectl/cmd/set/set_resources.go | 2 +- pkg/kubectl/cmd/set/set_resources_test.go | 12 ++++++------ pkg/kubectl/cmd/set/set_selector.go | 2 +- pkg/kubectl/cmd/set/set_serviceaccount.go | 2 +- pkg/kubectl/cmd/set/set_serviceaccount_test.go | 16 ++++++++-------- pkg/kubectl/cmd/set/set_subject.go | 2 +- pkg/kubectl/cmd/taint.go | 5 ++--- pkg/kubectl/cmd/util/editor/BUILD | 1 + pkg/kubectl/cmd/util/editor/editoptions.go | 3 ++- pkg/printers/flags.go | 12 +++++++++--- pkg/printers/internalversion/printers_test.go | 2 +- pkg/printers/json_yaml_flags.go | 12 +++++++----- pkg/printers/json_yaml_flags_test.go | 3 ++- pkg/printers/name_flags.go | 4 +++- 53 files changed, 136 insertions(+), 105 deletions(-) diff --git a/pkg/kubectl/cmd/annotate.go b/pkg/kubectl/cmd/annotate.go index e9d1b88e5b..cbf0354516 100644 --- a/pkg/kubectl/cmd/annotate.go +++ b/pkg/kubectl/cmd/annotate.go @@ -30,14 +30,15 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/json" - "k8s.io/kubernetes/pkg/printers" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/kubectl/util/i18n" + "k8s.io/kubernetes/pkg/printers" ) // AnnotateOptions have the data required to perform the annotate operation @@ -110,7 +111,7 @@ var ( func NewAnnotateOptions(ioStreams genericclioptions.IOStreams) *AnnotateOptions { return &AnnotateOptions{ - PrintFlags: printers.NewPrintFlags("annotated"), + PrintFlags: printers.NewPrintFlags("annotated", legacyscheme.Scheme), RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, diff --git a/pkg/kubectl/cmd/apply.go b/pkg/kubectl/cmd/apply.go index 132fc47513..537388c5c1 100644 --- a/pkg/kubectl/cmd/apply.go +++ b/pkg/kubectl/cmd/apply.go @@ -42,6 +42,7 @@ import ( "k8s.io/client-go/dynamic" scaleclient "k8s.io/client-go/scale" oapi "k8s.io/kube-openapi/pkg/util/proto" + "k8s.io/kubernetes/pkg/api/legacyscheme" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" @@ -118,7 +119,7 @@ func NewApplyOptions(ioStreams genericclioptions.IOStreams) *ApplyOptions { return &ApplyOptions{ RecordFlags: genericclioptions.NewRecordFlags(), DeleteFlags: NewDeleteFlags("that contains the configuration to apply"), - PrintFlags: printers.NewPrintFlags("created"), + PrintFlags: printers.NewPrintFlags("created", legacyscheme.Scheme), Overwrite: true, OpenApiPatch: true, diff --git a/pkg/kubectl/cmd/apply_set_last_applied.go b/pkg/kubectl/cmd/apply_set_last_applied.go index feb18fbe49..8dd9b1c465 100644 --- a/pkg/kubectl/cmd/apply_set_last_applied.go +++ b/pkg/kubectl/cmd/apply_set_last_applied.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -82,7 +83,7 @@ var ( func NewSetLastAppliedOptions(ioStreams genericclioptions.IOStreams) *SetLastAppliedOptions { return &SetLastAppliedOptions{ - PrintFlags: printers.NewPrintFlags("configured"), + PrintFlags: printers.NewPrintFlags("configured", legacyscheme.Scheme), IOStreams: ioStreams, } } diff --git a/pkg/kubectl/cmd/auth/reconcile.go b/pkg/kubectl/cmd/auth/reconcile.go index 007c33b09a..69c6285f93 100644 --- a/pkg/kubectl/cmd/auth/reconcile.go +++ b/pkg/kubectl/cmd/auth/reconcile.go @@ -63,7 +63,7 @@ var ( func NewReconcileOptions(ioStreams genericclioptions.IOStreams) *ReconcileOptions { return &ReconcileOptions{ FilenameOptions: &resource.FilenameOptions{}, - PrintFlags: printers.NewPrintFlags("reconciled"), + PrintFlags: printers.NewPrintFlags("reconciled", legacyscheme.Scheme), IOStreams: ioStreams, } } diff --git a/pkg/kubectl/cmd/autoscale.go b/pkg/kubectl/cmd/autoscale.go index ff0f1057c4..6da26687d1 100644 --- a/pkg/kubectl/cmd/autoscale.go +++ b/pkg/kubectl/cmd/autoscale.go @@ -82,7 +82,7 @@ type AutoscaleOptions struct { func NewAutoscaleOptions(ioStreams genericclioptions.IOStreams) *AutoscaleOptions { return &AutoscaleOptions{ - PrintFlags: printers.NewPrintFlags("autoscaled"), + PrintFlags: printers.NewPrintFlags("autoscaled", legacyscheme.Scheme), FilenameOptions: &resource.FilenameOptions{}, RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, diff --git a/pkg/kubectl/cmd/certificates.go b/pkg/kubectl/cmd/certificates.go index 880c3daeb8..71aef2ffa6 100644 --- a/pkg/kubectl/cmd/certificates.go +++ b/pkg/kubectl/cmd/certificates.go @@ -98,7 +98,7 @@ func (o *CertificateOptions) Validate() error { func NewCmdCertificateApprove(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { options := CertificateOptions{ - PrintFlags: printers.NewPrintFlags("approved"), + PrintFlags: printers.NewPrintFlags("approved", legacyscheme.Scheme), IOStreams: ioStreams, } cmd := &cobra.Command{ @@ -155,7 +155,7 @@ func (o *CertificateOptions) RunCertificateApprove(force bool) error { func NewCmdCertificateDeny(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { options := CertificateOptions{ - PrintFlags: printers.NewPrintFlags("denied"), + PrintFlags: printers.NewPrintFlags("denied", legacyscheme.Scheme), IOStreams: ioStreams, } cmd := &cobra.Command{ diff --git a/pkg/kubectl/cmd/clusterinfo_dump.go b/pkg/kubectl/cmd/clusterinfo_dump.go index 759c5c2a57..21dcf9534d 100644 --- a/pkg/kubectl/cmd/clusterinfo_dump.go +++ b/pkg/kubectl/cmd/clusterinfo_dump.go @@ -28,6 +28,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" restclient "k8s.io/client-go/rest" + "k8s.io/kubernetes/pkg/api/legacyscheme" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" @@ -56,7 +57,7 @@ type ClusterInfoDumpOptions struct { // NewCmdCreateSecret groups subcommands to create various types of secrets func NewCmdClusterInfoDump(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { o := &ClusterInfoDumpOptions{ - PrintFlags: printers.NewPrintFlags(""), + PrintFlags: printers.NewPrintFlags("", legacyscheme.Scheme), IOStreams: ioStreams, } diff --git a/pkg/kubectl/cmd/config/BUILD b/pkg/kubectl/cmd/config/BUILD index b575d12d4a..494c871890 100644 --- a/pkg/kubectl/cmd/config/BUILD +++ b/pkg/kubectl/cmd/config/BUILD @@ -29,12 +29,14 @@ go_library( "//build/visible_to:pkg_kubectl_cmd_config_CONSUMERS", ], deps = [ + "//pkg/api/legacyscheme:go_default_library", "//pkg/kubectl/cmd/templates:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/genericclioptions:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//pkg/printers:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", diff --git a/pkg/kubectl/cmd/config/flags.go b/pkg/kubectl/cmd/config/flags.go index ab4243f40d..0473f9c041 100644 --- a/pkg/kubectl/cmd/config/flags.go +++ b/pkg/kubectl/cmd/config/flags.go @@ -19,6 +19,7 @@ package config import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/printers" ) @@ -74,14 +75,14 @@ func (f *kubectlConfigPrintFlags) WithDefaultOutput(output string) *kubectlConfi return f } -func newKubeConfigPrintFlags(operation string) *kubectlConfigPrintFlags { +func newKubeConfigPrintFlags(scheme runtime.ObjectConvertor) *kubectlConfigPrintFlags { outputFormat := "" return &kubectlConfigPrintFlags{ OutputFormat: &outputFormat, - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(operation), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(scheme), + NamePrintFlags: printers.NewNamePrintFlags("", scheme), TemplateFlags: printers.NewKubeTemplatePrintFlags(), } } diff --git a/pkg/kubectl/cmd/config/view.go b/pkg/kubectl/cmd/config/view.go index d3eae2a305..5a0466126f 100644 --- a/pkg/kubectl/cmd/config/view.go +++ b/pkg/kubectl/cmd/config/view.go @@ -25,6 +25,7 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/clientcmd/api/latest" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" @@ -68,7 +69,7 @@ var ( func NewCmdConfigView(f cmdutil.Factory, streams genericclioptions.IOStreams, ConfigAccess clientcmd.ConfigAccess) *cobra.Command { o := &ViewOptions{ - PrintFlags: newKubeConfigPrintFlags("").WithDefaultOutput("yaml"), + PrintFlags: newKubeConfigPrintFlags(legacyscheme.Scheme).WithDefaultOutput("yaml"), ConfigAccess: ConfigAccess, IOStreams: streams, diff --git a/pkg/kubectl/cmd/convert.go b/pkg/kubectl/cmd/convert.go index 8ee2463d68..6553ddf59e 100644 --- a/pkg/kubectl/cmd/convert.go +++ b/pkg/kubectl/cmd/convert.go @@ -103,7 +103,7 @@ type ConvertOptions struct { func NewConvertOptions(ioStreams genericclioptions.IOStreams) *ConvertOptions { return &ConvertOptions{ - PrintFlags: printers.NewPrintFlags("converted").WithDefaultOutput("yaml"), + PrintFlags: printers.NewPrintFlags("converted", scheme.Scheme).WithDefaultOutput("yaml"), local: true, IOStreams: ioStreams, } diff --git a/pkg/kubectl/cmd/create/create.go b/pkg/kubectl/cmd/create/create.go index 14b3ba7152..ab1210b5d6 100644 --- a/pkg/kubectl/cmd/create/create.go +++ b/pkg/kubectl/cmd/create/create.go @@ -19,14 +19,13 @@ package create import ( "fmt" "io" + "net/url" "os" "runtime" "strings" "github.com/spf13/cobra" - "net/url" - "github.com/golang/glog" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -78,7 +77,7 @@ var ( func NewCreateOptions(ioStreams genericclioptions.IOStreams) *CreateOptions { return &CreateOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, @@ -347,7 +346,7 @@ type CreateSubcommandOptions struct { func NewCreateSubcommandOptions(ioStreams genericclioptions.IOStreams) *CreateSubcommandOptions { return &CreateSubcommandOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), IOStreams: ioStreams, } } diff --git a/pkg/kubectl/cmd/create/create_deployment_test.go b/pkg/kubectl/cmd/create/create_deployment_test.go index 1c56a29902..50e53d7cf6 100644 --- a/pkg/kubectl/cmd/create/create_deployment_test.go +++ b/pkg/kubectl/cmd/create/create_deployment_test.go @@ -142,7 +142,7 @@ func TestCreateDeploymentNoImage(t *testing.T) { cmd.Flags().Set("output", "name") options := &DeploymentOpts{ CreateSubcommandOptions: &CreateSubcommandOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), DryRun: true, IOStreams: ioStreams, }, diff --git a/pkg/kubectl/cmd/create/create_job.go b/pkg/kubectl/cmd/create/create_job.go index 74462cc9ce..2187c51590 100644 --- a/pkg/kubectl/cmd/create/create_job.go +++ b/pkg/kubectl/cmd/create/create_job.go @@ -26,6 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" clientbatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" @@ -63,7 +64,7 @@ type CreateJobOptions struct { func NewCreateJobOptions(ioStreams genericclioptions.IOStreams) *CreateJobOptions { return &CreateJobOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), IOStreams: ioStreams, } } diff --git a/pkg/kubectl/cmd/create/create_job_test.go b/pkg/kubectl/cmd/create/create_job_test.go index af6fbcfa5f..7aa14cc9f3 100644 --- a/pkg/kubectl/cmd/create/create_job_test.go +++ b/pkg/kubectl/cmd/create/create_job_test.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" fake "k8s.io/client-go/kubernetes/fake" clienttesting "k8s.io/client-go/testing" + "k8s.io/kubernetes/pkg/api/legacyscheme" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" ) @@ -84,7 +85,7 @@ func TestCreateJobFromCronJob(t *testing.T) { f := cmdtesting.NewTestFactory() defer f.Cleanup() - printFlags := NewPrintFlags("created") + printFlags := NewPrintFlags("created", legacyscheme.Scheme) ioStreams, _, buf, _ := genericclioptions.NewTestIOStreams() cmdOptions := &CreateJobOptions{ diff --git a/pkg/kubectl/cmd/create/create_pdb_test.go b/pkg/kubectl/cmd/create/create_pdb_test.go index 93eb4cfad3..b98f05f777 100644 --- a/pkg/kubectl/cmd/create/create_pdb_test.go +++ b/pkg/kubectl/cmd/create/create_pdb_test.go @@ -59,7 +59,7 @@ func TestCreatePdb(t *testing.T) { cmd.Flags().Set("dry-run", "true") cmd.Flags().Set("output", outputFormat) - printFlags := NewPrintFlags("created") + printFlags := NewPrintFlags("created", legacyscheme.Scheme) printFlags.OutputFormat = &outputFormat options := &PodDisruptionBudgetOpts{ diff --git a/pkg/kubectl/cmd/create/create_priorityclass_test.go b/pkg/kubectl/cmd/create/create_priorityclass_test.go index 44d3021827..53b56c7ed1 100644 --- a/pkg/kubectl/cmd/create/create_priorityclass_test.go +++ b/pkg/kubectl/cmd/create/create_priorityclass_test.go @@ -59,7 +59,7 @@ func TestCreatePriorityClass(t *testing.T) { cmd.Flags().Set("dry-run", "true") cmd.Flags().Set("output", outputFormat) - printFlags := NewPrintFlags("created") + printFlags := NewPrintFlags("created", legacyscheme.Scheme) printFlags.OutputFormat = &outputFormat options := &PriorityClassOpts{ diff --git a/pkg/kubectl/cmd/create/create_role.go b/pkg/kubectl/cmd/create/create_role.go index c3ba4130ae..a2d2e2dcca 100644 --- a/pkg/kubectl/cmd/create/create_role.go +++ b/pkg/kubectl/cmd/create/create_role.go @@ -28,6 +28,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" clientgorbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" @@ -119,7 +120,7 @@ type CreateRoleOptions struct { func NewCreateRoleOptions(ioStreams genericclioptions.IOStreams) *CreateRoleOptions { return &CreateRoleOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), IOStreams: ioStreams, } diff --git a/pkg/kubectl/cmd/create/create_role_test.go b/pkg/kubectl/cmd/create/create_role_test.go index bad465e4d4..5741a7fdc0 100644 --- a/pkg/kubectl/cmd/create/create_role_test.go +++ b/pkg/kubectl/cmd/create/create_role_test.go @@ -376,14 +376,14 @@ func TestComplete(t *testing.T) { "test-missing-name": { params: []string{}, roleOptions: &CreateRoleOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), }, expectErr: true, }, "test-duplicate-verbs": { params: []string{roleName}, roleOptions: &CreateRoleOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), Name: roleName, Verbs: []string{ "get", @@ -416,7 +416,7 @@ func TestComplete(t *testing.T) { "test-verball": { params: []string{roleName}, roleOptions: &CreateRoleOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), Name: roleName, Verbs: []string{ "get", @@ -445,7 +445,7 @@ func TestComplete(t *testing.T) { "test-duplicate-resourcenames": { params: []string{roleName}, roleOptions: &CreateRoleOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), Name: roleName, Verbs: []string{"*"}, ResourceNames: []string{"foo", "foo"}, @@ -470,7 +470,7 @@ func TestComplete(t *testing.T) { "test-valid-complete-case": { params: []string{roleName}, roleOptions: &CreateRoleOptions{ - PrintFlags: NewPrintFlags("created"), + PrintFlags: NewPrintFlags("created", legacyscheme.Scheme), Name: roleName, Verbs: []string{"*"}, ResourceNames: []string{"foo"}, diff --git a/pkg/kubectl/cmd/create/flags.go b/pkg/kubectl/cmd/create/flags.go index 529bf67a98..5d4133bab9 100644 --- a/pkg/kubectl/cmd/create/flags.go +++ b/pkg/kubectl/cmd/create/flags.go @@ -19,6 +19,7 @@ package create import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/printers" ) @@ -68,14 +69,14 @@ func (f *PrintFlags) AddFlags(cmd *cobra.Command) { } } -func NewPrintFlags(operation string) *PrintFlags { +func NewPrintFlags(operation string, scheme runtime.ObjectConvertor) *PrintFlags { outputFormat := "" return &PrintFlags{ OutputFormat: &outputFormat, - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(operation), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(scheme), + NamePrintFlags: printers.NewNamePrintFlags(operation, scheme), TemplateFlags: printers.NewKubeTemplatePrintFlags(), } } diff --git a/pkg/kubectl/cmd/drain.go b/pkg/kubectl/cmd/drain.go index d4ceeab0f5..7fffe02ae9 100644 --- a/pkg/kubectl/cmd/drain.go +++ b/pkg/kubectl/cmd/drain.go @@ -107,7 +107,7 @@ var ( func NewCmdCordon(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { options := &DrainOptions{ - PrintFlags: printers.NewPrintFlags("cordoned"), + PrintFlags: printers.NewPrintFlags("cordoned", legacyscheme.Scheme), IOStreams: ioStreams, } @@ -139,7 +139,7 @@ var ( func NewCmdUncordon(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command { options := &DrainOptions{ - PrintFlags: printers.NewPrintFlags("uncordoned"), + PrintFlags: printers.NewPrintFlags("uncordoned", legacyscheme.Scheme), IOStreams: ioStreams, } @@ -195,7 +195,7 @@ var ( func NewDrainOptions(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *DrainOptions { return &DrainOptions{ - PrintFlags: printers.NewPrintFlags("drained"), + PrintFlags: printers.NewPrintFlags("drained", legacyscheme.Scheme), IOStreams: ioStreams, backOff: clockwork.NewRealClock(), diff --git a/pkg/kubectl/cmd/drain_test.go b/pkg/kubectl/cmd/drain_test.go index e1f3a1901f..55713f12ab 100644 --- a/pkg/kubectl/cmd/drain_test.go +++ b/pkg/kubectl/cmd/drain_test.go @@ -834,7 +834,7 @@ func TestDeletePods(t *testing.T) { defer tf.Cleanup() o := DrainOptions{ - PrintFlags: printers.NewPrintFlags("drained"), + PrintFlags: printers.NewPrintFlags("drained", legacyscheme.Scheme), } o.Out = os.Stdout diff --git a/pkg/kubectl/cmd/expose.go b/pkg/kubectl/cmd/expose.go index 7c1a57a473..0ce5dad85e 100644 --- a/pkg/kubectl/cmd/expose.go +++ b/pkg/kubectl/cmd/expose.go @@ -110,7 +110,7 @@ type ExposeServiceOptions struct { func NewExposeServiceOptions(ioStreams genericclioptions.IOStreams) *ExposeServiceOptions { return &ExposeServiceOptions{ RecordFlags: genericclioptions.NewRecordFlags(), - PrintFlags: printers.NewPrintFlags("exposed"), + PrintFlags: printers.NewPrintFlags("exposed", legacyscheme.Scheme), Recorder: genericclioptions.NoopRecorder{}, IOStreams: ioStreams, diff --git a/pkg/kubectl/cmd/get/get.go b/pkg/kubectl/cmd/get/get.go index d84c818b04..e48e41b455 100644 --- a/pkg/kubectl/cmd/get/get.go +++ b/pkg/kubectl/cmd/get/get.go @@ -136,7 +136,7 @@ const ( // NewGetOptions returns a GetOptions with default chunk size 500. func NewGetOptions(parent string, streams genericclioptions.IOStreams) *GetOptions { return &GetOptions{ - PrintFlags: NewGetPrintFlags(), + PrintFlags: NewGetPrintFlags(legacyscheme.Scheme), CmdParent: parent, IOStreams: streams, diff --git a/pkg/kubectl/cmd/get/get_flags.go b/pkg/kubectl/cmd/get/get_flags.go index 4349e79d06..dedb1792d6 100644 --- a/pkg/kubectl/cmd/get/get_flags.go +++ b/pkg/kubectl/cmd/get/get_flags.go @@ -22,6 +22,7 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" "k8s.io/kubernetes/pkg/printers" @@ -152,7 +153,7 @@ func (f *PrintFlags) AddFlags(cmd *cobra.Command) { // NewGetPrintFlags returns flags associated with humanreadable, // template, and "name" printing, with default values set. -func NewGetPrintFlags() *PrintFlags { +func NewGetPrintFlags(scheme runtime.ObjectConvertor) *PrintFlags { outputFormat := "" noHeaders := false @@ -160,8 +161,8 @@ func NewGetPrintFlags() *PrintFlags { OutputFormat: &outputFormat, NoHeaders: &noHeaders, - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(scheme), + NamePrintFlags: printers.NewNamePrintFlags("", scheme), TemplateFlags: printers.NewKubeTemplatePrintFlags(), HumanReadableFlags: NewHumanPrintFlags(), CustomColumnsFlags: printers.NewCustomColumnsPrintFlags(), diff --git a/pkg/kubectl/cmd/label.go b/pkg/kubectl/cmd/label.go index 7e35218581..d8037aa2a7 100644 --- a/pkg/kubectl/cmd/label.go +++ b/pkg/kubectl/cmd/label.go @@ -32,6 +32,7 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" @@ -114,7 +115,7 @@ func NewLabelOptions(ioStreams genericclioptions.IOStreams) *LabelOptions { RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, - PrintFlags: printers.NewPrintFlags("labeled"), + PrintFlags: printers.NewPrintFlags("labeled", legacyscheme.Scheme), IOStreams: ioStreams, } diff --git a/pkg/kubectl/cmd/patch.go b/pkg/kubectl/cmd/patch.go index 19a06a747e..cd3042e6d7 100644 --- a/pkg/kubectl/cmd/patch.go +++ b/pkg/kubectl/cmd/patch.go @@ -33,6 +33,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/yaml" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" @@ -98,7 +99,7 @@ func NewPatchOptions(ioStreams genericclioptions.IOStreams) *PatchOptions { return &PatchOptions{ RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, - PrintFlags: printers.NewPrintFlags("patched"), + PrintFlags: printers.NewPrintFlags("patched", legacyscheme.Scheme), IOStreams: ioStreams, } } diff --git a/pkg/kubectl/cmd/replace.go b/pkg/kubectl/cmd/replace.go index 8bade7795b..268b299589 100644 --- a/pkg/kubectl/cmd/replace.go +++ b/pkg/kubectl/cmd/replace.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -96,7 +97,7 @@ func NewReplaceOptions(streams genericclioptions.IOStreams) *ReplaceOptions { // we only support "-o name" for this command, so only register the name printer PrintFlags: &printers.PrintFlags{ OutputFormat: &outputFormat, - NamePrintFlags: printers.NewNamePrintFlags("replaced"), + NamePrintFlags: printers.NewNamePrintFlags("replaced", legacyscheme.Scheme), }, DeleteFlags: NewDeleteFlags("to use to replace the resource."), diff --git a/pkg/kubectl/cmd/rollingupdate.go b/pkg/kubectl/cmd/rollingupdate.go index 99b98fc019..1aa66b2dc8 100644 --- a/pkg/kubectl/cmd/rollingupdate.go +++ b/pkg/kubectl/cmd/rollingupdate.go @@ -114,7 +114,7 @@ type RollingUpdateOptions struct { func NewRollingUpdateOptions(streams genericclioptions.IOStreams) *RollingUpdateOptions { return &RollingUpdateOptions{ - PrintFlags: printers.NewPrintFlags("rolling updated"), + PrintFlags: printers.NewPrintFlags("rolling updated", legacyscheme.Scheme), FilenameOptions: &resource.FilenameOptions{}, DeploymentKey: "deployment", Timeout: timeout, diff --git a/pkg/kubectl/cmd/rollout/rollout_pause.go b/pkg/kubectl/cmd/rollout/rollout_pause.go index 5df4c0a5fa..a1891db36c 100644 --- a/pkg/kubectl/cmd/rollout/rollout_pause.go +++ b/pkg/kubectl/cmd/rollout/rollout_pause.go @@ -63,7 +63,7 @@ var ( func NewCmdRolloutPause(f cmdutil.Factory, streams genericclioptions.IOStreams) *cobra.Command { o := &PauseConfig{ - PrintFlags: printers.NewPrintFlags("paused"), + PrintFlags: printers.NewPrintFlags("paused", legacyscheme.Scheme), IOStreams: streams, } diff --git a/pkg/kubectl/cmd/rollout/rollout_resume.go b/pkg/kubectl/cmd/rollout/rollout_resume.go index 2263df865c..9aec4896f7 100644 --- a/pkg/kubectl/cmd/rollout/rollout_resume.go +++ b/pkg/kubectl/cmd/rollout/rollout_resume.go @@ -61,7 +61,7 @@ var ( func NewCmdRolloutResume(f cmdutil.Factory, streams genericclioptions.IOStreams) *cobra.Command { o := &ResumeConfig{ - PrintFlags: printers.NewPrintFlags("resumed"), + PrintFlags: printers.NewPrintFlags("resumed", legacyscheme.Scheme), IOStreams: streams, } diff --git a/pkg/kubectl/cmd/rollout/rollout_undo.go b/pkg/kubectl/cmd/rollout/rollout_undo.go index 6a8443fcc3..55dcfaf08f 100644 --- a/pkg/kubectl/cmd/rollout/rollout_undo.go +++ b/pkg/kubectl/cmd/rollout/rollout_undo.go @@ -19,6 +19,8 @@ package rollout import ( "io" + "github.com/spf13/cobra" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl" @@ -27,8 +29,6 @@ import ( "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/printers" - - "github.com/spf13/cobra" ) // UndoOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of @@ -64,7 +64,7 @@ var ( func NewCmdRolloutUndo(f cmdutil.Factory, out io.Writer) *cobra.Command { o := &UndoOptions{ - PrintFlags: printers.NewPrintFlags(""), + PrintFlags: printers.NewPrintFlags("", legacyscheme.Scheme), } validArgs := []string{"deployment", "daemonset", "statefulset"} diff --git a/pkg/kubectl/cmd/run.go b/pkg/kubectl/cmd/run.go index 563742d951..3efb1e3eb7 100644 --- a/pkg/kubectl/cmd/run.go +++ b/pkg/kubectl/cmd/run.go @@ -126,7 +126,7 @@ type RunOptions struct { func NewRunOptions(streams genericclioptions.IOStreams) *RunOptions { return &RunOptions{ - PrintFlags: printers.NewPrintFlags("created"), + PrintFlags: printers.NewPrintFlags("created", legacyscheme.Scheme), DeleteFlags: NewDeleteFlags("to use to replace the resource."), RecordFlags: genericclioptions.NewRecordFlags(), diff --git a/pkg/kubectl/cmd/run_test.go b/pkg/kubectl/cmd/run_test.go index 218681a4be..77bd7a11f3 100644 --- a/pkg/kubectl/cmd/run_test.go +++ b/pkg/kubectl/cmd/run_test.go @@ -198,7 +198,7 @@ func TestRunArgsFollowDashRules(t *testing.T) { cmd.Flags().Set("image", "nginx") cmd.Flags().Set("generator", "run/v1") - printFlags := printers.NewPrintFlags("created") + printFlags := printers.NewPrintFlags("created", legacyscheme.Scheme) printer, err := printFlags.ToPrinter() if err != nil { t.Errorf("unexpected error: %v", err) @@ -366,7 +366,7 @@ func TestGenerateService(t *testing.T) { }), } - printFlags := printers.NewPrintFlags("created") + printFlags := printers.NewPrintFlags("created", legacyscheme.Scheme) printer, err := printFlags.ToPrinter() if err != nil { t.Errorf("unexpected error: %v", err) diff --git a/pkg/kubectl/cmd/scale.go b/pkg/kubectl/cmd/scale.go index b6cbfca442..9917974bbf 100644 --- a/pkg/kubectl/cmd/scale.go +++ b/pkg/kubectl/cmd/scale.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" batchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion" "k8s.io/kubernetes/pkg/kubectl" @@ -100,7 +101,7 @@ func NewScaleOptions(ioStreams genericclioptions.IOStreams) *ScaleOptions { // we only support "-o name" for this command, so only register the name printer PrintFlags: &printers.PrintFlags{ OutputFormat: &outputFormat, - NamePrintFlags: printers.NewNamePrintFlags("scaled"), + NamePrintFlags: printers.NewNamePrintFlags("scaled", legacyscheme.Scheme), }, RecordFlags: genericclioptions.NewRecordFlags(), CurrentReplicas: -1, diff --git a/pkg/kubectl/cmd/set/set_env.go b/pkg/kubectl/cmd/set/set_env.go index 6336e4a9dc..83b5cc6691 100644 --- a/pkg/kubectl/cmd/set/set_env.go +++ b/pkg/kubectl/cmd/set/set_env.go @@ -30,6 +30,7 @@ import ( "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" envutil "k8s.io/kubernetes/pkg/kubectl/cmd/util/env" @@ -126,7 +127,7 @@ type EnvOptions struct { // pod templates are selected by default and allowing environment to be overwritten func NewEnvOptions(streams genericclioptions.IOStreams) *EnvOptions { return &EnvOptions{ - PrintFlags: printers.NewPrintFlags("env updated"), + PrintFlags: printers.NewPrintFlags("env updated", legacyscheme.Scheme), ContainerSelector: "*", Overwrite: true, diff --git a/pkg/kubectl/cmd/set/set_env_test.go b/pkg/kubectl/cmd/set/set_env_test.go index d281338789..2e1db3d628 100644 --- a/pkg/kubectl/cmd/set/set_env_test.go +++ b/pkg/kubectl/cmd/set/set_env_test.go @@ -24,8 +24,6 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/printers" - "github.com/stretchr/testify/assert" appsv1 "k8s.io/api/apps/v1" appsv1beta1 "k8s.io/api/apps/v1beta1" @@ -39,11 +37,13 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/kubectl/scheme" + "k8s.io/kubernetes/pkg/printers" ) func TestSetEnvLocal(t *testing.T) { @@ -66,8 +66,8 @@ func TestSetEnvLocal(t *testing.T) { streams, _, buf, bufErr := genericclioptions.NewTestIOStreams() opts := NewEnvOptions(streams) opts.PrintFlags = &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, } opts.FilenameOptions = resource.FilenameOptions{ @@ -109,8 +109,8 @@ func TestSetMultiResourcesEnvLocal(t *testing.T) { streams, _, buf, bufErr := genericclioptions.NewTestIOStreams() opts := NewEnvOptions(streams) opts.PrintFlags = &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, } opts.FilenameOptions = resource.FilenameOptions{ @@ -497,8 +497,8 @@ func TestSetEnvRemote(t *testing.T) { streams := genericclioptions.NewTestIOStreamsDiscard() opts := NewEnvOptions(streams) opts.PrintFlags = &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, } opts.Local = false diff --git a/pkg/kubectl/cmd/set/set_image.go b/pkg/kubectl/cmd/set/set_image.go index 9648b9ee35..fb5566f725 100644 --- a/pkg/kubectl/cmd/set/set_image.go +++ b/pkg/kubectl/cmd/set/set_image.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/genericclioptions" @@ -87,7 +88,7 @@ var ( func NewImageOptions(streams genericclioptions.IOStreams) *SetImageOptions { return &SetImageOptions{ - PrintFlags: printers.NewPrintFlags("image updated"), + PrintFlags: printers.NewPrintFlags("image updated", legacyscheme.Scheme), RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, diff --git a/pkg/kubectl/cmd/set/set_image_test.go b/pkg/kubectl/cmd/set/set_image_test.go index 0bb79a5b3d..d699876fdb 100644 --- a/pkg/kubectl/cmd/set/set_image_test.go +++ b/pkg/kubectl/cmd/set/set_image_test.go @@ -25,6 +25,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "k8s.io/kubernetes/pkg/api/legacyscheme" appsv1 "k8s.io/api/apps/v1" appsv1beta1 "k8s.io/api/apps/v1beta1" @@ -73,8 +74,8 @@ func TestImageLocal(t *testing.T) { opts := SetImageOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -100,8 +101,8 @@ func TestImageLocal(t *testing.T) { func TestSetImageValidation(t *testing.T) { printFlags := &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), } testCases := []struct { @@ -196,8 +197,8 @@ func TestSetMultiResourcesImageLocal(t *testing.T) { opts := SetImageOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -590,8 +591,8 @@ func TestSetImageRemote(t *testing.T) { cmd.Flags().Set("output", outputFormat) opts := SetImageOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, diff --git a/pkg/kubectl/cmd/set/set_resources.go b/pkg/kubectl/cmd/set/set_resources.go index a15b32e30f..6bcc26cc8b 100644 --- a/pkg/kubectl/cmd/set/set_resources.go +++ b/pkg/kubectl/cmd/set/set_resources.go @@ -94,7 +94,7 @@ type SetResourcesOptions struct { // pod templates are selected by default. func NewResourcesOptions(streams genericclioptions.IOStreams) *SetResourcesOptions { return &SetResourcesOptions{ - PrintFlags: printers.NewPrintFlags("resource requirements updated"), + PrintFlags: printers.NewPrintFlags("resource requirements updated", legacyscheme.Scheme), RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, diff --git a/pkg/kubectl/cmd/set/set_resources_test.go b/pkg/kubectl/cmd/set/set_resources_test.go index 1e5ec98c27..6c9dd541a9 100644 --- a/pkg/kubectl/cmd/set/set_resources_test.go +++ b/pkg/kubectl/cmd/set/set_resources_test.go @@ -72,8 +72,8 @@ func TestResourcesLocal(t *testing.T) { opts := SetResourcesOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -127,8 +127,8 @@ func TestSetMultiResourcesLimitsLocal(t *testing.T) { opts := SetResourcesOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -508,8 +508,8 @@ func TestSetResourcesRemote(t *testing.T) { cmd.Flags().Set("output", outputFormat) opts := SetResourcesOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, diff --git a/pkg/kubectl/cmd/set/set_selector.go b/pkg/kubectl/cmd/set/set_selector.go index f7c75ae2c6..75f3595d21 100644 --- a/pkg/kubectl/cmd/set/set_selector.go +++ b/pkg/kubectl/cmd/set/set_selector.go @@ -79,7 +79,7 @@ var ( func NewSelectorOptions(streams genericclioptions.IOStreams) *SetSelectorOptions { return &SetSelectorOptions{ - PrintFlags: printers.NewPrintFlags("selector updated"), + PrintFlags: printers.NewPrintFlags("selector updated", legacyscheme.Scheme), RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, diff --git a/pkg/kubectl/cmd/set/set_serviceaccount.go b/pkg/kubectl/cmd/set/set_serviceaccount.go index 781f3f17bd..954e94e69b 100644 --- a/pkg/kubectl/cmd/set/set_serviceaccount.go +++ b/pkg/kubectl/cmd/set/set_serviceaccount.go @@ -79,7 +79,7 @@ type SetServiceAccountOptions struct { func NewSetServiceAccountOptions(streams genericclioptions.IOStreams) *SetServiceAccountOptions { return &SetServiceAccountOptions{ - PrintFlags: printers.NewPrintFlags("serviceaccount updated"), + PrintFlags: printers.NewPrintFlags("serviceaccount updated", legacyscheme.Scheme), RecordFlags: genericclioptions.NewRecordFlags(), Recorder: genericclioptions.NoopRecorder{}, diff --git a/pkg/kubectl/cmd/set/set_serviceaccount_test.go b/pkg/kubectl/cmd/set/set_serviceaccount_test.go index 2fa9b7784e..ee6e7067e9 100644 --- a/pkg/kubectl/cmd/set/set_serviceaccount_test.go +++ b/pkg/kubectl/cmd/set/set_serviceaccount_test.go @@ -91,8 +91,8 @@ func TestSetServiceAccountLocal(t *testing.T) { testapi.Default = testapi.Groups[input.apiGroup] saConfig := SetServiceAccountOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -135,8 +135,8 @@ func TestSetServiceAccountMultiLocal(t *testing.T) { cmd.Flags().Set("local", "true") opts := SetServiceAccountOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -379,8 +379,8 @@ func TestSetServiceAccountRemote(t *testing.T) { cmd.Flags().Set("output", outputFormat) saConfig := SetServiceAccountOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, @@ -426,8 +426,8 @@ func TestServiceAccountValidation(t *testing.T) { saConfig := &SetServiceAccountOptions{ PrintFlags: &printers.PrintFlags{ - JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(), - NamePrintFlags: printers.NewNamePrintFlags(""), + JSONYamlPrintFlags: printers.NewJSONYamlPrintFlags(legacyscheme.Scheme), + NamePrintFlags: printers.NewNamePrintFlags("", legacyscheme.Scheme), OutputFormat: &outputFormat, }, diff --git a/pkg/kubectl/cmd/set/set_subject.go b/pkg/kubectl/cmd/set/set_subject.go index e9ee174dfe..c68ccf77a2 100644 --- a/pkg/kubectl/cmd/set/set_subject.go +++ b/pkg/kubectl/cmd/set/set_subject.go @@ -82,7 +82,7 @@ type SubjectOptions struct { func NewSubjectOptions(streams genericclioptions.IOStreams) *SubjectOptions { return &SubjectOptions{ - PrintFlags: printers.NewPrintFlags("subjects updated"), + PrintFlags: printers.NewPrintFlags("subjects updated", legacyscheme.Scheme), IOStreams: streams, } diff --git a/pkg/kubectl/cmd/taint.go b/pkg/kubectl/cmd/taint.go index ab0a499012..2db1a23bb5 100644 --- a/pkg/kubectl/cmd/taint.go +++ b/pkg/kubectl/cmd/taint.go @@ -17,11 +17,10 @@ limitations under the License. package cmd import ( + "encoding/json" "fmt" "strings" - "encoding/json" - "github.com/golang/glog" "github.com/spf13/cobra" @@ -87,7 +86,7 @@ var ( func NewCmdTaint(f cmdutil.Factory, streams genericclioptions.IOStreams) *cobra.Command { options := &TaintOptions{ - PrintFlags: printers.NewPrintFlags("tainted"), + PrintFlags: printers.NewPrintFlags("tainted", legacyscheme.Scheme), IOStreams: streams, } diff --git a/pkg/kubectl/cmd/util/editor/BUILD b/pkg/kubectl/cmd/util/editor/BUILD index c0fc7acbc0..ad82cdf2d8 100644 --- a/pkg/kubectl/cmd/util/editor/BUILD +++ b/pkg/kubectl/cmd/util/editor/BUILD @@ -15,6 +15,7 @@ go_library( "//build/visible_to:pkg_kubectl_cmd_util_editor_CONSUMERS", ], deps = [ + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/core:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", diff --git a/pkg/kubectl/cmd/util/editor/editoptions.go b/pkg/kubectl/cmd/util/editor/editoptions.go index 9a0f0cd11b..d5b9353eb8 100644 --- a/pkg/kubectl/cmd/util/editor/editoptions.go +++ b/pkg/kubectl/cmd/util/editor/editoptions.go @@ -42,6 +42,7 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/yaml" + "k8s.io/kubernetes/pkg/api/legacyscheme" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -88,7 +89,7 @@ func NewEditOptions(editMode EditMode, ioStreams genericclioptions.IOStreams) *E EditMode: editMode, - PrintFlags: printers.NewPrintFlags("edited"), + PrintFlags: printers.NewPrintFlags("edited", legacyscheme.Scheme), WindowsLineEndings: goruntime.GOOS == "windows", diff --git a/pkg/printers/flags.go b/pkg/printers/flags.go index 244a893262..97089e7cb1 100644 --- a/pkg/printers/flags.go +++ b/pkg/printers/flags.go @@ -20,6 +20,8 @@ import ( "fmt" "github.com/spf13/cobra" + + "k8s.io/apimachinery/pkg/runtime" ) type NoCompatiblePrinterError struct { @@ -53,6 +55,8 @@ type PrintFlags struct { NamePrintFlags *NamePrintFlags OutputFormat *string + + Scheme runtime.ObjectConvertor } func (f *PrintFlags) Complete(successTemplate string) error { @@ -95,13 +99,15 @@ func (f *PrintFlags) WithDefaultOutput(output string) *PrintFlags { return f } -func NewPrintFlags(operation string) *PrintFlags { +func NewPrintFlags(operation string, scheme runtime.ObjectConvertor) *PrintFlags { outputFormat := "" return &PrintFlags{ OutputFormat: &outputFormat, - JSONYamlPrintFlags: NewJSONYamlPrintFlags(), - NamePrintFlags: NewNamePrintFlags(operation), + Scheme: scheme, + + JSONYamlPrintFlags: NewJSONYamlPrintFlags(scheme), + NamePrintFlags: NewNamePrintFlags(operation, scheme), } } diff --git a/pkg/printers/internalversion/printers_test.go b/pkg/printers/internalversion/printers_test.go index 82e666e90b..268c35e276 100644 --- a/pkg/printers/internalversion/printers_test.go +++ b/pkg/printers/internalversion/printers_test.go @@ -400,7 +400,7 @@ func TestNamePrinter(t *testing.T) { "pod/foo\npod/bar\n"}, } - printFlags := printers.NewPrintFlags("").WithDefaultOutput("name") + printFlags := printers.NewPrintFlags("", legacyscheme.Scheme).WithDefaultOutput("name") printer, err := printFlags.ToPrinter() if err != nil { t.Fatalf("unexpected err: %v", err) diff --git a/pkg/printers/json_yaml_flags.go b/pkg/printers/json_yaml_flags.go index 41ed58678b..158cd20e66 100644 --- a/pkg/printers/json_yaml_flags.go +++ b/pkg/printers/json_yaml_flags.go @@ -21,14 +21,16 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/apimachinery/pkg/runtime" kubectlscheme "k8s.io/kubernetes/pkg/kubectl/scheme" ) // JSONYamlPrintFlags provides default flags necessary for json/yaml printing. // Given the following flag values, a printer can be requested that knows // how to handle printing based on these values. -type JSONYamlPrintFlags struct{} +type JSONYamlPrintFlags struct { + Scheme runtime.ObjectConvertor +} // ToPrinter receives an outputFormat and returns a printer capable of // handling --output=(yaml|json) printing. @@ -48,7 +50,7 @@ func (f *JSONYamlPrintFlags) ToPrinter(outputFormat string) (ResourcePrinter, er } // wrap the printer in a versioning printer that understands when to convert and when not to convert - return NewVersionedPrinter(printer, legacyscheme.Scheme, legacyscheme.Scheme, kubectlscheme.Scheme.PrioritizedVersionsAllGroups()...), nil + return NewVersionedPrinter(printer, f.Scheme, f.Scheme.(runtime.ObjectTyper), kubectlscheme.Scheme.PrioritizedVersionsAllGroups()...), nil } @@ -58,6 +60,6 @@ func (f *JSONYamlPrintFlags) AddFlags(c *cobra.Command) {} // NewJSONYamlPrintFlags returns flags associated with // yaml or json printing, with default values set. -func NewJSONYamlPrintFlags() *JSONYamlPrintFlags { - return &JSONYamlPrintFlags{} +func NewJSONYamlPrintFlags(scheme runtime.ObjectConvertor) *JSONYamlPrintFlags { + return &JSONYamlPrintFlags{Scheme: scheme} } diff --git a/pkg/printers/json_yaml_flags_test.go b/pkg/printers/json_yaml_flags_test.go index a2de7b2547..3fe8aee410 100644 --- a/pkg/printers/json_yaml_flags_test.go +++ b/pkg/printers/json_yaml_flags_test.go @@ -23,6 +23,7 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/printers" ) @@ -59,7 +60,7 @@ func TestPrinterSupportsExpectedJSONYamlFormats(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - printFlags := printers.JSONYamlPrintFlags{} + printFlags := printers.JSONYamlPrintFlags{Scheme: legacyscheme.Scheme} p, err := printFlags.ToPrinter(tc.outputFormat) if tc.expectNoMatch { diff --git a/pkg/printers/name_flags.go b/pkg/printers/name_flags.go index 193b4e5947..01501703ea 100644 --- a/pkg/printers/name_flags.go +++ b/pkg/printers/name_flags.go @@ -32,6 +32,8 @@ import ( // a resource's fully-qualified Kind.group/name, or a successful // message about that resource if an Operation is provided. type NamePrintFlags struct { + Scheme runtime.ObjectConvertor + // Operation describes the name of the action that // took place on an object, to be included in the // finalized "successful" message. @@ -73,7 +75,7 @@ func (f *NamePrintFlags) AddFlags(c *cobra.Command) {} // NewNamePrintFlags returns flags associated with // --name printing, with default values set. -func NewNamePrintFlags(operation string) *NamePrintFlags { +func NewNamePrintFlags(operation string, scheme runtime.ObjectConvertor) *NamePrintFlags { return &NamePrintFlags{ Operation: operation, }