ipvs

package
v1.12.1-lite4 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2018 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// FlagPersistent specify IPVS service session affinity
	FlagPersistent = 0x1
	// FlagHashed specify IPVS service hash flag
	FlagHashed = 0x2
	// IPVSProxyMode is match set up cluster with ipvs proxy model
	IPVSProxyMode = "ipvs"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Interface

type Interface interface {
	// Flush clears all virtual servers in system. return occurred error immediately.
	Flush() error
	// AddVirtualServer creates the specified virtual server.
	AddVirtualServer(*VirtualServer) error
	// UpdateVirtualServer updates an already existing virtual server.  If the virtual server does not exist, return error.
	UpdateVirtualServer(*VirtualServer) error
	// DeleteVirtualServer deletes the specified virtual server.  If the virtual server does not exist, return error.
	DeleteVirtualServer(*VirtualServer) error
	// Given a partial virtual server, GetVirtualServer will return the specified virtual server information in the system.
	GetVirtualServer(*VirtualServer) (*VirtualServer, error)
	// GetVirtualServers lists all virtual servers in the system.
	GetVirtualServers() ([]*VirtualServer, error)
	// AddRealServer creates the specified real server for the specified virtual server.
	AddRealServer(*VirtualServer, *RealServer) error
	// GetRealServers returns all real servers for the specified virtual server.
	GetRealServers(*VirtualServer) ([]*RealServer, error)
	// DeleteRealServer deletes the specified real server from the specified virtual server.
	DeleteRealServer(*VirtualServer, *RealServer) error
}

Interface is an injectable interface for running ipvs commands. Implementations must be goroutine-safe.

func New

func New(exec utilexec.Interface) Interface

New returns a new Interface which will call ipvs APIs.

type Protocol

type Protocol uint16

Protocol is the IPVS service protocol type

type RealServer

type RealServer struct {
	Address net.IP
	Port    uint16
	Weight  int
}

RealServer is an user-oriented definition of an IPVS real server in its entirety.

func (*RealServer) Equal

func (rs *RealServer) Equal(other *RealServer) bool

Equal check the equality of real server. We don't use struct == since it doesn't work because of slice.

func (*RealServer) String

func (rs *RealServer) String() string

type RequiredIPVSKernelModulesAvailableCheck

type RequiredIPVSKernelModulesAvailableCheck struct {
	Executor utilsexec.Interface
}

RequiredIPVSKernelModulesAvailableCheck tests IPVS required kernel modules.

func (RequiredIPVSKernelModulesAvailableCheck) Check

func (r RequiredIPVSKernelModulesAvailableCheck) Check() (warnings, errors []error)

Check try to validates IPVS required kernel modules exists or not. The name of function can not be changed.

func (RequiredIPVSKernelModulesAvailableCheck) Name

Name returns label for RequiredIPVSKernelModulesAvailableCheck

type ServiceFlags

type ServiceFlags uint32

ServiceFlags is used to specify session affinity, ip hash etc.

type VirtualServer

type VirtualServer struct {
	Address   net.IP
	Protocol  string
	Port      uint16
	Scheduler string
	Flags     ServiceFlags
	Timeout   uint32
}

VirtualServer is an user-oriented definition of an IPVS virtual server in its entirety.

func (*VirtualServer) Equal

func (svc *VirtualServer) Equal(other *VirtualServer) bool

Equal check the equality of virtual server. We don't use struct == since it doesn't work because of slice.

func (*VirtualServer) String

func (svc *VirtualServer) String() string

Jump to

Keyboard shortcuts

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