Documentation ¶
Index ¶
- Variables
- func AsVersioned(info *resource.Info) runtime.Object
- func GetConfig(kubeconfig, context, namespace string) *genericclioptions.ConfigFlags
- func SelectorsForObject(object runtime.Object) (selector labels.Selector, err error)
- type Client
- func (c *Client) Build(reader io.Reader) (ResourceList, error)
- func (c *Client) Create(resources ResourceList) (*Result, error)
- func (c *Client) Delete(resources ResourceList) (*Result, []error)
- func (c *Client) IsReachable() error
- func (c *Client) Update(original, target ResourceList, force bool) (*Result, error)
- func (c *Client) Wait(resources ResourceList, timeout time.Duration) error
- func (c *Client) WaitAndGetCompletedPodPhase(name string, timeout time.Duration) (v1.PodPhase, error)
- func (c *Client) WatchUntilReady(resources ResourceList, timeout time.Duration) error
- type Factory
- type Interface
- type ResourceList
- func (r *ResourceList) Append(val *resource.Info)
- func (r ResourceList) Contains(info *resource.Info) bool
- func (r ResourceList) Difference(rs ResourceList) ResourceList
- func (r ResourceList) Filter(fn func(*resource.Info) bool) ResourceList
- func (r ResourceList) Get(info *resource.Info) *resource.Info
- func (r ResourceList) Intersect(rs ResourceList) ResourceList
- func (r ResourceList) Visit(fn resource.VisitorFunc) error
- type Result
Constants ¶
This section is empty.
Variables ¶
var ErrNoObjectsVisited = errors.New("no objects visited")
ErrNoObjectsVisited indicates that during a visit operation, no matching objects were found.
Functions ¶
func AsVersioned ¶
AsVersioned converts the given info into a runtime.Object with the correct group and version set
func GetConfig ¶
func GetConfig(kubeconfig, context, namespace string) *genericclioptions.ConfigFlags
GetConfig returns a Kubernetes client config.
func SelectorsForObject ¶
SelectorsForObject returns the pod label selector for a given object
Modified version of https://github.com/kubernetes/kubernetes/blob/v1.14.1/pkg/kubectl/polymorphichelpers/helpers.go#L84
Types ¶
type Client ¶
Client represents a client capable of communicating with the Kubernetes API.
func (*Client) Build ¶
func (c *Client) Build(reader io.Reader) (ResourceList, error)
Build validates for Kubernetes objects and returns unstructured infos.
func (*Client) Create ¶
func (c *Client) Create(resources ResourceList) (*Result, error)
Create creates Kubernetes resources specified in the resource list.
func (*Client) Delete ¶
func (c *Client) Delete(resources ResourceList) (*Result, []error)
Delete deletes Kubernetes resources specified in the resources list. It will attempt to delete all resources even if one or more fail and collect any errors. All successfully deleted items will be returned in the `Deleted` ResourceList that is part of the result.
func (*Client) Update ¶
func (c *Client) Update(original, target ResourceList, force bool) (*Result, error)
Update reads in the current configuration and a target configuration from io.reader and creates resources that don't already exists, updates resources that have been modified in the target configuration and deletes resources from the current configuration that are not present in the target configuration.
func (*Client) Wait ¶
func (c *Client) Wait(resources ResourceList, timeout time.Duration) error
Wait up to the given timeout for the specified resources to be ready
func (*Client) WaitAndGetCompletedPodPhase ¶
func (c *Client) WaitAndGetCompletedPodPhase(name string, timeout time.Duration) (v1.PodPhase, error)
WaitAndGetCompletedPodPhase waits up to a timeout until a pod enters a completed phase and returns said phase (PodSucceeded or PodFailed qualify).
func (*Client) WatchUntilReady ¶
func (c *Client) WatchUntilReady(resources ResourceList, timeout time.Duration) error
WatchUntilReady watches the resources given and waits until it is ready.
This function is mainly for hook implementations. It watches for a resource to hit a particular milestone. The milestone depends on the Kind.
For most kinds, it checks to see if the resource is marked as Added or Modified by the Kubernetes event stream. For some kinds, it does more:
- Jobs: A job is marked "Ready" when it has successfully completed. This is ascertained by watching the Status fields in a job's output.
- Pods: A pod is marked "Ready" when it has successfully completed. This is ascertained by watching the status.phase field in a pod's output.
Handling for other kinds will be added as necessary.
type Factory ¶
type Factory interface { // ToRawKubeConfigLoader return kubeconfig loader as-is ToRawKubeConfigLoader() clientcmd.ClientConfig // KubernetesClientSet gives you back an external clientset KubernetesClientSet() (*kubernetes.Clientset, error) // NewBuilder returns an object that assists in loading objects from both disk and the server // and which implements the common patterns for CLI interactions with generic resources. NewBuilder() *resource.Builder // Returns a schema that can validate objects stored on disk. Validator(validate bool) (validation.Schema, error) }
Factory provides abstractions that allow the Kubectl command to be extended across multiple types of resources and different API sets.
type Interface ¶
type Interface interface { // Create creates one or more resources. Create(resources ResourceList) (*Result, error) Wait(resources ResourceList, timeout time.Duration) error // Delete destroys one or more resources. Delete(resources ResourceList) (*Result, []error) // Watch the resource in reader until it is "ready". This method // // For Jobs, "ready" means the Job ran to completion (exited without error). // For Pods, "ready" means the Pod phase is marked "succeeded". // For all other kinds, it means the kind was created or modified without // error. WatchUntilReady(resources ResourceList, timeout time.Duration) error // Update updates one or more resources or creates the resource // if it doesn't exist. Update(original, target ResourceList, force bool) (*Result, error) // Build creates a resource list from a Reader // // reader must contain a YAML stream (one or more YAML documents separated // by "\n---\n") Build(reader io.Reader) (ResourceList, error) // WaitAndGetCompletedPodPhase waits up to a timeout until a pod enters a completed phase // and returns said phase (PodSucceeded or PodFailed qualify). WaitAndGetCompletedPodPhase(name string, timeout time.Duration) (v1.PodPhase, error) // isReachable checks whether the client is able to connect to the cluster IsReachable() error }
Interface represents a client capable of communicating with the Kubernetes API.
A KubernetesClient must be concurrency safe.
type ResourceList ¶
ResourceList provides convenience methods for comparing collections of Infos.
func (*ResourceList) Append ¶
func (r *ResourceList) Append(val *resource.Info)
Append adds an Info to the Result.
func (ResourceList) Contains ¶
func (r ResourceList) Contains(info *resource.Info) bool
Contains checks to see if an object exists.
func (ResourceList) Difference ¶
func (r ResourceList) Difference(rs ResourceList) ResourceList
Difference will return a new Result with objects not contained in rs.
func (ResourceList) Filter ¶
func (r ResourceList) Filter(fn func(*resource.Info) bool) ResourceList
Filter returns a new Result with Infos that satisfy the predicate fn.
func (ResourceList) Get ¶
func (r ResourceList) Get(info *resource.Info) *resource.Info
Get returns the Info from the result that matches the name and kind.
func (ResourceList) Intersect ¶
func (r ResourceList) Intersect(rs ResourceList) ResourceList
Intersect will return a new Result with objects contained in both Results.
func (ResourceList) Visit ¶
func (r ResourceList) Visit(fn resource.VisitorFunc) error
Visit implements resource.Visitor.
type Result ¶
type Result struct { Created ResourceList Updated ResourceList Deleted ResourceList }
Result contains the information of created, updated, and deleted resources for various kube API calls along with helper methods for using those resources