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
}
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 (*MockNetworkInterfaceProvider) InterfaceAddrs ¶
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
type NetworkManager ¶
type NetworkManager interface {
// Initialize the network manager
Initialize() error
// ConfigureHostRoute sets up the local development network
ConfigureHostRoute() error
// ConfigureGuest sets up the guest VM network
ConfigureGuest() error
// ConfigureDNS sets up the DNS configuration
ConfigureDNS() error
}
NetworkManager handles configuring the local development network
type RealNetworkInterfaceProvider ¶
type RealNetworkInterfaceProvider struct{}
RealNetworkInterfaceProvider is the real implementation of NetworkInterfaceProvider
func (*RealNetworkInterfaceProvider) InterfaceAddrs ¶
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