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 ¶
- Variables
- func CreateAndRefresh(info *Info) error
- func FilterNamespace(info *Info, err error) error
- func HasNames(args []string) (bool, error)
- func IsUsageError(err error) bool
- func MultipleTypesRequested(args []string) bool
- func NewRelaxedRESTMapper(mapper meta.RESTMapper) meta.RESTMapper
- func RetrieveLatest(info *Info, err error) error
- func RetrieveLazy(info *Info, err error) error
- func SplitResourceArgument(arg string) []string
- func UpdateObjectNamespace(info *Info, err error) error
- func ValidateSchema(data []byte, schema validation.Schema) error
- type Builder
- func (b *Builder) AllNamespaces(allNamespace bool) *Builder
- func (b *Builder) ContinueOnError() *Builder
- func (b *Builder) DefaultNamespace() *Builder
- func (b *Builder) Do() *Result
- func (b *Builder) ExportParam(export bool) *Builder
- func (b *Builder) FieldSelectorParam(s string) *Builder
- func (b *Builder) FilenameParam(enforceNamespace bool, filenameOptions *FilenameOptions) *Builder
- func (b *Builder) Flatten() *Builder
- func (b *Builder) IncludeUninitialized(includeUninitialized bool) *Builder
- func (b *Builder) Internal() *Builder
- func (b *Builder) LabelSelector(selector string) *Builder
- func (b *Builder) LabelSelectorParam(s string) *Builder
- func (b *Builder) Latest() *Builder
- func (b *Builder) Local() *Builder
- func (b *Builder) LocalParam(local bool) *Builder
- func (b *Builder) Mapper() *Mapper
- func (b *Builder) NamespaceParam(namespace string) *Builder
- func (b *Builder) Path(recursive bool, paths ...string) *Builder
- func (b *Builder) ReplaceAliases(input string) string
- func (b *Builder) RequestChunksOf(chunkSize int64) *Builder
- func (b *Builder) RequireNamespace() *Builder
- func (b *Builder) RequireObject(require bool) *Builder
- func (b *Builder) ResourceNames(resource string, names ...string) *Builder
- func (b *Builder) ResourceTypeOrNameArgs(allowEmptySelector bool, args ...string) *Builder
- func (b *Builder) ResourceTypes(types ...string) *Builder
- func (b *Builder) Schema(schema validation.Schema) *Builder
- func (b *Builder) SelectAllParam(selectAll bool) *Builder
- func (b *Builder) SingleResourceType() *Builder
- func (b *Builder) Stdin() *Builder
- func (b *Builder) Stream(r io.Reader, name string) *Builder
- func (b *Builder) TransformRequests(opts ...RequestTransform) *Builder
- func (b *Builder) URL(httpAttemptCount int, urls ...*url.URL) *Builder
- func (b *Builder) Unstructured() *Builder
- type ClientMapper
- type ClientMapperFunc
- type ContinueOnErrorVisitor
- type DecoratedVisitor
- type DisabledClientForMapping
- type EagerVisitorList
- type ErrMatchFunc
- type FileVisitor
- type FilenameOptions
- type FilterFunc
- type FilteredVisitor
- type FlattenListVisitor
- type Helper
- func (m *Helper) Create(namespace string, modify bool, obj runtime.Object) (runtime.Object, error)
- func (m *Helper) Delete(namespace, name string) error
- func (m *Helper) DeleteWithOptions(namespace, name string, options *metav1.DeleteOptions) error
- func (m *Helper) Get(namespace, name string, export bool) (runtime.Object, error)
- func (m *Helper) List(namespace, apiVersion string, export bool, options *metav1.ListOptions) (runtime.Object, error)
- func (m *Helper) Patch(namespace, name string, pt types.PatchType, data []byte) (runtime.Object, error)
- func (m *Helper) Replace(namespace, name string, overwrite bool, obj runtime.Object) (runtime.Object, error)
- func (m *Helper) Watch(namespace, apiVersion string, options *metav1.ListOptions) (watch.Interface, error)
- func (m *Helper) WatchSingle(namespace, name, resourceVersion string) (watch.Interface, error)
- type Info
- func (i *Info) AsInternal() runtime.Object
- func (i *Info) AsUnstructured() runtime.Object
- func (i *Info) AsVersioned() runtime.Object
- func (i *Info) Get() (err error)
- func (i *Info) Internal() (runtime.Object, error)
- func (i *Info) Namespaced() bool
- func (i *Info) Refresh(obj runtime.Object, ignoreError bool) error
- func (i *Info) ResourceMapping() *meta.RESTMapping
- func (i *Info) Unstructured() (runtime.Unstructured, error)
- func (i *Info) Versioned() (runtime.Object, error)
- func (i *Info) Visit(fn VisitorFunc) error
- func (i *Info) Watch(resourceVersion string) (watch.Interface, error)
- type InfoListVisitor
- type Mapper
- type RESTClient
- type RequestTransform
- type ResourceMapping
- type Result
- func (r *Result) Err() error
- func (r *Result) IgnoreErrors(fns ...ErrMatchFunc) *Result
- func (r *Result) Infos() ([]*Info, error)
- func (r *Result) IntoSingleItemImplied(b *bool) *Result
- func (r *Result) Mapper() *Mapper
- func (r *Result) Object() (runtime.Object, error)
- func (r *Result) ResourceMapping() (*meta.RESTMapping, error)
- func (r *Result) TargetsSingleItems() bool
- func (r *Result) Visit(fn VisitorFunc) error
- func (r *Result) Watch(resourceVersion string) (watch.Interface, error)
- type Selector
- type StreamVisitor
- type URLVisitor
- type Visitor
- func ExpandPathsToFileVisitors(mapper *Mapper, paths string, recursive bool, extensions []string, ...) ([]Visitor, error)
- func FileVisitorForSTDIN(mapper *Mapper, schema validation.Schema) Visitor
- func NewDecoratedVisitor(v Visitor, fn ...VisitorFunc) Visitor
- func NewFilteredVisitor(v Visitor, fn ...FilterFunc) Visitor
- func NewFlattenListVisitor(v Visitor, mapper *Mapper) Visitor
- type VisitorFunc
- type VisitorList
- type Watchable
Constants ¶
This section is empty.
Variables ¶
var FileExtensions = []string{".json", ".yaml", ".yml"}
var InputExtensions = append(FileExtensions, "stdin")
var LocalResourceError = errors.New(`error: you must specify resources by --filename when --local is set.
Example resource specifications include:
'-f rsrc.yaml'
'--filename=rsrc.json'`)
Functions ¶
func CreateAndRefresh ¶ added in v1.7.0
func CreateAndRefresh(info *Info) error
CreateAndRefresh creates an object from input info and refreshes info with that object
func FilterNamespace ¶ added in v0.10.0
func FilterNamespace(info *Info, err error) error
FilterNamespace omits the namespace if the object is not namespace scoped
func HasNames ¶ added in v1.2.0
func HasNames(args []string) (bool, error)
HasNames returns true if the provided args contain resource names
func IsUsageError ¶ added in v1.4.0
func IsUsageError(err error) bool
TODO: expand this to include other errors.
func MultipleTypesRequested ¶ added in v1.6.0
func MultipleTypesRequested(args []string) bool
MultipleTypesRequested returns true if the provided args contain multiple resource kinds
func NewRelaxedRESTMapper ¶ added in v1.9.0
func NewRelaxedRESTMapper(mapper meta.RESTMapper) meta.RESTMapper
NewRelaxedRESTMapper returns a RESTMapper that will tolerate mappings that don't exist in provided RESTMapper, returning a mapping that is a best effort against the current server. This allows objects that the server does not recognize to still be loaded.
func RetrieveLatest ¶
func RetrieveLatest(info *Info, err error) error
RetrieveLatest updates the Object on each Info by invoking a standard client Get.
func RetrieveLazy ¶ added in v0.14.0
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 UpdateObjectNamespace ¶
func UpdateObjectNamespace(info *Info, err error) error
func ValidateSchema ¶ added in v0.17.0
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(internal, unstructured *Mapper, categoryExpander categories.CategoryExpander) *Builder
NewBuilder creates a builder that operates on generic objects. At least one of internal or unstructured must be specified. TODO: Add versioned client (although versioned is still lossy)
func (*Builder) AllNamespaces ¶ added in v0.18.0
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 ¶ added in v1.2.0
func (b *Builder) ExportParam(export bool) *Builder
ExportParam accepts the export boolean for these resources
func (*Builder) FieldSelectorParam ¶ added in v1.9.0
func (b *Builder) FieldSelectorParam(s string) *Builder
FieldSelectorParam 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.
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) IncludeUninitialized ¶ added in v1.8.0
func (b *Builder) IncludeUninitialized(includeUninitialized bool) *Builder
IncludeUninitialized accepts the include-uninitialized boolean for these resources
func (*Builder) Internal ¶ added in v1.9.0
func (b *Builder) Internal() *Builder
Internal updates the builder so that it will convert objects off the wire into the internal form if necessary. Using internal types is lossy - fields added to the server will not be seen by the client code and may result in failure. Only use this mode when working offline, or when generating patches to send to the server. Use Unstructured if you are reading an object and performing a POST or PUT.
func (*Builder) LabelSelector ¶ added in v1.9.0
func (b *Builder) LabelSelector(selector string) *Builder
LabelSelector accepts a selector directly and will filter the resulting list by that object. Use LabelSelectorParam instead for user input.
func (*Builder) LabelSelectorParam ¶ added in v1.9.0
func (b *Builder) LabelSelectorParam(s string) *Builder
LabelSelectorParam 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.LabelSelector(labels.Everything.String)`.
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) Local ¶ added in v1.9.0
func (b *Builder) Local() *Builder
Local will avoid asking the server for results.
func (*Builder) LocalParam ¶ added in v1.9.0
func (b *Builder) LocalParam(local bool) *Builder
LocalParam calls Local() if local is true.
func (*Builder) Mapper ¶ added in v1.9.0
func (b *Builder) Mapper() *Mapper
Mapper returns a copy of the current mapper.
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 ¶ added in v1.5.0
func (b *Builder) ReplaceAliases(input string) string
ReplaceAliases accepts an argument and tries to expand any existing aliases found in it
func (*Builder) RequestChunksOf ¶ added in v1.9.0
func (b *Builder) RequestChunksOf(chunkSize int64) *Builder
RequestChunksOf attempts to load responses from the server in batches of size limit to avoid long delays loading and transferring very large lists. If unset defaults to no chunking.
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 ¶ added in v0.16.0
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 ¶ added in v1.1.0
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 ¶ added in v0.17.0
func (b *Builder) Schema(schema validation.Schema) *Builder
func (*Builder) SelectAllParam ¶ added in v0.11.0
func (b *Builder) SelectAllParam(selectAll bool) *Builder
SelectEverythingParam
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) TransformRequests ¶ added in v1.9.0
func (b *Builder) TransformRequests(opts ...RequestTransform) *Builder
TransformRequests alters API calls made by clients requested from this builder. Pass an empty list to clear modifiers.
func (*Builder) URL ¶
func (b *Builder) URL(httpAttemptCount int, urls ...*url.URL) *Builder
URL accepts a number of URLs directly.
func (*Builder) Unstructured ¶ added in v1.9.0
func (b *Builder) Unstructured() *Builder
Unstructured updates the builder so that it will request and send unstructured objects. Unstructured objects preserve all fields sent by the server in a map format based on the object's JSON structure which means no data is lost when the client reads and then writes an object. Use this mode in preference to Internal unless you are working with Go types directly.
type ClientMapper ¶
type ClientMapper interface {
ClientForMapping(mapping *meta.RESTMapping) (RESTClient, error)
}
ClientMapper abstracts retrieving a Client for mapped objects.
func NewRelaxedClientMapper ¶ added in v1.9.0
func NewRelaxedClientMapper(mapper ClientMapper) ClientMapper
NewRelaxedClientMapper will return a nil mapping if the object is not a recognized resource.
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 ¶ added in v0.18.0
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 ¶ added in v0.18.0
func (v ContinueOnErrorVisitor) Visit(fn VisitorFunc) error
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.
type DisabledClientForMapping ¶ added in v1.2.0
type DisabledClientForMapping struct {
ClientMapper
}
DisabledClientForMapping allows callers to avoid allowing remote calls when handling resources.
func (DisabledClientForMapping) ClientForMapping ¶ added in v1.2.0
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.
type ErrMatchFunc ¶
type ErrMatchFunc func(error) bool
ErrMatchFunc can be used to filter errors that may not be true failures.
type FileVisitor ¶ added in v0.21.0
type FileVisitor struct {
Path string
*StreamVisitor
}
FileVisitor is wrapping around a StreamVisitor, to handle open/close files
type FilenameOptions ¶ added in v1.5.0
type FilenameOptions struct {
Filenames []string
Recursive bool
}
type FilterFunc ¶ added in v1.5.0
type FilterFunc func(info *Info, err error) (bool, error)
func FilterByLabelSelector ¶ added in v1.9.0
func FilterByLabelSelector(s labels.Selector) FilterFunc
type FilteredVisitor ¶ added in v1.5.0
type FilteredVisitor struct {
// contains filtered or unexported fields
}
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?
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) DeleteWithOptions ¶ added in v1.6.0
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, export bool, options *metav1.ListOptions) (runtime.Object, error)
func (*Helper) Patch ¶ added in v0.20.0
func (m *Helper) Patch(namespace, name string, pt types.PatchType, data []byte) (runtime.Object, error)
func (*Helper) Replace ¶ added in v0.21.0
func (m *Helper) Replace(namespace, name string, overwrite bool, obj runtime.Object) (runtime.Object, error)
func (*Helper) Watch ¶
func (m *Helper) Watch(namespace, apiVersion string, options *metav1.ListOptions) (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 may be nil if the object has no available metadata, but is still parseable
// from disk.
Mapping *meta.RESTMapping
// Namespace will be set if the object is namespaced and has a specified value.
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 most recent value returned by the server if available. It will
// typically be in unstructured or internal forms, depending on how the Builder was
// defined. If retrieved from the server, the Builder expects the mapping client to
// decide the final form. Use the AsVersioned, AsUnstructured, and AsInternal helpers
// to alter the object versions.
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 (*Info) AsInternal ¶ added in v1.9.0
func (i *Info) AsInternal() runtime.Object
AsInternal returns the object in internal form if possible, or i.Object if it cannot be converted.
func (*Info) AsUnstructured ¶ added in v1.9.0
func (i *Info) AsUnstructured() runtime.Object
AsUnstructured returns the object as a Go object in external form as a runtime.Unstructured (map of JSON equivalent values) or as i.Object if it cannot be converted.
func (*Info) AsVersioned ¶ added in v1.9.0
func (i *Info) AsVersioned() runtime.Object
AsVersioned returns the object as a Go object in the external form if possible (matching the group version kind of the mapping, or i.Object if it cannot be converted.
func (*Info) Get ¶
func (i *Info) Get() (err error)
Get retrieves the object from the Namespace and Name fields
func (*Info) Internal ¶ added in v1.9.0
func (i *Info) Internal() (runtime.Object, error)
Internal attempts to convert the provided object to an internal type or returns an error.
func (*Info) Namespaced ¶ added in v0.14.0
func (i *Info) Namespaced() bool
Namespaced returns true if the object belongs to a namespace
func (*Info) Refresh ¶ added in v0.11.0
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) Unstructured ¶ added in v1.9.0
func (i *Info) Unstructured() (runtime.Unstructured, error)
Unstructured returns the current object in unstructured form (as a runtime.Unstructured)
type InfoListVisitor ¶ added in v1.6.0
type InfoListVisitor []*Info
type Mapper ¶
type Mapper struct {
runtime.ObjectTyper
meta.RESTMapper
ClientMapper
runtime.Decoder
}
Mapper is a convenience struct for holding references to the interfaces needed to create Info for arbitrary objects.
func (*Mapper) AcceptUnrecognizedObjects ¶ added in v1.9.0
func (m *Mapper) AcceptUnrecognizedObjects() *Mapper
AcceptUnrecognizedObjects will return a mapper that will tolerate objects that are not recognized by the RESTMapper, returning mappings that can perform minimal transformation. Allows working in disconnected mode, or with objects that the server does not recognize. Returned resource.Info objects may have empty resource fields and nil clients.
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.
func NewClientWithOptions ¶ added in v1.9.0
func NewClientWithOptions(c RESTClient, transforms ...RequestTransform) RESTClient
NewClientWithOptions wraps the provided RESTClient and invokes each transform on each newly created request.
type RequestTransform ¶ added in v1.9.0
type RequestTransform func(*client.Request)
RequestTransform is a function that is given a chance to modify the outgoing request.
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 ¶ added in v1.5.3
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) Mapper ¶ added in v1.9.0
func (r *Result) Mapper() *Mapper
Mapper returns a copy of the builder's mapper.
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 v1.List. The ResourceVersion of the v1.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 ¶ added in v1.6.0
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
LabelSelector string
FieldSelector string
Export bool
IncludeUninitialized bool
LimitChunks int64
}
Selector is a Visitor for resources that match a label selector.
func NewSelector ¶
func NewSelector(client RESTClient, mapping *meta.RESTMapping, namespace, labelSelector, fieldSelector string, export, includeUninitialized bool, limitChunks int64) *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
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.
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.
type Visitor ¶
type Visitor interface {
Visit(VisitorFunc) error
}
Visitor lets clients walk a list of resources.
func ExpandPathsToFileVisitors ¶ added in v0.21.0
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 ¶ added in v0.21.0
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 ¶ added in v1.5.0
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.