tsic

package
v0.22.3 Latest Latest
Warning

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

Go to latest
Published: May 12, 2023 License: BSD-3-Clause Imports: 16 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 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) 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) 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) Logout added in v0.18.0

func (t *TailscaleInContainer) Logout() error

Logout runs the logout routine on the given Tailscale instance.

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) Shutdown

func (t *TailscaleInContainer) Shutdown() error

Shutdown stops and cleans up the Tailscale container.

func (*TailscaleInContainer) Status

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

Status returns the ipnstate.Status of the Tailscale instance.

func (*TailscaleInContainer) Up

func (t *TailscaleInContainer) Up(
	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) UpWithLoginURL

func (t *TailscaleInContainer) UpWithLoginURL(
	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) Version

func (t *TailscaleInContainer) Version() string

Version returns the running Tailscale version of the instance.

func (*TailscaleInContainer) WaitForLogout added in v0.18.0

func (t *TailscaleInContainer) WaitForLogout() error

WaitForLogout blocks until the Tailscale instance has logged out.

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.

func (*TailscaleInContainer) WaitForReady

func (t *TailscaleInContainer) WaitForReady() error

WaitForReady blocks until the Tailscale (tailscaled) instance is ready to login or 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