mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-06 16:06:51 +00:00
rollout undo add dry-run implementation
This commit is contained in:
@@ -38,6 +38,7 @@ type UndoOptions struct {
|
||||
Typer runtime.ObjectTyper
|
||||
Infos []*resource.Info
|
||||
ToRevision int64
|
||||
DryRun bool
|
||||
|
||||
Out io.Writer
|
||||
Filenames []string
|
||||
@@ -52,7 +53,10 @@ var (
|
||||
kubectl rollout undo deployment/abc
|
||||
|
||||
# Rollback to deployment revision 3
|
||||
kubectl rollout undo deployment/abc --to-revision=3`)
|
||||
kubectl rollout undo deployment/abc --to-revision=3
|
||||
|
||||
# Rollback to the previous deployment with dry-run
|
||||
kubectl rollout undo --dry-run=true deployment/abc`)
|
||||
)
|
||||
|
||||
func NewCmdRolloutUndo(f *cmdutil.Factory, out io.Writer) *cobra.Command {
|
||||
@@ -80,6 +84,7 @@ func NewCmdRolloutUndo(f *cmdutil.Factory, out io.Writer) *cobra.Command {
|
||||
cmd.Flags().Int64("to-revision", 0, "The revision to rollback to. Default to 0 (last revision).")
|
||||
usage := "Filename, directory, or URL to a file identifying the resource to get from a server."
|
||||
kubectl.AddJsonFilenameFlag(cmd, &opts.Filenames, usage)
|
||||
cmdutil.AddDryRunFlag(cmd)
|
||||
cmdutil.AddRecursiveFlag(cmd, &opts.Recursive)
|
||||
return cmd
|
||||
}
|
||||
@@ -92,6 +97,7 @@ func (o *UndoOptions) CompleteUndo(f *cmdutil.Factory, cmd *cobra.Command, out i
|
||||
o.ToRevision = cmdutil.GetFlagInt64(cmd, "to-revision")
|
||||
o.Mapper, o.Typer = f.Object(false)
|
||||
o.Out = out
|
||||
o.DryRun = cmdutil.GetFlagBool(cmd, "dry-run")
|
||||
|
||||
cmdNamespace, enforceNamespace, err := f.DefaultNamespace()
|
||||
if err != nil {
|
||||
@@ -129,7 +135,7 @@ func (o *UndoOptions) CompleteUndo(f *cmdutil.Factory, cmd *cobra.Command, out i
|
||||
func (o *UndoOptions) RunUndo() error {
|
||||
allErrs := []error{}
|
||||
for ix, info := range o.Infos {
|
||||
result, err := o.Rollbackers[ix].Rollback(info.Object, nil, o.ToRevision)
|
||||
result, err := o.Rollbackers[ix].Rollback(info.Object, nil, o.ToRevision, o.DryRun)
|
||||
if err != nil {
|
||||
allErrs = append(allErrs, cmdutil.AddSourceToErr("undoing", info.Source, err))
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user