var ( // RegisterFlags registers flag variables to the given FlagSet if not already registered. // It uses the default command line FlagSet, if none is provided. Currently, it only registers the kubeconfig flag. RegisterFlags = config.RegisterFlags // GetConfigOrDie creates a *rest.Config for talking to a Kubernetes apiserver. // If --kubeconfig is set, will use the kubeconfig file at that location. Otherwise will assume running // in cluster and use the cluster provided kubeconfig. // // Will log an error and exit if there is an error creating the rest.Config. GetConfigOrDie = config.GetConfigOrDie // GetConfig creates a *rest.Config for talking to a Kubernetes apiserver. // If --kubeconfig is set, will use the kubeconfig file at that location. Otherwise will assume running // in cluster and use the cluster provided kubeconfig. // // Config precedence // // * --kubeconfig flag pointing at a file // // * KUBECONFIG environment variable pointing at a file // // * In-cluster config if running in cluster // // * $HOME/.kube/config if exists. GetConfig = config.GetConfig // NewControllerManagedBy returns a new controller builder that will be started by the provided Manager. NewControllerManagedBy = builder.ControllerManagedBy // NewWebhookManagedBy returns a new webhook builder that will be started by the provided Manager. NewWebhookManagedBy = builder.WebhookManagedBy // NewManager returns a new Manager for creating Controllers. // Note that if ContentType in the given config is not set, "application/vnd.kubernetes.protobuf" // will be used for all built-in resources of Kubernetes, and "application/json" is for other types // including all CRD resources. NewManager = manager.New // CreateOrUpdate creates or updates the given object obj in the Kubernetes // cluster. The object's desired state should be reconciled with the existing // state using the passed in ReconcileFn. obj must be a struct pointer so that // obj can be updated with the content returned by the Server. // // It returns the executed operation and an error. CreateOrUpdate = controllerutil.CreateOrUpdate // SetControllerReference sets owner as a Controller OwnerReference on owned. // This is used for garbage collection of the owned object and for // reconciling the owner object on changes to owned (with a Watch + EnqueueRequestForOwner). // Since only one OwnerReference can be a controller, it returns an error if // there is another OwnerReference with Controller flag set. SetControllerReference = controllerutil.SetControllerReference // SetupSignalHandler registered for SIGTERM and SIGINT. A stop channel is returned // which is closed on one of these signals. If a second signal is caught, the program // is terminated with exit code 1. SetupSignalHandler = signals.SetupSignalHandler // Log is the base logger used by controller-runtime. It delegates // to another logr.Logger. You *must* call SetLogger to // get any actual logging. Log = log.Log // LoggerFrom returns a logger with predefined values from a context.Context. // The logger, when used with controllers, can be expected to contain basic information about the object // that's being reconciled like: // - `reconciler group` and `reconciler kind` coming from the For(...) object passed in when building a controller. // - `name` and `namespace` from the reconciliation request. // // This is meant to be used with the context supplied in a struct that satisfies the Reconciler interface. LoggerFrom = log.FromContext // LoggerInto takes a context and sets the logger as one of its keys. // // This is meant to be used in reconcilers to enrich the logger within a context with additional values. LoggerInto = log.IntoContext // SetLogger sets a concrete logging implementation for all deferred Loggers. SetLogger = log.SetLogger )
Builder builds an Application ControllerManagedBy (e.g. Operator) and returns a manager.Manager to start it.
type Builder = builder.Builder
GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types.
type GroupResource = schema.GroupResource
GroupVersion contains the "group" and the "version", which uniquely identifies the API.
type GroupVersion = schema.GroupVersion
Manager initializes shared dependencies such as Caches and Clients, and provides them to Runnables. A Manager is required to create Controllers.
type Manager = manager.Manager
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
type ObjectMeta = metav1.ObjectMeta
Options are the arguments for creating a new Manager.
type Options = manager.Options
Request contains the information necessary to reconcile a Kubernetes object. This includes the information to uniquely identify the object - its Name and Namespace. It does NOT contain information about any specific Event or the object contents itself.
type Request = reconcile.Request
Result contains the result of a Reconciler invocation.
type Result = reconcile.Result
SchemeBuilder builds a new Scheme for mapping go types to Kubernetes GroupVersionKinds.
type SchemeBuilder = scheme.Builder
TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.
+k8s:deepcopy-gen=false
type TypeMeta = metav1.TypeMeta
Name | Synopsis |
---|---|
.. | |
examples | |
builtins | |
crd | |
pkg | +kubebuilder:object:generate=true +groupName=chaosapps.metamagical.io |
tokenreview | |
pkg | Package pkg provides libraries for building Controllers. |
builder | Package builder wraps other controller-runtime libraries and exposes simple patterns for building common Controllers. |
cache | Package cache provides object caches that act as caching client.Reader instances and help drive Kubernetes-object-based event handlers. |
informertest | |
certwatcher | Package certwatcher is a helper for reloading Certificates from disk to be used with tls servers. |
metrics | |
client | Package client contains functionality for interacting with Kubernetes API servers. |
apiutil | Package apiutil contains utilities for working with raw Kubernetes API machinery, such as creating RESTMappers and raw REST clients, and extracting the GVK of an object. |
config | Package config contains libraries for initializing REST configs for talking to the Kubernetes API |
fake | Package fake provides a fake client for testing. |
interceptor | |
cluster | |
config | |
controller | Package controller provides types and functions for building Controllers. |
controllertest | Package controllertest contains fake informers for testing controllers When in doubt, it's almost always better to test against a real API server using envtest.Environment. |
controllerutil | Package controllerutil contains utility functions for working with and implementing Controllers. |
conversion | Package conversion provides interface definitions that an API Type needs to implement for it to be supported by the generic conversion webhook handler defined under pkg/webhook/conversion. |
envtest | Package envtest provides libraries for integration testing by starting a local control plane |
komega | |
event | Package event contains the definitions for the Event types produced by source.Sources and transformed into reconcile.Requests by handler.EventHandler. |
finalizer | |
handler | Package handler defines EventHandlers that enqueue reconcile.Requests in response to Create, Update, Deletion Events observed from Watching Kubernetes APIs. |
healthz | Package healthz contains helpers from supporting liveness and readiness endpoints. |
leaderelection | Package leaderelection contains a constructor for a leader election resource lock. |
fake | Package fake mocks a resource lock for testing purposes. |
log | Package log contains utilities for fetching a new logger when one is not already available. |
zap | Package zap contains helpers for setting up a new logr.Logger instance using the Zap logging framework. |
manager | Package manager is required to create Controllers and provides shared dependencies such as clients, caches, schemes, etc. |
signals | Package signals contains libraries for handling signals to gracefully shutdown the manager in combination with Kubernetes pod graceful termination policy. |
metrics | Package metrics contains controller related metrics utilities |
filters | |
server | Package server provides the metrics server implementation. |
predicate | Package predicate defines Predicates used by Controllers to filter Events before they are provided to EventHandlers. |
ratelimiter | Package ratelimiter defines rate limiters used by Controllers to limit how frequently requests may be queued. |
reconcile | Package reconcile defines the Reconciler interface to implement Kubernetes APIs. |
recorder | Package recorder defines interfaces for working with Kubernetes event recorders. |
scheme | Package scheme contains utilities for gradually building Schemes, which contain information associating Go types with Kubernetes groups, versions, and kinds. |
source | Package source provides event streams to hook up to Controllers with Controller.Watch. |
webhook | Package webhook provides methods to build and bootstrap a webhook server. |
admission | Package admission provides implementation for admission webhook and methods to implement admission webhook handlers. |
authentication | Package authentication provides implementation for authentication webhook and methods to implement authentication webhook handlers. |
conversion | Package conversion provides implementation for CRD conversion webhook that implements handler for version conversion requests for types that are convertible. |