Documentation ¶
Overview ¶
Package polling is a library for computing the status of kubernetes resources based on polling of resource state from a cluster. It can keep polling until either some condition is met, or until it is cancelled through the provided context. Updates on the status of resources are streamed back to the caller through a channel.
This package provides a simple interface based on the built-in features. But the actual code is in the subpackages and there are several interfaces that can be implemented to support custom behavior.
Polling Resources ¶
In order to poll a set of resources, create a StatusPoller and pass in the list of ResourceIdentifiers to the Poll function.
import ( "sigs.k8s.io/cli-utils/pkg/kstatus/polling" ) identifiers := []prune.ObjMetadata{ { GroupKind: schema.GroupKind{ Group: "apps", Kind: "Deployment", }, Name: "dep", Namespace: "default", } } poller := polling.NewStatusPoller(reader, mapper, true) eventsChan := poller.Poll(context.Background(), identifiers, polling.PollOptions{}) for e := range eventsChan { // Handle event }
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Options ¶
type Options struct { // CustomStatusReaders specifies any implementations of the engine.StatusReader interface that will // be used to compute reconcile status for resources. CustomStatusReaders []engine.StatusReader // ClusterReaderFactory allows for custom implementations of the engine.ClusterReader interface // in the StatusPoller. The default implementation if the clusterreader.CachingClusterReader. ClusterReaderFactory engine.ClusterReaderFactory }
Options can be provided when creating a new StatusPoller to customize the behavior.
type PollOptions ¶ added in v0.28.0
type PollOptions struct { // PollInterval defines how often the PollerEngine should poll the cluster for the latest // state of the resources. PollInterval time.Duration }
PollOptions defines the levers available for tuning the behavior of the StatusPoller.
type StatusPoller ¶
type StatusPoller struct {
// contains filtered or unexported fields
}
StatusPoller provides functionality for polling a cluster for status for a set of resources.
func NewStatusPoller ¶
func NewStatusPoller(reader client.Reader, mapper meta.RESTMapper, o Options) *StatusPoller
NewStatusPoller creates a new StatusPoller using the given clusterreader and mapper. The StatusPoller will use the client for all calls to the cluster.
func NewStatusPollerFromFactory ¶ added in v0.27.0
func NewStatusPollerFromFactory(f cmdutil.Factory, o Options) (*StatusPoller, error)
NewStatusPollerFromFactory creates a new StatusPoller instance from the passed in factory.
func (*StatusPoller) Poll ¶
func (s *StatusPoller) Poll(ctx context.Context, identifiers object.ObjMetadataSet, options PollOptions) <-chan event.Event
Poll will create a new statusPollerRunner that will poll all the resources provided and report their status back on the event channel returned. The statusPollerRunner can be cancelled at any time by cancelling the context passed in.