tsic

package
v0.24.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2024 License: BSD-3-Clause Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VersionHead = "head"
)

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 WithBuildTag added in v0.24.0

func WithBuildTag(tag string) Option

WithBuildTag adds an additional value to the `-tags=` parameter of the Go compiler, allowing callers to customize the Tailscale client build. This option is only meaningful when invoked on **HEAD** versions of the client. Attempts to use it with any other version is a bug in the calling code.

func WithCACert added in v0.24.0

func WithCACert(cert []byte) Option

WithCACert adds it to the trusted surtificate of the Tailscale container.

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 WithCACert.

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.

func WithWebsocketDERP added in v0.24.0

func WithWebsocketDERP(enabled bool) Option

WithWebsocketDERP toggles a development knob to force enable DERP connection through the new websocket protocol.

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) DebugDERPRegion added in v0.24.0

func (t *TailscaleInContainer) DebugDERPRegion(region string) (*ipnstate.DebugDERPRegionReport, error)

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) Logs added in v0.24.0

func (t *TailscaleInContainer) Logs(stdout, stderr io.Writer) error

Retrieve container logs.

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) (string, 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() (string, string, 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.

func (*TailscaleInContainer) WriteLogs added in v0.24.0

func (t *TailscaleInContainer) WriteLogs(stdout, stderr io.Writer) error

WriteLogs writes the current stdout/stderr log of the container to the given io.Writers.

type TailscaleInContainerBuildConfig added in v0.24.0

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

Jump to

Keyboard shortcuts

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