tailscale

package
v1.84.1 Latest Latest
Warning

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

Go to latest
Published: May 29, 2025 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Overview

Package tailscale provides a minimal control plane API client for internal use. A full client for 3rd party use is available at tailscale.com/client/tailscale/v2. The internal client is provided to avoid having to import that whole package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleErrorResponse

func HandleErrorResponse(b []byte, resp *http.Response) error

HandleErrorResponse is an alias to tailscale.com/client/tailscale.

func SendRequest

func SendRequest(c *Client, req *http.Request) ([]byte, *http.Response, error)

SendRequest add the authentication key to the request and sends it. It receives the response and reads up to 10MB of it.

Types

type AuthMethod

type AuthMethod = tsclient.AuthMethod

AuthMethod is an alias to tailscale.com/client/tailscale.

type Client

type Client struct {
	*tsclient.Client
}

Client is a wrapper of tailscale.com/client/tailscale.

func NewClient

func NewClient(tailnet string, auth AuthMethod) *Client

NewClient is an alias to tailscale.com/client/tailscale.

func (*Client) CreateOrUpdateVIPService

func (client *Client) CreateOrUpdateVIPService(ctx context.Context, svc *VIPService) error

CreateOrUpdateVIPService creates or updates a VIPService by its name. Caller must ensure that, if the VIPService already exists, the VIPService is fetched first to ensure that any auto-allocated IP addresses are not lost during the update. If the VIPService was created without any IP addresses explicitly set (so that they were auto-allocated by Tailscale) any subsequent request to this function that does not set any IP addresses will error.

func (*Client) DeleteVIPService

func (client *Client) DeleteVIPService(ctx context.Context, name tailcfg.ServiceName) error

DeleteVIPService deletes a VIPService by its name. It returns an error if the VIPService does not exist or if the deletion fails.

func (*Client) GetVIPService

func (client *Client) GetVIPService(ctx context.Context, name tailcfg.ServiceName) (*VIPService, error)

GetVIPService retrieves a VIPService by its name. It returns 404 if the VIPService is not found.

type Device

type Device = tsclient.Device

Device is an alias to tailscale.com/client/tailscale.

type DeviceFieldsOpts

type DeviceFieldsOpts = tsclient.DeviceFieldsOpts

DeviceFieldsOpts is an alias to tailscale.com/client/tailscale.

type ErrResponse

type ErrResponse = tsclient.ErrResponse

ErrResponse is an alias to tailscale.com/client/tailscale.

type Key

type Key = tsclient.Key

Key is an alias to tailscale.com/client/tailscale.

type KeyCapabilities

type KeyCapabilities = tsclient.KeyCapabilities

KeyCapabilities is an alias to tailscale.com/client/tailscale.

type KeyDeviceCapabilities

type KeyDeviceCapabilities = tsclient.KeyDeviceCapabilities

KeyDeviceCapabilities is an alias to tailscale.com/client/tailscale.

type KeyDeviceCreateCapabilities

type KeyDeviceCreateCapabilities = tsclient.KeyDeviceCreateCapabilities

KeyDeviceCreateCapabilities is an alias to tailscale.com/client/tailscale.

type VIPService

type VIPService struct {
	// Name is a VIPService name in form svc:<leftmost-label-of-service-DNS-name>.
	Name tailcfg.ServiceName `json:"name,omitempty"`
	// Addrs are the IP addresses of the VIP Service. There are two addresses:
	// the first is IPv4 and the second is IPv6.
	// When creating a new VIP Service, the IP addresses are optional: if no
	// addresses are specified then they will be selected. If an IPv4 address is
	// specified at index 0, then that address will attempt to be used. An IPv6
	// address can not be specified upon creation.
	Addrs []string `json:"addrs,omitempty"`
	// Comment is an optional text string for display in the admin panel.
	Comment string `json:"comment,omitempty"`
	// Annotations are optional key-value pairs that can be used to store arbitrary metadata.
	Annotations map[string]string `json:"annotations,omitempty"`
	// Ports are the ports of a VIPService that will be configured via Tailscale serve config.
	// If set, any node wishing to advertise this VIPService must have this port configured via Tailscale serve.
	Ports []string `json:"ports,omitempty"`
	// Tags are optional ACL tags that will be applied to the VIPService.
	Tags []string `json:"tags,omitempty"`
}

VIPService is a Tailscale VIPService with Tailscale API JSON representation.

Jump to

Keyboard shortcuts

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