CiliumNode represents a node managed by Cilium. It contains a specification to control various node specific configuration aspects and a status section to represent the status of the node.
5 top-level fields, 2 required · last changed in Cilium 1.13.14
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
Spec defines the desired specification/configuration of the node.
Addresses is the list of all node addresses.
IP is an IP of a node
Type is the type of the node address
AlibabaCloud is the AlibabaCloud IPAM specific configuration.
AvailabilityZone is the availability zone to use when allocating ENIs.
CIDRBlock is vpc ipv4 CIDR
InstanceType is the ECS instance type, e.g. "ecs.g6.2xlarge"
SecurityGroupTags is the list of tags to use when evaluating which security groups to use for the ENI.
SecurityGroups is the list of security groups to attach to any ENI that is created and attached to the instance.
VPCID is the VPC ID to use when allocating ENIs.
VSwitchTags is the list of tags to use when evaluating which vSwitch to use for the ENI.
VSwitches is the ID of vSwitch available for ENI
Azure is the Azure IPAM specific configuration.
InterfaceName is the name of the interface the cilium-operator will use to allocate all the IPs on
BootID is a unique node identifier generated on boot
Encryption is the encryption configuration of the node.
Key is the index to the key to use for encryption or 0 if encryption is disabled.
ENI is the AWS ENI specific configuration.
AvailabilityZone is the availability zone to use when allocating ENIs.
DeleteOnTermination defines that the ENI should be deleted when the associated instance is terminated. If the parameter is not set the default behavior is to delete the ENI on instance termination.
DisablePrefixDelegation determines whether ENI prefix delegation should be disabled on this node.
ExcludeInterfaceTags is the list of tags to use when excluding ENIs for Cilium IP allocation. Any interface matching this set of tags will not be managed by Cilium.
FirstInterfaceIndex is the index of the first ENI to use for IP allocation, e.g. if the node has eth0, eth1, eth2 and FirstInterfaceIndex is set to 1, then only eth1 and eth2 will be used for IP allocation, eth0 will be ignored for PodIP allocation.
InstanceID is the AWS InstanceId of the node. The InstanceID is used to retrieve AWS metadata for the node. OBSOLETE: This field is obsolete, please use Spec.InstanceID
InstanceType is the AWS EC2 instance type, e.g. "m5.large"
MaxAboveWatermark is the maximum number of addresses to allocate beyond the addresses needed to reach the PreAllocate watermark. Going above the watermark can help reduce the number of API calls to allocate IPs, e.g. when a new ENI is allocated, as many secondary IPs as possible are allocated. Limiting the amount can help reduce waste of IPs. OBSOLETE: This field is obsolete, please use Spec.IPAM.MaxAboveWatermark
MinAllocate is the minimum number of IPs that must be allocated when the node is first bootstrapped. It defines the minimum base socket of addresses that must be available. After reaching this watermark, the PreAllocate and MaxAboveWatermark logic takes over to continue allocating IPs. OBSOLETE: This field is obsolete, please use Spec.IPAM.MinAllocate
NodeSubnetID is the subnet of the primary ENI the instance was brought up with. It is used as a sensible default subnet to create ENIs in.
PreAllocate defines the number of IP addresses that must be available for allocation in the IPAMspec. It defines the buffer of addresses available immediately without requiring cilium-operator to get involved. OBSOLETE: This field is obsolete, please use Spec.IPAM.PreAllocate
SecurityGroupTags is the list of tags to use when evaliating what AWS security groups to use for the ENI.
SecurityGroups is the list of security groups to attach to any ENI that is created and attached to the instance.
SubnetIDs is the list of subnet ids to use when evaluating what AWS subnets to use for ENI and IP allocation.
SubnetTags is the list of tags to use when evaluating what AWS subnets to use for ENI and IP allocation.
UsePrimaryAddress determines whether an ENI's primary address should be available for allocations on the node
VpcID is the VPC ID to use when allocating ENIs.
HealthAddressing is the addressing information for health connectivity checking.
IPv4 is the IPv4 address of the IPv4 health endpoint.
IPv6 is the IPv6 address of the IPv4 health endpoint.
IngressAddressing is the addressing information for Ingress listener.
InstanceID is the identifier of the node. This is different from the node name which is typically the FQDN of the node. The InstanceID typically refers to the identifier used by the cloud provider or some other means of identification.
IPAM is the address management specification. This section can be populated by a user or it can be automatically populated by an IPAM operator.
MaxAboveWatermark is the maximum number of addresses to allocate beyond the addresses needed to reach the PreAllocate watermark. Going above the watermark can help reduce the number of API calls to allocate IPs, e.g. when a new ENI is allocated, as many secondary IPs as possible are allocated. Limiting the amount can help reduce waste of IPs.
MaxAllocate is the maximum number of IPs that can be allocated to the node. When the current amount of allocated IPs will approach this value, the considered value for PreAllocate will decrease down to 0 in order to not attempt to allocate more addresses than defined.
MinAllocate is the minimum number of IPs that must be allocated when the node is first bootstrapped. It defines the minimum base socket of addresses that must be available. After reaching this watermark, the PreAllocate and MaxAboveWatermark logic takes over to continue allocating IPs.
PodCIDRAllocationThreshold defines the minimum number of free IPs which must be available to this node via its pod CIDR pool. If the total number of IP addresses in the pod CIDR pool is less than this value, the pod CIDRs currently in-use by this node will be marked as depleted and cilium-operator will allocate a new pod CIDR to this node. This value effectively defines the buffer of IP addresses available immediately without requiring cilium-operator to get involved.
PodCIDRReleaseThreshold defines the maximum number of free IPs which may be available to this node via its pod CIDR pool. While the total number of free IP addresses in the pod CIDR pool is larger than this value, cilium-agent will attempt to release currently unused pod CIDRs.
PodCIDRs is the list of CIDRs available to the node for allocation. When an IP is used, the IP will be added to Status.IPAM.Used
Pool is the list of IPs available to the node for allocation. When an IP is used, the IP will remain on this list but will be added to Status.IPAM.Used
Owner is the owner of the IP. This field is set if the IP has been allocated. It will be set to the pod name or another identifier representing the usage of the IP The owner field is left blank for an entry in Spec.IPAM.Pool and filled out as the IP is used and also added to Status.IPAM.Used.
Resource is set for both available and allocated IPs, it represents what resource the IP is associated with, e.g. in combination with AWS ENI, this will refer to the ID of the ENI
PreAllocate defines the number of IP addresses that must be available for allocation in the IPAMspec. It defines the buffer of addresses available immediately without requiring cilium-operator to get involved.
NodeIdentity is the Cilium numeric identity allocated for the node, if any.
Status defines the realized specification/configuration and status of the node.
AlibabaCloud is the AlibabaCloud specific status of the node.
ENIs is the list of ENIs on the node
InstanceID is the InstanceID using this ENI
MACAddress is the mac address of the ENI
NetworkInterfaceID is the ENI id
PrimaryIPAddress is the primary IP on ENI
PrivateIPSets is the list of all IPs on the ENI, including PrimaryIPAddress
SecurityGroupIDs is the security group ids used by this ENI
Tags is the tags on this ENI
Type is the ENI type Primary or Secondary
VPC is the vpc to which the ENI belongs
CIDRBlock is the VPC IPv4 CIDR
IPv6CIDRBlock is the VPC IPv6 CIDR
VPCID is the vpc to which the ENI belongs
VSwitch is the vSwitch the ENI is using
CIDRBlock is the vSwitch IPv4 CIDR
IPv6CIDRBlock is the vSwitch IPv6 CIDR
VSwitchID is the vSwitch to which the ENI belongs
ZoneID is the zone to which the ENI belongs
Azure is the Azure specific status of the node.
Interfaces is the list of interfaces on the node
GatewayIP is the interface's subnet's default route OBSOLETE: This field is obsolete, please use Gateway field instead.
Addresses is the list of all IPs associated with the interface, including all secondary addresses
IP is the ip address of the address
State is the provisioning state of the address
Subnet is the subnet the address belongs to
CIDR is the range that the interface belongs to.
Gateway is the interface's subnet's default route
ID is the identifier
MAC is the mac address
Name is the name of the interface
SecurityGroup is the security group associated with the interface
State is the provisioning state
ENI is the AWS ENI specific status of the node.
ENIs is the list of ENIs on the node
Addresses is the list of all secondary IPs associated with the ENI
AvailabilityZone is the availability zone of the ENI
Description is the description field of the ENI
ID is the ENI ID
IP is the primary IP of the ENI
MAC is the mac address of the ENI
Number is the interface index, it used in combination with FirstInterfaceIndex
Prefixes is the list of all /28 prefixes associated with the ENI
SecurityGroups are the security groups associated with the ENI
Subnet is the subnet the ENI is associated with
CIDR is the CIDR range associated with the subnet
ID is the ID of the subnet
Tags is the set of tags of the ENI. Used to detect ENIs which should not be managed by Cilium
VPC is the VPC information to which the ENI is attached to
CIDRs is the list of CIDR ranges associated with the VPC
/ ID is the ID of a VPC
PrimaryCIDR is the primary CIDR of the VPC
IPAM is the IPAM status of the node.
Operator is the Operator status of the node
Error is the error message set by cilium-operator.
PodCIDRs lists the status of each pod CIDR allocated to this node.
Status describes the status of a pod CIDR
ReleaseIPs tracks the state for every IP considered for release. value can be one of the following string : * marked-for-release : Set by operator as possible candidate for IP * ready-for-release : Acknowledged as safe to release by agent * do-not-release : IP already in use / not owned by the node. Set by agent * released : IP successfully released. Set by operator
Used lists all IPs out of Spec.IPAM.Pool which have been allocated and are in use.
Owner is the owner of the IP. This field is set if the IP has been allocated. It will be set to the pod name or another identifier representing the usage of the IP The owner field is left blank for an entry in Spec.IPAM.Pool and filled out as the IP is used and also added to Status.IPAM.Used.
Resource is set for both available and allocated IPs, it represents what resource the IP is associated with, e.g. in combination with AWS ENI, this will refer to the ID of the ENI
Source: ciliumnodes.yaml
Changes to CiliumNode (cilium.io/v2) in each Cilium version, compared to the version before it.
1 property has been added
Released · View CiliumNode in 1.13.14
1 property has been added
Released · View CiliumNode in 1.13.0
9 properties have been added
Released · View CiliumNode in 1.12.0
1 property has been added
Released · View CiliumNode in 1.11.1
1 property has been added
Released · View CiliumNode in 1.11.0
1 property has been added
Released · View CiliumNode in 1.10.2
3 properties have been added
1 property has been removed
1 property has changed the description
Released · View CiliumNode in 1.10.0
1 property has been added
Released · View CiliumNode in 1.9.9
1 property has changed the description
Released · View CiliumNode in 1.9.7
1 property has been added
Released · View CiliumNode in 1.9.6
CiliumNode was first seen on this version of Cilium
Released · View CiliumNode in 1.9.0
No examples of CiliumNode yet. Contribute one on GitHub.