feat: added nodegroups to eks inventory

This commit is contained in:
KenF
2026-01-26 09:43:54 +08:00
parent 14a21ad5cf
commit 9d5ba57154
+8 -3
View File
@@ -12,14 +12,19 @@ from openpyxl import load_workbook
from openpyxl.worksheet.worksheet import Worksheet from openpyxl.worksheet.worksheet import Worksheet
import projectlib.aws import projectlib.aws
def getNodeGroups(region_name: str, cluster_name: str) -> str:
client = boto3.client('eks', region_name=region_name)
response = client.list_nodegroups(clusterName=cluster_name)['nodegroups']
nodegroups = '|'.join(r for r in response)
return nodegroups
def getResources(region_name: str) -> list[list[str | int]]: def getResources(region_name: str) -> list[list[str | int]]:
return_data = [] return_data = []
client = boto3.client('eks', region_name=region_name) client = boto3.client('eks', region_name=region_name)
response = client.list_clusters() response = client.list_clusters()
for c in response['clusters']: for c in response['clusters']:
i = client.describe_cluster(name=c) i = client.describe_cluster(name=c)['cluster']
return_data.append([i['name'], i['version'], region_name]) return_data.append([c, i['version'], getNodeGroups(region_name=region_name, cluster_name=c), region_name])
return return_data return return_data
# Main function # Main function
@@ -28,7 +33,7 @@ def main() -> None:
wb = load_workbook('aws-inventory.xlsx') wb = load_workbook('aws-inventory.xlsx')
ws = wb.create_sheet("EKS") ws = wb.create_sheet("EKS")
ws.append(["name", "version", "Region"]) ws.append(["name", "version", "NodeGroups", "Region"])
with concurrent.futures.ThreadPoolExecutor(max_workers=8) as executor: with concurrent.futures.ThreadPoolExecutor(max_workers=8) as executor:
results = executor.map(getResources, projectlib.aws.getRegions()) results = executor.map(getResources, projectlib.aws.getRegions())
for region_rows in results: for region_rows in results: