Documentation ¶
Overview ¶
Package node provides functionality related to the local and remote node addresses
Index ¶
- func AutoComplete() error
- func GetExternalIPv4() net.IP
- func GetHostMasqueradeIPv4() net.IP
- func GetIPsecKeyIdentity() uint8
- func GetIPv4AllocRange() *cidr.CIDR
- func GetIPv4ClusterRange() *net.IPNet
- func GetIPv4Loopback() net.IP
- func GetIPv6() net.IP
- func GetIPv6AllocRange() *cidr.CIDR
- func GetIPv6NodeRange() *cidr.CIDR
- func GetIPv6Router() net.IP
- func GetInternalIPv4() net.IP
- func GetKeyNodeName(cluster, node string) string
- func GetName() string
- func GetNodeAddressing() *models.NodeAddressing
- func InitDefaultPrefix(device string)
- func IsHostIPv4(ip net.IP) bool
- func IsHostIPv6(ip net.IP) bool
- func SetExternalIPv4(ip net.IP)
- func SetIPsecKeyIdentity(id uint8)
- func SetIPv4AllocRange(net *cidr.CIDR)
- func SetIPv4ClusterCidrMaskSize(size int)
- func SetIPv4Loopback(ip net.IP)
- func SetIPv6(ip net.IP)
- func SetIPv6NodeRange(net *net.IPNet) error
- func SetIPv6Router(ip net.IP)
- func SetInternalIPv4(ip net.IP)
- func SetInternalIPv4From(ifaceName string) error
- func SetName(name string)
- func Uninitialize()
- func ValidatePostInit() error
- type Address
- type Identity
- type Node
- func (in *Node) DeepCopy() *Node
- func (in *Node) DeepCopyInto(out *Node)
- func (n *Node) DeepKeyCopy() store.LocalKey
- func (n *Node) Fullname() string
- func (n *Node) GetCiliumInternalIP(ipv6 bool) net.IP
- func (n *Node) GetKeyName() string
- func (n *Node) GetModel() *models.NodeElement
- func (n *Node) GetNodeIP(ipv6 bool) net.IP
- func (n *Node) Identity() Identity
- func (n *Node) IsLocal() bool
- func (n *Node) Marshal() ([]byte, error)
- func (n *Node) PublicAttrEquals(o *Node) bool
- func (n *Node) Unmarshal(data []byte) error
- type Source
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AutoComplete ¶
func AutoComplete() error
AutoComplete completes the parts of addressing that can be auto derived
func GetExternalIPv4 ¶
GetExternalIPv4 returns the external IPv4 node address
func GetHostMasqueradeIPv4 ¶
GetHostMasqueradeIPv4 returns the IPv4 address to be used for masquerading any traffic that is being forwarded from the host into the Cilium cluster.
func GetIPsecKeyIdentity ¶
func GetIPsecKeyIdentity() uint8
GetIPsecKeyIdentity returns the IPsec key identity of the node
func GetIPv4AllocRange ¶
GetIPv4AllocRange returns the IPv4 allocation prefix of this node
func GetIPv4ClusterRange ¶
GetIPv4ClusterRange returns the IPv4 prefix of the cluster
func GetIPv4Loopback ¶
GetIPv4Loopback returns the loopback IPv4 address of this node.
func GetIPv6AllocRange ¶
GetIPv6AllocRange returns the IPv6 allocation prefix of this node
func GetIPv6NodeRange ¶
GetIPv6NodeRange returns the IPv6 allocation prefix of this node
func GetInternalIPv4 ¶
GetInternalIPv4 returns the internal IPv4 node address
func GetKeyNodeName ¶
GetKeyNodeName constructs the API name for the given cluster and node name.
func GetName ¶
func GetName() string
GetName returns the name of the local node. The value returned was either previously set with SetName(), retrieved via `os.Hostname()`, or as a last resort is hardcoded to "localhost".
func GetNodeAddressing ¶
func GetNodeAddressing() *models.NodeAddressing
GetNodeAddressing returns the NodeAddressing model for the local IPs.
func InitDefaultPrefix ¶
func InitDefaultPrefix(device string)
InitDefaultPrefix initializes the node address and allocation prefixes with default values derived from the system. device can be set to the primary network device of the system in which case the first address with global scope will be regarded as the system's node address.
func IsHostIPv4 ¶
IsHostIPv4 returns true if the IP specified is a host IP
func IsHostIPv6 ¶
IsHostIPv6 returns true if the IP specified is a host IP
func SetExternalIPv4 ¶
SetExternalIPv4 sets the external IPv4 node address. It must be reachable on the network.
func SetIPsecKeyIdentity ¶
func SetIPsecKeyIdentity(id uint8)
SetIPsecKeyIdentity sets the IPsec key identity an opaque value used to identity encryption keys used on the node.
func SetIPv4AllocRange ¶
SetIPv4AllocRange sets the IPv4 address pool to use when allocating addresses for local endpoints
func SetIPv4ClusterCidrMaskSize ¶
func SetIPv4ClusterCidrMaskSize(size int)
SetIPv4ClusterCidrMaskSize sets the size of the mask of the IPv4 cluster prefix
func SetIPv4Loopback ¶
SetIPv4Loopback sets the loopback IPv4 address of this node.
func SetIPv6NodeRange ¶
SetIPv6NodeRange sets the IPv6 address pool to be used on this node
func SetIPv6Router ¶
SetIPv6Router returns the IPv6 address of the node
func SetInternalIPv4 ¶
SetInternalIPv4 sets the internal IPv4 node address, it is allocated from the node prefix
func SetInternalIPv4From ¶
SetInternalIPv4From sets the internal IPv4 with the first global address found in that interface.
func SetName ¶
func SetName(name string)
SetName sets the name of the local node. This will overwrite the value that is automatically retrieved with `os.Hostname()`.
Note: This function is currently designed to only be called during the bootstrapping procedure of the agent where no parallelism exists. If you want to use this function in later stages, a mutex must be added first.
func Uninitialize ¶
func Uninitialize()
Uninitialize resets this package to the default state, for use in testsuite code.
func ValidatePostInit ¶
func ValidatePostInit() error
ValidatePostInit validates the entire addressing setup and completes it as required
Types ¶
type Address ¶
type Address struct { Type addressing.AddressType IP net.IP }
Address is a node address which contains an IP and the address type.
+k8s:deepcopy-gen=true
func (*Address) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Address.
func (*Address) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Node ¶
type Node struct { // Name is the name of the node. This is typically the hostname of the node. Name string // Cluster is the name of the cluster the node is associated with Cluster string IPAddresses []Address // IPv4AllocCIDR if set, is the IPv4 address pool out of which the node // allocates IPs for local endpoints from IPv4AllocCIDR *cidr.CIDR // IPv6AllocCIDR if set, is the IPv6 address pool out of which the node // allocates IPs for local endpoints from IPv6AllocCIDR *cidr.CIDR // IPv4HealthIP if not nil, this is the IPv4 address of the // cilium-health endpoint located on the node. IPv4HealthIP net.IP // IPv6HealthIP if not nil, this is the IPv6 address of the // cilium-health endpoint located on the node. IPv6HealthIP net.IP // ClusterID is the unique identifier of the cluster ClusterID int // Source is the source where the node configuration was generated / created. Source Source // Key index used for transparent encryption or 0 for no encryption EncryptionKey uint8 }
Node contains the nodes name, the list of addresses to this address
+k8s:deepcopy-gen=true
func (*Node) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.
func (*Node) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Node) DeepKeyCopy ¶
DeepKeyCopy creates a deep copy of the LocalKey
func (*Node) Fullname ¶
Fullname returns the node's full name including the cluster name if a cluster name value other than the default value has been specified
func (*Node) GetCiliumInternalIP ¶
GetCiliumInternalIP returns the CiliumInternalIP e.g. the IP associated with cilium_host on the node.
func (*Node) GetKeyName ¶
GetKeyName returns the kvstore key to be used for the node
func (*Node) GetModel ¶
func (n *Node) GetModel() *models.NodeElement
GetModel returns the API model representation of a node.
func (*Node) GetNodeIP ¶
GetNodeIP returns one of the node's IP addresses available with the following priority: - NodeInternalIP - NodeExternalIP - other IP address type
func (*Node) IsLocal ¶
IsLocal returns true if this is the node on which the agent itself is running on
func (*Node) PublicAttrEquals ¶
PublicAttrEquals returns true only if the public attributes of both nodes are the same otherwise returns false.
type Source ¶
type Source string
Source is the description of the source of an identity
const ( // FromKubernetes is the source used for identities derived from k8s // resources (pods) FromKubernetes Source = "k8s" // FromKVStore is the source used for identities derived from the // kvstore FromKVStore Source = "kvstore" // FromAgentLocal is the source used for identities derived during the // agent bootup process. This includes identities for endpoint IPs. FromAgentLocal Source = "agent-local" // FromLocalNode is the source used for the local node FromLocalNode Source = "local-node" )