Documentation ¶
Index ¶
- func DefaultNamespace(ns string) func(name *types.NamespacedName)
- func InitLogging(options ...LogOption)
- func KindOf(obj interface{}) string
- func NamespacedNameFrom(nameStr string, opts ...func(*types.NamespacedName)) types.NamespacedName
- func NamespacedNameOf(obj metav1.Object) types.NamespacedName
- func NewContourScheme() (*runtime.Scheme, error)
- func NewCoreClient(kubeconfig string, inCluster bool) (*kubernetes.Clientset, error)
- func NewNamespaceFilter(namespaces []string, next cache.ResourceEventHandler) cache.ResourceEventHandler
- func NewRestConfig(kubeconfig string, inCluster bool) (*rest.Config, error)
- func TLSCertAnnotationNamespace(ing *networking_v1.Ingress) func(name *types.NamespacedName)
- func VersionOf(obj interface{}) string
- type LogOption
- type ServiceStatusLoadBalancerWatcher
- type StatusAddressUpdater
- type StatusMutator
- type StatusMutatorFunc
- type StatusUpdate
- type StatusUpdateCacher
- func (suc *StatusUpdateCacher) Add(name, namespace string, obj client.Object) bool
- func (suc *StatusUpdateCacher) Get(name, namespace string) interface{}
- func (suc *StatusUpdateCacher) GetStatus(obj interface{}) (*contour_api_v1.HTTPProxyStatus, error)
- func (suc *StatusUpdateCacher) IsCacheable(obj interface{}) bool
- func (suc *StatusUpdateCacher) OnAdd(obj interface{})
- func (suc *StatusUpdateCacher) OnDelete(obj interface{})
- func (suc *StatusUpdateCacher) Send(su StatusUpdate)
- type StatusUpdateHandler
- type StatusUpdateWriter
- type StatusUpdater
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultNamespace ¶ added in v1.7.0
func DefaultNamespace(ns string) func(name *types.NamespacedName)
DefaultNamespace can be used with NamespacedNameFrom to set the default namespace for a resource name that may not be qualified by a namespace.
func InitLogging ¶ added in v1.9.0
func InitLogging(options ...LogOption)
InitLogging initializes the Kubernetes client-go logging subsystem.
func KindOf ¶ added in v1.1.0
func KindOf(obj interface{}) string
KindOf returns the kind string for the given Kubernetes object.
The API machinery doesn't populate the metav1.TypeMeta field for objects, so we have to use a type assertion to detect kinds that we care about.
func NamespacedNameFrom ¶ added in v1.7.0
func NamespacedNameFrom(nameStr string, opts ...func(*types.NamespacedName)) types.NamespacedName
NamespacedNameFrom parses a resource name string into a fully qualified NamespacedName.
func NamespacedNameOf ¶ added in v1.7.0
func NamespacedNameOf(obj metav1.Object) types.NamespacedName
NamespacedNameOf returns the NamespacedName of any given Kubernetes object.
func NewContourScheme ¶ added in v1.10.0
NewContourScheme returns a scheme that includes all the API types that Contour supports as well as the core Kubernetes API types from the default scheme.
func NewCoreClient ¶ added in v1.20.0
func NewCoreClient(kubeconfig string, inCluster bool) (*kubernetes.Clientset, error)
NewCoreClient returns a new Kubernetes core API client using the supplied kubeconfig path, or the cluster environment variables if inCluster is true.
func NewNamespaceFilter ¶ added in v1.10.0
func NewNamespaceFilter( namespaces []string, next cache.ResourceEventHandler, ) cache.ResourceEventHandler
NewNamespaceFilter returns a cache.ResourceEventHandler that accepts only objects whose namespaces are included in the given slice of namespaces. Objects with matching namespaces are passed to the next handler.
func NewRestConfig ¶ added in v1.20.0
NewRestConfig returns a *rest.Config for the supplied kubeconfig path, or the cluster environment variables if inCluster is true.
func TLSCertAnnotationNamespace ¶ added in v1.20.0
func TLSCertAnnotationNamespace(ing *networking_v1.Ingress) func(name *types.NamespacedName)
TLSCertAnnotationNamespace can be used with NamespacedNameFrom to set the secret namespace from the "projectcontour.io/tls-cert-namespace" annotation
Types ¶
type LogOption ¶ added in v1.9.0
type LogOption func(*klogParams)
func LogLevelOption ¶ added in v1.9.0
LogLevelOption creates an option to set the Kubernetes verbose log level (1 - 10 is the standard range).
func LogWriterOption ¶ added in v1.9.0
LogWriterOption creates an option to set the Kubernetes logging output.
type ServiceStatusLoadBalancerWatcher ¶ added in v1.4.0
type ServiceStatusLoadBalancerWatcher struct { ServiceName string LBStatus chan v1.LoadBalancerStatus Log logrus.FieldLogger }
ServiceStatusLoadBalancerWatcher implements ResourceEventHandler and watches for changes to the status.loadbalancer field Note that we specifically *don't* inspect inside the struct, as sending empty values is desirable to clear the status.
func (*ServiceStatusLoadBalancerWatcher) OnAdd ¶ added in v1.4.0
func (s *ServiceStatusLoadBalancerWatcher) OnAdd(obj interface{})
func (*ServiceStatusLoadBalancerWatcher) OnDelete ¶ added in v1.4.0
func (s *ServiceStatusLoadBalancerWatcher) OnDelete(obj interface{})
func (*ServiceStatusLoadBalancerWatcher) OnUpdate ¶ added in v1.4.0
func (s *ServiceStatusLoadBalancerWatcher) OnUpdate(oldObj, newObj interface{})
type StatusAddressUpdater ¶ added in v1.5.0
type StatusAddressUpdater struct { Logger logrus.FieldLogger Cache cache.Cache LBStatus v1.LoadBalancerStatus IngressClassName string GatewayControllerName string StatusUpdater StatusUpdater // contains filtered or unexported fields }
StatusAddressUpdater observes informer OnAdd and OnUpdate events and updates the ingress.status.loadBalancer field on all Ingress objects that match the ingress class (if used). Note that this is intended to handle updating the status.loadBalancer struct only, not more general status updates. That's a job for the StatusUpdater.
func (*StatusAddressUpdater) OnAdd ¶ added in v1.5.0
func (s *StatusAddressUpdater) OnAdd(obj interface{})
OnAdd updates the given Ingress/HTTPProxy/Gateway object with the current load balancer address. Note that this method can be called concurrently from an informer or from Contour itself.
func (*StatusAddressUpdater) OnDelete ¶ added in v1.5.0
func (s *StatusAddressUpdater) OnDelete(obj interface{})
func (*StatusAddressUpdater) OnUpdate ¶ added in v1.5.0
func (s *StatusAddressUpdater) OnUpdate(oldObj, newObj interface{})
func (*StatusAddressUpdater) Set ¶ added in v1.10.0
func (s *StatusAddressUpdater) Set(status v1.LoadBalancerStatus)
Set updates the LBStatus field.
type StatusMutator ¶ added in v1.5.0
StatusMutator is an interface to hold mutator functions for status updates.
type StatusMutatorFunc ¶ added in v1.5.0
StatusMutatorFunc is a function adaptor for StatusMutators.
type StatusUpdate ¶ added in v1.5.0
type StatusUpdate struct { NamespacedName types.NamespacedName Resource client.Object Mutator StatusMutator }
StatusUpdate contains an all the information needed to change an object's status to perform a specific update. Send down a channel to the goroutine that actually writes the changes back.
func NewStatusUpdate ¶ added in v1.9.0
func NewStatusUpdate(name, namespace string, resource client.Object, mutator StatusMutator) StatusUpdate
type StatusUpdateCacher ¶ added in v1.5.0
type StatusUpdateCacher struct {
// contains filtered or unexported fields
}
StatusUpdateCacher takes status updates and applies them to a cache, to be used for testing.
func (*StatusUpdateCacher) Add ¶ added in v1.9.0
func (suc *StatusUpdateCacher) Add(name, namespace string, obj client.Object) bool
func (*StatusUpdateCacher) Get ¶ added in v1.9.0
func (suc *StatusUpdateCacher) Get(name, namespace string) interface{}
Get allows retrieval of objects from the cache.
func (*StatusUpdateCacher) GetStatus ¶ added in v1.9.0
func (suc *StatusUpdateCacher) GetStatus(obj interface{}) (*contour_api_v1.HTTPProxyStatus, error)
func (*StatusUpdateCacher) IsCacheable ¶ added in v1.9.0
func (suc *StatusUpdateCacher) IsCacheable(obj interface{}) bool
IsCacheable returns whether this type of object can be stored in the status cache.
func (*StatusUpdateCacher) OnAdd ¶ added in v1.9.0
func (suc *StatusUpdateCacher) OnAdd(obj interface{})
OnAdd adds an object to the status cache.
func (*StatusUpdateCacher) OnDelete ¶ added in v1.9.0
func (suc *StatusUpdateCacher) OnDelete(obj interface{})
OnDelete removes an object from the status cache.
func (*StatusUpdateCacher) Send ¶ added in v1.9.0
func (suc *StatusUpdateCacher) Send(su StatusUpdate)
type StatusUpdateHandler ¶ added in v1.5.0
type StatusUpdateHandler struct {
// contains filtered or unexported fields
}
StatusUpdateHandler holds the details required to actually write an Update back to the referenced object.
func NewStatusUpdateHandler ¶ added in v1.20.0
func NewStatusUpdateHandler(log logrus.FieldLogger, client client.Client) *StatusUpdateHandler
func (*StatusUpdateHandler) NeedLeaderElection ¶ added in v1.20.0
func (suh *StatusUpdateHandler) NeedLeaderElection() bool
func (*StatusUpdateHandler) Start ¶ added in v1.5.0
func (suh *StatusUpdateHandler) Start(ctx context.Context) error
Start runs the goroutine to perform status writes.
func (*StatusUpdateHandler) Writer ¶ added in v1.5.0
func (suh *StatusUpdateHandler) Writer() StatusUpdater
Writer retrieves the interface that should be used to write to the StatusUpdateHandler.
type StatusUpdateWriter ¶ added in v1.5.0
type StatusUpdateWriter struct {
// contains filtered or unexported fields
}
StatusUpdateWriter takes status updates and sends these to the StatusUpdateHandler via a channel.
func (*StatusUpdateWriter) Send ¶ added in v1.9.0
func (suw *StatusUpdateWriter) Send(update StatusUpdate)
Send sends the given StatusUpdate off to the update channel for writing by the StatusUpdateHandler.
type StatusUpdater ¶ added in v1.5.0
type StatusUpdater interface {
Send(su StatusUpdate)
}
StatusUpdater describes an interface to send status updates somewhere.