tsic

package
v0.23.0 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2024 License: BSD-3-Clause Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CurlOption added in v0.21.0

type CurlOption = func(args *curlArgs)

CurlOption repreent optional settings that can be given to curl another host.

func WithCurlConnectionTimeout added in v0.21.0

func WithCurlConnectionTimeout(timeout time.Duration) CurlOption

WithCurlConnectionTimeout sets the timeout for each connection started by curl.

func WithCurlMaxTime added in v0.21.0

func WithCurlMaxTime(t time.Duration) CurlOption

WithCurlMaxTime sets the max time for a transfer for each connection started by curl.

func WithCurlRetry added in v0.21.0

func WithCurlRetry(ret int) CurlOption

WithCurlRetry sets the number of retries a connection is attempted by curl.

type Option

type Option = func(c *TailscaleInContainer)

Option represent optional settings that can be given to a Tailscale instance.

func WithDockerEntrypoint added in v0.21.0

func WithDockerEntrypoint(args []string) Option

WithDockerEntrypoint allows the docker entrypoint of the container to be overridden. This is a dangerous option which can make the container not work as intended as a typo might prevent tailscaled and other processes from starting. Use with caution.

func WithDockerWorkdir added in v0.21.0

func WithDockerWorkdir(dir string) Option

WithDockerWorkdir allows the docker working directory to be set.

func WithExtraHosts added in v0.22.2

func WithExtraHosts(hosts []string) Option

func WithHeadscaleName

func WithHeadscaleName(hsName string) Option

WithHeadscaleName set the name of the headscale instance, mostly useful in combination with TLS and WithHeadscaleTLS.

func WithHeadscaleTLS

func WithHeadscaleTLS(cert []byte) Option

WithHeadscaleTLS takes the certificate of the Headscale instance and adds it to the trusted surtificate of the Tailscale container.

func WithNetfilter added in v0.23.0

func WithNetfilter(state string) Option

WithNetfilter configures Tailscales parameter --netfilter-mode allowing us to turn of modifying ip[6]tables/nftables. It takes: "on", "off", "nodivert".

func WithOrCreateNetwork

func WithOrCreateNetwork(network *dockertest.Network) Option

WithOrCreateNetwork sets the Docker container network to use with the Tailscale instance, if the parameter is nil, a new network, isolating the TailscaleClient, will be created. If a network is passed, the Tailscale instance will join the given network.

func WithSSH

func WithSSH() Option

WithSSH enables SSH for the Tailscale instance.

func WithTags added in v0.21.0

func WithTags(tags []string) Option

WithTags associates the given tags to the Tailscale instance.

type PingOption added in v0.21.0

type PingOption = func(args *pingArgs)

PingOption represent optional settings that can be given to ping another host.

func WithPingCount added in v0.21.0

func WithPingCount(count int) PingOption

WithPingCount sets the count of pings to attempt.

func WithPingTimeout added in v0.21.0

func WithPingTimeout(timeout time.Duration) PingOption

WithPingTimeout sets the timeout for the ping command.

func WithPingUntilDirect added in v0.21.0

func WithPingUntilDirect(direct bool) PingOption

WithPingUntilDirect decides if the ping should only succeed if a direct connection is established or if successful DERP ping is sufficient.

type TailscaleInContainer

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

TailscaleInContainer is an implementation of TailscaleClient which sets up a Tailscale instance inside a container.

func New

func New(
	pool *dockertest.Pool,
	version string,
	network *dockertest.Network,
	opts ...Option,
) (*TailscaleInContainer, error)

New returns a new TailscaleInContainer instance.

func (*TailscaleInContainer) Curl added in v0.21.0

func (t *TailscaleInContainer) Curl(url string, opts ...CurlOption) (string, error)

Curl executes the Tailscale curl command and curls a hostname or IP. It accepts a series of CurlOption.

func (*TailscaleInContainer) Down added in v0.23.0

func (t *TailscaleInContainer) Down() error

Helper that runs `tailscale down` with no arguments.

func (*TailscaleInContainer) Execute

func (t *TailscaleInContainer) Execute(
	command []string,
	options ...dockertestutil.ExecuteCommandOption,
) (string, string, error)

Execute runs a command inside the Tailscale container and returns the result of stdout as a string.

func (*TailscaleInContainer) FQDN

func (t *TailscaleInContainer) FQDN() (string, error)

FQDN returns the FQDN as a string of the Tailscale instance.

func (*TailscaleInContainer) FailingPeersAsString added in v0.23.0

func (t *TailscaleInContainer) FailingPeersAsString() (string, bool, error)

FailingPeersAsString returns a formatted-ish multi-line-string of peers in the client and a bool indicating if the clients online count and peer count is equal.

func (*TailscaleInContainer) Hostname

func (t *TailscaleInContainer) Hostname() string

Hostname returns the hostname of the Tailscale instance.

func (*TailscaleInContainer) ID

func (t *TailscaleInContainer) ID() string

ID returns the Docker container ID of the TailscaleInContainer instance.

func (*TailscaleInContainer) IPs

func (t *TailscaleInContainer) IPs() ([]netip.Addr, error)

IPs returns the netip.Addr of the Tailscale instance.

func (*TailscaleInContainer) Login added in v0.23.0

func (t *TailscaleInContainer) Login(
	loginServer, authKey string,
) error

Up runs the login routine on the given Tailscale instance. This login mechanism uses the authorised key for authentication.

func (*TailscaleInContainer) LoginWithURL added in v0.23.0

func (t *TailscaleInContainer) LoginWithURL(
	loginServer string,
) (*url.URL, error)

Up runs the login routine on the given Tailscale instance. This login mechanism uses web + command line flow for authentication.

func (*TailscaleInContainer) Logout added in v0.18.0

func (t *TailscaleInContainer) Logout() error

Logout runs the logout routine on the given Tailscale instance.

func (*TailscaleInContainer) Netcheck added in v0.23.0

func (t *TailscaleInContainer) Netcheck() (*netcheck.Report, error)

Netcheck returns the current Netcheck Report (netcheck.Report) of the Tailscale instance.

func (*TailscaleInContainer) Netmap added in v0.23.0

func (t *TailscaleInContainer) Netmap() (*netmap.NetworkMap, error)

Netmap returns the current Netmap (netmap.NetworkMap) of the Tailscale instance. Only works with Tailscale 1.56 and newer. Panics if version is lower then minimum.

func (*TailscaleInContainer) Ping

func (t *TailscaleInContainer) Ping(hostnameOrIP string, opts ...PingOption) error

Ping executes the Tailscale ping command and pings a hostname or IP. It accepts a series of PingOption. TODO(kradalby): Make multiping, go routine magic.

func (*TailscaleInContainer) ReadFile added in v0.23.0

func (t *TailscaleInContainer) ReadFile(path string) ([]byte, error)

ReadFile reads a file from the Tailscale container. It returns the content of the file as a byte slice.

func (*TailscaleInContainer) SaveLog added in v0.23.0

func (t *TailscaleInContainer) SaveLog(path string) error

SaveLog saves the current stdout log of the container to a path on the host system.

func (*TailscaleInContainer) Shutdown

func (t *TailscaleInContainer) Shutdown() error

Shutdown stops and cleans up the Tailscale container.

func (*TailscaleInContainer) Status

func (t *TailscaleInContainer) Status(save ...bool) (*ipnstate.Status, error)

Status returns the ipnstate.Status of the Tailscale instance.

func (*TailscaleInContainer) Up

func (t *TailscaleInContainer) Up() error

Helper that runs `tailscale up` with no arguments.

func (*TailscaleInContainer) Version

func (t *TailscaleInContainer) Version() string

Version returns the running Tailscale version of the instance.

func (*TailscaleInContainer) WaitForNeedsLogin added in v0.23.0

func (t *TailscaleInContainer) WaitForNeedsLogin() error

WaitForNeedsLogin blocks until the Tailscale (tailscaled) instance has started and needs to be logged into.

func (*TailscaleInContainer) WaitForPeers

func (t *TailscaleInContainer) WaitForPeers(expected int) error

WaitForPeers blocks until N number of peers is present in the Peer list of the Tailscale instance and is reporting Online.

func (*TailscaleInContainer) WaitForRunning added in v0.23.0

func (t *TailscaleInContainer) WaitForRunning() error

WaitForRunning blocks until the Tailscale (tailscaled) instance is logged in and ready to be used.

func (*TailscaleInContainer) WriteFile

func (t *TailscaleInContainer) WriteFile(path string, data []byte) error

WriteFile save file inside the Tailscale container.

Jump to

Keyboard shortcuts

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