siderolink

package
v1.8.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2024 License: MPL-2.0 Imports: 42 Imported by: 0

Documentation

Overview

Package siderolink provides controllers which manage file resources.

Index

Constants

View Source
const DefaultStatusUpdateInterval = 30 * time.Second

DefaultStatusUpdateInterval is the default interval between status updates.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigController added in v1.4.2

type ConfigController struct {
	Cmdline      *procfs.Cmdline
	V1Alpha1Mode v1alpha1runtime.Mode
}

ConfigController interacts with SideroLink API and brings up the SideroLink Wireguard interface.

func (*ConfigController) Inputs added in v1.4.2

func (ctrl *ConfigController) Inputs() []controller.Input

Inputs implements controller.Controller interface.

func (*ConfigController) Name added in v1.4.2

func (ctrl *ConfigController) Name() string

Name implements controller.Controller interface.

func (*ConfigController) Outputs added in v1.4.2

func (ctrl *ConfigController) Outputs() []controller.Output

Outputs implements controller.Controller interface.

func (*ConfigController) Run added in v1.4.2

Run implements controller.Controller interface.

type ManagerController

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

ManagerController interacts with SideroLink API and brings up the SideroLink Wireguard interface.

func (*ManagerController) Inputs

func (ctrl *ManagerController) Inputs() []controller.Input

Inputs implements controller.Controller interface.

func (*ManagerController) Name

func (ctrl *ManagerController) Name() string

Name implements controller.Controller interface.

func (*ManagerController) Outputs

func (ctrl *ManagerController) Outputs() []controller.Output

Outputs implements controller.Controller interface.

func (*ManagerController) Run

func (ctrl *ManagerController) Run(ctx context.Context, r controller.Runtime, logger *zap.Logger) error

Run implements controller.Controller interface.

type StatusController added in v1.8.0

type StatusController struct {
	// WGClientFunc is a function that returns a WireguardClient.
	//
	// When nil, it defaults to an actual Wireguard client.
	WGClientFunc func() (WireguardClient, error)

	// Interval is the time between peer status checks.
	//
	// When zero, it defaults to DefaultStatusUpdateInterval.
	Interval time.Duration
}

StatusController reports siderolink status.

func (*StatusController) Inputs added in v1.8.0

func (ctrl *StatusController) Inputs() []controller.Input

Inputs implements controller.Controller interface.

func (*StatusController) Name added in v1.8.0

func (ctrl *StatusController) Name() string

Name implements controller.Controller interface.

func (*StatusController) Outputs added in v1.8.0

func (ctrl *StatusController) Outputs() []controller.Output

Outputs implements controller.Controller interface.

func (*StatusController) Run added in v1.8.0

Run implements controller.Controller interface.

type UserspaceWireguardController added in v1.7.0

type UserspaceWireguardController struct {
	RelayRetryTimeout time.Duration
	DebugDataStream   bool
}

UserspaceWireguardController imlements a controller that manages a Wireguard over GRPC tunnel in userspace.

func (*UserspaceWireguardController) Inputs added in v1.7.0

Inputs implements controller.Controller interface.

func (*UserspaceWireguardController) Name added in v1.7.0

func (ctrl *UserspaceWireguardController) Name() string

Name implements controller.Controller interface.

func (*UserspaceWireguardController) Outputs added in v1.7.0

Outputs implements controller.Controller interface.

func (*UserspaceWireguardController) Run added in v1.7.0

Run implements controller.Controller interface.

type WireguardClient added in v1.8.0

type WireguardClient interface {
	Device(string) (*wgtypes.Device, error)
	Close() error
}

WireguardClient allows mocking Wireguard client.

Jump to

Keyboard shortcuts

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