network

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2025 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseNetworkManager

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

BaseNetworkManager is a concrete implementation of NetworkManager

func NewBaseNetworkManager

func NewBaseNetworkManager(injector di.Injector) *BaseNetworkManager

NewNetworkManager creates a new NetworkManager

func (*BaseNetworkManager) ConfigureDNS

func (n *BaseNetworkManager) ConfigureDNS() error

ConfigureDNS sets up DNS using systemd-resolved. If the DNS IP is configured, it ensures systemd-resolved is used by creating a drop-in configuration file. The function checks if /etc/resolv.conf is a symlink to systemd-resolved and restarts the service if necessary. It handles errors at each step to ensure proper DNS configuration.

func (*BaseNetworkManager) ConfigureGuest

func (n *BaseNetworkManager) ConfigureGuest() error

ConfigureGuest sets up the guest VM network

func (*BaseNetworkManager) ConfigureHostRoute

func (n *BaseNetworkManager) ConfigureHostRoute() error

ConfigureHostRoute sets up the local development network for Linux

func (*BaseNetworkManager) Initialize

func (n *BaseNetworkManager) Initialize() error

Initialize resolves dependencies, sorts services, and assigns IPs based on network CIDR

type ColimaNetworkManager

type ColimaNetworkManager struct {
	BaseNetworkManager
	// contains filtered or unexported fields
}

colimaNetworkManager is a concrete implementation of NetworkManager

func NewColimaNetworkManager

func NewColimaNetworkManager(injector di.Injector) *ColimaNetworkManager

NewColimaNetworkManager creates a new ColimaNetworkManager

func (*ColimaNetworkManager) ConfigureGuest

func (n *ColimaNetworkManager) ConfigureGuest() error

ConfigureGuest sets up forwarding of guest traffic to the container network. It retrieves network CIDR and guest IP from the config, and configures SSH. It identifies the Docker bridge interface and ensures iptables rules are set. If the rule doesn't exist, it adds a new one to allow traffic forwarding.

func (*ColimaNetworkManager) Initialize added in v0.3.0

func (n *ColimaNetworkManager) Initialize() error

Initialize sets up the ColimaNetworkManager by resolving dependencies for sshClient, shell, and secureShell from the injector.

type MockNetworkInterfaceProvider

type MockNetworkInterfaceProvider struct {
	InterfacesFunc     func() ([]net.Interface, error)
	InterfaceAddrsFunc func(iface net.Interface) ([]net.Addr, error)
}

MockNetworkInterfaceProvider is a struct that simulates a network interface provider for testing purposes.

func NewMockNetworkInterfaceProvider added in v0.5.7

func NewMockNetworkInterfaceProvider() *MockNetworkInterfaceProvider

NewMockNetworkInterfaceProvider creates a new instance of MockNetworkInterfaceProvider with default implementations.

func (*MockNetworkInterfaceProvider) InterfaceAddrs

func (m *MockNetworkInterfaceProvider) InterfaceAddrs(iface net.Interface) ([]net.Addr, error)

InterfaceAddrs calls the custom InterfaceAddrsFunc if provided.

func (*MockNetworkInterfaceProvider) Interfaces

func (m *MockNetworkInterfaceProvider) Interfaces() ([]net.Interface, error)

Interfaces calls the custom InterfacesFunc if provided.

type MockNetworkManager

type MockNetworkManager struct {
	NetworkManager
	InitializeFunc         func() error
	ConfigureHostRouteFunc func() error
	ConfigureGuestFunc     func() error
	ConfigureDNSFunc       func() error
}

MockNetworkManager is a struct that simulates a network manager for testing purposes.

func NewMockNetworkManager

func NewMockNetworkManager() *MockNetworkManager

NewMockNetworkManager creates a new instance of MockNetworkManager.

func (*MockNetworkManager) ConfigureDNS

func (m *MockNetworkManager) ConfigureDNS() error

ConfigureDNS calls the custom ConfigureDNSFunc if provided.

func (*MockNetworkManager) ConfigureGuest

func (m *MockNetworkManager) ConfigureGuest() error

ConfigureGuest calls the custom ConfigureGuestFunc if provided.

func (*MockNetworkManager) ConfigureHostRoute

func (m *MockNetworkManager) ConfigureHostRoute() error

ConfigureHostRoute calls the custom ConfigureHostRouteFunc if provided.

func (*MockNetworkManager) Initialize

func (m *MockNetworkManager) Initialize() error

Initialize calls the custom InitializeFunc if provided.

type NetworkInterfaceProvider

type NetworkInterfaceProvider interface {
	Interfaces() ([]net.Interface, error)
	InterfaceAddrs(iface net.Interface) ([]net.Addr, error)
}

NetworkInterfaceProvider abstracts the system's network interface operations

func NewNetworkInterfaceProvider added in v0.5.7

func NewNetworkInterfaceProvider() NetworkInterfaceProvider

NewNetworkInterfaceProvider creates a new real implementation of NetworkInterfaceProvider

type NetworkManager

type NetworkManager interface {
	Initialize() error
	ConfigureHostRoute() error
	ConfigureGuest() error
	ConfigureDNS() error
}

NetworkManager handles configuring the local development network

type RealNetworkInterfaceProvider

type RealNetworkInterfaceProvider struct{}

RealNetworkInterfaceProvider is the real implementation of NetworkInterfaceProvider

func (*RealNetworkInterfaceProvider) InterfaceAddrs

func (p *RealNetworkInterfaceProvider) InterfaceAddrs(iface net.Interface) ([]net.Addr, error)

InterfaceAddrs returns the addresses of a network interface

func (*RealNetworkInterfaceProvider) Interfaces

func (p *RealNetworkInterfaceProvider) Interfaces() ([]net.Interface, error)

Interfaces returns the system's network interfaces

type Shims added in v0.5.7

type Shims struct {
	Goos      func() string
	Stat      func(string) (os.FileInfo, error)
	WriteFile func(string, []byte, os.FileMode) error
	ReadFile  func(string) ([]byte, error)
	ReadLink  func(string) (string, error)
	MkdirAll  func(string, os.FileMode) error
}

Shims provides mockable wrappers around system and runtime functions

func NewShims added in v0.5.7

func NewShims() *Shims

NewShims creates a new Shims instance with default implementations

Jump to

Keyboard shortcuts

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