tailscale
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package tailscale provides a minimal control plane API client for internaluse. A full client for 3rd party use is available attailscale.com/client/tailscale/v2. The internal client is provided to avoidhaving to import that whole package.
Index¶
- Variables
- func HandleErrorResponse(b []byte, resp *http.Response) error
- func SendRequest(c *Client, req *http.Request) ([]byte, *http.Response, error)
- type APIKey
- type AuthMethod
- type Client
- func (client *Client) CreateOrUpdateVIPService(ctx context.Context, svc *VIPService) error
- func (client *Client) DeleteVIPService(ctx context.Context, name tailcfg.ServiceName) error
- func (client *Client) GetVIPService(ctx context.Context, name tailcfg.ServiceName) (*VIPService, error)
- func (client *Client) ListVIPServices(ctx context.Context) (*VIPServiceList, error)
- type Device
- type DeviceFieldsOpts
- type ErrResponse
- type Key
- type KeyCapabilities
- type KeyDeviceCapabilities
- type KeyDeviceCreateCapabilities
- type VIPService
- type VIPServiceList
Constants¶
This section is empty.
Variables¶
var HookResolveAuthKeyfeature.Hook[func(ctxcontext.Context, authKeystring, tags []string) (string,error)]HookResolveAuthKey resolves to [oauthkey.ResolveAuthKey] when thecorresponding feature tag is enabled in the build process.
authKey is a standard device auth key or an OAuth client secret toresolve into an auth key.tags is the list of tags being advertised by the client (required to beprovided for the OAuth secret case, and required to be the same as thelist of tags for which the OAuth secret is allowed to issue auth keys).
var HookResolveAuthKeyViaWIFfeature.Hook[func(ctxcontext.Context, baseURL, clientID, idTokenstring, tags []string) (string,error)]HookResolveAuthKeyViaWIF resolves to [identityfederation.ResolveAuthKey] when thecorresponding feature tag is enabled in the build process.
baseURL is the URL of the control server used for token exchange and authkey generation.clientID is the federated client ID used for token exchange, the format is <tailnet ID>/<oauth client ID>idToken is the Identity token from the identity providertags is the list of tags to be associated with the auth key
Functions¶
funcHandleErrorResponse¶
HandleErrorResponse is an alias to tailscale.com/client/tailscale.
Types¶
typeAuthMethod¶
type AuthMethod =tsclient.AuthMethod
AuthMethod is an alias to tailscale.com/client/tailscale.
typeClient¶
Client is a wrapper of tailscale.com/client/tailscale.
funcNewClient¶
func NewClient(tailnetstring, authAuthMethod) *Client
NewClient is an alias to tailscale.com/client/tailscale.
func (*Client)CreateOrUpdateVIPService¶
func (client *Client) CreateOrUpdateVIPService(ctxcontext.Context, svc *VIPService)error
CreateOrUpdateVIPService creates or updates a VIPService by its name. Caller must ensure that, if theVIPService already exists, the VIPService is fetched first to ensure that any auto-allocated IP addresses are notlost during the update. If the VIPService was created without any IP addresses explicitly set (so that they wereauto-allocated by Tailscale) any subsequent request to this function that does not set any IP addresses will error.
func (*Client)DeleteVIPService¶
DeleteVIPService deletes a VIPService by its name. It returns an error if the VIPServicedoes not exist or if the deletion fails.
func (*Client)GetVIPService¶
func (client *Client) GetVIPService(ctxcontext.Context, nametailcfg.ServiceName) (*VIPService,error)
GetVIPService retrieves a VIPService by its name. It returns 404 if the VIPService is not found.
func (*Client)ListVIPServices¶added inv1.86.0
func (client *Client) ListVIPServices(ctxcontext.Context) (*VIPServiceList,error)
ListVIPServices retrieves all existing Services and returns them as a list.
typeDeviceFieldsOpts¶
type DeviceFieldsOpts =tsclient.DeviceFieldsOpts
DeviceFieldsOpts is an alias to tailscale.com/client/tailscale.
typeErrResponse¶
type ErrResponse =tsclient.ErrResponse
ErrResponse is an alias to tailscale.com/client/tailscale.
typeKeyCapabilities¶
type KeyCapabilities =tsclient.KeyCapabilities
KeyCapabilities is an alias to tailscale.com/client/tailscale.
typeKeyDeviceCapabilities¶
type KeyDeviceCapabilities =tsclient.KeyDeviceCapabilities
KeyDeviceCapabilities is an alias to tailscale.com/client/tailscale.
typeKeyDeviceCreateCapabilities¶
type KeyDeviceCreateCapabilities =tsclient.KeyDeviceCreateCapabilities
KeyDeviceCreateCapabilities is an alias to tailscale.com/client/tailscale.
typeVIPService¶
type VIPService struct {// Name is a VIPService name in form svc:<leftmost-label-of-service-DNS-name>.Nametailcfg.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.Commentstring `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.
typeVIPServiceList¶added inv1.86.0
type VIPServiceList struct {VIPServices []VIPService `json:"vipServices"`}VIPServiceList represents the JSON response to the list VIP Services API.