The rpc only reports one field, i.e. the cgroup driver, to kubelet. Containerd determines the effective cgroup driver by looking at all runtime handlers, starting from the default runtime handler (the rest in alphabetical order), and returning the cgroup driver setting of the first runtime handler that supports one. If no runtime handler supports cgroup driver (i.e. has a config option for it) containerd falls back to auto-detection, returning systemd if systemd is running and cgroupfs otherwise. This patch implements the CRI server side of Kubernetes KEP-4033: https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4033-group-driver-detection-over-cri Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
76 lines
2.9 KiB
Go
76 lines
2.9 KiB
Go
package configs
|
|
|
|
// Network defines configuration for a container's networking stack
|
|
//
|
|
// The network configuration can be omitted from a container causing the
|
|
// container to be setup with the host's networking stack
|
|
type Network struct {
|
|
// Type sets the networks type, commonly veth and loopback
|
|
Type string `json:"type"`
|
|
|
|
// Name of the network interface
|
|
Name string `json:"name"`
|
|
|
|
// The bridge to use.
|
|
Bridge string `json:"bridge"`
|
|
|
|
// MacAddress contains the MAC address to set on the network interface
|
|
MacAddress string `json:"mac_address"`
|
|
|
|
// Address contains the IPv4 and mask to set on the network interface
|
|
Address string `json:"address"`
|
|
|
|
// Gateway sets the gateway address that is used as the default for the interface
|
|
Gateway string `json:"gateway"`
|
|
|
|
// IPv6Address contains the IPv6 and mask to set on the network interface
|
|
IPv6Address string `json:"ipv6_address"`
|
|
|
|
// IPv6Gateway sets the ipv6 gateway address that is used as the default for the interface
|
|
IPv6Gateway string `json:"ipv6_gateway"`
|
|
|
|
// Mtu sets the mtu value for the interface and will be mirrored on both the host and
|
|
// container's interfaces if a pair is created, specifically in the case of type veth
|
|
// Note: This does not apply to loopback interfaces.
|
|
Mtu int `json:"mtu"`
|
|
|
|
// TxQueueLen sets the tx_queuelen value for the interface and will be mirrored on both the host and
|
|
// container's interfaces if a pair is created, specifically in the case of type veth
|
|
// Note: This does not apply to loopback interfaces.
|
|
TxQueueLen int `json:"txqueuelen"`
|
|
|
|
// HostInterfaceName is a unique name of a veth pair that resides on in the host interface of the
|
|
// container.
|
|
HostInterfaceName string `json:"host_interface_name"`
|
|
|
|
// HairpinMode specifies if hairpin NAT should be enabled on the virtual interface
|
|
// bridge port in the case of type veth
|
|
// Note: This is unsupported on some systems.
|
|
// Note: This does not apply to loopback interfaces.
|
|
HairpinMode bool `json:"hairpin_mode"`
|
|
}
|
|
|
|
// Route defines a routing table entry.
|
|
//
|
|
// Routes can be specified to create entries in the routing table as the container
|
|
// is started.
|
|
//
|
|
// All of destination, source, and gateway should be either IPv4 or IPv6.
|
|
// One of the three options must be present, and omitted entries will use their
|
|
// IP family default for the route table. For IPv4 for example, setting the
|
|
// gateway to 1.2.3.4 and the interface to eth0 will set up a standard
|
|
// destination of 0.0.0.0(or *) when viewed in the route table.
|
|
type Route struct {
|
|
// Destination specifies the destination IP address and mask in the CIDR form.
|
|
Destination string `json:"destination"`
|
|
|
|
// Source specifies the source IP address and mask in the CIDR form.
|
|
Source string `json:"source"`
|
|
|
|
// Gateway specifies the gateway IP address.
|
|
Gateway string `json:"gateway"`
|
|
|
|
// InterfaceName specifies the device to set this route up for, for example eth0.
|
|
InterfaceName string `json:"interface_name"`
|
|
}
|