From e389b2723e6af29a9f70509fe8ff6e5121c30681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20G=C3=BC=C3=A7l=C3=BC?= Date: Wed, 1 Jun 2022 14:01:40 +0300 Subject: [PATCH 1/2] Validate dry-run and force flags can not be used same time in replace This PR adds validation to check that `dry-run` and `force` flags are not used at the same time. Because when `force` flag is set, `dry-run` is discarded and objects are replaced already. --- staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go b/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go index 37478fd5f98..0377369cccf 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go @@ -227,6 +227,10 @@ func (o *ReplaceOptions) Validate() error { return fmt.Errorf("--timeout must have --force specified") } + if o.DeleteOptions.ForceDeletion && o.DryRunStrategy != cmdutil.DryRunNone { + return fmt.Errorf("dry-run can not be used when --force is set") + } + if cmdutil.IsFilenameSliceEmpty(o.DeleteOptions.FilenameOptions.Filenames, o.DeleteOptions.FilenameOptions.Kustomize) { return fmt.Errorf("Must specify --filename to replace") } From e41f2a1d7c06a1fd49bc5055fba7e0437ecaec0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20G=C3=BC=C3=A7l=C3=BC?= Date: Thu, 7 Jul 2022 15:05:17 +0300 Subject: [PATCH 2/2] Change error messages --- staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go b/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go index 0377369cccf..bb6fc0289d1 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go @@ -228,11 +228,11 @@ func (o *ReplaceOptions) Validate() error { } if o.DeleteOptions.ForceDeletion && o.DryRunStrategy != cmdutil.DryRunNone { - return fmt.Errorf("dry-run can not be used when --force is set") + return fmt.Errorf("--dry-run can not be used when --force is set") } if cmdutil.IsFilenameSliceEmpty(o.DeleteOptions.FilenameOptions.Filenames, o.DeleteOptions.FilenameOptions.Kustomize) { - return fmt.Errorf("Must specify --filename to replace") + return fmt.Errorf("must specify --filename to replace") } if len(o.Raw) > 0 {