From 124e0c2e80a6d2ff5ca06f61ed976101e6a4c896 Mon Sep 17 00:00:00 2001 From: Rafael Mendez Date: Thu, 27 Feb 2025 19:41:39 +0000 Subject: [PATCH] Adding logs On How We Calculate CSINode.allocatables in NodeGetInfo --- pkg/cloud/metadata/ec2.go | 1 - pkg/driver/node.go | 14 +++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/cloud/metadata/ec2.go b/pkg/cloud/metadata/ec2.go index b0c39a6b48..0a7346d5db 100644 --- a/pkg/cloud/metadata/ec2.go +++ b/pkg/cloud/metadata/ec2.go @@ -90,7 +90,6 @@ func EC2MetadataInstanceInfo(svc EC2Metadata, regionFromSession string) (*Metada return nil, fmt.Errorf("could not read ENIs metadata content: %w", err) } attachedENIs := util.CountMACAddresses(string(enis)) - klog.V(4).InfoS("Number of attached ENIs", "attachedENIs", attachedENIs) blockDevMappings := 0 if !util.IsSBE(doc.Region) { diff --git a/pkg/driver/node.go b/pkg/driver/node.go index ef7ae326d9..bb411e3f5c 100644 --- a/pkg/driver/node.go +++ b/pkg/driver/node.go @@ -593,10 +593,11 @@ func (d *NodeService) NodeGetInfo(ctx context.Context, req *csi.NodeGetInfoReque } topology := &csi.Topology{Segments: segments} - + maxVolumesPerNode := d.getVolumesLimit() + klog.V(4).InfoS("NodeGetInfo:", "Node Allocatables", maxVolumesPerNode) return &csi.NodeGetInfoResponse{ NodeId: d.metadata.GetInstanceID(), - MaxVolumesPerNode: d.getVolumesLimit(), + MaxVolumesPerNode: maxVolumesPerNode, AccessibleTopology: topology, }, nil } @@ -765,6 +766,7 @@ func (d *NodeService) nodePublishVolumeForFileSystem(req *csi.NodePublishVolumeR // getVolumesLimit returns the limit of volumes that the node supports. func (d *NodeService) getVolumesLimit() int64 { if d.options.VolumeAttachLimit >= 0 { + klog.V(4).InfoS("getVolumesLimit: VolumeAttachLimit manually set to", d.options.VolumeAttachLimit, "overriding the default value") return d.options.VolumeAttachLimit } if util.IsSBE(d.metadata.GetRegion()) { @@ -772,14 +774,19 @@ func (d *NodeService) getVolumesLimit() int64 { } instanceType := d.metadata.GetInstanceType() + klog.V(4).InfoS("getVolumesLimit:", "instanceType", instanceType) isNitro := cloud.IsNitroInstanceType(instanceType) availableAttachments := cloud.GetMaxAttachments(isNitro) + klog.V(4).InfoS("getVolumesLimit:", "maxAttachments", availableAttachments) reservedVolumeAttachments := d.options.ReservedVolumeAttachments if reservedVolumeAttachments == -1 { reservedVolumeAttachments = d.metadata.GetNumBlockDeviceMappings() + 1 // +1 for the root device + klog.V(4).InfoS("getVolumesLimit:", "numBlockDevices", (reservedVolumeAttachments - 1)) + } + klog.V(4).InfoS("getVolumesLimit:", "reservedVolumeAttachments", reservedVolumeAttachments) dedicatedLimit := cloud.GetDedicatedLimitForInstanceType(instanceType) maxEBSAttachments, hasMaxVolumeLimit := cloud.GetEBSLimitForInstanceType(instanceType) @@ -792,7 +799,9 @@ func (d *NodeService) getVolumesLimit() int64 { availableAttachments = dedicatedLimit } else if isNitro { enis := d.metadata.GetNumAttachedENIs() + klog.V(4).InfoS("getVolumesLimit:", "numeENIs", enis) reservedSlots := cloud.GetReservedSlotsForInstanceType(instanceType) + klog.V(4).InfoS("getVolumesLimit:", "reservedSlots", reservedSlots) if hasMaxVolumeLimit { availableAttachments = availableAttachments - (enis - 1) - reservedSlots } else { @@ -803,7 +812,6 @@ func (d *NodeService) getVolumesLimit() int64 { if availableAttachments <= 0 { availableAttachments = 1 } - return int64(availableAttachments) }