mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-30 23:51:03 +01:00 
			
		
		
		
	* types/node: add helper funcs for node tags Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * types/node: add DebugString method for node Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * policy/v2: add String func to AutoApprover interface Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * policy/v2: simplify, use slices.Contains Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * policy/v2: debug, use nodes.DebugString Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * policy/v1: fix potential nil pointer in NodeCanApproveRoute Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * policy/v1: slices.Contains Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration/tsic: fix diff in login commands Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: fix webauth running with wrong scenario Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: move common oidc opts to func Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: require node count, more verbose Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * auth: remove uneffective route approve Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * .github/workflows: fmt Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration/tsic: add id func Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: remove call that might be nil Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: test autoapprovers against web/authkey x group/tag/user Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: unique network id per scenario Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * Revert "integration: move common oidc opts to func" This reverts commit 7e9d165d4a900c304f1083b665f1a24a26e06e55. * remove cmd Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: clean docker images between runs in ci Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration: run autoapprove test against differnt policy modes Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * integration/tsic: append, not overrwrite extra login args Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * .github/workflows: remove polv2 Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> --------- Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package integration
 | |
| 
 | |
| import (
 | |
| 	"io"
 | |
| 	"net/netip"
 | |
| 	"net/url"
 | |
| 
 | |
| 	"github.com/juanfont/headscale/hscontrol/types"
 | |
| 	"github.com/juanfont/headscale/hscontrol/util"
 | |
| 	"github.com/juanfont/headscale/integration/dockertestutil"
 | |
| 	"github.com/juanfont/headscale/integration/tsic"
 | |
| 	"tailscale.com/ipn/ipnstate"
 | |
| 	"tailscale.com/net/netcheck"
 | |
| 	"tailscale.com/types/netmap"
 | |
| )
 | |
| 
 | |
| // nolint
 | |
| type TailscaleClient interface {
 | |
| 	Hostname() string
 | |
| 	Shutdown() (string, string, error)
 | |
| 	Version() string
 | |
| 	Execute(
 | |
| 		command []string,
 | |
| 		options ...dockertestutil.ExecuteCommandOption,
 | |
| 	) (string, string, error)
 | |
| 	Login(loginServer, authKey string) error
 | |
| 	LoginWithURL(loginServer string) (*url.URL, error)
 | |
| 	Logout() error
 | |
| 	Up() error
 | |
| 	Down() error
 | |
| 	IPs() ([]netip.Addr, error)
 | |
| 	MustIPs() []netip.Addr
 | |
| 	MustIPv4() netip.Addr
 | |
| 	MustIPv6() netip.Addr
 | |
| 	FQDN() (string, error)
 | |
| 	Status(...bool) (*ipnstate.Status, error)
 | |
| 	MustStatus() *ipnstate.Status
 | |
| 	Netmap() (*netmap.NetworkMap, error)
 | |
| 	DebugDERPRegion(region string) (*ipnstate.DebugDERPRegionReport, error)
 | |
| 	Netcheck() (*netcheck.Report, error)
 | |
| 	WaitForNeedsLogin() error
 | |
| 	WaitForRunning() error
 | |
| 	WaitForPeers(expected int) error
 | |
| 	Ping(hostnameOrIP string, opts ...tsic.PingOption) error
 | |
| 	Curl(url string, opts ...tsic.CurlOption) (string, error)
 | |
| 	Traceroute(netip.Addr) (util.Traceroute, error)
 | |
| 	ContainerID() string
 | |
| 	MustID() types.NodeID
 | |
| 	ReadFile(path string) ([]byte, 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.
 | |
| 	FailingPeersAsString() (string, bool, error)
 | |
| 
 | |
| 	WriteLogs(stdout, stderr io.Writer) error
 | |
| }
 |