import { IComGithubCiliumCiliumPkgIpamTypesAllocationMap } from "./AllocationMap.js"; import { IComGithubCiliumCiliumPkgIpamTypesIPAMPoolSpec } from "./IPAMPoolSpec.js"; import { ModelData, Model } from "@kubernetes-models/base"; /** * IPAMSpec is the IPAM specification of the node * * This structure is embedded into v2.CiliumNode */ export interface IIPAMSpec { /** * IPv6Pool is the list of IPv6 addresses available to the node for allocation. * When an IPv6 address is used, it will remain on this list but will be added to * Status.IPAM.IPv6Used */ "ipv6-pool"?: IComGithubCiliumCiliumPkgIpamTypesAllocationMap; /** * 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. */ "max-above-watermark"?: number; /** * 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. */ "max-allocate"?: number; /** * 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. */ "min-allocate"?: number; /** * 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 */ "podCIDRs"?: Array; /** * Pool is the list of IPv4 addresses available to the node for allocation. * When an IPv4 address is used, it will remain on this list but will be added to * Status.IPAM.Used */ "pool"?: IComGithubCiliumCiliumPkgIpamTypesAllocationMap; /** * Pools contains the list of assigned IPAM pools for this node. */ "pools"?: IComGithubCiliumCiliumPkgIpamTypesIPAMPoolSpec; /** * 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. */ "pre-allocate"?: number; /** * StaticIPTags are used to determine the pool of IPs from which to * attribute a static IP to the node. For example in AWS this is used to * filter Elastic IP Addresses. */ "static-ip-tags"?: { [key: string]: string; }; } /** * IPAMSpec is the IPAM specification of the node * * This structure is embedded into v2.CiliumNode */ export declare class IPAMSpec extends Model implements IIPAMSpec { "ipv6-pool"?: IComGithubCiliumCiliumPkgIpamTypesAllocationMap; "max-above-watermark"?: number; "max-allocate"?: number; "min-allocate"?: number; "podCIDRs"?: Array; "pool"?: IComGithubCiliumCiliumPkgIpamTypesAllocationMap; "pools"?: IComGithubCiliumCiliumPkgIpamTypesIPAMPoolSpec; "pre-allocate"?: number; "static-ip-tags"?: { [key: string]: string; }; constructor(data?: ModelData); } export type { IIPAMSpec as IComGithubCiliumCiliumPkgIpamTypesIPAMSpec, IPAMSpec as ComGithubCiliumCiliumPkgIpamTypesIPAMSpec };