Documentation

Overview

    Package genericclioptions contains flags which can be added to you command, bound, completed, and produce useful helper functions. Nothing in this package can depend on kube/kube

    Index

    Constants

    View Source
    const ChangeCauseAnnotation = "kubernetes.io/change-cause"

      ChangeCauseAnnotation is the annotation indicating a guess at "why" something was changed

      Variables

      View Source
      var (
      	ErrEmptyConfig = clientcmd.NewEmptyConfigError(`Missing or incomplete configuration info.  Please point to an existing, complete config file:
      
      
        1. Via the command-line flag --kubeconfig
        2. Via the KUBECONFIG environment variable
        3. In your home directory as ~/.kube/config
      
      To view or setup config directly use the 'config' command.`)
      )

      Functions

      func IsNoCompatiblePrinterError

      func IsNoCompatiblePrinterError(err error) bool

      Types

      type ChangeCauseRecorder

      type ChangeCauseRecorder struct {
      	// contains filtered or unexported fields
      }

        ChangeCauseRecorder annotates a "change-cause" to an input runtime object

        func (*ChangeCauseRecorder) MakeRecordMergePatch

        func (r *ChangeCauseRecorder) MakeRecordMergePatch(obj runtime.Object) ([]byte, error)

          MakeRecordMergePatch produces a merge patch for updating the recording annotation.

          func (*ChangeCauseRecorder) Record

          func (r *ChangeCauseRecorder) Record(obj runtime.Object) error

            Record annotates a "change-cause" to a given info if either "shouldRecord" is true, or the resource info previously contained a "change-cause" annotation.

            type ConfigFlags

            type ConfigFlags struct {
            	CacheDir   *string
            	KubeConfig *string
            
            	// config flags
            	ClusterName      *string
            	AuthInfoName     *string
            	Context          *string
            	Namespace        *string
            	APIServer        *string
            	TLSServerName    *string
            	Insecure         *bool
            	CertFile         *string
            	KeyFile          *string
            	CAFile           *string
            	BearerToken      *string
            	Impersonate      *string
            	ImpersonateGroup *[]string
            	Username         *string
            	Password         *string
            	Timeout          *string
            	// contains filtered or unexported fields
            }

              ConfigFlags composes the set of values necessary for obtaining a REST client config

              func NewConfigFlags

              func NewConfigFlags(usePersistentConfig bool) *ConfigFlags

                NewConfigFlags returns ConfigFlags with default values set

                func (*ConfigFlags) AddFlags

                func (f *ConfigFlags) AddFlags(flags *pflag.FlagSet)

                  AddFlags binds client configuration flags to a given flagset

                  func (*ConfigFlags) ToDiscoveryClient

                  func (f *ConfigFlags) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error)

                    ToDiscoveryClient implements RESTClientGetter. Expects the AddFlags method to have been called. Returns a CachedDiscoveryInterface using a computed RESTConfig.

                    func (*ConfigFlags) ToRESTConfig

                    func (f *ConfigFlags) ToRESTConfig() (*rest.Config, error)

                      ToRESTConfig implements RESTClientGetter. Returns a REST client configuration based on a provided path to a .kubeconfig file, loading rules, and config flag overrides. Expects the AddFlags method to have been called.

                      func (*ConfigFlags) ToRESTMapper

                      func (f *ConfigFlags) ToRESTMapper() (meta.RESTMapper, error)

                        ToRESTMapper returns a mapper.

                        func (*ConfigFlags) ToRawKubeConfigLoader

                        func (f *ConfigFlags) ToRawKubeConfigLoader() clientcmd.ClientConfig

                          ToRawKubeConfigLoader binds config flag values to config overrides Returns an interactive clientConfig if the password flag is enabled, or a non-interactive clientConfig otherwise.

                          func (*ConfigFlags) WithDeprecatedPasswordFlag

                          func (f *ConfigFlags) WithDeprecatedPasswordFlag() *ConfigFlags

                            WithDeprecatedPasswordFlag enables the username and password config flags

                            type FileNameFlags

                            type FileNameFlags struct {
                            	Usage string
                            
                            	Filenames *[]string
                            	Kustomize *string
                            	Recursive *bool
                            }

                              Usage of this struct by itself is discouraged. These flags are composed by ResourceBuilderFlags which should be used instead.

                              func (*FileNameFlags) AddFlags

                              func (o *FileNameFlags) AddFlags(flags *pflag.FlagSet)

                              func (*FileNameFlags) ToOptions

                              func (o *FileNameFlags) ToOptions() resource.FilenameOptions

                              type GoTemplatePrintFlags

                              type GoTemplatePrintFlags struct {
                              	// indicates if it is OK to ignore missing keys for rendering
                              	// an output template.
                              	AllowMissingKeys *bool
                              	TemplateArgument *string
                              }

                                GoTemplatePrintFlags provides default flags necessary for template printing. Given the following flag values, a printer can be requested that knows how to handle printing based on these values.

                                func NewGoTemplatePrintFlags

                                func NewGoTemplatePrintFlags() *GoTemplatePrintFlags

                                  NewGoTemplatePrintFlags returns flags associated with --template printing, with default values set.

                                  func (*GoTemplatePrintFlags) AddFlags

                                  func (f *GoTemplatePrintFlags) AddFlags(c *cobra.Command)

                                    AddFlags receives a *cobra.Command reference and binds flags related to template printing to it

                                    func (*GoTemplatePrintFlags) AllowedFormats

                                    func (f *GoTemplatePrintFlags) AllowedFormats() []string

                                    func (*GoTemplatePrintFlags) ToPrinter

                                    func (f *GoTemplatePrintFlags) ToPrinter(templateFormat string) (printers.ResourcePrinter, error)

                                      ToPrinter receives an templateFormat and returns a printer capable of handling --template format printing. Returns false if the specified templateFormat does not match a template format.

                                      type IOStreams

                                      type IOStreams struct {
                                      	// In think, os.Stdin
                                      	In io.Reader
                                      	// Out think, os.Stdout
                                      	Out io.Writer
                                      	// ErrOut think, os.Stderr
                                      	ErrOut io.Writer
                                      }

                                        IOStreams provides the standard names for iostreams. This is useful for embedding and for unit testing. Inconsistent and different names make it hard to read and review code

                                        func NewTestIOStreams

                                        func NewTestIOStreams() (IOStreams, *bytes.Buffer, *bytes.Buffer, *bytes.Buffer)

                                          NewTestIOStreams returns a valid IOStreams and in, out, errout buffers for unit tests

                                          func NewTestIOStreamsDiscard

                                          func NewTestIOStreamsDiscard() IOStreams

                                            NewTestIOStreamsDiscard returns a valid IOStreams that just discards

                                            type JSONPathPrintFlags

                                            type JSONPathPrintFlags struct {
                                            	// indicates if it is OK to ignore missing keys for rendering
                                            	// an output template.
                                            	AllowMissingKeys *bool
                                            	TemplateArgument *string
                                            }

                                              JSONPathPrintFlags provides default flags necessary for template printing. Given the following flag values, a printer can be requested that knows how to handle printing based on these values.

                                              func NewJSONPathPrintFlags

                                              func NewJSONPathPrintFlags(templateValue string, allowMissingKeys bool) *JSONPathPrintFlags

                                                NewJSONPathPrintFlags returns flags associated with --template printing, with default values set.

                                                func (*JSONPathPrintFlags) AddFlags

                                                func (f *JSONPathPrintFlags) AddFlags(c *cobra.Command)

                                                  AddFlags receives a *cobra.Command reference and binds flags related to template printing to it

                                                  func (*JSONPathPrintFlags) AllowedFormats

                                                  func (f *JSONPathPrintFlags) AllowedFormats() []string

                                                  func (*JSONPathPrintFlags) ToPrinter

                                                  func (f *JSONPathPrintFlags) ToPrinter(templateFormat string) (printers.ResourcePrinter, error)

                                                    ToPrinter receives an templateFormat and returns a printer capable of handling --template format printing. Returns false if the specified templateFormat does not match a template format.

                                                    type JSONYamlPrintFlags

                                                    type JSONYamlPrintFlags struct {
                                                    }

                                                      JSONYamlPrintFlags provides default flags necessary for json/yaml printing. Given the following flag values, a printer can be requested that knows how to handle printing based on these values.

                                                      func NewJSONYamlPrintFlags

                                                      func NewJSONYamlPrintFlags() *JSONYamlPrintFlags

                                                        NewJSONYamlPrintFlags returns flags associated with yaml or json printing, with default values set.

                                                        func (*JSONYamlPrintFlags) AddFlags

                                                        func (f *JSONYamlPrintFlags) AddFlags(c *cobra.Command)

                                                          AddFlags receives a *cobra.Command reference and binds flags related to JSON or Yaml printing to it

                                                          func (*JSONYamlPrintFlags) AllowedFormats

                                                          func (f *JSONYamlPrintFlags) AllowedFormats() []string

                                                          func (*JSONYamlPrintFlags) ToPrinter

                                                          func (f *JSONYamlPrintFlags) ToPrinter(outputFormat string) (printers.ResourcePrinter, error)

                                                            ToPrinter receives an outputFormat and returns a printer capable of handling --output=(yaml|json) printing. Returns false if the specified outputFormat does not match a supported format. Supported Format types can be found in pkg/printers/printers.go

                                                            type KubeTemplatePrintFlags

                                                            type KubeTemplatePrintFlags struct {
                                                            	GoTemplatePrintFlags *GoTemplatePrintFlags
                                                            	JSONPathPrintFlags   *JSONPathPrintFlags
                                                            
                                                            	AllowMissingKeys *bool
                                                            	TemplateArgument *string
                                                            }

                                                              KubeTemplatePrintFlags composes print flags that provide both a JSONPath and a go-template printer. This is necessary if dealing with cases that require support both both printers, since both sets of flags require overlapping flags.

                                                              func NewKubeTemplatePrintFlags

                                                              func NewKubeTemplatePrintFlags() *KubeTemplatePrintFlags

                                                                NewKubeTemplatePrintFlags returns flags associated with --template printing, with default values set.

                                                                func (*KubeTemplatePrintFlags) AddFlags

                                                                func (f *KubeTemplatePrintFlags) AddFlags(c *cobra.Command)

                                                                  AddFlags receives a *cobra.Command reference and binds flags related to template printing to it

                                                                  func (*KubeTemplatePrintFlags) AllowedFormats

                                                                  func (f *KubeTemplatePrintFlags) AllowedFormats() []string

                                                                  func (*KubeTemplatePrintFlags) ToPrinter

                                                                  func (f *KubeTemplatePrintFlags) ToPrinter(outputFormat string) (printers.ResourcePrinter, error)

                                                                  type NamePrintFlags

                                                                  type NamePrintFlags struct {
                                                                  	// Operation describes the name of the action that
                                                                  	// took place on an object, to be included in the
                                                                  	// finalized "successful" message.
                                                                  	Operation string
                                                                  }

                                                                    NamePrintFlags provides default flags necessary for printing a resource's fully-qualified Kind.group/name, or a successful message about that resource if an Operation is provided.

                                                                    func NewNamePrintFlags

                                                                    func NewNamePrintFlags(operation string) *NamePrintFlags

                                                                      NewNamePrintFlags returns flags associated with --name printing, with default values set.

                                                                      func (*NamePrintFlags) AddFlags

                                                                      func (f *NamePrintFlags) AddFlags(c *cobra.Command)

                                                                        AddFlags receives a *cobra.Command reference and binds flags related to name printing to it

                                                                        func (*NamePrintFlags) AllowedFormats

                                                                        func (f *NamePrintFlags) AllowedFormats() []string

                                                                        func (*NamePrintFlags) Complete

                                                                        func (f *NamePrintFlags) Complete(successTemplate string) error

                                                                        func (*NamePrintFlags) ToPrinter

                                                                        func (f *NamePrintFlags) ToPrinter(outputFormat string) (printers.ResourcePrinter, error)

                                                                          ToPrinter receives an outputFormat and returns a printer capable of handling --output=name printing. Returns false if the specified outputFormat does not match a supported format. Supported format types can be found in pkg/printers/printers.go

                                                                          type NoCompatiblePrinterError

                                                                          type NoCompatiblePrinterError struct {
                                                                          	OutputFormat   *string
                                                                          	AllowedFormats []string
                                                                          	Options        interface{}
                                                                          }

                                                                          func (NoCompatiblePrinterError) Error

                                                                          func (e NoCompatiblePrinterError) Error() string

                                                                          type NoopRecorder

                                                                          type NoopRecorder struct{}

                                                                            NoopRecorder does nothing. It is a "do nothing" that can be returned so code doesn't switch on it.

                                                                            func (NoopRecorder) MakeRecordMergePatch

                                                                            func (r NoopRecorder) MakeRecordMergePatch(obj runtime.Object) ([]byte, error)

                                                                              MakeRecordMergePatch implements Recorder

                                                                              func (NoopRecorder) Record

                                                                              func (r NoopRecorder) Record(obj runtime.Object) error

                                                                                Record implements Recorder

                                                                                type PrintFlags

                                                                                type PrintFlags struct {
                                                                                	JSONYamlPrintFlags   *JSONYamlPrintFlags
                                                                                	NamePrintFlags       *NamePrintFlags
                                                                                	TemplatePrinterFlags *KubeTemplatePrintFlags
                                                                                
                                                                                	TypeSetterPrinter *printers.TypeSetterPrinter
                                                                                
                                                                                	OutputFormat *string
                                                                                
                                                                                	// OutputFlagSpecified indicates whether the user specifically requested a certain kind of output.
                                                                                	// Using this function allows a sophisticated caller to change the flag binding logic if they so desire.
                                                                                	OutputFlagSpecified func() bool
                                                                                }

                                                                                  PrintFlags composes common printer flag structs used across all commands, and provides a method of retrieving a known printer based on flag values provided.

                                                                                  func NewPrintFlags

                                                                                  func NewPrintFlags(operation string) *PrintFlags

                                                                                  func (*PrintFlags) AddFlags

                                                                                  func (f *PrintFlags) AddFlags(cmd *cobra.Command)

                                                                                  func (*PrintFlags) AllowedFormats

                                                                                  func (f *PrintFlags) AllowedFormats() []string

                                                                                  func (*PrintFlags) Complete

                                                                                  func (f *PrintFlags) Complete(successTemplate string) error

                                                                                  func (*PrintFlags) ToPrinter

                                                                                  func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error)

                                                                                  func (*PrintFlags) WithDefaultOutput

                                                                                  func (f *PrintFlags) WithDefaultOutput(output string) *PrintFlags

                                                                                    WithDefaultOutput sets a default output format if one is not provided through a flag value

                                                                                    func (*PrintFlags) WithTypeSetter

                                                                                    func (f *PrintFlags) WithTypeSetter(scheme *runtime.Scheme) *PrintFlags

                                                                                      WithTypeSetter sets a wrapper than will surround the returned printer with a printer to type resources

                                                                                      type RESTClientGetter

                                                                                      type RESTClientGetter interface {
                                                                                      	// ToRESTConfig returns restconfig
                                                                                      	ToRESTConfig() (*rest.Config, error)
                                                                                      	// ToDiscoveryClient returns discovery client
                                                                                      	ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error)
                                                                                      	// ToRESTMapper returns a restmapper
                                                                                      	ToRESTMapper() (meta.RESTMapper, error)
                                                                                      	// ToRawKubeConfigLoader return kubeconfig loader as-is
                                                                                      	ToRawKubeConfigLoader() clientcmd.ClientConfig
                                                                                      }

                                                                                        RESTClientGetter is an interface that the ConfigFlags describe to provide an easier way to mock for commands and eliminate the direct coupling to a struct type. Users may wish to duplicate this type in their own packages as per the golang type overlapping.

                                                                                        type RecordFlags

                                                                                        type RecordFlags struct {
                                                                                        	// Record indicates the state of the recording flag.  It is a pointer so a caller can opt out or rebind
                                                                                        	Record *bool
                                                                                        	// contains filtered or unexported fields
                                                                                        }

                                                                                          RecordFlags contains all flags associated with the "--record" operation

                                                                                          func NewRecordFlags

                                                                                          func NewRecordFlags() *RecordFlags

                                                                                            NewRecordFlags provides a RecordFlags with reasonable default values set for use

                                                                                            func (*RecordFlags) AddFlags

                                                                                            func (f *RecordFlags) AddFlags(cmd *cobra.Command)

                                                                                              AddFlags binds the requested flags to the provided flagset TODO have this only take a flagset

                                                                                              func (*RecordFlags) Complete

                                                                                              func (f *RecordFlags) Complete(cmd *cobra.Command) error

                                                                                                Complete is called before the command is run, but after it is invoked to finish the state of the struct before use.

                                                                                                func (*RecordFlags) CompleteWithChangeCause

                                                                                                func (f *RecordFlags) CompleteWithChangeCause(cause string) error

                                                                                                func (*RecordFlags) ToRecorder

                                                                                                func (f *RecordFlags) ToRecorder() (Recorder, error)

                                                                                                  ToRecorder returns a ChangeCause recorder if --record=false was not explicitly given by the user

                                                                                                  type Recorder

                                                                                                  type Recorder interface {
                                                                                                  	// Record records why a runtime.Object was changed in an annotation.
                                                                                                  	Record(runtime.Object) error
                                                                                                  	MakeRecordMergePatch(runtime.Object) ([]byte, error)
                                                                                                  }

                                                                                                    Recorder is used to record why a runtime.Object was changed in an annotation.

                                                                                                    type ResourceBuilderFlags

                                                                                                    type ResourceBuilderFlags struct {
                                                                                                    	FileNameFlags *FileNameFlags
                                                                                                    
                                                                                                    	LabelSelector *string
                                                                                                    	FieldSelector *string
                                                                                                    	AllNamespaces *bool
                                                                                                    	All           *bool
                                                                                                    	Local         *bool
                                                                                                    
                                                                                                    	Scheme           *runtime.Scheme
                                                                                                    	Latest           bool
                                                                                                    	StopOnFirstError bool
                                                                                                    }

                                                                                                      ResourceBuilderFlags are flags for finding resources TODO(juanvallejo): wire --local flag from commands through

                                                                                                      func NewResourceBuilderFlags

                                                                                                      func NewResourceBuilderFlags() *ResourceBuilderFlags

                                                                                                        NewResourceBuilderFlags returns a default ResourceBuilderFlags

                                                                                                        func (*ResourceBuilderFlags) AddFlags

                                                                                                        func (o *ResourceBuilderFlags) AddFlags(flagset *pflag.FlagSet)

                                                                                                          AddFlags registers flags for finding resources

                                                                                                          func (*ResourceBuilderFlags) StopOnError

                                                                                                          func (o *ResourceBuilderFlags) StopOnError() *ResourceBuilderFlags

                                                                                                          func (*ResourceBuilderFlags) ToBuilder

                                                                                                          func (o *ResourceBuilderFlags) ToBuilder(restClientGetter RESTClientGetter, resources []string) ResourceFinder

                                                                                                            ToBuilder gives you back a resource finder to visit resources that are located

                                                                                                            func (*ResourceBuilderFlags) WithAll

                                                                                                            func (o *ResourceBuilderFlags) WithAll(defaultVal bool) *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithAllNamespaces

                                                                                                            func (o *ResourceBuilderFlags) WithAllNamespaces(defaultVal bool) *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithFieldSelector

                                                                                                            func (o *ResourceBuilderFlags) WithFieldSelector(selector string) *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithFile

                                                                                                            func (o *ResourceBuilderFlags) WithFile(recurse bool, files ...string) *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithLabelSelector

                                                                                                            func (o *ResourceBuilderFlags) WithLabelSelector(selector string) *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithLatest

                                                                                                            func (o *ResourceBuilderFlags) WithLatest() *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithLocal

                                                                                                            func (o *ResourceBuilderFlags) WithLocal(defaultVal bool) *ResourceBuilderFlags

                                                                                                            func (*ResourceBuilderFlags) WithScheme

                                                                                                            func (o *ResourceBuilderFlags) WithScheme(scheme *runtime.Scheme) *ResourceBuilderFlags

                                                                                                            type ResourceFindBuilderWrapper

                                                                                                            type ResourceFindBuilderWrapper struct {
                                                                                                            	// contains filtered or unexported fields
                                                                                                            }

                                                                                                              ResourceFindBuilderWrapper wraps a builder in an interface

                                                                                                              func (*ResourceFindBuilderWrapper) Do

                                                                                                                Do finds you resources to check

                                                                                                                type ResourceFinder

                                                                                                                type ResourceFinder interface {
                                                                                                                	Do() resource.Visitor
                                                                                                                }

                                                                                                                  ResourceFinder allows mocking the resource builder TODO resource builders needs to become more interfacey

                                                                                                                  func NewSimpleFakeResourceFinder

                                                                                                                  func NewSimpleFakeResourceFinder(infos ...*resource.Info) ResourceFinder

                                                                                                                    NewSimpleResourceFinder builds a super simple ResourceFinder that just iterates over the objects you provided

                                                                                                                    func ResourceFinderForResult

                                                                                                                    func ResourceFinderForResult(result resource.Visitor) ResourceFinder

                                                                                                                      ResourceFinderForResult skins a visitor for re-use as a ResourceFinder

                                                                                                                      type ResourceFinderFunc

                                                                                                                      type ResourceFinderFunc func() resource.Visitor

                                                                                                                        ResourceFinderFunc is a handy way to make a ResourceFinder

                                                                                                                        func (ResourceFinderFunc) Do

                                                                                                                          Do implements ResourceFinder

                                                                                                                          type TestConfigFlags

                                                                                                                          type TestConfigFlags struct {
                                                                                                                          	// contains filtered or unexported fields
                                                                                                                          }

                                                                                                                          func NewTestConfigFlags

                                                                                                                          func NewTestConfigFlags() *TestConfigFlags

                                                                                                                          func (*TestConfigFlags) ToDiscoveryClient

                                                                                                                          func (f *TestConfigFlags) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error)

                                                                                                                          func (*TestConfigFlags) ToRESTConfig

                                                                                                                          func (f *TestConfigFlags) ToRESTConfig() (*rest.Config, error)

                                                                                                                          func (*TestConfigFlags) ToRESTMapper

                                                                                                                          func (f *TestConfigFlags) ToRESTMapper() (meta.RESTMapper, error)

                                                                                                                          func (*TestConfigFlags) ToRawKubeConfigLoader

                                                                                                                          func (f *TestConfigFlags) ToRawKubeConfigLoader() clientcmd.ClientConfig

                                                                                                                          func (*TestConfigFlags) WithClientConfig

                                                                                                                          func (f *TestConfigFlags) WithClientConfig(clientConfig clientcmd.ClientConfig) *TestConfigFlags

                                                                                                                          func (*TestConfigFlags) WithDiscoveryClient

                                                                                                                          func (*TestConfigFlags) WithNamespace

                                                                                                                          func (f *TestConfigFlags) WithNamespace(ns string) *TestConfigFlags

                                                                                                                          func (*TestConfigFlags) WithRESTMapper

                                                                                                                          func (f *TestConfigFlags) WithRESTMapper(mapper meta.RESTMapper) *TestConfigFlags