resolvers

package
v0.0.0-...-9bd6815 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 4, 2024 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StartWithTimeout

func StartWithTimeout(ctx context.Context, s Startable, timeout time.Duration) error

Types

type CacheSyncError

type CacheSyncError struct {
	// contains filtered or unexported fields
}

func (*CacheSyncError) Error

func (c *CacheSyncError) Error() string

type KubernetesConfig

type KubernetesConfig struct {
	InformerResyncPeriodSeconds int    `mapstructure:"informer_resync_period_seconds"`
	TailscaleOperatorNamespace  string `mapstructure:"tailscale_operator_namespace"`
}

type KubernetesResolver

type KubernetesResolver struct {
	// contains filtered or unexported fields
}

KubernetesResolver is a Resolver that resolves Tailscale IPs from external IPs by peeking at internal state of the tailscale-operator. This resolver is able to map Services with an External (ingress) IP to the corresponding Tailscale IP, provided the Service is exposed by the tailscale-operator.

Note that this resolver must first be started before use with [KubernetesResolver.StartAndWaitForCacheSync]. TODO implement self resolver func

func NewKubernetesResolver

func NewKubernetesResolver(client kubernetes.Interface, resync time.Duration, tailscaleOperatorNamespace string) (*KubernetesResolver, error)

func NewKubernetesResolverFromConfig

func NewKubernetesResolverFromConfig(client kubernetes.Interface, config *KubernetesConfig) (*KubernetesResolver, error)

func NewKubernetesResolverWithDefaultClient

func NewKubernetesResolverWithDefaultClient(config *KubernetesConfig) (*KubernetesResolver, error)

func (*KubernetesResolver) GetTailscaleIPsByExternalIP

func (r *KubernetesResolver) GetTailscaleIPsByExternalIP(externalIP net.IP) ([]net.IP, error)

func (*KubernetesResolver) GetTailscaleIPsByService

func (r *KubernetesResolver) GetTailscaleIPsByService(serviceNamespace string, serviceName string) ([]string, error)

func (*KubernetesResolver) Start

func (r *KubernetesResolver) Start(cancel <-chan struct{}) error

type Resolver

type Resolver interface {
	GetTailscaleIPsByExternalIP(ip net.IP) ([]net.IP, error)
}

type SelfResolver

type SelfResolver interface {
	GetProcessTailscaleIPs() ([]net.IP, error)
}

type Startable

type Startable interface {
	Start(cancel <-chan struct{}) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL