Documentation
¶
Index ¶
- Constants
- type CacheStores
- type ErrNotFound
- type FakeObjects
- type Store
- func (s Store) GetEndpointSlicesForService(namespace, name string) ([]*discoveryv1.EndpointSlice, error)
- func (s Store) GetGateway(namespace string, name string) (*gatewayv1beta1.Gateway, error)
- func (s Store) GetIngressClassName() string
- func (s Store) GetIngressClassParametersV1Alpha1(ingressClass *netv1.IngressClass) (*kongv1alpha1.IngressClassParameters, error)
- func (s Store) GetIngressClassV1(name string) (*netv1.IngressClass, error)
- func (s Store) GetKongClusterPlugin(name string) (*kongv1.KongClusterPlugin, error)
- func (s Store) GetKongConsumer(namespace, name string) (*kongv1.KongConsumer, error)
- func (s Store) GetKongConsumerGroup(namespace, name string) (*kongv1beta1.KongConsumerGroup, error)
- func (s Store) GetKongIngress(namespace, name string) (*kongv1.KongIngress, error)
- func (s Store) GetKongPlugin(namespace, name string) (*kongv1.KongPlugin, error)
- func (s Store) GetSecret(namespace, name string) (*corev1.Secret, error)
- func (s Store) GetService(namespace, name string) (*corev1.Service, error)
- func (s Store) ListCACerts() ([]*corev1.Secret, error)
- func (s Store) ListGRPCRoutes() ([]*gatewayv1alpha2.GRPCRoute, error)
- func (s Store) ListGateways() ([]*gatewayv1beta1.Gateway, error)
- func (s Store) ListGlobalKongClusterPlugins() ([]*kongv1.KongClusterPlugin, error)
- func (s Store) ListGlobalKongPlugins() ([]*kongv1.KongPlugin, error)
- func (s Store) ListHTTPRoutes() ([]*gatewayv1beta1.HTTPRoute, error)
- func (s Store) ListIngressClassParametersV1Alpha1() []*kongv1alpha1.IngressClassParameters
- func (s Store) ListIngressClassesV1() []*netv1.IngressClass
- func (s Store) ListIngressesV1() []*netv1.Ingress
- func (s Store) ListKnativeIngresses() ([]*knative.Ingress, error)
- func (s Store) ListKongClusterPlugins() []*kongv1.KongClusterPlugin
- func (s Store) ListKongConsumerGroups() []*kongv1beta1.KongConsumerGroup
- func (s Store) ListKongConsumers() []*kongv1.KongConsumer
- func (s Store) ListKongPlugins() []*kongv1.KongPlugin
- func (s Store) ListReferenceGrants() ([]*gatewayv1beta1.ReferenceGrant, error)
- func (s Store) ListTCPIngresses() ([]*kongv1beta1.TCPIngress, error)
- func (s Store) ListTCPRoutes() ([]*gatewayv1alpha2.TCPRoute, error)
- func (s Store) ListTLSRoutes() ([]*gatewayv1alpha2.TLSRoute, error)
- func (s Store) ListUDPIngresses() ([]*kongv1beta1.UDPIngress, error)
- func (s Store) ListUDPRoutes() ([]*gatewayv1alpha2.UDPRoute, error)
- type Storer
Constants ¶
const (
// IngressClassKongController is the string used for the Controller field of a recognized IngressClass.
IngressClassKongController = "ingress-controllers.konghq.com/kong"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CacheStores ¶
type CacheStores struct {
// Core Kubernetes Stores
IngressV1 cache.Store
IngressClassV1 cache.Store
Service cache.Store
Secret cache.Store
EndpointSlice cache.Store
// Gateway API Stores
HTTPRoute cache.Store
UDPRoute cache.Store
TCPRoute cache.Store
TLSRoute cache.Store
GRPCRoute cache.Store
ReferenceGrant cache.Store
Gateway cache.Store
// Kong Stores
Plugin cache.Store
ClusterPlugin cache.Store
Consumer cache.Store
ConsumerGroup cache.Store
KongIngress cache.Store
TCPIngress cache.Store
UDPIngress cache.Store
IngressClassParametersV1alpha1 cache.Store
// Knative Stores
KnativeIngress cache.Store
// contains filtered or unexported fields
}
CacheStores stores cache.Store for all Kinds of k8s objects that the Ingress Controller reads.
func NewCacheStores ¶
func NewCacheStores() CacheStores
NewCacheStores is a convenience function for CacheStores to initialize all attributes with new cache stores.
func NewCacheStoresFromObjYAML ¶
func NewCacheStoresFromObjYAML(objs ...[]byte) (c CacheStores, err error)
NewCacheStoresFromObjYAML provides a new CacheStores object given any number of byte arrays containing YAML Kubernetes objects. An error is returned if any provided YAML was not a valid Kubernetes object.
func NewCacheStoresFromObjs ¶
func NewCacheStoresFromObjs(objs ...runtime.Object) (CacheStores, error)
NewCacheStoresFromObjs provides a new CacheStores object given any number of Kubernetes objects that should be pre-populated. This function will sort objects into the appropriate sub-storage (e.g. IngressV1, TCPIngress, e.t.c.) but will produce an error if any of the input objects are erroneous or otherwise unusable as Kubernetes objects.
func (CacheStores) Add ¶
func (c CacheStores) Add(obj runtime.Object) error
Add stores a provided runtime.Object into the CacheStore if it's of a supported type. The CacheStore must be initialized (see NewCacheStores()) or this will panic.
type ErrNotFound ¶
type ErrNotFound struct {
Message string
}
ErrNotFound error is returned when a lookup results in no resource. This type is meant to be used for error handling using `errors.As()`.
func (ErrNotFound) Error ¶
func (e ErrNotFound) Error() string
type FakeObjects ¶
type FakeObjects struct {
IngressesV1 []*netv1.Ingress
IngressClassesV1 []*netv1.IngressClass
HTTPRoutes []*gatewayv1beta1.HTTPRoute
UDPRoutes []*gatewayv1alpha2.UDPRoute
TCPRoutes []*gatewayv1alpha2.TCPRoute
TLSRoutes []*gatewayv1alpha2.TLSRoute
GRPCRoutes []*gatewayv1alpha2.GRPCRoute
ReferenceGrants []*gatewayv1beta1.ReferenceGrant
Gateways []*gatewayv1beta1.Gateway
TCPIngresses []*kongv1beta1.TCPIngress
UDPIngresses []*kongv1beta1.UDPIngress
IngressClassParametersV1alpha1 []*kongv1alpha1.IngressClassParameters
Services []*corev1.Service
EndpointSlices []*discoveryv1.EndpointSlice
Secrets []*corev1.Secret
KongPlugins []*kongv1.KongPlugin
KongClusterPlugins []*kongv1.KongClusterPlugin
KongIngresses []*kongv1.KongIngress
KongConsumers []*kongv1.KongConsumer
KongConsumerGroups []*kongv1beta1.KongConsumerGroup
KnativeIngresses []*knative.Ingress
}
FakeObjects can be used to populate a fake Store.
func (FakeObjects) MarshalToYAML ¶ added in v2.11.0
func (objects FakeObjects) MarshalToYAML() ([]byte, error)
MarshalToYAML marshals the contents of every object in the store as YAML, separated by "---". This is useful for debugging.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store implements Storer and can be used to list Ingress, Services and other resources from k8s APIserver. The backing stores should be synced and updated by the caller. It is ingressClass filter aware.
func (Store) GetEndpointSlicesForService ¶ added in v2.10.0
func (s Store) GetEndpointSlicesForService(namespace, name string) ([]*discoveryv1.EndpointSlice, error)
GetEndpointSlicesForService returns all EndpointSlices for service 'namespace/name' inside K8s.
func (Store) GetGateway ¶ added in v2.8.0
GetGateway returns gateway resource having specified namespace and name.
func (Store) GetIngressClassName ¶ added in v2.9.0
func (Store) GetIngressClassParametersV1Alpha1 ¶ added in v2.6.0
func (s Store) GetIngressClassParametersV1Alpha1(ingressClass *netv1.IngressClass) (*kongv1alpha1.IngressClassParameters, error)
GetIngressClassParametersV1Alpha1 returns IngressClassParameters for provided IngressClass.
func (Store) GetIngressClassV1 ¶ added in v2.3.0
func (s Store) GetIngressClassV1(name string) (*netv1.IngressClass, error)
GetIngressClassV1 returns the 'name' IngressClass resource.
func (Store) GetKongClusterPlugin ¶
func (s Store) GetKongClusterPlugin(name string) (*kongv1.KongClusterPlugin, error)
GetKongClusterPlugin returns the 'name' KongClusterPlugin resource.
func (Store) GetKongConsumer ¶
func (s Store) GetKongConsumer(namespace, name string) (*kongv1.KongConsumer, error)
GetKongConsumer returns the 'name' KongConsumer resource in namespace.
func (Store) GetKongConsumerGroup ¶ added in v2.11.0
func (s Store) GetKongConsumerGroup(namespace, name string) (*kongv1beta1.KongConsumerGroup, error)
GetKongConsumerGroup returns the 'name' KongConsumerGroup resource in namespace.
func (Store) GetKongIngress ¶
func (s Store) GetKongIngress(namespace, name string) (*kongv1.KongIngress, error)
GetKongIngress returns the 'name' KongIngress resource in namespace.
func (Store) GetKongPlugin ¶
func (s Store) GetKongPlugin(namespace, name string) (*kongv1.KongPlugin, error)
GetKongPlugin returns the 'name' KongPlugin resource in namespace.
func (Store) GetService ¶
GetService returns a Service using the namespace and name as key.
func (Store) ListCACerts ¶
ListCACerts returns all Secrets containing the label "konghq.com/ca-cert"="true".
func (Store) ListGRPCRoutes ¶ added in v2.9.0
func (s Store) ListGRPCRoutes() ([]*gatewayv1alpha2.GRPCRoute, error)
ListGRPCRoutes returns the list of GRPCRoutes in the GRPCRoute cache store.
func (Store) ListGateways ¶ added in v2.5.0
func (s Store) ListGateways() ([]*gatewayv1beta1.Gateway, error)
ListGateways returns the list of Gateways in the Gateway cache store.
func (Store) ListGlobalKongClusterPlugins ¶
func (s Store) ListGlobalKongClusterPlugins() ([]*kongv1.KongClusterPlugin, error)
ListGlobalKongClusterPlugins returns all KongClusterPlugin resources filtered by the ingress.class annotation and with the label global:"true".
func (Store) ListGlobalKongPlugins ¶
func (s Store) ListGlobalKongPlugins() ([]*kongv1.KongPlugin, error)
ListGlobalKongPlugins returns all KongPlugin resources filtered by the ingress.class annotation and with the label global:"true". Support for these global namespaced KongPlugins was removed in 0.10.0 This function remains only to provide warnings to users with old configuration.
func (Store) ListHTTPRoutes ¶ added in v2.1.0
func (s Store) ListHTTPRoutes() ([]*gatewayv1beta1.HTTPRoute, error)
ListHTTPRoutes returns the list of HTTPRoutes in the HTTPRoute cache store.
func (Store) ListIngressClassParametersV1Alpha1 ¶ added in v2.6.0
func (s Store) ListIngressClassParametersV1Alpha1() []*kongv1alpha1.IngressClassParameters
ListIngressClassParametersV1Alpha1 returns the list of IngressClassParameters in the Ingress v1alpha1 store.
func (Store) ListIngressClassesV1 ¶ added in v2.3.0
func (s Store) ListIngressClassesV1() []*netv1.IngressClass
ListIngressClassesV1 returns the list of Ingresses in the Ingress v1 store.
func (Store) ListIngressesV1 ¶
ListIngressesV1 returns the list of Ingresses in the Ingress v1 store.
func (Store) ListKnativeIngresses ¶
ListKnativeIngresses returns the list of Knative Ingresses from ingresses.networking.internal.knative.dev group.
func (Store) ListKongClusterPlugins ¶ added in v2.8.0
func (s Store) ListKongClusterPlugins() []*kongv1.KongClusterPlugin
ListKongClusterPlugins lists all KongClusterPlugins that match expected ingress.class annotation.
func (Store) ListKongConsumerGroups ¶ added in v2.11.0
func (s Store) ListKongConsumerGroups() []*kongv1beta1.KongConsumerGroup
ListKongConsumerGroups returns all KongConsumerGroups filtered by the ingress.class annotation.
func (Store) ListKongConsumers ¶
func (s Store) ListKongConsumers() []*kongv1.KongConsumer
ListKongConsumers returns all KongConsumers filtered by the ingress.class annotation.
func (Store) ListKongPlugins ¶ added in v2.8.0
func (s Store) ListKongPlugins() []*kongv1.KongPlugin
ListKongPlugins lists all KongPlugins.
func (Store) ListReferenceGrants ¶ added in v2.6.0
func (s Store) ListReferenceGrants() ([]*gatewayv1beta1.ReferenceGrant, error)
ListReferenceGrants returns the list of ReferenceGrants in the ReferenceGrant cache store.
func (Store) ListTCPIngresses ¶
func (s Store) ListTCPIngresses() ([]*kongv1beta1.TCPIngress, error)
ListTCPIngresses returns the list of TCP Ingresses from configuration.konghq.com group.
func (Store) ListTCPRoutes ¶ added in v2.4.0
func (s Store) ListTCPRoutes() ([]*gatewayv1alpha2.TCPRoute, error)
ListTCPRoutes returns the list of TCPRoutes in the TCPRoute cache store.
func (Store) ListTLSRoutes ¶ added in v2.4.0
func (s Store) ListTLSRoutes() ([]*gatewayv1alpha2.TLSRoute, error)
ListTLSRoutes returns the list of TLSRoutes in the TLSRoute cache store.
func (Store) ListUDPIngresses ¶
func (s Store) ListUDPIngresses() ([]*kongv1beta1.UDPIngress, error)
ListUDPIngresses returns the list of UDP Ingresses.
func (Store) ListUDPRoutes ¶ added in v2.3.0
func (s Store) ListUDPRoutes() ([]*gatewayv1alpha2.UDPRoute, error)
ListUDPRoutes returns the list of UDPRoutes in the UDPRoute cache store.
type Storer ¶
type Storer interface {
GetSecret(namespace, name string) (*corev1.Secret, error)
GetService(namespace, name string) (*corev1.Service, error)
GetEndpointSlicesForService(namespace, name string) ([]*discoveryv1.EndpointSlice, error)
GetKongIngress(namespace, name string) (*kongv1.KongIngress, error)
GetKongPlugin(namespace, name string) (*kongv1.KongPlugin, error)
GetKongClusterPlugin(name string) (*kongv1.KongClusterPlugin, error)
GetKongConsumer(namespace, name string) (*kongv1.KongConsumer, error)
GetKongConsumerGroup(namespace, name string) (*kongv1beta1.KongConsumerGroup, error)
GetIngressClassName() string
GetIngressClassV1(name string) (*netv1.IngressClass, error)
GetIngressClassParametersV1Alpha1(ingressClass *netv1.IngressClass) (*kongv1alpha1.IngressClassParameters, error)
GetGateway(namespace string, name string) (*gatewayv1beta1.Gateway, error)
ListIngressesV1() []*netv1.Ingress
ListIngressClassesV1() []*netv1.IngressClass
ListIngressClassParametersV1Alpha1() []*kongv1alpha1.IngressClassParameters
ListHTTPRoutes() ([]*gatewayv1beta1.HTTPRoute, error)
ListUDPRoutes() ([]*gatewayv1alpha2.UDPRoute, error)
ListTCPRoutes() ([]*gatewayv1alpha2.TCPRoute, error)
ListTLSRoutes() ([]*gatewayv1alpha2.TLSRoute, error)
ListGRPCRoutes() ([]*gatewayv1alpha2.GRPCRoute, error)
ListReferenceGrants() ([]*gatewayv1beta1.ReferenceGrant, error)
ListGateways() ([]*gatewayv1beta1.Gateway, error)
ListTCPIngresses() ([]*kongv1beta1.TCPIngress, error)
ListUDPIngresses() ([]*kongv1beta1.UDPIngress, error)
ListKnativeIngresses() ([]*knative.Ingress, error)
ListGlobalKongPlugins() ([]*kongv1.KongPlugin, error)
ListGlobalKongClusterPlugins() ([]*kongv1.KongClusterPlugin, error)
ListKongPlugins() []*kongv1.KongPlugin
ListKongClusterPlugins() []*kongv1.KongClusterPlugin
ListKongConsumers() []*kongv1.KongConsumer
ListKongConsumerGroups() []*kongv1beta1.KongConsumerGroup
ListCACerts() ([]*corev1.Secret, error)
}
Storer is the interface that wraps the required methods to gather information about ingresses, services, secrets and ingress annotations.
func New ¶
func New(cs CacheStores, ingressClass string, logger logrus.FieldLogger) Storer
New creates a new object store to be used in the ingress controller.
func NewFakeStore ¶
func NewFakeStore( objects FakeObjects, ) (Storer, error)
NewFakeStore creates a store backed by the objects passed in as arguments.