Documentation ¶
Index ¶
- Constants
- func GetConfigForDebug() map[string]interface{}
- func ManageENIsOnNonSchedulableNode() bool
- func UseCustomNetworkCfg() bool
- func UseSubnetDiscovery() bool
- type IPAMContext
- func (c *IPAMContext) AddFeatureToCNINode(ctx context.Context, featureName rcv1alpha1.FeatureName, featureValue string) error
- func (c *IPAMContext) AnnotatePod(podName string, podNamespace string, key string, newVal string, ...) error
- func (c *IPAMContext) DeallocCidrs(eniID string, deletableCidrs []datastore.CidrInfo)
- func (c *IPAMContext) GetENIResourcesToAllocate() int
- func (c *IPAMContext) GetIPv4Limit() (int, int, error)
- func (c *IPAMContext) GetPod(podName, namespace string) (*corev1.Pod, error)
- func (c *IPAMContext) RunRPCHandler(version string) error
- func (c *IPAMContext) ServeIntrospection()
- func (c *IPAMContext) StartNodeIPPoolManager()
- type LoggingHandler
- type PodENIData
- type ReconcileCooldownCache
Constants ¶
const ( // aws error codes for insufficient IP address scenario INSUFFICIENT_CIDR_BLOCKS = "InsufficientCidrBlocks" INSUFFICIENT_FREE_IP_SUBNET = "InsufficientFreeAddressesInSubnet" )
Variables ¶
This section is empty.
Functions ¶
func GetConfigForDebug ¶
func GetConfigForDebug() map[string]interface{}
GetConfigForDebug returns the active values of the configuration env vars (for debugging purposes).
func ManageENIsOnNonSchedulableNode ¶ added in v1.12.6
func ManageENIsOnNonSchedulableNode() bool
ManageENIsOnNonSchedulableNode returns whether IPAMd should manage ENIs on the node or not.
func UseCustomNetworkCfg ¶
func UseCustomNetworkCfg() bool
UseCustomNetworkCfg returns whether Pods needs to use pod specific configuration or not.
func UseSubnetDiscovery ¶ added in v1.18.0
func UseSubnetDiscovery() bool
UseSubnetDiscovery returns whether we should use enhanced subnet selection or not when creating ENIs.
Types ¶
type IPAMContext ¶
type IPAMContext struct {
// contains filtered or unexported fields
}
IPAMContext contains node level control information
func New ¶
func New(k8sClient client.Client) (*IPAMContext, error)
New retrieves IP address usage information from Instance MetaData service and Kubelet then initializes IP address pool data store
func (*IPAMContext) AddFeatureToCNINode ¶ added in v1.15.0
func (c *IPAMContext) AddFeatureToCNINode(ctx context.Context, featureName rcv1alpha1.FeatureName, featureValue string) error
func (*IPAMContext) AnnotatePod ¶ added in v1.9.3
func (c *IPAMContext) AnnotatePod(podName string, podNamespace string, key string, newVal string, releasedIP string) error
AnnotatePod annotates the pod with the provided key and value
func (*IPAMContext) DeallocCidrs ¶ added in v1.9.0
func (c *IPAMContext) DeallocCidrs(eniID string, deletableCidrs []datastore.CidrInfo)
DeallocCidrs frees IPs and Prefixes from EC2
func (*IPAMContext) GetENIResourcesToAllocate ¶ added in v1.9.0
func (c *IPAMContext) GetENIResourcesToAllocate() int
func (*IPAMContext) GetIPv4Limit ¶ added in v1.9.0
func (c *IPAMContext) GetIPv4Limit() (int, int, error)
func (*IPAMContext) GetPod ¶ added in v1.6.4
func (c *IPAMContext) GetPod(podName, namespace string) (*corev1.Pod, error)
GetPod returns the pod matching the name and namespace
func (*IPAMContext) RunRPCHandler ¶
func (c *IPAMContext) RunRPCHandler(version string) error
RunRPCHandler handles request from gRPC
func (*IPAMContext) ServeIntrospection ¶
func (c *IPAMContext) ServeIntrospection()
ServeIntrospection sets up ipamd introspection endpoints
func (*IPAMContext) StartNodeIPPoolManager ¶
func (c *IPAMContext) StartNodeIPPoolManager()
StartNodeIPPoolManager monitors the IP pool, add or del them when it is required.
type LoggingHandler ¶
type LoggingHandler struct {
// contains filtered or unexported fields
}
LoggingHandler is a object for handling http request
func (LoggingHandler) ServeHTTP ¶
func (lh LoggingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type PodENIData ¶ added in v1.6.4
type PodENIData struct { ENIID string `json:"eniId"` IfAddress string `json:"ifAddress"` PrivateIP string `json:"privateIp"` IPV6Addr string `json:"ipv6Addr"` VlanID int `json:"vlanID"` SubnetCIDR string `json:"subnetCidr"` SubnetV6CIDR string `json:"subnetV6Cidr"` }
PodENIData is used to parse the list of ENIs in the branch ENI pod annotation
type ReconcileCooldownCache ¶
ReconcileCooldownCache keep track of recently freed CIDRs to avoid reading stale EC2 metadata
func (*ReconcileCooldownCache) Add ¶
func (r *ReconcileCooldownCache) Add(cidr string)
Add sets a timestamp for the CIDR added that says how long they are not to be put back in the data store.
func (*ReconcileCooldownCache) RecentlyFreed ¶
func (r *ReconcileCooldownCache) RecentlyFreed(cidr string) (found, recentlyFreed bool)
RecentlyFreed checks if this CIDR was recently freed.
func (*ReconcileCooldownCache) Remove ¶
func (r *ReconcileCooldownCache) Remove(cidr string)
Remove removes a CIDR from the cooldown cache.