Merge pull request #98203 from yuzhiquan/feature-drain-ignore-error
Add ignore-errors flag for drain Kubernetes-commit: e26570a96ecf3a908357b7fd3d99f803aece9ad2
This commit is contained in:
		
						commit
						6fb4e430d0
					
				| 
						 | 
				
			
			@ -187,6 +187,7 @@ func NewCmdDrain(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobr
 | 
			
		|||
	}
 | 
			
		||||
	cmd.Flags().BoolVar(&o.drainer.Force, "force", o.drainer.Force, "Continue even if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet.")
 | 
			
		||||
	cmd.Flags().BoolVar(&o.drainer.IgnoreAllDaemonSets, "ignore-daemonsets", o.drainer.IgnoreAllDaemonSets, "Ignore DaemonSet-managed pods.")
 | 
			
		||||
	cmd.Flags().BoolVar(&o.drainer.IgnoreErrors, "ignore-errors", o.drainer.IgnoreErrors, "Ignore errors occurred between drain nodes in group.")
 | 
			
		||||
	cmd.Flags().BoolVar(&o.drainer.DeleteEmptyDirData, "delete-local-data", o.drainer.DeleteEmptyDirData, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
 | 
			
		||||
	cmd.Flags().MarkDeprecated("delete-local-data", "This option is deprecated and will be deleted. Use --delete-emptydir-data.")
 | 
			
		||||
	cmd.Flags().BoolVar(&o.drainer.DeleteEmptyDirData, "delete-emptydir-data", o.drainer.DeleteEmptyDirData, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
 | 
			
		||||
| 
						 | 
				
			
			@ -306,6 +307,13 @@ func (o *DrainCmdOptions) RunDrain() error {
 | 
			
		|||
			drainedNodes.Insert(info.Name)
 | 
			
		||||
			printObj(info.Object, o.Out)
 | 
			
		||||
		} else {
 | 
			
		||||
			if o.drainer.IgnoreErrors && len(o.nodeInfos) > 1 {
 | 
			
		||||
				fmt.Fprintf(o.ErrOut, "error: unable to drain node %q due to error:%s, continuing command...\n", info.Name, err)
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			fmt.Fprintf(o.ErrOut, "DEPRECATED WARNING: Aborting the drain command in a list of nodes will be deprecated.\n"+
 | 
			
		||||
				"The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain.\n"+
 | 
			
		||||
				"For now, users can try such experience via: --ignore-errors\n")
 | 
			
		||||
			fmt.Fprintf(o.ErrOut, "error: unable to drain node %q, aborting command...\n\n", info.Name)
 | 
			
		||||
			remainingNodes := []string{}
 | 
			
		||||
			fatal = err
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,6 +56,7 @@ type Helper struct {
 | 
			
		|||
	GracePeriodSeconds int
 | 
			
		||||
 | 
			
		||||
	IgnoreAllDaemonSets bool
 | 
			
		||||
	IgnoreErrors        bool
 | 
			
		||||
	Timeout             time.Duration
 | 
			
		||||
	DeleteEmptyDirData  bool
 | 
			
		||||
	Selector            string
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue