diff --git a/pkg/utils/kube/resource_ops.go b/pkg/utils/kube/resource_ops.go index f425fb2ef..8b78ea848 100644 --- a/pkg/utils/kube/resource_ops.go +++ b/pkg/utils/kube/resource_ops.go @@ -428,6 +428,10 @@ func (k *kubectlServerSideDiffDryRunApplier) newApplyOptions(ioStreams genericcl } o.ForceConflicts = true + + if err := o.Validate(); err != nil { + return nil, fmt.Errorf("error validating options: %w", err) + } return o, nil } @@ -457,6 +461,10 @@ func (k *kubectlResourceOperations) newApplyOptions(ioStreams genericclioptions. if serverSideApply { o.ForceConflicts = true } + + if err := o.Validate(); err != nil { + return nil, fmt.Errorf("error validating options: %w", err) + } return o, nil } @@ -491,6 +499,10 @@ func (k *kubectlResourceOperations) newCreateOptions(ioStreams genericclioptions return printer.PrintObj(obj, o.Out) } o.FilenameOptions.Filenames = []string{fileName} + + if err := o.Validate(); err != nil { + return nil, fmt.Errorf("error validating options: %w", err) + } return o, nil } @@ -541,7 +553,14 @@ func (k *kubectlResourceOperations) newReplaceOptions(config *rest.Config, f cmd o.DeleteOptions.Filenames = []string{fileName} o.Namespace = namespace - o.DeleteOptions.ForceDeletion = force + + if dryRunStrategy == cmdutil.DryRunNone { + o.DeleteOptions.ForceDeletion = force + } + + if err := o.Validate(); err != nil { + return nil, fmt.Errorf("error validating options: %w", err) + } return o, nil } @@ -571,6 +590,10 @@ func newReconcileOptions(f cmdutil.Factory, kubeClient *kubernetes.Clientset, fi return nil, fmt.Errorf("error configuring printer: %w", err) } o.PrintObject = printer.PrintObj + + if err := o.Validate(); err != nil { + return nil, fmt.Errorf("error validating options: %w", err) + } return o, nil }