Documentation ¶
Overview ¶
Package k8s contains helpers for setting the IngressRoute status
Copyright © 2020 VMware Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- func KindOf(obj interface{}) string
- type Clients
- func (c *Clients) ClientSet() *kubernetes.Clientset
- func (c *Clients) CoordinationClient() *coordinationv1.CoordinationV1Client
- func (c *Clients) DynamicClient() dynamic.Interface
- func (c *Clients) NewDynamicInformerFactory() dynamicinformer.DynamicSharedInformerFactory
- func (c *Clients) NewInformerFactory() informers.SharedInformerFactory
- func (c *Clients) NewInformerFactoryForNamespace(namespace string) informers.SharedInformerFactory
- type Converter
- type DynamicClientHandler
- type FullName
- type InformerSet
- type InformerSyncList
- type IngressStatusUpdater
- type Object
- type ServiceStatusLoadBalancerWatcher
- type StatusCacher
- type StatusClient
- type StatusWriter
- type UnstructuredConverter
Constants ¶
const ( StatusValid = "valid" StatusInvalid = "invalid" StatusOrphaned = "orphaned" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Clients ¶ added in v1.3.0
type Clients struct {
// contains filtered or unexported fields
}
Clients holds the various API clients required by Contour.
func NewClients ¶ added in v1.3.0
NewClients returns a new set of the various API clients required by Contour using the supplied kubeconfig path, or the cluster environment variables if inCluster is true.
func (*Clients) ClientSet ¶ added in v1.3.0
func (c *Clients) ClientSet() *kubernetes.Clientset
ClientSet returns the Kubernetes Core v1 ClientSet.
func (*Clients) CoordinationClient ¶ added in v1.3.0
func (c *Clients) CoordinationClient() *coordinationv1.CoordinationV1Client
CoordinationClient returns the Kubernets Core v1 coordination client.
func (*Clients) DynamicClient ¶ added in v1.3.0
DynamicClient returns the Dyanmic client.
func (*Clients) NewDynamicInformerFactory ¶ added in v1.3.0
func (c *Clients) NewDynamicInformerFactory() dynamicinformer.DynamicSharedInformerFactory
NewDynamicInformerFactory returns a new DynamicSharedInformerFactory for use with any registered Kubernetes API type.
func (*Clients) NewInformerFactory ¶ added in v1.3.0
func (c *Clients) NewInformerFactory() informers.SharedInformerFactory
NewInformerFactory returns a new SharedInformerFactory for the core Kubernetes API types.
func (*Clients) NewInformerFactoryForNamespace ¶ added in v1.3.0
func (c *Clients) NewInformerFactoryForNamespace(namespace string) informers.SharedInformerFactory
NewInformerFactoryForNamespace returns a new SharedInformerFactory for the core Kubernetes API types for the namespace supplied.
type Converter ¶ added in v1.2.0
type Converter interface {
Convert(obj interface{}) (interface{}, error)
}
type DynamicClientHandler ¶ added in v1.2.0
type DynamicClientHandler struct { // Next is the next handler in the chain. Next cache.ResourceEventHandler // Converter is the registered converter. Converter Converter Logger logrus.FieldLogger }
DynamicClientHandler converts *unstructured.Unstructured from the k8s dynamic client to the types registered with the supplied Converter and forwards them to the next Handler in the chain.
func (*DynamicClientHandler) OnAdd ¶ added in v1.2.0
func (d *DynamicClientHandler) OnAdd(obj interface{})
func (*DynamicClientHandler) OnDelete ¶ added in v1.2.0
func (d *DynamicClientHandler) OnDelete(obj interface{})
func (*DynamicClientHandler) OnUpdate ¶ added in v1.2.0
func (d *DynamicClientHandler) OnUpdate(oldObj, newObj interface{})
type FullName ¶ added in v1.4.0
type FullName struct {
Name, Namespace string
}
FullName holds the name and namespace of a Kubernetes object.
func ToFullName ¶ added in v1.4.0
ToFullName returns the FullName of any given Kubernetes object.
type InformerSet ¶ added in v1.4.0
type InformerSet struct {
Informers gvrmap
}
InformerSet stores a table of Kubernetes GVR objects to their associated informers.
func DefaultInformerSet ¶ added in v1.4.0
func DefaultInformerSet(inffactory dynamicinformer.DynamicSharedInformerFactory, serviceAPIs bool) InformerSet
DefaultInformerSet creates a new InformerSet lookup table and populates with the default GVRs that Contour will try to watch.
type InformerSyncList ¶ added in v1.3.0
type InformerSyncList struct {
// contains filtered or unexported fields
}
InformerSyncList holds the functions to call to check that an informer is synced.
func (*InformerSyncList) RegisterInformer ¶ added in v1.4.0
func (sl *InformerSyncList) RegisterInformer(inf cache.SharedIndexInformer, handler cache.ResourceEventHandler)
RegisterInformer adds the sync function from an informer to InformerSyncList and calls the informers AddEventHandler method.
func (*InformerSyncList) WaitForSync ¶ added in v1.3.0
func (sl *InformerSyncList) WaitForSync(stop <-chan struct{}) error
WaitForSync ensures that all the informers in the InformerSyncList are synced before returning.
type IngressStatusUpdater ¶ added in v1.4.0
type IngressStatusUpdater struct { Client clientset.Interface Logger logrus.FieldLogger Status v1.LoadBalancerStatus IngressClass string }
IngressStatusUpdater observes informer OnAdd events and updates the ingress.status.loadBalancer field on all Ingress objects that match the ingress class (if used).
func (*IngressStatusUpdater) OnAdd ¶ added in v1.4.0
func (s *IngressStatusUpdater) OnAdd(obj interface{})
func (*IngressStatusUpdater) OnDelete ¶ added in v1.4.0
func (s *IngressStatusUpdater) OnDelete(obj interface{})
func (*IngressStatusUpdater) OnUpdate ¶ added in v1.4.0
func (s *IngressStatusUpdater) OnUpdate(oldObj, newObj interface{})
type Object ¶ added in v1.4.0
type Object interface { metav1.ObjectMetaAccessor }
Object is any Kubernetes object that has an ObjectMeta. TODO(youngnick): Review references to this and replace them with straight metav1.ObjectMetaAccessor calls if we can.
type ServiceStatusLoadBalancerWatcher ¶ added in v1.4.0
type ServiceStatusLoadBalancerWatcher struct { ServiceName string LBStatus chan v1.LoadBalancerStatus }
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 StatusCacher ¶ added in v1.1.0
type StatusCacher struct {
// contains filtered or unexported fields
}
StatusCacher keeps a cache of the latest status updates for Kubernetes objects.
func (*StatusCacher) Delete ¶ added in v1.1.0
func (c *StatusCacher) Delete(obj interface{})
Delete removes an object from the status cache.
func (*StatusCacher) GetStatus ¶ added in v1.1.0
func (c *StatusCacher) GetStatus(obj interface{}) (*projcontour.Status, error)
GetStatus returns the status (if any) for this given object.
func (*StatusCacher) IsCacheable ¶ added in v1.2.0
func (c *StatusCacher) IsCacheable(obj interface{}) bool
IsCacheable returns whether this type of object can be stored in the status cache.
func (*StatusCacher) SetStatus ¶ added in v1.1.0
func (c *StatusCacher) SetStatus(status, desc string, obj interface{}) error
SetStatus sets the IngressRoute status field to an Valid or Invalid status
type StatusClient ¶ added in v1.1.0
type StatusClient interface { SetStatus(status string, desc string, obj interface{}) error GetStatus(obj interface{}) (*projcontour.Status, error) }
StatusClient updates the Status on a Kubernetes object.
type StatusWriter ¶ added in v1.1.0
StatusWriter updates the object's Status field.
func (*StatusWriter) GetStatus ¶ added in v1.1.0
func (irs *StatusWriter) GetStatus(obj interface{}) (*projcontour.Status, error)
GetStatus is not implemented for StatusWriter.
func (*StatusWriter) SetStatus ¶ added in v1.1.0
func (irs *StatusWriter) SetStatus(status, desc string, existing interface{}) error
SetStatus sets the IngressRoute status field to an Valid or Invalid status
type UnstructuredConverter ¶ added in v1.2.0
type UnstructuredConverter struct {
// contains filtered or unexported fields
}
UnstructuredConverter handles conversions between unstructured.Unstructured and Contour types
func NewUnstructuredConverter ¶ added in v1.2.0
func NewUnstructuredConverter() (*UnstructuredConverter, error)
NewUnstructuredConverter returns a new UnstructuredConverter initialized
func (*UnstructuredConverter) Convert ¶ added in v1.2.0
func (c *UnstructuredConverter) Convert(obj interface{}) (interface{}, error)
Convert converts an unstructured.Unstructured to typed struct. If obj is not an unstructured.Unstructured it is returned without further processing.