def get_cluster_version()

in eksupdate/src/preflight_module.py [0:0]


def get_cluster_version(preflight,log_details,errors,cluster_name,region,pass_vpc,update_version,report,customer_report,email,force_upgrade): 
    loading_config(cluster_name,region)
    print('\n')
    log_pusher(log_details,cluster_name,region,'Fetching cluster details .....')
    print('Fetching cluster details .....')
    eks = boto3.client('eks',region_name = region)
    try : 
        cluster_details = eks.describe_cluster(
        name=cluster_name
        )
        report['cluster'] = {'version':cluster_details['cluster']['version'],'region':cluster_details['cluster']['arn'].split(':')[3]}
        log_pusher(log_details,cluster_name,region,'Cluster control plane version ' + report['cluster']['version'])
        print('Cluster control plane version ' + report['cluster']['version'])
        customer_report['cluster version'] = 'Cluster control plane version ' + report['cluster']['version']
        if update_version : 
            if cluster_details['cluster']['version'] == update_version :
                log_pusher(log_details,cluster_name,region,'Cluster already upgraded to version' + cluster_details['cluster']['version'])
                print('Cluster already upgraded to version ' + cluster_details['cluster']['version'])
                customer_report['cluster upgradation'] = 'Cluster already upgraded to version ' + cluster_details['cluster']['version']
            elif (round(float(update_version) - float(cluster_details['cluster']['version']),2)) == 0.01 and float(update_version) < 1.22:
                log_pusher(log_details,cluster_name,region,'Cluster with verison ' + cluster_details['cluster']['version'] + " can be updated to target version " + update_version)
                print('Cluster with verison ' + cluster_details['cluster']['version'] + " can be updated to target version " + update_version)
                customer_report['cluster upgradation'] = 'Cluster with verison ' + cluster_details['cluster']['version'] + " can be updated to target version " + update_version
            else : 
                customer_report['cluster upgradation'] = 'Cluster with verison ' + cluster_details['cluster']['version'] + " cannot be updated to target version " + update_version
                log_pusher(log_details,cluster_name,region,'Cluster with verison ' + cluster_details['cluster']['version'] + " cannot be updated to target version " + update_version)
                print('Cluster with verison ' + cluster_details['cluster']['version'] + " cannot be updated to target version " + update_version)
                report['preflight_status'] = False
                errors.append('Cluster with verison ' + cluster_details['cluster']['version'] + " cannot be updated to target version " + update_version)
                return
        cmk_key_check(log_details,errors,cluster_name,region,cluster_details,report,customer_report)
        security_group_check(log_details,errors,cluster_name,region,cluster_details,report,customer_report)
        pod_security_policies(log_details,errors,cluster_name,region,report,customer_report)
        node_group_details  = nodegroup_customami(log_details,errors,cluster_name,region,report,customer_report,update_version)
        report['nodegroup_details'] = node_group_details
        customer_report['nodegroup_details'] = node_group_details
        subnet_details(log_details,errors,cluster_name,region,report,customer_report)
        cluster_roles(preflight,log_details,errors,cluster_name,region,report,customer_report)
        addon_version(log_details,errors,cluster_name,region,cluster_details,report,customer_report,pass_vpc)
        pod_disruption_budget(log_details,errors,cluster_name,region,report,customer_report,force_upgrade)
        horizontal_auto_scaler(log_details,errors,cluster_name,region,report,customer_report)
        cluster_auto_scaler(log_details,errors,cluster_name,region,report,customer_report)
        if report['cluster']['version'] != "1.21" and  update_version:
            depricated_api_check(log_details,errors,cluster_name,region,report,customer_report,update_version)
        if(email) : 
            print('\n')
            log_pusher(log_details,cluster_name,region,'Delivering report via Email...')
            print('Delivering report via Email...')
            send_email(preflight,log_details,errors,cluster_name,region,report,customer_report,email)
    except Exception as e : 
        errors.append('Some error occured during preflight check process {err}'.format(err = e))
        customer_report['cluster version'] = 'Some error occured during preflight check process'
        log_pusher(log_details,cluster_name,region,'Some error occured during preflight check process {err}'.format(err=e))
        print('Some error occured during preflight check process {err}'.format(err=e))
        report['preflight_status'] = False