Fix --save-config for kubectl create commands, where it was missing

This commit is contained in:
Maciej Szulik 2020-06-08 14:02:33 +02:00
parent 60b800358f
commit 42ee206838
No known key found for this signature in database
GPG Key ID: F15E55D276FA84C4
6 changed files with 42 additions and 5 deletions

View File

@ -427,6 +427,9 @@ func (o *CreateSubcommandOptions) Run() error {
if err != nil { if err != nil {
return err return err
} }
if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, obj, scheme.DefaultJSONEncoder()); err != nil {
return err
}
if o.DryRunStrategy != cmdutil.DryRunClient { if o.DryRunStrategy != cmdutil.DryRunClient {
// create subcommands have compiled knowledge of things they create, so type them directly // create subcommands have compiled knowledge of things they create, so type them directly
gvks, _, err := scheme.Scheme.ObjectKinds(obj) gvks, _, err := scheme.Scheme.ObjectKinds(obj)
@ -439,12 +442,7 @@ func (o *CreateSubcommandOptions) Run() error {
return err return err
} }
if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, obj, scheme.DefaultJSONEncoder()); err != nil {
return err
}
asUnstructured := &unstructured.Unstructured{} asUnstructured := &unstructured.Unstructured{}
if err := scheme.Scheme.Convert(obj, asUnstructured, nil); err != nil { if err := scheme.Scheme.Convert(obj, asUnstructured, nil); err != nil {
return err return err
} }

View File

@ -28,6 +28,8 @@ import (
"k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/genericclioptions"
cliflag "k8s.io/component-base/cli/flag" cliflag "k8s.io/component-base/cli/flag"
cmdutil "k8s.io/kubectl/pkg/cmd/util" cmdutil "k8s.io/kubectl/pkg/cmd/util"
"k8s.io/kubectl/pkg/scheme"
"k8s.io/kubectl/pkg/util"
"k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/i18n"
"k8s.io/kubectl/pkg/util/templates" "k8s.io/kubectl/pkg/util/templates"
) )
@ -201,6 +203,10 @@ func (c *CreateClusterRoleOptions) RunCreateRole() error {
} }
} }
if err := util.CreateOrUpdateAnnotation(c.CreateAnnotation, clusterRole, scheme.DefaultJSONEncoder()); err != nil {
return err
}
// Create ClusterRole. // Create ClusterRole.
if c.DryRunStrategy != cmdutil.DryRunClient { if c.DryRunStrategy != cmdutil.DryRunClient {
createOptions := metav1.CreateOptions{} createOptions := metav1.CreateOptions{}

View File

@ -32,6 +32,7 @@ import (
batchv1beta1client "k8s.io/client-go/kubernetes/typed/batch/v1beta1" batchv1beta1client "k8s.io/client-go/kubernetes/typed/batch/v1beta1"
cmdutil "k8s.io/kubectl/pkg/cmd/util" cmdutil "k8s.io/kubectl/pkg/cmd/util"
"k8s.io/kubectl/pkg/scheme" "k8s.io/kubectl/pkg/scheme"
"k8s.io/kubectl/pkg/util"
"k8s.io/kubectl/pkg/util/templates" "k8s.io/kubectl/pkg/util/templates"
) )
@ -65,6 +66,7 @@ type CreateCronJobOptions struct {
DryRunVerifier *resource.DryRunVerifier DryRunVerifier *resource.DryRunVerifier
Builder *resource.Builder Builder *resource.Builder
FieldManager string FieldManager string
CreateAnnotation bool
genericclioptions.IOStreams genericclioptions.IOStreams
} }
@ -135,6 +137,8 @@ func (o *CreateCronJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a
} }
o.Builder = f.NewBuilder() o.Builder = f.NewBuilder()
o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag)
o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd)
if err != nil { if err != nil {
return err return err
@ -162,6 +166,11 @@ func (o *CreateCronJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a
func (o *CreateCronJobOptions) Run() error { func (o *CreateCronJobOptions) Run() error {
cronjob := o.createCronJob() cronjob := o.createCronJob()
if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, cronjob, scheme.DefaultJSONEncoder()); err != nil {
return err
}
if o.DryRunStrategy != cmdutil.DryRunClient { if o.DryRunStrategy != cmdutil.DryRunClient {
createOptions := metav1.CreateOptions{} createOptions := metav1.CreateOptions{}
if o.FieldManager != "" { if o.FieldManager != "" {

View File

@ -33,6 +33,7 @@ import (
appsv1client "k8s.io/client-go/kubernetes/typed/apps/v1" appsv1client "k8s.io/client-go/kubernetes/typed/apps/v1"
cmdutil "k8s.io/kubectl/pkg/cmd/util" cmdutil "k8s.io/kubectl/pkg/cmd/util"
"k8s.io/kubectl/pkg/scheme" "k8s.io/kubectl/pkg/scheme"
"k8s.io/kubectl/pkg/util"
"k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/i18n"
"k8s.io/kubectl/pkg/util/templates" "k8s.io/kubectl/pkg/util/templates"
) )
@ -69,6 +70,7 @@ type CreateDeploymentOptions struct {
Namespace string Namespace string
EnforceNamespace bool EnforceNamespace bool
FieldManager string FieldManager string
CreateAnnotation bool
Client appsv1client.AppsV1Interface Client appsv1client.AppsV1Interface
DryRunStrategy cmdutil.DryRunStrategy DryRunStrategy cmdutil.DryRunStrategy
@ -143,6 +145,8 @@ func (o *CreateDeploymentOptions) Complete(f cmdutil.Factory, cmd *cobra.Command
return err return err
} }
o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag)
o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd) o.DryRunStrategy, err = cmdutil.GetDryRunStrategy(cmd)
if err != nil { if err != nil {
return err return err
@ -180,6 +184,10 @@ func (o *CreateDeploymentOptions) Validate() error {
func (o *CreateDeploymentOptions) Run() error { func (o *CreateDeploymentOptions) Run() error {
deploy := o.createDeployment() deploy := o.createDeployment()
if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, deploy, scheme.DefaultJSONEncoder()); err != nil {
return err
}
if o.DryRunStrategy != cmdutil.DryRunClient { if o.DryRunStrategy != cmdutil.DryRunClient {
createOptions := metav1.CreateOptions{} createOptions := metav1.CreateOptions{}
if o.FieldManager != "" { if o.FieldManager != "" {

View File

@ -32,6 +32,7 @@ import (
batchv1client "k8s.io/client-go/kubernetes/typed/batch/v1" batchv1client "k8s.io/client-go/kubernetes/typed/batch/v1"
cmdutil "k8s.io/kubectl/pkg/cmd/util" cmdutil "k8s.io/kubectl/pkg/cmd/util"
"k8s.io/kubectl/pkg/scheme" "k8s.io/kubectl/pkg/scheme"
"k8s.io/kubectl/pkg/util"
"k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/i18n"
"k8s.io/kubectl/pkg/util/templates" "k8s.io/kubectl/pkg/util/templates"
) )
@ -69,6 +70,7 @@ type CreateJobOptions struct {
DryRunVerifier *resource.DryRunVerifier DryRunVerifier *resource.DryRunVerifier
Builder *resource.Builder Builder *resource.Builder
FieldManager string FieldManager string
CreateAnnotation bool
genericclioptions.IOStreams genericclioptions.IOStreams
} }
@ -128,6 +130,8 @@ func (o *CreateJobOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
return err return err
} }
o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag)
o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace() o.Namespace, o.EnforceNamespace, err = f.ToRawKubeConfigLoader().Namespace()
if err != nil { if err != nil {
return err return err
@ -202,6 +206,11 @@ func (o *CreateJobOptions) Run() error {
job = o.createJobFromCronJob(cronJob) job = o.createJobFromCronJob(cronJob)
} }
if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, job, scheme.DefaultJSONEncoder()); err != nil {
return err
}
if o.DryRunStrategy != cmdutil.DryRunClient { if o.DryRunStrategy != cmdutil.DryRunClient {
createOptions := metav1.CreateOptions{} createOptions := metav1.CreateOptions{}
if o.FieldManager != "" { if o.FieldManager != "" {

View File

@ -34,6 +34,7 @@ import (
clientgorbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" clientgorbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1"
cmdutil "k8s.io/kubectl/pkg/cmd/util" cmdutil "k8s.io/kubectl/pkg/cmd/util"
"k8s.io/kubectl/pkg/scheme" "k8s.io/kubectl/pkg/scheme"
"k8s.io/kubectl/pkg/util"
"k8s.io/kubectl/pkg/util/i18n" "k8s.io/kubectl/pkg/util/i18n"
"k8s.io/kubectl/pkg/util/templates" "k8s.io/kubectl/pkg/util/templates"
) )
@ -136,6 +137,7 @@ type CreateRoleOptions struct {
Mapper meta.RESTMapper Mapper meta.RESTMapper
PrintObj func(obj runtime.Object) error PrintObj func(obj runtime.Object) error
FieldManager string FieldManager string
CreateAnnotation bool
genericclioptions.IOStreams genericclioptions.IOStreams
} }
@ -254,6 +256,7 @@ func (o *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
} }
o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient) o.DryRunVerifier = resource.NewDryRunVerifier(dynamicClient, discoveryClient)
o.OutputFormat = cmdutil.GetFlagString(cmd, "output") o.OutputFormat = cmdutil.GetFlagString(cmd, "output")
o.CreateAnnotation = cmdutil.GetFlagBool(cmd, cmdutil.ApplyAnnotationsFlag)
cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy) cmdutil.PrintFlagsWithDryRunStrategy(o.PrintFlags, o.DryRunStrategy)
printer, err := o.PrintFlags.ToPrinter() printer, err := o.PrintFlags.ToPrinter()
@ -357,6 +360,10 @@ func (o *CreateRoleOptions) RunCreateRole() error {
role.Namespace = o.Namespace role.Namespace = o.Namespace
} }
if err := util.CreateOrUpdateAnnotation(o.CreateAnnotation, role, scheme.DefaultJSONEncoder()); err != nil {
return err
}
// Create role. // Create role.
if o.DryRunStrategy != cmdutil.DryRunClient { if o.DryRunStrategy != cmdutil.DryRunClient {
createOptions := metav1.CreateOptions{} createOptions := metav1.CreateOptions{}