Documentation ¶
Overview ¶
Package network provides resources which describe networking subsystem state.
Index ¶
- Constants
- func AddressID(linkName string, addr netaddr.IPPrefix) string
- func AddressReady(spec *StatusSpec) bool
- func ConnectivityReady(spec *StatusSpec) bool
- func EtcFilesReady(spec *StatusSpec) bool
- func HostnameReady(spec *StatusSpec) bool
- func LayeredID(layer ConfigLayer, id string) string
- func LinkID(linkName string) string
- func OperatorID(operator Operator, linkName string) string
- func RouteID(destination netaddr.IPPrefix, gateway netaddr.IP) string
- type AddressSpec
- func (r *AddressSpec) DeepCopy() resource.Resource
- func (r *AddressSpec) Metadata() *resource.Metadata
- func (r *AddressSpec) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *AddressSpec) Spec() interface{}
- func (r *AddressSpec) String() string
- func (r *AddressSpec) TypedSpec() *AddressSpecSpec
- type AddressSpecSpec
- type AddressStatus
- func (r *AddressStatus) DeepCopy() resource.Resource
- func (r *AddressStatus) Metadata() *resource.Metadata
- func (r *AddressStatus) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *AddressStatus) Spec() interface{}
- func (r *AddressStatus) String() string
- func (r *AddressStatus) TypedSpec() *AddressStatusSpec
- type AddressStatusSpec
- type BondMasterSpec
- type ConfigLayer
- type DHCP4OperatorSpec
- type DHCP6OperatorSpec
- type HostnameSpec
- func (r *HostnameSpec) DeepCopy() resource.Resource
- func (r *HostnameSpec) Metadata() *resource.Metadata
- func (r *HostnameSpec) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *HostnameSpec) Spec() interface{}
- func (r *HostnameSpec) String() string
- func (r *HostnameSpec) TypedSpec() *HostnameSpecSpec
- type HostnameSpecSpec
- type HostnameStatus
- func (r *HostnameStatus) DeepCopy() resource.Resource
- func (r *HostnameStatus) Metadata() *resource.Metadata
- func (r *HostnameStatus) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *HostnameStatus) Spec() interface{}
- func (r *HostnameStatus) String() string
- func (r *HostnameStatus) TypedSpec() *HostnameStatusSpec
- type HostnameStatusSpec
- type LinkRefresh
- type LinkRefreshSpec
- type LinkSpec
- type LinkSpecSpec
- type LinkStatus
- func (r *LinkStatus) DeepCopy() resource.Resource
- func (r *LinkStatus) Metadata() *resource.Metadata
- func (r *LinkStatus) Physical() bool
- func (r *LinkStatus) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *LinkStatus) Spec() interface{}
- func (r *LinkStatus) String() string
- func (r *LinkStatus) TypedSpec() *LinkStatusSpec
- type LinkStatusSpec
- type NodeAddress
- func (r *NodeAddress) DeepCopy() resource.Resource
- func (r *NodeAddress) Metadata() *resource.Metadata
- func (r *NodeAddress) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *NodeAddress) Spec() interface{}
- func (r *NodeAddress) String() string
- func (r *NodeAddress) TypedSpec() *NodeAddressSpec
- type NodeAddressSpec
- type Operator
- type OperatorSpec
- func (r *OperatorSpec) DeepCopy() resource.Resource
- func (r *OperatorSpec) Metadata() *resource.Metadata
- func (r *OperatorSpec) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *OperatorSpec) Spec() interface{}
- func (r *OperatorSpec) String() string
- func (r *OperatorSpec) TypedSpec() *OperatorSpecSpec
- type OperatorSpecSpec
- type ReadyCondition
- type ResolverSpec
- func (r *ResolverSpec) DeepCopy() resource.Resource
- func (r *ResolverSpec) Metadata() *resource.Metadata
- func (r *ResolverSpec) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *ResolverSpec) Spec() interface{}
- func (r *ResolverSpec) String() string
- func (r *ResolverSpec) TypedSpec() *ResolverSpecSpec
- type ResolverSpecSpec
- type ResolverStatus
- func (r *ResolverStatus) DeepCopy() resource.Resource
- func (r *ResolverStatus) Metadata() *resource.Metadata
- func (r *ResolverStatus) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *ResolverStatus) Spec() interface{}
- func (r *ResolverStatus) String() string
- func (r *ResolverStatus) TypedSpec() *ResolverStatusSpec
- type ResolverStatusSpec
- type RouteSpec
- type RouteSpecSpec
- type RouteStatus
- func (r *RouteStatus) DeepCopy() resource.Resource
- func (r *RouteStatus) Metadata() *resource.Metadata
- func (r *RouteStatus) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *RouteStatus) Spec() interface{}
- func (r *RouteStatus) String() string
- func (r *RouteStatus) TypedSpec() *RouteStatusSpec
- type RouteStatusSpec
- type Status
- type StatusCheck
- type StatusSpec
- type TimeServerSpec
- func (r *TimeServerSpec) DeepCopy() resource.Resource
- func (r *TimeServerSpec) Metadata() *resource.Metadata
- func (r *TimeServerSpec) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *TimeServerSpec) Spec() interface{}
- func (r *TimeServerSpec) String() string
- func (r *TimeServerSpec) TypedSpec() *TimeServerSpecSpec
- type TimeServerSpecSpec
- type TimeServerStatus
- func (r *TimeServerStatus) DeepCopy() resource.Resource
- func (r *TimeServerStatus) Metadata() *resource.Metadata
- func (r *TimeServerStatus) ResourceDefinition() meta.ResourceDefinitionSpec
- func (r *TimeServerStatus) Spec() interface{}
- func (r *TimeServerStatus) String() string
- func (r *TimeServerStatus) TypedSpec() *TimeServerStatusSpec
- type TimeServerStatusSpec
- type VIPOperatorSpec
- type VLANSpec
- type WireguardPeer
- type WireguardSpec
Constants ¶
const ( LinkKindVLAN = "vlan" LinkKindBond = "bond" LinkKindWireguard = "wireguard" )
Link kinds.
const ( // Default node address (should be a single address in the spec). // // Used to set for example published etcd peer address. NodeAddressDefaultID = "default" // Current node addresses (as seen at the moment). // // Shows a list of addresses for the node for the UP interfaces. NodeAddressCurrentID = "current" // Accumulative list of the addresses node had over time. // // If some address is no longer present, it will be still kept in the accumulative list. NodeAddressAccumulativeID = "accumulative" )
NodeAddress well-known IDs.
const AddressSpecType = resource.Type("AddressSpecs.net.talos.dev")
AddressSpecType is type of AddressSpec resource.
const AddressStatusType = resource.Type("AddressStatuses.net.talos.dev")
AddressStatusType is type of AddressStatus resource.
const ConfigNamespaceName resource.Namespace = "network-config"
ConfigNamespaceName contains umerged resources related to networking generate from the configuration.
Resources in the ConfigNamespaceName namespace are merged to produce final versions in the NamespaceName namespace.
const HostnameID resource.ID = "hostname"
HostnameID is the ID of the singleton instance.
const HostnameSpecType = resource.Type("HostnameSpecs.net.talos.dev")
HostnameSpecType is type of HostnameSpec resource.
const HostnameStatusType = resource.Type("HostnameStatuses.net.talos.dev")
HostnameStatusType is type of HostnameStatus resource.
const LinkRefreshType = resource.Type("LinkRefreshes.net.talos.dev")
LinkRefreshType is type of LinkRefresh resource.
const LinkSpecType = resource.Type("LinkSpecs.net.talos.dev")
LinkSpecType is type of LinkSpec resource.
const LinkStatusType = resource.Type("LinkStatuses.net.talos.dev")
LinkStatusType is type of LinkStatus resource.
const NamespaceName resource.Namespace = "network"
NamespaceName contains resources related to networking.
const NodeAddressType = resource.Type("NodeAddresses.net.talos.dev")
NodeAddressType is type of NodeAddress resource.
const OperatorSpecType = resource.Type("OperatorSpecs.net.talos.dev")
OperatorSpecType is type of OperatorSpec resource.
const ResolverID resource.ID = "resolvers"
ResolverID is the ID of the singleton instance.
const ResolverSpecType = resource.Type("ResolverSpecs.net.talos.dev")
ResolverSpecType is type of ResolverSpec resource.
const ResolverStatusType = resource.Type("ResolverStatuses.net.talos.dev")
ResolverStatusType is type of ResolverStatus resource.
const RouteSpecType = resource.Type("RouteSpecs.net.talos.dev")
RouteSpecType is type of RouteSpec resource.
const RouteStatusType = resource.Type("RouteStatuses.net.talos.dev")
RouteStatusType is type of RouteStatus resource.
const StatusID resource.ID = "status"
StatusID is the resource ID of the singleton instance.
const StatusType = resource.Type("NetworkStatuses.net.talos.dev")
StatusType is type of Status resource.
const TimeServerID resource.ID = "timeservers"
TimeServerID is the ID of the singleton instance.
const TimeServerSpecType = resource.Type("TimeServerSpecs.net.talos.dev")
TimeServerSpecType is type of TimeServerSpec resource.
const TimeServerStatusType = resource.Type("TimeServerStatuses.net.talos.dev")
TimeServerStatusType is type of TimeServerStatus resource.
Variables ¶
This section is empty.
Functions ¶
func AddressReady ¶
func AddressReady(spec *StatusSpec) bool
AddressReady checks if address is ready.
func ConnectivityReady ¶
func ConnectivityReady(spec *StatusSpec) bool
ConnectivityReady checks if connectivity is ready.
func EtcFilesReady ¶
func EtcFilesReady(spec *StatusSpec) bool
EtcFilesReady checks if etc files are ready.
func HostnameReady ¶
func HostnameReady(spec *StatusSpec) bool
HostnameReady checks if hostname is ready.
func LayeredID ¶
func LayeredID(layer ConfigLayer, id string) string
LayeredID builds configuration for the entity at some layer.
func OperatorID ¶
OperatorID builds ID (primary key) for the operators.
Types ¶
type AddressSpec ¶
type AddressSpec struct {
// contains filtered or unexported fields
}
AddressSpec resource holds physical network link status.
func NewAddressSpec ¶
func NewAddressSpec(namespace resource.Namespace, id resource.ID) *AddressSpec
NewAddressSpec initializes a AddressSpec resource.
func (*AddressSpec) DeepCopy ¶
func (r *AddressSpec) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*AddressSpec) Metadata ¶
func (r *AddressSpec) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*AddressSpec) ResourceDefinition ¶
func (r *AddressSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*AddressSpec) Spec ¶
func (r *AddressSpec) Spec() interface{}
Spec implements resource.Resource.
func (*AddressSpec) String ¶
func (r *AddressSpec) String() string
func (*AddressSpec) TypedSpec ¶
func (r *AddressSpec) TypedSpec() *AddressSpecSpec
TypedSpec allows to access the Spec with the proper type.
type AddressSpecSpec ¶
type AddressSpecSpec struct { Address netaddr.IPPrefix `yaml:"address"` LinkName string `yaml:"linkName"` Family nethelpers.Family `yaml:"family"` Scope nethelpers.Scope `yaml:"scope"` Flags nethelpers.AddressFlags `yaml:"flags"` AnnounceWithARP bool `yaml:"announceWithARP,omitempty"` ConfigLayer ConfigLayer `yaml:"layer"` }
AddressSpecSpec describes status of rendered secrets.
type AddressStatus ¶
type AddressStatus struct {
// contains filtered or unexported fields
}
AddressStatus resource holds physical network link status.
func NewAddressStatus ¶
func NewAddressStatus(namespace resource.Namespace, id resource.ID) *AddressStatus
NewAddressStatus initializes a AddressStatus resource.
func (*AddressStatus) DeepCopy ¶
func (r *AddressStatus) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*AddressStatus) Metadata ¶
func (r *AddressStatus) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*AddressStatus) ResourceDefinition ¶
func (r *AddressStatus) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*AddressStatus) Spec ¶
func (r *AddressStatus) Spec() interface{}
Spec implements resource.Resource.
func (*AddressStatus) String ¶
func (r *AddressStatus) String() string
func (*AddressStatus) TypedSpec ¶
func (r *AddressStatus) TypedSpec() *AddressStatusSpec
TypedSpec allows to access the Spec with the proper type.
type AddressStatusSpec ¶
type AddressStatusSpec struct { Address netaddr.IPPrefix `yaml:"address"` Local netaddr.IP `yaml:"local,omitempty"` Broadcast netaddr.IP `yaml:"broadcast,omitempty"` Anycast netaddr.IP `yaml:"anycast,omitempty"` Multicast netaddr.IP `yaml:"multicast,omitempty"` LinkIndex uint32 `yaml:"linkIndex"` LinkName string `yaml:"linkName"` Family nethelpers.Family `yaml:"family"` Scope nethelpers.Scope `yaml:"scope"` Flags nethelpers.AddressFlags `yaml:"flags"` }
AddressStatusSpec describes status of rendered secrets.
type BondMasterSpec ¶
type BondMasterSpec struct { Mode nethelpers.BondMode `yaml:"mode"` HashPolicy nethelpers.BondXmitHashPolicy `yaml:"xmitHashPolicy"` LACPRate nethelpers.LACPRate `yaml:"lacpRate"` ARPValidate nethelpers.ARPValidate `yaml:"arpValidate"` ARPAllTargets nethelpers.ARPAllTargets `yaml:"arpAllTargets"` PrimaryIndex uint32 `yaml:"primary,omitempty"` PrimaryReselect nethelpers.PrimaryReselect `yaml:"primaryReselect"` FailOverMac nethelpers.FailOverMAC `yaml:"failOverMac"` ADSelect nethelpers.ADSelect `yaml:"adSelect,omitempty"` MIIMon uint32 `yaml:"miimon,omitempty"` UpDelay uint32 `yaml:"updelay,omitempty"` DownDelay uint32 `yaml:"downdelay,omitempty"` ARPInterval uint32 `yaml:"arpInterval,omitempty"` ResendIGMP uint32 `yaml:"resendIgmp,omitempty"` MinLinks uint32 `yaml:"minLinks,omitempty"` LPInterval uint32 `yaml:"lpInterval,omitempty"` PacketsPerSlave uint32 `yaml:"packetsPerSlave,omitempty"` NumPeerNotif uint8 `yaml:"numPeerNotif,omitempty"` TLBDynamicLB uint8 `yaml:"tlbLogicalLb,omitempty"` AllSlavesActive uint8 `yaml:"allSlavesActive,omitempty"` UseCarrier bool `yaml:"useCarrier,omitempty"` ADActorSysPrio uint16 `yaml:"adActorSysPrio,omitempty"` ADUserPortKey uint16 `yaml:"adUserPortKey,omitempty"` PeerNotifyDelay uint32 `yaml:"peerNotifyDelay,omitempty"` }
BondMasterSpec describes bond settings if Kind == "bond".
func (*BondMasterSpec) Decode ¶
func (bond *BondMasterSpec) Decode(data []byte) error
Decode the BondMasterSpec from netlink attributes.
func (*BondMasterSpec) Encode ¶
func (bond *BondMasterSpec) Encode() ([]byte, error)
Encode the BondMasterSpec into netlink attributes.
func (*BondMasterSpec) FillDefaults ¶
func (bond *BondMasterSpec) FillDefaults()
FillDefaults fills zero values with proper default values.
type ConfigLayer ¶
type ConfigLayer int
ConfigLayer describes network configuration layers, with lowest priority first.
const ( ConfigDefault ConfigLayer = iota // default ConfigCmdline // cmdline ConfigPlatform // platform ConfigOperator // operator ConfigMachineConfiguration // configuration )
Configuration layers.
func (ConfigLayer) MarshalYAML ¶
func (layer ConfigLayer) MarshalYAML() (interface{}, error)
MarshalYAML implements yaml.Marshaler.
func (ConfigLayer) String ¶
func (i ConfigLayer) String() string
type DHCP4OperatorSpec ¶
type DHCP4OperatorSpec struct {
RouteMetric uint32 `yaml:"routeMetric"`
}
DHCP4OperatorSpec describes DHCP4 operator options.
type DHCP6OperatorSpec ¶
type DHCP6OperatorSpec struct {
RouteMetric uint32 `yaml:"routeMetric"`
}
DHCP6OperatorSpec describes DHCP6 operator options.
type HostnameSpec ¶
type HostnameSpec struct {
// contains filtered or unexported fields
}
HostnameSpec resource holds node hostname.
func NewHostnameSpec ¶
func NewHostnameSpec(namespace resource.Namespace, id resource.ID) *HostnameSpec
NewHostnameSpec initializes a HostnameSpec resource.
func (*HostnameSpec) DeepCopy ¶
func (r *HostnameSpec) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*HostnameSpec) Metadata ¶
func (r *HostnameSpec) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*HostnameSpec) ResourceDefinition ¶
func (r *HostnameSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*HostnameSpec) Spec ¶
func (r *HostnameSpec) Spec() interface{}
Spec implements resource.Resource.
func (*HostnameSpec) String ¶
func (r *HostnameSpec) String() string
func (*HostnameSpec) TypedSpec ¶
func (r *HostnameSpec) TypedSpec() *HostnameSpecSpec
TypedSpec allows to access the Spec with the proper type.
type HostnameSpecSpec ¶
type HostnameSpecSpec struct { Hostname string `yaml:"hostname"` Domainname string `yaml:"domainname"` ConfigLayer ConfigLayer `yaml:"layer"` }
HostnameSpecSpec describes node nostname.
func (*HostnameSpecSpec) FQDN ¶
func (spec *HostnameSpecSpec) FQDN() string
FQDN returns the fully-qualified domain name.
func (*HostnameSpecSpec) ParseFQDN ¶
func (spec *HostnameSpecSpec) ParseFQDN(fqdn string) error
ParseFQDN into parts and validate it.
func (*HostnameSpecSpec) Validate ¶
func (spec *HostnameSpecSpec) Validate() error
Validate the hostname.
type HostnameStatus ¶
type HostnameStatus struct {
// contains filtered or unexported fields
}
HostnameStatus resource holds node hostname.
func NewHostnameStatus ¶
func NewHostnameStatus(namespace resource.Namespace, id resource.ID) *HostnameStatus
NewHostnameStatus initializes a HostnameStatus resource.
func (*HostnameStatus) DeepCopy ¶
func (r *HostnameStatus) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*HostnameStatus) Metadata ¶
func (r *HostnameStatus) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*HostnameStatus) ResourceDefinition ¶
func (r *HostnameStatus) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*HostnameStatus) Spec ¶
func (r *HostnameStatus) Spec() interface{}
Spec implements resource.Resource.
func (*HostnameStatus) String ¶
func (r *HostnameStatus) String() string
func (*HostnameStatus) TypedSpec ¶
func (r *HostnameStatus) TypedSpec() *HostnameStatusSpec
TypedSpec allows to access the Spec with the proper type.
type HostnameStatusSpec ¶
type HostnameStatusSpec struct { Hostname string `yaml:"hostname"` Domainname string `yaml:"domainname"` }
HostnameStatusSpec describes node nostname.
func (*HostnameStatusSpec) DNSNames ¶
func (spec *HostnameStatusSpec) DNSNames() []string
DNSNames returns DNS names to be added to the certificate based on the hostname and fqdn.
func (*HostnameStatusSpec) FQDN ¶
func (spec *HostnameStatusSpec) FQDN() string
FQDN returns the fully-qualified domain name.
type LinkRefresh ¶
type LinkRefresh struct {
// contains filtered or unexported fields
}
LinkRefresh resource is used to communicate link changes which can't be subscribed to via netlink.
The only usecase for now is the Wireguards, as there's no way subscribe to wireguard updates via the netlink API.
Whenever Wireguard interface is updated, LinkRefresh resource is modified to trigger a reconcile loop in the LinkStatusController.
func NewLinkRefresh ¶
func NewLinkRefresh(namespace resource.Namespace, id resource.ID) *LinkRefresh
NewLinkRefresh initializes a LinkRefresh resource.
func (*LinkRefresh) DeepCopy ¶
func (r *LinkRefresh) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*LinkRefresh) Metadata ¶
func (r *LinkRefresh) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*LinkRefresh) ResourceDefinition ¶
func (r *LinkRefresh) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*LinkRefresh) Spec ¶
func (r *LinkRefresh) Spec() interface{}
Spec implements resource.Resource.
func (*LinkRefresh) String ¶
func (r *LinkRefresh) String() string
type LinkRefreshSpec ¶
type LinkRefreshSpec struct {
Generation int `yaml:"generation"`
}
LinkRefreshSpec describes status of rendered secrets.
type LinkSpec ¶
type LinkSpec struct {
// contains filtered or unexported fields
}
LinkSpec resource describes desired state of the link (network interface).
func NewLinkSpec ¶
NewLinkSpec initializes a LinkSpec resource.
func (*LinkSpec) ResourceDefinition ¶
func (r *LinkSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*LinkSpec) TypedSpec ¶
func (r *LinkSpec) TypedSpec() *LinkSpecSpec
TypedSpec allows to access the Spec with the proper type.
type LinkSpecSpec ¶
type LinkSpecSpec struct { // Name defines link name Name string `yaml:"name"` // Logical describes if the interface should be created on the fly if it doesn't exist. Logical bool `yaml:"logical"` // If Up is true, bring interface up, otherwise bring interface down. // // TODO: make *bool ? Up bool `yaml:"up"` // Interface MTU (always applies). MTU uint32 `yaml:"mtu"` // Kind and Type are only required for Logical interfaces. Kind string `yaml:"kind"` Type nethelpers.LinkType `yaml:"type"` // ParentName indicates link parent for VLAN interfaces. ParentName string `yaml:"parentName,omitempty"` // MasterName indicates master link for enslaved bonded interfaces. MasterName string `yaml:"masterName,omitempty"` // These structures are present depending on "Kind" for Logical intefaces. VLAN VLANSpec `yaml:"vlan,omitempty"` BondMaster BondMasterSpec `yaml:"bondMaster,omitempty"` Wireguard WireguardSpec `yaml:"wireguard,omitempty"` // Configuration layer. ConfigLayer ConfigLayer `yaml:"layer"` }
LinkSpecSpec describes spec for the link.
func (*LinkSpecSpec) Merge ¶
func (spec *LinkSpecSpec) Merge(other *LinkSpecSpec) error
Merge with other, overwriting fields from other if set.
type LinkStatus ¶
type LinkStatus struct {
// contains filtered or unexported fields
}
LinkStatus resource holds physical network link status.
func NewLinkStatus ¶
func NewLinkStatus(namespace resource.Namespace, id resource.ID) *LinkStatus
NewLinkStatus initializes a LinkStatus resource.
func (*LinkStatus) DeepCopy ¶
func (r *LinkStatus) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*LinkStatus) Metadata ¶
func (r *LinkStatus) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*LinkStatus) Physical ¶
func (r *LinkStatus) Physical() bool
Physical checks if the link is physical ethernet.
func (*LinkStatus) ResourceDefinition ¶
func (r *LinkStatus) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*LinkStatus) Spec ¶
func (r *LinkStatus) Spec() interface{}
Spec implements resource.Resource.
func (*LinkStatus) String ¶
func (r *LinkStatus) String() string
func (*LinkStatus) TypedSpec ¶
func (r *LinkStatus) TypedSpec() *LinkStatusSpec
TypedSpec allows to access the Spec with the proper type.
type LinkStatusSpec ¶
type LinkStatusSpec struct { // Fields coming from rtnetlink API. Index uint32 `yaml:"index"` Type nethelpers.LinkType `yaml:"type"` LinkIndex uint32 `yaml:"linkIndex"` Flags nethelpers.LinkFlags `yaml:"flags"` HardwareAddr nethelpers.HardwareAddr `yaml:"hardwareAddr"` BroadcastAddr nethelpers.HardwareAddr `yaml:"broadcastAddr"` MTU uint32 `yaml:"mtu"` QueueDisc string `yaml:"queueDisc"` MasterIndex uint32 `yaml:"masterIndex,omitempty"` OperationalState nethelpers.OperationalState `yaml:"operationalState"` Kind string `yaml:"kind"` SlaveKind string `yaml:"slaveKind"` // Fields coming from ethtool API. LinkState bool `yaml:"linkState"` SpeedMegabits int `yaml:"speedMbit,omitempty"` Port nethelpers.Port `yaml:"port"` Duplex nethelpers.Duplex `yaml:"duplex"` // Following fields are only populated with respective Kind. VLAN VLANSpec `yaml:"vlan,omitempty"` BondMaster BondMasterSpec `yaml:"bondMaster,omitempty"` Wireguard WireguardSpec `yaml:"wireguard,omitempty"` }
LinkStatusSpec describes status of rendered secrets.
type NodeAddress ¶
type NodeAddress struct {
// contains filtered or unexported fields
}
NodeAddress resource holds physical network link status.
func NewNodeAddress ¶
func NewNodeAddress(namespace resource.Namespace, id resource.ID) *NodeAddress
NewNodeAddress initializes a NodeAddress resource.
func (*NodeAddress) DeepCopy ¶
func (r *NodeAddress) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*NodeAddress) Metadata ¶
func (r *NodeAddress) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*NodeAddress) ResourceDefinition ¶
func (r *NodeAddress) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*NodeAddress) Spec ¶
func (r *NodeAddress) Spec() interface{}
Spec implements resource.Resource.
func (*NodeAddress) String ¶
func (r *NodeAddress) String() string
func (*NodeAddress) TypedSpec ¶
func (r *NodeAddress) TypedSpec() *NodeAddressSpec
TypedSpec allows to access the Spec with the proper type.
type NodeAddressSpec ¶
NodeAddressSpec describes a set of node addresses.
type Operator ¶
type Operator int
Operator enumerates Talos network operators.
const ( OperatorDHCP4 Operator = iota // dhcp4 OperatorDHCP6 // dhcp6 OperatorVIP // vip OperatorWgLAN // wglan )
Operator list.
func (Operator) MarshalYAML ¶
MarshalYAML implements yaml.Marshaler.
type OperatorSpec ¶
type OperatorSpec struct {
// contains filtered or unexported fields
}
OperatorSpec resource holds DNS resolver info.
func NewOperatorSpec ¶
func NewOperatorSpec(namespace resource.Namespace, id resource.ID) *OperatorSpec
NewOperatorSpec initializes a OperatorSpec resource.
func (*OperatorSpec) DeepCopy ¶
func (r *OperatorSpec) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*OperatorSpec) Metadata ¶
func (r *OperatorSpec) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*OperatorSpec) ResourceDefinition ¶
func (r *OperatorSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*OperatorSpec) Spec ¶
func (r *OperatorSpec) Spec() interface{}
Spec implements resource.Resource.
func (*OperatorSpec) String ¶
func (r *OperatorSpec) String() string
func (*OperatorSpec) TypedSpec ¶
func (r *OperatorSpec) TypedSpec() *OperatorSpecSpec
TypedSpec allows to access the Spec with the proper type.
type OperatorSpecSpec ¶
type OperatorSpecSpec struct { Operator Operator `yaml:"operator"` LinkName string `yaml:"linkName"` RequireUp bool `yaml:"requireUp"` DHCP4 DHCP4OperatorSpec `yaml:"dhcp4,omitempty"` DHCP6 DHCP6OperatorSpec `yaml:"dhcp6,omitempty"` VIP VIPOperatorSpec `yaml:"vip,omitempty"` }
OperatorSpecSpec describes DNS resolvers.
type ReadyCondition ¶
type ReadyCondition struct {
// contains filtered or unexported fields
}
ReadyCondition implements condition which waits for the network to be ready.
func NewReadyCondition ¶
func NewReadyCondition(state state.State, checks ...StatusCheck) *ReadyCondition
NewReadyCondition builds a coondition which waits for the network to be ready.
func (*ReadyCondition) String ¶
func (condition *ReadyCondition) String() string
type ResolverSpec ¶
type ResolverSpec struct {
// contains filtered or unexported fields
}
ResolverSpec resource holds DNS resolver info.
func NewResolverSpec ¶
func NewResolverSpec(namespace resource.Namespace, id resource.ID) *ResolverSpec
NewResolverSpec initializes a ResolverSpec resource.
func (*ResolverSpec) DeepCopy ¶
func (r *ResolverSpec) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*ResolverSpec) Metadata ¶
func (r *ResolverSpec) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*ResolverSpec) ResourceDefinition ¶
func (r *ResolverSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*ResolverSpec) Spec ¶
func (r *ResolverSpec) Spec() interface{}
Spec implements resource.Resource.
func (*ResolverSpec) String ¶
func (r *ResolverSpec) String() string
func (*ResolverSpec) TypedSpec ¶
func (r *ResolverSpec) TypedSpec() *ResolverSpecSpec
TypedSpec allows to access the Spec with the proper type.
type ResolverSpecSpec ¶
type ResolverSpecSpec struct { DNSServers []netaddr.IP `yaml:"dnsServers"` ConfigLayer ConfigLayer `yaml:"layer"` }
ResolverSpecSpec describes DNS resolvers.
type ResolverStatus ¶
type ResolverStatus struct {
// contains filtered or unexported fields
}
ResolverStatus resource holds DNS resolver info.
func NewResolverStatus ¶
func NewResolverStatus(namespace resource.Namespace, id resource.ID) *ResolverStatus
NewResolverStatus initializes a ResolverStatus resource.
func (*ResolverStatus) DeepCopy ¶
func (r *ResolverStatus) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*ResolverStatus) Metadata ¶
func (r *ResolverStatus) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*ResolverStatus) ResourceDefinition ¶
func (r *ResolverStatus) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*ResolverStatus) Spec ¶
func (r *ResolverStatus) Spec() interface{}
Spec implements resource.Resource.
func (*ResolverStatus) String ¶
func (r *ResolverStatus) String() string
func (*ResolverStatus) TypedSpec ¶
func (r *ResolverStatus) TypedSpec() *ResolverStatusSpec
TypedSpec allows to access the Spec with the proper type.
type ResolverStatusSpec ¶
ResolverStatusSpec describes DNS resolvers.
type RouteSpec ¶
type RouteSpec struct {
// contains filtered or unexported fields
}
RouteSpec resource holds route specification to be applied to the kernel.
func NewRouteSpec ¶
NewRouteSpec initializes a RouteSpec resource.
func (*RouteSpec) ResourceDefinition ¶
func (r *RouteSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*RouteSpec) TypedSpec ¶
func (r *RouteSpec) TypedSpec() *RouteSpecSpec
TypedSpec allows to access the Spec with the proper type.
type RouteSpecSpec ¶
type RouteSpecSpec struct { Family nethelpers.Family `yaml:"family"` Destination netaddr.IPPrefix `yaml:"dst"` Source netaddr.IPPrefix `yaml:"src"` Gateway netaddr.IP `yaml:"gateway"` OutLinkName string `yaml:"outLinkName,omitempty"` Table nethelpers.RoutingTable `yaml:"table"` Priority uint32 `yaml:"priority,omitempty"` Scope nethelpers.Scope `yaml:"scope"` Type nethelpers.RouteType `yaml:"type"` Flags nethelpers.RouteFlags `yaml:"flags"` Protocol nethelpers.RouteProtocol `yaml:"protocol"` ConfigLayer ConfigLayer `yaml:"layer"` }
RouteSpecSpec describes the route.
func (*RouteSpecSpec) Normalize ¶
func (route *RouteSpecSpec) Normalize()
Normalize converts 0.0.0.0 to zero value.
type RouteStatus ¶
type RouteStatus struct {
// contains filtered or unexported fields
}
RouteStatus resource holds physical network link status.
func NewRouteStatus ¶
func NewRouteStatus(namespace resource.Namespace, id resource.ID) *RouteStatus
NewRouteStatus initializes a RouteStatus resource.
func (*RouteStatus) DeepCopy ¶
func (r *RouteStatus) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*RouteStatus) Metadata ¶
func (r *RouteStatus) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*RouteStatus) ResourceDefinition ¶
func (r *RouteStatus) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*RouteStatus) Spec ¶
func (r *RouteStatus) Spec() interface{}
Spec implements resource.Resource.
func (*RouteStatus) String ¶
func (r *RouteStatus) String() string
func (*RouteStatus) TypedSpec ¶
func (r *RouteStatus) TypedSpec() *RouteStatusSpec
TypedSpec allows to access the Spec with the proper type.
type RouteStatusSpec ¶
type RouteStatusSpec struct { Family nethelpers.Family `yaml:"family"` Destination netaddr.IPPrefix `yaml:"dst"` Source netaddr.IPPrefix `yaml:"src"` Gateway netaddr.IP `yaml:"gateway"` OutLinkIndex uint32 `yaml:"outLinkIndex,omitempty"` OutLinkName string `yaml:"outLinkName,omitempty"` Table nethelpers.RoutingTable `yaml:"table"` Priority uint32 `yaml:"priority"` Scope nethelpers.Scope `yaml:"scope"` Type nethelpers.RouteType `yaml:"type"` Flags nethelpers.RouteFlags `yaml:"flags"` Protocol nethelpers.RouteProtocol `yaml:"protocol"` }
RouteStatusSpec describes status of rendered secrets.
type Status ¶
type Status struct {
// contains filtered or unexported fields
}
Status resource holds status of networking setup.
func (*Status) ResourceDefinition ¶
func (r *Status) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*Status) TypedSpec ¶
func (r *Status) TypedSpec() *StatusSpec
TypedSpec allows to access the Spec with the proper type.
type StatusCheck ¶
type StatusCheck func(*StatusSpec) bool
StatusCheck asserts specific part of Status to be true.
type StatusSpec ¶
type StatusSpec struct { AddressReady bool `yaml:"addressReady"` ConnectivityReady bool `yaml:"connectivityReady"` HostnameReady bool `yaml:"hostnameReady"` EtcFilesReady bool `yaml:"etcFilesReady"` }
StatusSpec describes network state.
type TimeServerSpec ¶
type TimeServerSpec struct {
// contains filtered or unexported fields
}
TimeServerSpec resource holds NTP server info.
func NewTimeServerSpec ¶
func NewTimeServerSpec(namespace resource.Namespace, id resource.ID) *TimeServerSpec
NewTimeServerSpec initializes a TimeServerSpec resource.
func (*TimeServerSpec) DeepCopy ¶
func (r *TimeServerSpec) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*TimeServerSpec) Metadata ¶
func (r *TimeServerSpec) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*TimeServerSpec) ResourceDefinition ¶
func (r *TimeServerSpec) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*TimeServerSpec) Spec ¶
func (r *TimeServerSpec) Spec() interface{}
Spec implements resource.Resource.
func (*TimeServerSpec) String ¶
func (r *TimeServerSpec) String() string
func (*TimeServerSpec) TypedSpec ¶
func (r *TimeServerSpec) TypedSpec() *TimeServerSpecSpec
TypedSpec allows to access the Spec with the proper type.
type TimeServerSpecSpec ¶
type TimeServerSpecSpec struct { NTPServers []string `yaml:"timeServers"` ConfigLayer ConfigLayer `yaml:"layer"` }
TimeServerSpecSpec describes NTP servers.
type TimeServerStatus ¶
type TimeServerStatus struct {
// contains filtered or unexported fields
}
TimeServerStatus resource holds NTP server info.
func NewTimeServerStatus ¶
func NewTimeServerStatus(namespace resource.Namespace, id resource.ID) *TimeServerStatus
NewTimeServerStatus initializes a TimeServerStatus resource.
func (*TimeServerStatus) DeepCopy ¶
func (r *TimeServerStatus) DeepCopy() resource.Resource
DeepCopy implements resource.Resource.
func (*TimeServerStatus) Metadata ¶
func (r *TimeServerStatus) Metadata() *resource.Metadata
Metadata implements resource.Resource.
func (*TimeServerStatus) ResourceDefinition ¶
func (r *TimeServerStatus) ResourceDefinition() meta.ResourceDefinitionSpec
ResourceDefinition implements meta.ResourceDefinitionProvider interface.
func (*TimeServerStatus) Spec ¶
func (r *TimeServerStatus) Spec() interface{}
Spec implements resource.Resource.
func (*TimeServerStatus) String ¶
func (r *TimeServerStatus) String() string
func (*TimeServerStatus) TypedSpec ¶
func (r *TimeServerStatus) TypedSpec() *TimeServerStatusSpec
TypedSpec allows to access the Spec with the proper type.
type TimeServerStatusSpec ¶
type TimeServerStatusSpec struct {
NTPServers []string `yaml:"timeServers"`
}
TimeServerStatusSpec describes NTP servers.
type VIPOperatorSpec ¶
VIPOperatorSpec describes virtual IP operator options.
type VLANSpec ¶
type VLANSpec struct { // VID is the vlan ID. VID uint16 `yaml:"vlanID"` // Protocol is the vlan protocol. Protocol nethelpers.VLANProtocol `yaml:"vlanProtocol"` }
VLANSpec describes VLAN settings if Kind == "vlan".
type WireguardPeer ¶
type WireguardPeer struct { PublicKey string `yaml:"publicKey"` Endpoint string `yaml:"endpoint"` PersistentKeepaliveInterval time.Duration `yaml:"persistenKeepaliveInterval"` AllowedIPs []netaddr.IPPrefix `yaml:"allowedIPs"` }
WireguardPeer describes a single peer.
func (*WireguardPeer) Equal ¶
func (peer *WireguardPeer) Equal(other *WireguardPeer) bool
Equal checks two WireguardPeer structs for equality.
type WireguardSpec ¶
type WireguardSpec struct { PrivateKey string `yaml:"privateKey"` ListenPort int `yaml:"listenPort"` FirewallMark int `yaml:"firewallMark"` Peers []WireguardPeer `yaml:"peers"` }
WireguardSpec describes Wireguard settings if Kind == "wireguard".
func (*WireguardSpec) Decode ¶
func (spec *WireguardSpec) Decode(dev *wgtypes.Device)
Decode spec from the device state.
func (*WireguardSpec) Encode ¶
func (spec *WireguardSpec) Encode(existing *WireguardSpec) (*wgtypes.Config, error)
Encode converts WireguardSpec to wgctrl.Config "patch" to adjust the config to match the spec.
Both specs should be sorted.
Encode produces a "diff" as *wgtypes.Config which when applied transitions `existing` configuration into configuration `spec`.
func (*WireguardSpec) Equal ¶
func (spec *WireguardSpec) Equal(other *WireguardSpec) bool
Equal checks two WireguardSpecs for equality.
Both specs should be sorted before calling this method.
func (*WireguardSpec) IsZero ¶
func (spec *WireguardSpec) IsZero() bool
IsZero checks if the WireguardSpec is zero value.
func (*WireguardSpec) Sort ¶
func (spec *WireguardSpec) Sort()
Sort the spec so that comparison is possible.
Source Files ¶
- address_spec.go
- address_status.go
- condition.go
- configlayer.go
- configlayer_string.go
- hostname_spec.go
- hostname_status.go
- link.go
- link_refresh.go
- link_spec.go
- link_status.go
- network.go
- node_address.go
- operator.go
- operator_spec.go
- operator_string.go
- resolver_spec.go
- resolver_status.go
- route_spec.go
- route_status.go
- status.go
- timeserver_spec.go
- timeserver_status.go