tsric

package
v0.29.2 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2026 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Overview

Package tsric provides a TailscaleRustInContainer (tsric) implementation that runs the tailscale-rs axum example inside a Docker container for integration testing with headscale.

Unlike tsic (which runs the official Tailscale client), tsric runs a Rust implementation of a Tailscale node. It does not have the `tailscale` CLI, so verification is done externally via headscale API and peer connectivity.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option = func(c *TailscaleRustInContainer)

Option represents optional settings for a TailscaleRustInContainer instance.

func WithAuthKey

func WithAuthKey(key string) Option

WithAuthKey sets the pre-authentication key for joining the tailnet.

func WithCACert

func WithCACert(cert []byte) Option

WithCACert adds a CA certificate to the trusted certificates of the container.

func WithExtraHosts

func WithExtraHosts(hosts []string) Option

WithExtraHosts adds extra /etc/hosts entries to the container.

func WithHeadscaleURL

func WithHeadscaleURL(url string) Option

WithHeadscaleURL sets the headscale control server URL.

func WithNetwork

func WithNetwork(network *dockertest.Network) Option

WithNetwork sets the Docker dockertest.Network.

func WithRef

func WithRef(ref string) Option

WithRef overrides the tailscale-rs git ref (branch, tag, commit) used by the Dockerfile. Defaults to "main".

func WithRepo

func WithRepo(url string) Option

WithRepo overrides the tailscale-rs git repository URL used by the Dockerfile. Defaults to the public github.com/tailscale/tailscale-rs.

type TailscaleRustInContainer

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

TailscaleRustInContainer runs the tailscale-rs axum example as an integration test peer.

func New

func New(
	pool *dockertest.Pool,
	opts ...Option,
) (*TailscaleRustInContainer, error)

New creates and starts a new TailscaleRustInContainer instance.

func (*TailscaleRustInContainer) ContainerID

func (t *TailscaleRustInContainer) ContainerID() string

ContainerID returns the Docker container ID.

func (*TailscaleRustInContainer) Execute

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

Execute runs a command inside the container.

func (*TailscaleRustInContainer) Hostname

func (t *TailscaleRustInContainer) Hostname() string

Hostname returns the hostname of the TailscaleRustInContainer instance.

func (*TailscaleRustInContainer) SaveLog

func (t *TailscaleRustInContainer) SaveLog(path string) (string, string, error)

SaveLog saves the current container logs to the given path.

func (*TailscaleRustInContainer) Shutdown

func (t *TailscaleRustInContainer) Shutdown() (string, string, error)

Shutdown stops and cleans up the container.

func (*TailscaleRustInContainer) WriteFile

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

WriteFile writes a file into the container.

func (*TailscaleRustInContainer) WriteLogs

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

WriteLogs writes the current stdout/stderr log of the container to the given [io.Writer]s.

Jump to

Keyboard shortcuts

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