@@ -1142,15 +1142,38 @@ Resources:
11421142 )
11431143 .search("clusters")
11441144 ):
1145+ # Get cluster details
11451146 cluster = client.describe_cluster(name=cluster_name)
1146- yield {
1147+ cluster_data = {
11471148 "Arn": cluster["cluster"]["arn"],
11481149 "Name": cluster["cluster"]["name"],
11491150 "CreatedAt": datetime.strftime(
11501151 cluster["cluster"]["createdAt"].astimezone(tz=timezone.utc), "%Y-%m-%dT%H:%M:%SZ"
11511152 ),
11521153 "Version": cluster["cluster"]["version"],
11531154 }
1155+ # Get node groups for the cluster
1156+ try:
1157+ node_groups = client.list_nodegroups(clusterName=cluster_name).get("nodegroups", [])
1158+ cluster_data["NodeGroups"] = []
1159+ for node_group in node_groups:
1160+ node_group_details = client.describe_nodegroup(clusterName=cluster_name, nodegroupName=node_group)
1161+ cluster_data["NodeGroups"].append({
1162+ "NodeGroupName": node_group_details["nodegroup"].get("nodegroupName"),
1163+ "NodeRole": node_group_details["nodegroup"].get("nodeRole"),
1164+ "InstanceTypes": node_group_details["nodegroup"].get("instanceTypes",[]),
1165+ "ScalingConfig": node_group_details["nodegroup"].get("scalingConfig",{}),
1166+ "Subnets": node_group_details["nodegroup"].get("subnets",[]),
1167+ "Status": node_group_details["nodegroup"].get("status","Unknown"),
1168+ "AMIType": node_group_details["nodegroup"].get("amiType","Unknown"),
1169+ "Version": node_group_details["nodegroup"].get("version","Unknown"),
1170+ "CreatedAt": datetime.strftime(
1171+ node_group_details["nodegroup"]["createdAt"].astimezone(tz=timezone.utc), "%Y-%m-%dT%H:%M:%SZ"
1172+ ),
1173+ })
1174+ except Exception as ng_exc: # Catch node group-specific issues
1175+ logger.error(f"Error fetching node groups for {cluster_name} in {region}: {ng_exc}")
1176+ yield cluster_data
11541177 except Exception as exc: #pylint: disable=W0718
11551178 logger.error(f"Cannot get info from {account_id}/{region}: {type(exc)}-{exc}")
11561179 return []
0 commit comments