Documentation

Overview

    Package resource assists clients in dealing with RESTful objects that match the Kubernetes API conventions. The Helper object provides simple CRUD operations on resources. The Visitor interface makes it easy to deal with multiple resources in bulk for retrieval and operation. The Builder object simplifies converting standard command line arguments and parameters into a Visitor that can iterate over all of the identified resources, whether on the server or on the local filesystem.

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var FileExtensions = []string{".json", ".yaml", ".yml"}
    View Source
    var InputExtensions = append(FileExtensions, "stdin")

    Functions

    func AsVersionedObject

    func AsVersionedObject(infos []*Info, forceList bool, version schema.GroupVersion, encoder runtime.Encoder) (runtime.Object, error)

      AsVersionedObject converts a list of infos into a single object - either a List containing the objects as children, or if only a single Object is present, as that object. The provided version will be preferred as the conversion target, but the Object's mapping version will be used if that version is not present.

      func AsVersionedObjects

      func AsVersionedObjects(infos []*Info, version schema.GroupVersion, encoder runtime.Encoder) ([]runtime.Object, error)

        AsVersionedObjects converts a list of infos into versioned objects. The provided version will be preferred as the conversion target, but the Object's mapping version will be used if that version is not present.

        func CreateAndRefresh

        func CreateAndRefresh(info *Info) error

          CreateAndRefresh creates an object from input info and refreshes info with that object

          func FilterNamespace

          func FilterNamespace(info *Info, err error) error

            FilterNamespace omits the namespace if the object is not namespace scoped

            func HasNames

            func HasNames(args []string) (bool, error)

              HasNames returns true if the provided args contain resource names

              func IsUsageError

              func IsUsageError(err error) bool

                TODO: expand this to include other errors.

                func MultipleTypesRequested

                func MultipleTypesRequested(args []string) bool

                  MultipleTypesRequested returns true if the provided args contain multiple resource kinds

                  func NewDiscoveryFilteredExpander

                  func NewDiscoveryFilteredExpander(delegate CategoryExpander, client discovery.DiscoveryInterface) (discoveryFilteredExpander, error)

                    NewDiscoveryFilteredExpander returns a category expander that filters the returned groupresources by what the server has available

                    func RetrieveLatest

                    func RetrieveLatest(info *Info, err error) error

                      RetrieveLatest updates the Object on each Info by invoking a standard client Get.

                      func RetrieveLazy

                      func RetrieveLazy(info *Info, err error) error

                        RetrieveLazy updates the object if it has not been loaded yet.

                        func SplitResourceArgument

                        func SplitResourceArgument(arg string) []string

                          SplitResourceArgument splits the argument with commas and returns unique strings in the original order.

                          func TryConvert

                          func TryConvert(converter runtime.ObjectConvertor, object runtime.Object, versions ...schema.GroupVersion) (runtime.Object, error)

                            TryConvert attempts to convert the given object to the provided versions in order. This function assumes the object is in internal version.

                            func UpdateObjectNamespace

                            func UpdateObjectNamespace(info *Info, err error) error

                            func ValidateSchema

                            func ValidateSchema(data []byte, schema validation.Schema) error

                            Types

                            type Builder

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

                              Builder provides convenience functions for taking arguments and parameters from the command line and converting them to a list of resources to iterate over using the Visitor interface.

                              func NewBuilder

                              func NewBuilder(mapper meta.RESTMapper, categoryExpander CategoryExpander, typer runtime.ObjectTyper, clientMapper ClientMapper, decoder runtime.Decoder) *Builder

                                NewBuilder creates a builder that operates on generic objects.

                                func (*Builder) AllNamespaces

                                func (b *Builder) AllNamespaces(allNamespace bool) *Builder

                                  AllNamespaces instructs the builder to metav1.NamespaceAll as a namespace to request resources across all of the namespace. This overrides the namespace set by NamespaceParam().

                                  func (*Builder) ContinueOnError

                                  func (b *Builder) ContinueOnError() *Builder

                                    ContinueOnError will attempt to load and visit as many objects as possible, even if some visits return errors or some objects cannot be loaded. The default behavior is to terminate after the first error is returned from a VisitorFunc.

                                    func (*Builder) DefaultNamespace

                                    func (b *Builder) DefaultNamespace() *Builder

                                      DefaultNamespace instructs the builder to set the namespace value for any object found to NamespaceParam() if empty.

                                      func (*Builder) Do

                                      func (b *Builder) Do() *Result

                                        Do returns a Result object with a Visitor for the resources identified by the Builder. The visitor will respect the error behavior specified by ContinueOnError. Note that stream inputs are consumed by the first execution - use Infos() or Object() on the Result to capture a list for further iteration.

                                        func (*Builder) ExportParam

                                        func (b *Builder) ExportParam(export bool) *Builder

                                          ExportParam accepts the export boolean for these resources

                                          func (*Builder) FilenameParam

                                          func (b *Builder) FilenameParam(enforceNamespace bool, filenameOptions *FilenameOptions) *Builder

                                            FilenameParam groups input in two categories: URLs and files (files, directories, STDIN) If enforceNamespace is false, namespaces in the specs will be allowed to override the default namespace. If it is true, namespaces that don't match will cause an error. If ContinueOnError() is set prior to this method, objects on the path that are not recognized will be ignored (but logged at V(2)).

                                            func (*Builder) Flatten

                                            func (b *Builder) Flatten() *Builder

                                              Flatten will convert any objects with a field named "Items" that is an array of runtime.Object compatible types into individual entries and give them their own items. The original object is not passed to any visitors.

                                              func (*Builder) Latest

                                              func (b *Builder) Latest() *Builder

                                                Latest will fetch the latest copy of any objects loaded from URLs or files from the server.

                                                func (*Builder) NamespaceParam

                                                func (b *Builder) NamespaceParam(namespace string) *Builder

                                                  NamespaceParam accepts the namespace that these resources should be considered under from - used by DefaultNamespace() and RequireNamespace()

                                                  func (*Builder) Path

                                                  func (b *Builder) Path(recursive bool, paths ...string) *Builder

                                                    Path accepts a set of paths that may be files, directories (all can containing one or more resources). Creates a FileVisitor for each file and then each FileVisitor is streaming the content to a StreamVisitor. If ContinueOnError() is set prior to this method being called, objects on the path that are unrecognized will be ignored (but logged at V(2)).

                                                    func (*Builder) ReplaceAliases

                                                    func (b *Builder) ReplaceAliases(input string) string

                                                      ReplaceAliases accepts an argument and tries to expand any existing aliases found in it

                                                      func (*Builder) RequireNamespace

                                                      func (b *Builder) RequireNamespace() *Builder

                                                        RequireNamespace instructs the builder to set the namespace value for any object found to NamespaceParam() if empty, and if the value on the resource does not match NamespaceParam() an error will be returned.

                                                        func (*Builder) RequireObject

                                                        func (b *Builder) RequireObject(require bool) *Builder

                                                          RequireObject ensures that resulting infos have an object set. If false, resulting info may not have an object set.

                                                          func (*Builder) ResourceNames

                                                          func (b *Builder) ResourceNames(resource string, names ...string) *Builder

                                                            ResourceNames accepts a default type and one or more names, and creates tuples of resources

                                                            func (*Builder) ResourceTypeOrNameArgs

                                                            func (b *Builder) ResourceTypeOrNameArgs(allowEmptySelector bool, args ...string) *Builder

                                                              ResourceTypeOrNameArgs indicates that the builder should accept arguments of the form `(<type1>[,<type2>,...]|<type> <name1>[,<name2>,...])`. When one argument is received, the types provided will be retrieved from the server (and be comma delimited). When two or more arguments are received, they must be a single type and resource name(s). The allowEmptySelector permits to select all the resources (via Everything func).

                                                              func (*Builder) ResourceTypes

                                                              func (b *Builder) ResourceTypes(types ...string) *Builder

                                                                ResourceTypes is a list of types of resources to operate on, when listing objects on the server or retrieving objects that match a selector.

                                                                func (*Builder) Schema

                                                                func (b *Builder) Schema(schema validation.Schema) *Builder

                                                                func (*Builder) SelectAllParam

                                                                func (b *Builder) SelectAllParam(selectAll bool) *Builder

                                                                  SelectEverythingParam

                                                                  func (*Builder) Selector

                                                                  func (b *Builder) Selector(selector labels.Selector) *Builder

                                                                    Selector accepts a selector directly, and if non nil will trigger a list action.

                                                                    func (*Builder) SelectorParam

                                                                    func (b *Builder) SelectorParam(s string) *Builder

                                                                      SelectorParam defines a selector that should be applied to the object types to load. This will not affect files loaded from disk or URL. If the parameter is empty it is a no-op - to select all resources invoke `b.Selector(labels.Everything)`.

                                                                      func (*Builder) SingleResourceType

                                                                      func (b *Builder) SingleResourceType() *Builder

                                                                        SingleResourceType will cause the builder to error if the user specifies more than a single type of resource.

                                                                        func (*Builder) Stdin

                                                                        func (b *Builder) Stdin() *Builder

                                                                          Stdin will read objects from the standard input. If ContinueOnError() is set prior to this method being called, objects in the stream that are unrecognized will be ignored (but logged at V(2)).

                                                                          func (*Builder) Stream

                                                                          func (b *Builder) Stream(r io.Reader, name string) *Builder

                                                                            Stream will read objects from the provided reader, and if an error occurs will include the name string in the error message. If ContinueOnError() is set prior to this method being called, objects in the stream that are unrecognized will be ignored (but logged at V(2)).

                                                                            func (*Builder) URL

                                                                            func (b *Builder) URL(httpAttemptCount int, urls ...*url.URL) *Builder

                                                                              URL accepts a number of URLs directly.

                                                                              type CategoryExpander

                                                                              type CategoryExpander interface {
                                                                              	Expand(category string) ([]schema.GroupResource, bool)
                                                                              }
                                                                              var LegacyCategoryExpander CategoryExpander = SimpleCategoryExpander{
                                                                              	Expansions: map[string][]schema.GroupResource{
                                                                              		"all": legacyUserResources,
                                                                              	},
                                                                              }

                                                                                LegacyCategoryExpander is the old hardcoded expansion

                                                                                var LegacyFederationCategoryExpander CategoryExpander = SimpleCategoryExpander{
                                                                                	Expansions: map[string][]schema.GroupResource{
                                                                                		"all": {{Group: "", Resource: "services"}},
                                                                                	},
                                                                                }

                                                                                  LegacyFederationCategoryExpander is the old hardcoded expansion for federation

                                                                                  type ClientMapper

                                                                                  type ClientMapper interface {
                                                                                  	ClientForMapping(mapping *meta.RESTMapping) (RESTClient, error)
                                                                                  }

                                                                                    ClientMapper abstracts retrieving a Client for mapped objects.

                                                                                    type ClientMapperFunc

                                                                                    type ClientMapperFunc func(mapping *meta.RESTMapping) (RESTClient, error)

                                                                                      ClientMapperFunc implements ClientMapper for a function

                                                                                      func (ClientMapperFunc) ClientForMapping

                                                                                      func (f ClientMapperFunc) ClientForMapping(mapping *meta.RESTMapping) (RESTClient, error)

                                                                                        ClientForMapping implements ClientMapper

                                                                                        type ContinueOnErrorVisitor

                                                                                        type ContinueOnErrorVisitor struct {
                                                                                        	Visitor
                                                                                        }

                                                                                          ContinueOnErrorVisitor visits each item and, if an error occurs on any individual item, returns an aggregate error after all items are visited.

                                                                                          func (ContinueOnErrorVisitor) Visit

                                                                                            Visit returns nil if no error occurs during traversal, a regular error if one occurs, or if multiple errors occur, an aggregate error. If the provided visitor fails on any individual item it will not prevent the remaining items from being visited. An error returned by the visitor directly may still result in some items not being visited.

                                                                                            type DecoratedVisitor

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

                                                                                              DecoratedVisitor will invoke the decorators in order prior to invoking the visitor function passed to Visit. An error will terminate the visit.

                                                                                              func (DecoratedVisitor) Visit

                                                                                              func (v DecoratedVisitor) Visit(fn VisitorFunc) error

                                                                                                Visit implements Visitor

                                                                                                type DisabledClientForMapping

                                                                                                type DisabledClientForMapping struct {
                                                                                                	ClientMapper
                                                                                                }

                                                                                                  DisabledClientForMapping allows callers to avoid allowing remote calls when handling resources.

                                                                                                  func (DisabledClientForMapping) ClientForMapping

                                                                                                  func (f DisabledClientForMapping) ClientForMapping(mapping *meta.RESTMapping) (RESTClient, error)

                                                                                                  type EagerVisitorList

                                                                                                  type EagerVisitorList []Visitor

                                                                                                    EagerVisitorList implements Visit for the sub visitors it contains. All errors will be captured and returned at the end of iteration.

                                                                                                    func (EagerVisitorList) Visit

                                                                                                    func (l EagerVisitorList) Visit(fn VisitorFunc) error

                                                                                                      Visit implements Visitor, and gathers errors that occur during processing until all sub visitors have been visited.

                                                                                                      type ErrMatchFunc

                                                                                                      type ErrMatchFunc func(error) bool

                                                                                                        ErrMatchFunc can be used to filter errors that may not be true failures.

                                                                                                        type FileVisitor

                                                                                                        type FileVisitor struct {
                                                                                                        	Path string
                                                                                                        	*StreamVisitor
                                                                                                        }

                                                                                                          FileVisitor is wrapping around a StreamVisitor, to handle open/close files

                                                                                                          func (*FileVisitor) Visit

                                                                                                          func (v *FileVisitor) Visit(fn VisitorFunc) error

                                                                                                            Visit in a FileVisitor is just taking care of opening/closing files

                                                                                                            type FilenameOptions

                                                                                                            type FilenameOptions struct {
                                                                                                            	Filenames []string
                                                                                                            	Recursive bool
                                                                                                            }

                                                                                                            type FilterFunc

                                                                                                            type FilterFunc func(info *Info, err error) (bool, error)

                                                                                                            func FilterBySelector

                                                                                                            func FilterBySelector(s labels.Selector) FilterFunc

                                                                                                            type FilteredVisitor

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

                                                                                                            func (FilteredVisitor) Visit

                                                                                                            func (v FilteredVisitor) Visit(fn VisitorFunc) error

                                                                                                            type FlattenListVisitor

                                                                                                            type FlattenListVisitor struct {
                                                                                                            	Visitor
                                                                                                            	*Mapper
                                                                                                            }

                                                                                                              FlattenListVisitor flattens any objects that runtime.ExtractList recognizes as a list - has an "Items" public field that is a slice of runtime.Objects or objects satisfying that interface - into multiple Infos. An error on any sub item (for instance, if a List contains an object that does not have a registered client or resource) will terminate the visit. TODO: allow errors to be aggregated?

                                                                                                              func (FlattenListVisitor) Visit

                                                                                                              func (v FlattenListVisitor) Visit(fn VisitorFunc) error

                                                                                                              type Helper

                                                                                                              type Helper struct {
                                                                                                              	// The name of this resource as the server would recognize it
                                                                                                              	Resource string
                                                                                                              	// A RESTClient capable of mutating this resource.
                                                                                                              	RESTClient RESTClient
                                                                                                              	// An interface for reading or writing the resource version of this
                                                                                                              	// type.
                                                                                                              	Versioner runtime.ResourceVersioner
                                                                                                              	// True if the resource type is scoped to namespaces
                                                                                                              	NamespaceScoped bool
                                                                                                              }

                                                                                                                Helper provides methods for retrieving or mutating a RESTful resource.

                                                                                                                func NewHelper

                                                                                                                func NewHelper(client RESTClient, mapping *meta.RESTMapping) *Helper

                                                                                                                  NewHelper creates a Helper from a ResourceMapping

                                                                                                                  func (*Helper) Create

                                                                                                                  func (m *Helper) Create(namespace string, modify bool, obj runtime.Object) (runtime.Object, error)

                                                                                                                  func (*Helper) Delete

                                                                                                                  func (m *Helper) Delete(namespace, name string) error

                                                                                                                  func (*Helper) DeleteWithOptions

                                                                                                                  func (m *Helper) DeleteWithOptions(namespace, name string, options *metav1.DeleteOptions) error

                                                                                                                  func (*Helper) Get

                                                                                                                  func (m *Helper) Get(namespace, name string, export bool) (runtime.Object, error)

                                                                                                                  func (*Helper) List

                                                                                                                  func (m *Helper) List(namespace, apiVersion string, selector labels.Selector, export bool) (runtime.Object, error)

                                                                                                                    TODO: add field selector

                                                                                                                    func (*Helper) Patch

                                                                                                                    func (m *Helper) Patch(namespace, name string, pt types.PatchType, data []byte) (runtime.Object, error)

                                                                                                                    func (*Helper) Replace

                                                                                                                    func (m *Helper) Replace(namespace, name string, overwrite bool, obj runtime.Object) (runtime.Object, error)

                                                                                                                    func (*Helper) Watch

                                                                                                                    func (m *Helper) Watch(namespace, resourceVersion, apiVersion string, labelSelector labels.Selector) (watch.Interface, error)

                                                                                                                    func (*Helper) WatchSingle

                                                                                                                    func (m *Helper) WatchSingle(namespace, name, resourceVersion string) (watch.Interface, error)

                                                                                                                    type Info

                                                                                                                    type Info struct {
                                                                                                                    	Client    RESTClient
                                                                                                                    	Mapping   *meta.RESTMapping
                                                                                                                    	Namespace string
                                                                                                                    	Name      string
                                                                                                                    
                                                                                                                    	// Optional, Source is the filename or URL to template file (.json or .yaml),
                                                                                                                    	// or stdin to use to handle the resource
                                                                                                                    	Source string
                                                                                                                    	// Optional, this is the provided object in a versioned type before defaulting
                                                                                                                    	// and conversions into its corresponding internal type. This is useful for
                                                                                                                    	// reflecting on user intent which may be lost after defaulting and conversions.
                                                                                                                    	VersionedObject runtime.Object
                                                                                                                    	// Optional, this is the most recent value returned by the server if available
                                                                                                                    	Object runtime.Object
                                                                                                                    	// Optional, this is the most recent resource version the server knows about for
                                                                                                                    	// this type of resource. It may not match the resource version of the object,
                                                                                                                    	// but if set it should be equal to or newer than the resource version of the
                                                                                                                    	// object (however the server defines resource version).
                                                                                                                    	ResourceVersion string
                                                                                                                    	// Optional, should this resource be exported, stripped of cluster-specific and instance specific fields
                                                                                                                    	Export bool
                                                                                                                    }

                                                                                                                      Info contains temporary info to execute a REST call, or show the results of an already completed REST call.

                                                                                                                      func NewInfo

                                                                                                                      func NewInfo(client RESTClient, mapping *meta.RESTMapping, namespace, name string, export bool) *Info

                                                                                                                        NewInfo returns a new info object

                                                                                                                        func (*Info) Get

                                                                                                                        func (i *Info) Get() (err error)

                                                                                                                          Get retrieves the object from the Namespace and Name fields

                                                                                                                          func (*Info) Namespaced

                                                                                                                          func (i *Info) Namespaced() bool

                                                                                                                            Namespaced returns true if the object belongs to a namespace

                                                                                                                            func (*Info) Refresh

                                                                                                                            func (i *Info) Refresh(obj runtime.Object, ignoreError bool) error

                                                                                                                              Refresh updates the object with another object. If ignoreError is set the Object will be updated even if name, namespace, or resourceVersion attributes cannot be loaded from the object.

                                                                                                                              func (*Info) ResourceMapping

                                                                                                                              func (i *Info) ResourceMapping() *meta.RESTMapping

                                                                                                                                ResourceMapping returns the mapping for this resource and implements ResourceMapping

                                                                                                                                func (*Info) Visit

                                                                                                                                func (i *Info) Visit(fn VisitorFunc) error

                                                                                                                                  Visit implements Visitor

                                                                                                                                  func (*Info) Watch

                                                                                                                                  func (i *Info) Watch(resourceVersion string) (watch.Interface, error)

                                                                                                                                    Watch returns server changes to this object after it was retrieved.

                                                                                                                                    type InfoListVisitor

                                                                                                                                    type InfoListVisitor []*Info

                                                                                                                                    func (InfoListVisitor) Visit

                                                                                                                                    func (infos InfoListVisitor) Visit(fn VisitorFunc) error

                                                                                                                                    type Mapper

                                                                                                                                      Mapper is a convenience struct for holding references to the three interfaces needed to create Info for arbitrary objects.

                                                                                                                                      func (*Mapper) InfoForData

                                                                                                                                      func (m *Mapper) InfoForData(data []byte, source string) (*Info, error)

                                                                                                                                        InfoForData creates an Info object for the given data. An error is returned if any of the decoding or client lookup steps fail. Name and namespace will be set into Info if the mapping's MetadataAccessor can retrieve them.

                                                                                                                                        func (*Mapper) InfoForObject

                                                                                                                                        func (m *Mapper) InfoForObject(obj runtime.Object, preferredGVKs []schema.GroupVersionKind) (*Info, error)

                                                                                                                                          InfoForObject creates an Info object for the given Object. An error is returned if the object cannot be introspected. Name and namespace will be set into Info if the mapping's MetadataAccessor can retrieve them.

                                                                                                                                          type RESTClient

                                                                                                                                          type RESTClient interface {
                                                                                                                                          	Get() *client.Request
                                                                                                                                          	Post() *client.Request
                                                                                                                                          	Patch(types.PatchType) *client.Request
                                                                                                                                          	Delete() *client.Request
                                                                                                                                          	Put() *client.Request
                                                                                                                                          }

                                                                                                                                            RESTClient is a client helper for dealing with RESTful resources in a generic way.

                                                                                                                                            type ResourceMapping

                                                                                                                                            type ResourceMapping interface {
                                                                                                                                            	ResourceMapping() *meta.RESTMapping
                                                                                                                                            }

                                                                                                                                              ResourceMapping allows an object to return the resource mapping associated with the resource or resources it represents.

                                                                                                                                              type Result

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

                                                                                                                                                Result contains helper methods for dealing with the outcome of a Builder.

                                                                                                                                                func (*Result) Err

                                                                                                                                                func (r *Result) Err() error

                                                                                                                                                  Err returns one or more errors (via a util.ErrorList) that occurred prior to visiting the elements in the visitor. To see all errors including those that occur during visitation, invoke Infos().

                                                                                                                                                  func (*Result) IgnoreErrors

                                                                                                                                                  func (r *Result) IgnoreErrors(fns ...ErrMatchFunc) *Result

                                                                                                                                                    IgnoreErrors will filter errors that occur when by visiting the result (but not errors that occur by creating the result in the first place), eliminating any that match fns. This is best used in combination with Builder.ContinueOnError(), where the visitors accumulate errors and return them after visiting as a slice of errors. If no errors remain after filtering, the various visitor methods on Result will return nil for err.

                                                                                                                                                    func (*Result) Infos

                                                                                                                                                    func (r *Result) Infos() ([]*Info, error)

                                                                                                                                                      Infos returns an array of all of the resource infos retrieved via traversal. Will attempt to traverse the entire set of visitors only once, and will return a cached list on subsequent calls.

                                                                                                                                                      func (*Result) IntoSingleItemImplied

                                                                                                                                                      func (r *Result) IntoSingleItemImplied(b *bool) *Result

                                                                                                                                                        IntoSingleItemImplied sets the provided boolean pointer to true if the Builder input implies a single item, or multiple.

                                                                                                                                                        func (*Result) Object

                                                                                                                                                        func (r *Result) Object() (runtime.Object, error)

                                                                                                                                                          Object returns a single object representing the output of a single visit to all found resources. If the Builder was a singular context (expected to return a single resource by user input) and only a single resource was found, the resource will be returned as is. Otherwise, the returned resources will be part of an api.List. The ResourceVersion of the api.List will be set only if it is identical across all infos returned.

                                                                                                                                                          func (*Result) ResourceMapping

                                                                                                                                                          func (r *Result) ResourceMapping() (*meta.RESTMapping, error)

                                                                                                                                                            ResourceMapping returns a single meta.RESTMapping representing the resources located by the builder, or an error if more than one mapping was found.

                                                                                                                                                            func (*Result) TargetsSingleItems

                                                                                                                                                            func (r *Result) TargetsSingleItems() bool

                                                                                                                                                              TargetsSingleItems returns true if any of the builder arguments pointed to non-list calls (if the user explicitly asked for any object by name). This includes directories, streams, URLs, and resource name tuples.

                                                                                                                                                              func (*Result) Visit

                                                                                                                                                              func (r *Result) Visit(fn VisitorFunc) error

                                                                                                                                                                Visit implements the Visitor interface on the items described in the Builder. Note that some visitor sources are not traversable more than once, or may return different results. If you wish to operate on the same set of resources multiple times, use the Infos() method.

                                                                                                                                                                func (*Result) Watch

                                                                                                                                                                func (r *Result) Watch(resourceVersion string) (watch.Interface, error)

                                                                                                                                                                  Watch retrieves changes that occur on the server to the specified resource. It currently supports watching a single source - if the resource source (selectors or pure types) can be watched, they will be, otherwise the list will be visited (equivalent to the Infos() call) and if there is a single resource present, it will be watched, otherwise an error will be returned.

                                                                                                                                                                  type Selector

                                                                                                                                                                  type Selector struct {
                                                                                                                                                                  	Client    RESTClient
                                                                                                                                                                  	Mapping   *meta.RESTMapping
                                                                                                                                                                  	Namespace string
                                                                                                                                                                  	Selector  labels.Selector
                                                                                                                                                                  	Export    bool
                                                                                                                                                                  }

                                                                                                                                                                    Selector is a Visitor for resources that match a label selector.

                                                                                                                                                                    func NewSelector

                                                                                                                                                                    func NewSelector(client RESTClient, mapping *meta.RESTMapping, namespace string, selector labels.Selector, export bool) *Selector

                                                                                                                                                                      NewSelector creates a resource selector which hides details of getting items by their label selector.

                                                                                                                                                                      func (*Selector) ResourceMapping

                                                                                                                                                                      func (r *Selector) ResourceMapping() *meta.RESTMapping

                                                                                                                                                                        ResourceMapping returns the mapping for this resource and implements ResourceMapping

                                                                                                                                                                        func (*Selector) Visit

                                                                                                                                                                        func (r *Selector) Visit(fn VisitorFunc) error

                                                                                                                                                                          Visit implements Visitor

                                                                                                                                                                          func (*Selector) Watch

                                                                                                                                                                          func (r *Selector) Watch(resourceVersion string) (watch.Interface, error)

                                                                                                                                                                          type SimpleCategoryExpander

                                                                                                                                                                          type SimpleCategoryExpander struct {
                                                                                                                                                                          	Expansions map[string][]schema.GroupResource
                                                                                                                                                                          }

                                                                                                                                                                          func (SimpleCategoryExpander) Expand

                                                                                                                                                                          func (e SimpleCategoryExpander) Expand(category string) ([]schema.GroupResource, bool)

                                                                                                                                                                          type StreamVisitor

                                                                                                                                                                          type StreamVisitor struct {
                                                                                                                                                                          	io.Reader
                                                                                                                                                                          	*Mapper
                                                                                                                                                                          
                                                                                                                                                                          	Source string
                                                                                                                                                                          	Schema validation.Schema
                                                                                                                                                                          }

                                                                                                                                                                            StreamVisitor reads objects from an io.Reader and walks them. A stream visitor can only be visited once. TODO: depends on objects being in JSON format before being passed to decode - need to implement a stream decoder method on runtime.Codec to properly handle this.

                                                                                                                                                                            func NewStreamVisitor

                                                                                                                                                                            func NewStreamVisitor(r io.Reader, mapper *Mapper, source string, schema validation.Schema) *StreamVisitor

                                                                                                                                                                              NewStreamVisitor is a helper function that is useful when we want to change the fields of the struct but keep calls the same.

                                                                                                                                                                              func (*StreamVisitor) Visit

                                                                                                                                                                              func (v *StreamVisitor) Visit(fn VisitorFunc) error

                                                                                                                                                                                Visit implements Visitor over a stream. StreamVisitor is able to distinct multiple resources in one stream.

                                                                                                                                                                                type URLVisitor

                                                                                                                                                                                type URLVisitor struct {
                                                                                                                                                                                	URL *url.URL
                                                                                                                                                                                	*StreamVisitor
                                                                                                                                                                                	HttpAttemptCount int
                                                                                                                                                                                }

                                                                                                                                                                                  URLVisitor downloads the contents of a URL, and if successful, returns an info object representing the downloaded object.

                                                                                                                                                                                  func (*URLVisitor) Visit

                                                                                                                                                                                  func (v *URLVisitor) Visit(fn VisitorFunc) error

                                                                                                                                                                                  type Visitor

                                                                                                                                                                                  type Visitor interface {
                                                                                                                                                                                  	Visit(VisitorFunc) error
                                                                                                                                                                                  }

                                                                                                                                                                                    Visitor lets clients walk a list of resources.

                                                                                                                                                                                    func ExpandPathsToFileVisitors

                                                                                                                                                                                    func ExpandPathsToFileVisitors(mapper *Mapper, paths string, recursive bool, extensions []string, schema validation.Schema) ([]Visitor, error)

                                                                                                                                                                                      ExpandPathsToFileVisitors will return a slice of FileVisitors that will handle files from the provided path. After FileVisitors open the files, they will pass an io.Reader to a StreamVisitor to do the reading. (stdin is also taken care of). Paths argument also accepts a single file, and will return a single visitor

                                                                                                                                                                                      func FileVisitorForSTDIN

                                                                                                                                                                                      func FileVisitorForSTDIN(mapper *Mapper, schema validation.Schema) Visitor

                                                                                                                                                                                        FileVisitorForSTDIN return a special FileVisitor just for STDIN

                                                                                                                                                                                        func NewDecoratedVisitor

                                                                                                                                                                                        func NewDecoratedVisitor(v Visitor, fn ...VisitorFunc) Visitor

                                                                                                                                                                                          NewDecoratedVisitor will create a visitor that invokes the provided visitor functions before the user supplied visitor function is invoked, giving them the opportunity to mutate the Info object or terminate early with an error.

                                                                                                                                                                                          func NewFilteredVisitor

                                                                                                                                                                                          func NewFilteredVisitor(v Visitor, fn ...FilterFunc) Visitor

                                                                                                                                                                                          func NewFlattenListVisitor

                                                                                                                                                                                          func NewFlattenListVisitor(v Visitor, mapper *Mapper) Visitor

                                                                                                                                                                                            NewFlattenListVisitor creates a visitor that will expand list style runtime.Objects into individual items and then visit them individually.

                                                                                                                                                                                            type VisitorFunc

                                                                                                                                                                                            type VisitorFunc func(*Info, error) error

                                                                                                                                                                                              VisitorFunc implements the Visitor interface for a matching function. If there was a problem walking a list of resources, the incoming error will describe the problem and the function can decide how to handle that error. A nil returned indicates to accept an error to continue loops even when errors happen. This is useful for ignoring certain kinds of errors or aggregating errors in some way.

                                                                                                                                                                                              func RequireNamespace

                                                                                                                                                                                              func RequireNamespace(namespace string) VisitorFunc

                                                                                                                                                                                                RequireNamespace will either set a namespace if none is provided on the Info object, or if the namespace is set and does not match the provided value, returns an error. This is intended to guard against administrators accidentally operating on resources outside their namespace.

                                                                                                                                                                                                func SetNamespace

                                                                                                                                                                                                func SetNamespace(namespace string) VisitorFunc

                                                                                                                                                                                                  SetNamespace ensures that every Info object visited will have a namespace set. If info.Object is set, it will be mutated as well.

                                                                                                                                                                                                  type VisitorList

                                                                                                                                                                                                  type VisitorList []Visitor

                                                                                                                                                                                                    VisitorList implements Visit for the sub visitors it contains. The first error returned from a child Visitor will terminate iteration.

                                                                                                                                                                                                    func (VisitorList) Visit

                                                                                                                                                                                                    func (l VisitorList) Visit(fn VisitorFunc) error

                                                                                                                                                                                                      Visit implements Visitor

                                                                                                                                                                                                      type Watchable

                                                                                                                                                                                                      type Watchable interface {
                                                                                                                                                                                                      	Watch(resourceVersion string) (watch.Interface, error)
                                                                                                                                                                                                      }

                                                                                                                                                                                                        Watchable describes a resource that can be watched for changes that occur on the server, beginning after the provided resource version.