import boto3 import csv outfile="ebs.csv" csvFile = open(outfile, 'w+', newline='') fieldnames = ['id', 'name', 'region', 'pvName', "pvcName", 'namespace'] writer = csv.DictWriter(csvFile, fieldnames=fieldnames) writer.writeheader() ec2_client = boto3.client('ec2') regions = ec2_client.describe_regions().get('Regions',[] ) # Iterate over regions for region in regions: print("Looking at region %s " % region['RegionName']) reg=region['RegionName'] ec2 = boto3.client('ec2',region_name=reg) volumes = ec2.describe_volumes( Filters=[{'Name': 'status', 'Values': ['available']}]) for volume in volumes['Volumes']: tags = dict(map(lambda x: (x['Key'], x['Value']), volume.get('Tags',[])) ) pvName = tags.get('kubernetes.io/created-for/pv/name', '') pvcName = tags.get('kubernetes.io/created-for/pvc/name', '') name = tags.get('Name', '') namespace = tags.get('kubernetes.io/created-for/pvc/namespace', '') print("Looking at volume %s %s %s %s %s " % (volume['VolumeId'], name, pvName, pvcName, namespace)) writer.writerow({ "id": volume['VolumeId'], "name": name, "region": reg, 'pvName': pvName, 'pvcName': pvcName, 'namespace': namespace, }) csvFile.close()