Documentation
¶
Overview ¶
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2022, Unikraft GmbH and The KraftKit Authors. Licensed under the BSD-3-Clause License (the "License"). You may not use this file expect in compliance with the License.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2022, Unikraft GmbH and The KraftKit Authors. Licensed under the BSD-3-Clause License (the "License"). You may not use this file expect in compliance with the License.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2022, Unikraft GmbH and The KraftKit Authors. Licensed under the BSD-3-Clause License (the "License"). You may not use this file except in compliance with the License.
Index ¶
- Constants
- Variables
- func AddToScheme(scheme *runtime.Scheme) error
- func AddToSchemeWithGV(scheme *runtime.Scheme, schemeGroupVersion schema.GroupVersion) error
- type Network
- type NetworkInterface
- type NetworkInterfaceList
- type NetworkInterfaceSpec
- type NetworkInterfaceState
- type NetworkInterfaceStatus
- type NetworkInterfaceTemplateSpec
- type NetworkList
- type NetworkService
- type NetworkServiceHandler
- func (client *NetworkServiceHandler) Create(ctx context.Context, req *Network) (*Network, error)
- func (client *NetworkServiceHandler) Delete(ctx context.Context, req *Network) (*Network, error)
- func (client *NetworkServiceHandler) Get(ctx context.Context, req *Network) (*Network, error)
- func (client *NetworkServiceHandler) List(ctx context.Context, req *NetworkList) (*NetworkList, error)
- func (client *NetworkServiceHandler) Start(ctx context.Context, req *Network) (*Network, error)
- func (client *NetworkServiceHandler) Stop(ctx context.Context, req *Network) (*Network, error)
- func (client *NetworkServiceHandler) Update(ctx context.Context, req *Network) (*Network, error)
- type NetworkSpec
- type NetworkState
- type NetworkStatus
- type NetworkTemplateSpec
Constants ¶
const ( NetworkInterfaceStateUnknown = NetworkInterfaceState("unknown") NetworkInterfaceStateConnected = NetworkInterfaceState("connected") NetworkInterfaceStateDisconnected = NetworkInterfaceState("disconnected") )
const ( NetworkStateUnknown = NetworkState("unknown") NetworkStateUp = NetworkState("up") NetworkStateDown = NetworkState("down") )
const Version = "v1alpha1"
Variables ¶
var SchemeGroupVersion = schema.GroupVersion{ Group: network.GroupName, Version: Version, }
Functions ¶
func AddToScheme ¶
func AddToSchemeWithGV ¶
func AddToSchemeWithGV(scheme *runtime.Scheme, schemeGroupVersion schema.GroupVersion) error
Types ¶
type Network ¶
type Network = zip.Object[NetworkSpec, NetworkStatus]
Network is the mutable API object that represents a network.
type NetworkInterface ¶
type NetworkInterface = zip.Object[NetworkInterfaceSpec, NetworkInterfaceStatus]
NetworkInterface is the mutable API object that represents network interfaces.
type NetworkInterfaceList ¶
type NetworkInterfaceList = zip.ObjectList[NetworkInterfaceSpec, NetworkInterfaceStatus]
NetworkInterfaceList is the mutable API object that represents a list of networks.
type NetworkInterfaceSpec ¶
type NetworkInterfaceSpec struct {
// The name of the interface.
IfName string `json:"ifname,omitempty"`
// IPv4 address in CIDR notation, which includes the subnet.
CIDR string
// Gateway IPv4 address.
Gateway string
// IPv4 address of the primary DNS server.
DNS0 string
// IPv4 address of the secondary DNS server.
DNS1 string
// Hostname of the IPv4 address.
Hostname string
// Domain/Search suffix for IPv4 address.
Domain string
// Hardware address of a machine interface.
MacAddress string `json:"mac,omitempty"`
}
NetworkInterfaceSpec represents a specific network interface which is situated on the network.
type NetworkInterfaceState ¶
type NetworkInterfaceState string
NetworkInterfaceState indicates the state of the network.
func (NetworkInterfaceState) String ¶
func (ms NetworkInterfaceState) String() string
String implements fmt.Stringer
type NetworkInterfaceStatus ¶
type NetworkInterfaceStatus struct {
// State is the current state of the network interface.
State NetworkInterfaceState `json:"state"`
}
type NetworkInterfaceTemplateSpec ¶
type NetworkInterfaceTemplateSpec struct {
// Metadata of the pods created from this template.
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the behavior of the network interface.
Spec NetworkInterfaceSpec `json:"spec,omitempty"`
}
NetworkInterfaceTemplateSpec describes the data a network interface should have when created from a template.
type NetworkList ¶
type NetworkList = zip.ObjectList[NetworkSpec, NetworkStatus]
NetworkList is the mutable API object that represents a list of networks.
type NetworkService ¶
type NetworkService interface {
Create(context.Context, *Network) (*Network, error)
Start(context.Context, *Network) (*Network, error)
Stop(context.Context, *Network) (*Network, error)
Update(context.Context, *Network) (*Network, error)
Delete(context.Context, *Network) (*Network, error)
Get(context.Context, *Network) (*Network, error)
List(context.Context, *NetworkList) (*NetworkList, error)
}
NetworkService is the interface of available methods which can be performed by an implementing network driver.
func NewNetworkServiceHandler ¶
func NewNetworkServiceHandler(ctx context.Context, impl NetworkService, opts ...zip.ClientOption) (NetworkService, error)
NewNetworkServiceHandler returns a service based on an inline API client which essentially wraps the specific call, enabling pre- and post- call hooks. This is useful for wrapping the command with decorators, for example, a cache, error handlers, etc. Simultaneously, it enables access to the service via inline code without having to make invocations to an external handler.
type NetworkServiceHandler ¶
type NetworkServiceHandler struct {
// contains filtered or unexported fields
}
NetworkServiceHandler provides a Zip API Object Framework service for the network.
func (*NetworkServiceHandler) List ¶
func (client *NetworkServiceHandler) List(ctx context.Context, req *NetworkList) (*NetworkList, error)
List implements NetworkService
type NetworkSpec ¶
type NetworkSpec struct {
// Driver is the name of the implementing strategy.
Driver string `json:"driver,omitempty"`
// Interface name of this network.
IfName string `json:"ifName,omitempty"`
// The gateway IP address of the network.
Gateway string `json:"gateway,omitempty"`
// The network mask to apply over the gateway IP address to gather the subnet
// range.
Netmask string `json:"netmask,omitempty"`
// Network interfaces associated with this network.
Interfaces []NetworkInterfaceTemplateSpec `json:"interfaces,omitempty"`
}
NetworkSpec contains the desired behavior of the network.
type NetworkStatus ¶
type NetworkStatus struct {
// State is the current state of the network.
State NetworkState `json:"state"`
// Statistics
Collisions uint64 `json:"collisions"`
Multicast uint64 `json:"multicast"`
RxBytes uint64 `json:"rxBytes"`
RxCompressed uint64 `json:"rxCompressed"`
RxCrcErrors uint64 `json:"rxCrcErrors"`
RxDropped uint64 `json:"rxDropped"`
RxErrors uint64 `json:"rxErrors"`
RxFifoErrors uint64 `json:"rxFifoErrors"`
RxFrameErrors uint64 `json:"rxFrameErrors"`
RxLengthErrors uint64 `json:"rxLengthErrors"`
RxMissedErrors uint64 `json:"rxMissedErrors"`
RxOverErrors uint64 `json:"rxOverErrors"`
RxPackets uint64 `json:"rxPackets"`
TxAbortedErrors uint64 `json:"txAbortedErrors"`
TxBytes uint64 `json:"txBytes"`
TxCarrierErrors uint64 `json:"txCarrierErrors"`
TxCompressed uint64 `json:"txCompressed"`
TxDropped uint64 `json:"txDropped"`
TxErrors uint64 `json:"txErrors"`
TxFifoErrors uint64 `json:"txFifoErrors"`
TxHeartbeatErrors uint64 `json:"txHeartbeatErrors"`
TxPackets uint64 `json:"txPackets"`
TxWindowErrors uint64 `json:"txWindowErrors"`
// DriverConfig is driver-specific attributes which are populated by the
// underlying network implementation.
DriverConfig interface{} `json:"driverConfig,omitempty"`
}
NetworkStatus contains the complete status of the network.
type NetworkTemplateSpec ¶
type NetworkTemplateSpec struct {
// Metadata of the pods created from this template.
metav1.ObjectMeta
// Spec defines the behavior of the network.
Spec NetworkSpec
}
NetworkTemplateSpec describes the data a network should have when created from a template.