mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	flag value bindings for kubectl attach/convert/delete/drain/edit/exec commands
This commit is contained in:
		@@ -83,9 +83,9 @@ func NewCmdAttach(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer)
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	cmdutil.AddPodRunningTimeoutFlag(cmd, defaultPodAttachTimeout)
 | 
			
		||||
	cmd.Flags().StringVarP(&options.ContainerName, "container", "c", "", "Container name. If omitted, the first container in the pod will be chosen")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.Stdin, "stdin", "i", false, "Pass stdin to the container")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.TTY, "tty", "t", false, "Stdin is a TTY")
 | 
			
		||||
	cmd.Flags().StringVarP(&options.ContainerName, "container", "c", options.ContainerName, "Container name. If omitted, the first container in the pod will be chosen")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.Stdin, "stdin", "i", options.Stdin, "Pass stdin to the container")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.TTY, "tty", "t", options.TTY, "Stdin is a TTY")
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,7 @@ var (
 | 
			
		||||
// NewCmdConvert creates a command object for the generic "convert" action, which
 | 
			
		||||
// translates the config file into a given version.
 | 
			
		||||
func NewCmdConvert(f cmdutil.Factory, out io.Writer) *cobra.Command {
 | 
			
		||||
	options := &ConvertOptions{}
 | 
			
		||||
	options := NewConvertOptions()
 | 
			
		||||
 | 
			
		||||
	cmd := &cobra.Command{
 | 
			
		||||
		Use: "convert -f FILENAME",
 | 
			
		||||
@@ -83,7 +83,7 @@ func NewCmdConvert(f cmdutil.Factory, out io.Writer) *cobra.Command {
 | 
			
		||||
	cmd.MarkFlagRequired("filename")
 | 
			
		||||
	cmdutil.AddValidateFlags(cmd)
 | 
			
		||||
	cmdutil.AddNonDeprecatedPrinterFlags(cmd)
 | 
			
		||||
	cmd.Flags().BoolVar(&options.local, "local", true, "If true, convert will NOT try to contact api-server but run locally.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.local, "local", options.local, "If true, convert will NOT try to contact api-server but run locally.")
 | 
			
		||||
	cmd.Flags().String("output-version", "", i18n.T("Output the formatted object with the given group version (for ex: 'extensions/v1beta1').)"))
 | 
			
		||||
	cmdutil.AddInclude3rdPartyFlags(cmd)
 | 
			
		||||
	return cmd
 | 
			
		||||
@@ -102,6 +102,10 @@ type ConvertOptions struct {
 | 
			
		||||
	specifiedOutputVersion schema.GroupVersion
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewConvertOptions() *ConvertOptions {
 | 
			
		||||
	return &ConvertOptions{local: true}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// outputVersion returns the preferred output version for generic content (JSON, YAML, or templates)
 | 
			
		||||
// defaultVersion is never mutated.  Nil simply allows clean passing in common usage from client.Config
 | 
			
		||||
func outputVersion(cmd *cobra.Command) (schema.GroupVersion, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -112,8 +112,16 @@ type DeleteOptions struct {
 | 
			
		||||
	ErrOut io.Writer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewDeleteOptions() *DeleteOptions {
 | 
			
		||||
	return &DeleteOptions{
 | 
			
		||||
		Cascade:         true,
 | 
			
		||||
		GracePeriod:     -1,
 | 
			
		||||
		Include3rdParty: true,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewCmdDelete(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
	options := &DeleteOptions{Include3rdParty: true}
 | 
			
		||||
	options := NewDeleteOptions()
 | 
			
		||||
	validArgs := cmdutil.ValidArgList(f)
 | 
			
		||||
 | 
			
		||||
	cmd := &cobra.Command{
 | 
			
		||||
@@ -140,14 +148,14 @@ func NewCmdDelete(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
	}
 | 
			
		||||
	usage := "containing the resource to delete."
 | 
			
		||||
	cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage)
 | 
			
		||||
	cmd.Flags().StringVarP(&options.Selector, "selector", "l", "", "Selector (label query) to filter on, not including uninitialized ones.")
 | 
			
		||||
	cmd.Flags().StringVarP(&options.Selector, "selector", "l", options.Selector, "Selector (label query) to filter on, not including uninitialized ones.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.DeleteAll, "all", options.DeleteAll, "Delete all resources, including uninitialized ones, in the namespace of the specified resource types.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.IgnoreNotFound, "ignore-not-found", false, "Treat \"resource not found\" as a successful delete. Defaults to \"true\" when --all is specified.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.Cascade, "cascade", true, "If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController).  Default true.")
 | 
			
		||||
	cmd.Flags().IntVar(&options.GracePeriod, "grace-period", -1, "Period of time in seconds given to the resource to terminate gracefully. Ignored if negative.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.DeleteNow, "now", false, "If true, resources are signaled for immediate shutdown (same as --grace-period=1).")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.ForceDeletion, "force", false, "Immediate deletion of some resources may result in inconsistency or data loss and requires confirmation.")
 | 
			
		||||
	cmd.Flags().DurationVar(&options.Timeout, "timeout", 0, "The length of time to wait before giving up on a delete, zero means determine a timeout from the size of the object")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.IgnoreNotFound, "ignore-not-found", options.IgnoreNotFound, "Treat \"resource not found\" as a successful delete. Defaults to \"true\" when --all is specified.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.Cascade, "cascade", options.Cascade, "If true, cascade the deletion of the resources managed by this resource (e.g. Pods created by a ReplicationController).  Default true.")
 | 
			
		||||
	cmd.Flags().IntVar(&options.GracePeriod, "grace-period", options.GracePeriod, "Period of time in seconds given to the resource to terminate gracefully. Ignored if negative.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.DeleteNow, "now", options.DeleteNow, "If true, resources are signaled for immediate shutdown (same as --grace-period=1).")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.ForceDeletion, "force", options.ForceDeletion, "Immediate deletion of some resources may result in inconsistency or data loss and requires confirmation.")
 | 
			
		||||
	cmd.Flags().DurationVar(&options.Timeout, "timeout", options.Timeout, "The length of time to wait before giving up on a delete, zero means determine a timeout from the size of the object")
 | 
			
		||||
	cmdutil.AddOutputVarFlagsForMutation(cmd, &options.Output)
 | 
			
		||||
	cmdutil.AddInclude3rdPartyVarFlags(cmd, &options.Include3rdParty)
 | 
			
		||||
	cmdutil.AddIncludeUninitializedFlag(cmd)
 | 
			
		||||
 
 | 
			
		||||
@@ -182,8 +182,18 @@ var (
 | 
			
		||||
		$ kubectl drain foo --grace-period=900`))
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func NewDrainOptions(f cmdutil.Factory, out, errOut io.Writer) *DrainOptions {
 | 
			
		||||
	return &DrainOptions{
 | 
			
		||||
		Factory:            f,
 | 
			
		||||
		Out:                out,
 | 
			
		||||
		ErrOut:             errOut,
 | 
			
		||||
		backOff:            clockwork.NewRealClock(),
 | 
			
		||||
		GracePeriodSeconds: -1,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewCmdDrain(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
	options := &DrainOptions{Factory: f, Out: out, ErrOut: errOut, backOff: clockwork.NewRealClock()}
 | 
			
		||||
	options := NewDrainOptions(f, out, errOut)
 | 
			
		||||
 | 
			
		||||
	cmd := &cobra.Command{
 | 
			
		||||
		Use: "drain NODE",
 | 
			
		||||
@@ -196,11 +206,11 @@ func NewCmdDrain(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
			cmdutil.CheckErr(options.RunDrain())
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	cmd.Flags().BoolVar(&options.Force, "force", false, "Continue even if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.IgnoreDaemonsets, "ignore-daemonsets", false, "Ignore DaemonSet-managed pods.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.DeleteLocalData, "delete-local-data", false, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
 | 
			
		||||
	cmd.Flags().IntVar(&options.GracePeriodSeconds, "grace-period", -1, "Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.")
 | 
			
		||||
	cmd.Flags().DurationVar(&options.Timeout, "timeout", 0, "The length of time to wait before giving up, zero means infinite")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.Force, "force", options.Force, "Continue even if there are pods not managed by a ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.IgnoreDaemonsets, "ignore-daemonsets", options.IgnoreDaemonsets, "Ignore DaemonSet-managed pods.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.DeleteLocalData, "delete-local-data", options.DeleteLocalData, "Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained).")
 | 
			
		||||
	cmd.Flags().IntVar(&options.GracePeriodSeconds, "grace-period", options.GracePeriodSeconds, "Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used.")
 | 
			
		||||
	cmd.Flags().DurationVar(&options.Timeout, "timeout", options.Timeout, "The length of time to wait before giving up, zero means infinite")
 | 
			
		||||
	cmd.Flags().StringVarP(&options.Selector, "selector", "l", options.Selector, "Selector (label query) to filter on")
 | 
			
		||||
	cmd.Flags().StringVarP(&options.PodSelector, "pod-selector", "", options.PodSelector, "Label selector to filter pods on the node")
 | 
			
		||||
 | 
			
		||||
@@ -212,7 +222,6 @@ func NewCmdDrain(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
// arguments and looks up the node using Builder
 | 
			
		||||
func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error {
 | 
			
		||||
	var err error
 | 
			
		||||
	o.Selector = cmdutil.GetFlagString(cmd, "selector")
 | 
			
		||||
 | 
			
		||||
	if len(args) == 0 && !cmd.Flags().Changed("selector") {
 | 
			
		||||
		return cmdutil.UsageErrorf(cmd, fmt.Sprintf("USAGE: %s [flags]", cmd.Use))
 | 
			
		||||
 
 | 
			
		||||
@@ -71,9 +71,11 @@ var (
 | 
			
		||||
 | 
			
		||||
func NewCmdEdit(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
	options := &editor.EditOptions{
 | 
			
		||||
		EditMode:        editor.NormalEditMode,
 | 
			
		||||
		ValidateOptions: cmdutil.ValidateOptions{EnableValidation: true},
 | 
			
		||||
		Include3rdParty: true,
 | 
			
		||||
		EditMode:           editor.NormalEditMode,
 | 
			
		||||
		Output:             "yaml",
 | 
			
		||||
		WindowsLineEndings: runtime.GOOS == "windows",
 | 
			
		||||
		ValidateOptions:    cmdutil.ValidateOptions{EnableValidation: true},
 | 
			
		||||
		Include3rdParty:    true,
 | 
			
		||||
	}
 | 
			
		||||
	validArgs := cmdutil.ValidArgList(f)
 | 
			
		||||
 | 
			
		||||
@@ -98,10 +100,9 @@ func NewCmdEdit(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command {
 | 
			
		||||
	usage := "to use to edit the resource"
 | 
			
		||||
	cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage)
 | 
			
		||||
	cmdutil.AddValidateOptionFlags(cmd, &options.ValidateOptions)
 | 
			
		||||
	cmd.Flags().StringVarP(&options.Output, "output", "o", "yaml", "Output format. One of: yaml|json.")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.OutputPatch, "output-patch", "", false, "Output the patch if the resource is edited.")
 | 
			
		||||
 | 
			
		||||
	cmd.Flags().BoolVar(&options.WindowsLineEndings, "windows-line-endings", runtime.GOOS == "windows",
 | 
			
		||||
	cmd.Flags().StringVarP(&options.Output, "output", "o", options.Output, "Output format. One of: yaml|json.")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.OutputPatch, "output-patch", "", options.OutputPatch, "Output the patch if the resource is edited.")
 | 
			
		||||
	cmd.Flags().BoolVar(&options.WindowsLineEndings, "windows-line-endings", options.WindowsLineEndings,
 | 
			
		||||
		"Defaults to the line ending native to your platform.")
 | 
			
		||||
 | 
			
		||||
	cmdutil.AddApplyAnnotationVarFlags(cmd, &options.ApplyAnnotation)
 | 
			
		||||
 
 | 
			
		||||
@@ -85,11 +85,11 @@ func NewCmdExec(f cmdutil.Factory, cmdIn io.Reader, cmdOut, cmdErr io.Writer) *c
 | 
			
		||||
			cmdutil.CheckErr(options.Run())
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	cmd.Flags().StringVarP(&options.PodName, "pod", "p", "", "Pod name")
 | 
			
		||||
	cmd.Flags().StringVarP(&options.PodName, "pod", "p", options.PodName, "Pod name")
 | 
			
		||||
	// TODO support UID
 | 
			
		||||
	cmd.Flags().StringVarP(&options.ContainerName, "container", "c", "", "Container name. If omitted, the first container in the pod will be chosen")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.Stdin, "stdin", "i", false, "Pass stdin to the container")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.TTY, "tty", "t", false, "Stdin is a TTY")
 | 
			
		||||
	cmd.Flags().StringVarP(&options.ContainerName, "container", "c", options.ContainerName, "Container name. If omitted, the first container in the pod will be chosen")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.Stdin, "stdin", "i", options.Stdin, "Pass stdin to the container")
 | 
			
		||||
	cmd.Flags().BoolVarP(&options.TTY, "tty", "t", options.TTY, "Stdin is a TTY")
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user