types

package
v1.6.2-rc Latest Latest
Warning

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

Go to latest
Published: May 24, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CelloChainer is the type of CNI conflist for chained CNI call.
	CelloChainer = "cello-chainer"

	// NetworkInterfaceConfigTypeTrunk is the trunk type of NetworkInterfaceConfig runtimeConfig
	NetworkInterfaceConfigTypeTrunk = "trunk"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BandwidthEntry

type BandwidthEntry struct {
	IngressRate  int `json:"ingressRate"`
	IngressBurst int `json:"ingressBurst"`

	EgressRate  int `json:"egressRate"`
	EgressBurst int `json:"egressBurst"`
}

BandwidthEntry for CNI BandwidthEntry

func (*BandwidthEntry) IsZero

func (bw *BandwidthEntry) IsZero() bool

type DataPathType

type DataPathType int

DataPathType is the interface type of pod.

const (
	IPVlan DataPathType = iota
	ENI
	Vlan
)

type IPType

type IPType int

IPType indicates ENI's IP address binding.

const (
	ENIMultiIP IPType = iota
	ENISingleIP
)

type K8SArgs

type K8SArgs struct {
	types.CommonArgs
	K8S_POD_NAME               types.UnmarshallableString // nolint
	K8S_POD_NAMESPACE          types.UnmarshallableString // nolint
	K8S_POD_INFRA_CONTAINER_ID types.UnmarshallableString // nolint
	K8S_POD_UID                types.UnmarshallableString // nolint
}

K8SArgs is CNI args of kubernetes.

type NetConf

type NetConf struct {
	// CNIVersion for CNI calls.
	CNIVersion string `json:"cniVersion,omitempty"`
	// Name is the name of netconf.
	Name string `json:"name"`
	// Type is CNI type, should be cello.
	Type string `json:"type"`
	// RedirectToHostCIDRs, all traffic targeting these CIDRs will be redirected to host.
	RedirectToHostCIDRs []string `json:"redirectToHostCIDRs"`
	// LocalFastPath is a switch to determine weather cello should set up fast path between host and pod.
	// Currently only support IPVlan and Vlan (by adding additional veth pair) driver.
	LocalFastPath bool `json:"localFastPath"`

	// runtime config, support all dynamic config from meta and other runtimes
	RuntimeConfig struct {
		NetworkInterfaceConfig *NetworkInterfaceConfig `json:"com.volcengine.k8s.network-interface,omitempty"`
		Bandwidth              *BandwidthEntry         `json:"bandwidth,omitempty"`
	} `json:"runtimeConfig,omitempty"`
}

NetConf is the cni network config.

type NetworkInterfaceConfig

type NetworkInterfaceConfig struct {
	Type  string                       `json:"type"`
	IPs   []*cniIp.IP                  `json:"ips,omitempty"`
	Mac   string                       `json:"mac,omitempty"`
	Trunk *NetworkInterfaceTrunkConfig `json:"trunk,omitempty"`
}

NetworkInterfaceConfig describes network interface configs used by cello CNI.

type NetworkInterfaceTrunkConfig

type NetworkInterfaceTrunkConfig struct {
	VlanID   string `json:"vlanID,omitempty"`
	TrunkMac string `json:"trunkMac,omitempty"`
}

NetworkInterfaceTrunkConfig is the branch ENI information used by Vlan driver.

type ResourceClient

type ResourceClient interface {
	// GetPodResourceMap returns an instance of a map of Pod ResourceInfo given a (Pod name, namespace) tuple.
	GetPodResourceMap(podNamespace, podName string) (map[string]*ResourceInfo, error)
}

ResourceClient provides a kubelet Pod resource handle.

type ResourceInfo

type ResourceInfo struct {
	Index     int
	DeviceIDs []string
}

ResourceInfo is struct to hold Pod device allocation information.

type SetupConfig

type SetupConfig struct {
	DP       DataPathType
	ENIIndex int

	IfName    string       //interface Name in pod
	Link      netlink.Link //pod's interface
	NetNSPath string       //ns path of pod
	NetNs     *ns.NetNS

	IPv4        *net.IPNet
	IPv4Gateway net.IP

	IPv6        *net.IPNet
	IPv6Gateway net.IP

	BandWidth *BandwidthEntry

	DefaultRoute bool
	ExtraRoutes  []types.Route
	PolicyRoute  bool

	RedirectToHostCIDRs []*net.IPNet // used by nodeLocalDns etc.
	LocalFastPath       bool
	VethNameInHost      string
	HostLink            netlink.Link // host master, eth0
	HostIPSet           *celloTypes.IPSet

	// for vlan
	Vid          uint32
	HardwareAddr net.HardwareAddr
}

SetupConfig is the datapath config for pod to be set up.

func (*SetupConfig) String

func (c *SetupConfig) String() string

type TeardownConfig

type TeardownConfig struct {
	DP             DataPathType
	ContainerIPNet *celloTypes.IPSet
}

TeardownConfig is the datapath config for cello-cni to teardown.

func (*TeardownConfig) String

func (c *TeardownConfig) String() string

Jump to

Keyboard shortcuts

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