Documentation ¶
Index ¶
- Constants
- Variables
- func GetRestConfig(kubeConfig, apiServerURL string) (*rest.Config, error)
- func NewCFClient(cfAPIEndpoint string, cfUsername string, cfPassword string) (*cfclient.Client, error)
- func NewCRDClientForAPIVersionKind(client kubernetes.Interface, kubeConfig, apiServerURL, apiVersion, kind string) (*rest.RESTClient, *runtime.Scheme, error)
- func NewDynamicKubernetesClient(kubeConfig, apiServerURL string, requestTimeout time.Duration) (dynamic.Interface, error)
- func NewIstioClient(kubeConfig string, apiServerURL string) (*istioclient.Clientset, error)
- func NewKubeClient(kubeConfig, apiServerURL string, requestTimeout time.Duration) (*kubernetes.Clientset, error)
- func NewOpenShiftClient(kubeConfig, apiServerURL string, requestTimeout time.Duration) (*openshift.Clientset, error)
- type ClientGenerator
- type Config
- type SingletonClientGenerator
- func (p *SingletonClientGenerator) CloudFoundryClient(cfAPIEndpoint string, cfUsername string, cfPassword string) (*cfclient.Client, error)
- func (p *SingletonClientGenerator) DynamicKubernetesClient() (dynamic.Interface, error)
- func (p *SingletonClientGenerator) IstioClient() (istioclient.Interface, error)
- func (p *SingletonClientGenerator) KubeClient() (kubernetes.Interface, error)
- func (p *SingletonClientGenerator) OpenShiftClient() (openshift.Interface, error)
- type Source
- func BuildWithConfig(source string, p ClientGenerator, cfg *Config) (Source, error)
- func ByNames(p ClientGenerator, names []string, cfg *Config) ([]Source, error)
- func NewCRDSource(crdClient rest.Interface, namespace, kind string, annotationFilter string, ...) (Source, error)
- func NewCloudFoundrySource(cfClient *cfclient.Client) (Source, error)
- func NewConnectorSource(remoteServer string) (Source, error)
- func NewContourIngressRouteSource(dynamicKubeClient dynamic.Interface, kubeClient kubernetes.Interface, ...) (Source, error)
- func NewDedupSource(source Source) Source
- func NewEmptySource() Source
- func NewFakeSource(fqdnTemplate string) (Source, error)
- func NewIngressSource(kubeClient kubernetes.Interface, namespace, annotationFilter string, ...) (Source, error)
- func NewIstioGatewaySource(kubeClient kubernetes.Interface, istioClient istioclient.Interface, ...) (Source, error)
- func NewIstioVirtualServiceSource(kubeClient kubernetes.Interface, istioClient istioclient.Interface, ...) (Source, error)
- func NewMultiSource(children []Source) Source
- func NewNodeSource(kubeClient kubernetes.Interface, annotationFilter, fqdnTemplate string) (Source, error)
- func NewOcpRouteSource(ocpClient versioned.Interface, namespace string, annotationFilter string, ...) (Source, error)
- func NewRouteGroupSource(timeout time.Duration, ...) (Source, error)
- func NewServiceSource(kubeClient kubernetes.Interface, namespace, annotationFilter string, ...) (Source, error)
- type UnstructuredConverter
Constants ¶
const ( // ALBDualstackAnnotationKey is the annotation used for determining if an ALB ingress is dualstack ALBDualstackAnnotationKey = "alb.ingress.kubernetes.io/ip-address-type" // ALBDualstackAnnotationValue is the value of the ALB dualstack annotation that indicates it is dualstack ALBDualstackAnnotationValue = "dualstack" )
const ( // The annotation used for determining if traffic will go through Cloudflare CloudflareProxiedKey = "external-dns.alpha.kubernetes.io/cloudflare-proxied" SetIdentifierKey = "external-dns.alpha.kubernetes.io/set-identifier" )
Provider-specific annotations
const (
// DefaultRoutegroupVersion is the default version for route groups.
DefaultRoutegroupVersion = "zalando.org/v1"
)
const IstioMeshGateway = "mesh"
IstioMeshGateway is the built in gateway for all sidecars
Variables ¶
var ErrSourceNotFound = errors.New("source not found")
ErrSourceNotFound is returned when a requested source doesn't exist.
Functions ¶
func GetRestConfig ¶ added in v0.7.0
GetRestConfig returns the rest clients config to get automatically data if you run inside a cluster or by passing flags.
func NewCFClient ¶ added in v0.5.18
func NewCFClient(cfAPIEndpoint string, cfUsername string, cfPassword string) (*cfclient.Client, error)
NewCFClient return a new CF client object.
func NewCRDClientForAPIVersionKind ¶ added in v0.5.6
func NewCRDClientForAPIVersionKind(client kubernetes.Interface, kubeConfig, apiServerURL, apiVersion, kind string) (*rest.RESTClient, *runtime.Scheme, error)
NewCRDClientForAPIVersionKind return rest client for the given apiVersion and kind of the CRD
func NewDynamicKubernetesClient ¶ added in v0.7.2
func NewDynamicKubernetesClient(kubeConfig, apiServerURL string, requestTimeout time.Duration) (dynamic.Interface, error)
NewDynamicKubernetesClient returns a new Dynamic Kubernetes client object. It takes a Config and uses APIServerURL and KubeConfig attributes to connect to the cluster. If KubeConfig isn't provided it defaults to using the recommended default.
func NewIstioClient ¶ added in v0.5.6
func NewIstioClient(kubeConfig string, apiServerURL string) (*istioclient.Clientset, error)
NewIstioClient returns a new Istio client object. It uses the configured KubeConfig attribute to connect to the cluster. If KubeConfig isn't provided it defaults to using the recommended default. NB: Istio controls the creation of the underlying Kubernetes client, so we have no ability to tack on transport wrappers (e.g., Prometheus request wrappers) to the client's config at this level. Furthermore, the Istio client constructor does not expose the ability to override the Kubernetes API server endpoint, so the apiServerURL config attribute has no effect.
func NewKubeClient ¶ added in v0.4.0
func NewKubeClient(kubeConfig, apiServerURL string, requestTimeout time.Duration) (*kubernetes.Clientset, error)
NewKubeClient returns a new Kubernetes client object. It takes a Config and uses APIServerURL and KubeConfig attributes to connect to the cluster. If KubeConfig isn't provided it defaults to using the recommended default.
func NewOpenShiftClient ¶ added in v0.7.2
func NewOpenShiftClient(kubeConfig, apiServerURL string, requestTimeout time.Duration) (*openshift.Clientset, error)
NewOpenShiftClient returns a new Openshift client object. It takes a Config and uses APIServerURL and KubeConfig attributes to connect to the cluster. If KubeConfig isn't provided it defaults to using the recommended default.
Types ¶
type ClientGenerator ¶ added in v0.4.0
type ClientGenerator interface { KubeClient() (kubernetes.Interface, error) IstioClient() (istioclient.Interface, error) CloudFoundryClient(cfAPPEndpoint string, cfUsername string, cfPassword string) (*cfclient.Client, error) DynamicKubernetesClient() (dynamic.Interface, error) OpenShiftClient() (openshift.Interface, error) }
ClientGenerator provides clients
type Config ¶ added in v0.4.0
type Config struct { Namespace string AnnotationFilter string FQDNTemplate string CombineFQDNAndAnnotation bool IgnoreHostnameAnnotation bool Compatibility string PublishInternal bool PublishHostIP bool AlwaysPublishNotReadyAddresses bool ConnectorServer string CRDSourceAPIVersion string CRDSourceKind string KubeConfig string APIServerURL string ServiceTypeFilter []string CFAPIEndpoint string CFUsername string CFPassword string ContourLoadBalancerService string SkipperRouteGroupVersion string RequestTimeout time.Duration }
Config holds shared configuration options for all Sources.
type SingletonClientGenerator ¶ added in v0.4.0
type SingletonClientGenerator struct { KubeConfig string APIServerURL string RequestTimeout time.Duration // contains filtered or unexported fields }
SingletonClientGenerator stores provider clients and guarantees that only one instance of client will be generated
func (*SingletonClientGenerator) CloudFoundryClient ¶ added in v0.5.18
func (p *SingletonClientGenerator) CloudFoundryClient(cfAPIEndpoint string, cfUsername string, cfPassword string) (*cfclient.Client, error)
CloudFoundryClient generates a cf client if it was not created before
func (*SingletonClientGenerator) DynamicKubernetesClient ¶ added in v0.7.2
func (p *SingletonClientGenerator) DynamicKubernetesClient() (dynamic.Interface, error)
DynamicKubernetesClient generates a contour client if it was not created before
func (*SingletonClientGenerator) IstioClient ¶ added in v0.5.6
func (p *SingletonClientGenerator) IstioClient() (istioclient.Interface, error)
IstioClient generates an istio go client if it was not created before
func (*SingletonClientGenerator) KubeClient ¶ added in v0.4.0
func (p *SingletonClientGenerator) KubeClient() (kubernetes.Interface, error)
KubeClient generates a kube client if it was not created before
func (*SingletonClientGenerator) OpenShiftClient ¶ added in v0.7.2
func (p *SingletonClientGenerator) OpenShiftClient() (openshift.Interface, error)
OpenShiftClient generates an openshift client if it was not created before
type Source ¶
type Source interface { Endpoints(ctx context.Context) ([]*endpoint.Endpoint, error) // AddEventHandler adds an event handler that should be triggered if something in source changes AddEventHandler(context.Context, func()) }
Source defines the interface Endpoint sources should implement.
func BuildWithConfig ¶ added in v0.4.0
func BuildWithConfig(source string, p ClientGenerator, cfg *Config) (Source, error)
BuildWithConfig allows to generate a Source implementation from the shared config
func ByNames ¶ added in v0.4.0
func ByNames(p ClientGenerator, names []string, cfg *Config) ([]Source, error)
ByNames returns multiple Sources given multiple names.
func NewCRDSource ¶ added in v0.5.6
func NewCRDSource(crdClient rest.Interface, namespace, kind string, annotationFilter string, scheme *runtime.Scheme) (Source, error)
NewCRDSource creates a new crdSource with the given config.
func NewCloudFoundrySource ¶ added in v0.5.18
NewCloudFoundrySource creates a new cloudfoundrySource with the given config
func NewConnectorSource ¶ added in v0.5.2
NewConnectorSource creates a new connectorSource with the given config.
func NewContourIngressRouteSource ¶ added in v0.5.18
func NewContourIngressRouteSource( dynamicKubeClient dynamic.Interface, kubeClient kubernetes.Interface, contourLoadBalancerService string, namespace string, annotationFilter string, fqdnTemplate string, combineFqdnAnnotation bool, ignoreHostnameAnnotation bool, ) (Source, error)
NewContourIngressRouteSource creates a new contourIngressRouteSource with the given config.
func NewDedupSource ¶ added in v0.3.0
NewDedupSource creates a new dedupSource wrapping the provided Source.
func NewEmptySource ¶ added in v0.5.18
func NewEmptySource() Source
NewEmptySource creates a new emptySource.
func NewFakeSource ¶ added in v0.4.0
NewFakeSource creates a new fakeSource with the given config.
func NewIngressSource ¶
func NewIngressSource(kubeClient kubernetes.Interface, namespace, annotationFilter string, fqdnTemplate string, combineFqdnAnnotation bool, ignoreHostnameAnnotation bool) (Source, error)
NewIngressSource creates a new ingressSource with the given config.
func NewIstioGatewaySource ¶ added in v0.5.6
func NewIstioGatewaySource( kubeClient kubernetes.Interface, istioClient istioclient.Interface, namespace string, annotationFilter string, fqdnTemplate string, combineFQDNAnnotation bool, ignoreHostnameAnnotation bool, ) (Source, error)
NewIstioGatewaySource creates a new gatewaySource with the given config.
func NewIstioVirtualServiceSource ¶ added in v0.7.3
func NewIstioVirtualServiceSource( kubeClient kubernetes.Interface, istioClient istioclient.Interface, namespace string, annotationFilter string, fqdnTemplate string, combineFQDNAnnotation bool, ignoreHostnameAnnotation bool, ) (Source, error)
NewIstioVirtualServiceSource creates a new virtualServiceSource with the given config.
func NewMultiSource ¶
NewMultiSource creates a new multiSource.
func NewNodeSource ¶ added in v0.5.18
func NewNodeSource(kubeClient kubernetes.Interface, annotationFilter, fqdnTemplate string) (Source, error)
NewNodeSource creates a new nodeSource with the given config.
func NewOcpRouteSource ¶ added in v0.7.2
func NewOcpRouteSource( ocpClient versioned.Interface, namespace string, annotationFilter string, fqdnTemplate string, combineFQDNAnnotation bool, ignoreHostnameAnnotation bool, ) (Source, error)
NewOcpRouteSource creates a new ocpRouteSource with the given config.
func NewRouteGroupSource ¶ added in v0.7.0
func NewRouteGroupSource(timeout time.Duration, token, tokenPath, apiServerURL, namespace, annotationFilter, fqdnTemplate, routegroupVersion string, combineFqdnAnnotation, ignoreHostnameAnnotation bool) (Source, error)
NewRouteGroupSource creates a new routeGroupSource with the given config.
func NewServiceSource ¶
func NewServiceSource(kubeClient kubernetes.Interface, namespace, annotationFilter string, fqdnTemplate string, combineFqdnAnnotation bool, compatibility string, publishInternal bool, publishHostIP bool, alwaysPublishNotReadyAddresses bool, serviceTypeFilter []string, ignoreHostnameAnnotation bool) (Source, error)
NewServiceSource creates a new serviceSource with the given config.
type UnstructuredConverter ¶ added in v0.7.2
type UnstructuredConverter struct {
// contains filtered or unexported fields
}
UnstructuredConverter handles conversions between unstructured.Unstructured and Contour types
func NewUnstructuredConverter ¶ added in v0.7.2
func NewUnstructuredConverter() (*UnstructuredConverter, error)
NewUnstructuredConverter returns a new UnstructuredConverter initialized