def add_on_upgrade()

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


def add_on_upgrade(region,clust_name,d,v1):
    print('addon upgrade started')
    start_time=time.ctime()
    start=time.time()
    logs_pusher(regionName=region,cluster_name=clust_name,msg="The Addons Upgrade Started At "+str(start_time))

    loading_config(clust_name,region)

    v1 = client.CoreV1Api()
   
    rep = v1.list_namespaced_pod("kube-system")
    
    d['addonsbeforeupdate']={}
    for pod in rep.items:
       print(pod.metadata.name ,"Current Version = ", pod.spec.containers[0].image.split(":")[-1])
       d['addonsbeforeupdate'][pod.metadata.name]=pod.spec.containers[0].image.split(":")[-1]


    args='~/eksctl utils update-kube-proxy --cluster='+clust_name+' --approve'#to update kube-proxy
    output=subprocess.call(args,shell=True)
    args='~/eksctl utils update-coredns --cluster='+clust_name+' --approve'   #to update coredns
    output=subprocess.call(args,shell=True)

    output=botoclient('us-west-2').list_addons( clusterName=clust_name)
    
    if 'vpc-cni' in output['addons']:
        try:
                  response = botoclient('us-west-2').describe_cluster(
                      name=clust_name
                  )
                  if response['ResponseMetadata']['HTTPStatusCode'] == 200:
                      print("Success response recieved for describing cluster "+ clust_name)
                      oidc = (response['cluster']['identity']['oidc']['issuer'])
                      print('OIDC output recieved '+ oidc + ' for Cluster Name ' + clust_name)
                      response = botoclient('us-west-2').describe_addon(clusterName=clust_name,addonName='vpc-cni')
                      # print(response['addon']['addonVersion'])
                      if(response['addon']['addonVersion']!=vpc_version):
                        args='~/eksctl update addon --name vpc-cni  --version '+vpc_version+' --cluster '+clust_name  #to update aws-node
                        output=subprocess.call(args,shell=True)
        except Exception as e:
                  print('Failed to fetch Cluster OIDC value for cluster name ' + clust_name, e)
    else:
        args='~/eksctl utils update-aws-node --cluster='+clust_name+' --approve'
        output=subprocess.call(args,shell=True)
    
    print('addons  update completed')
    end=time.time()
    hours, rem = divmod(end-start, 3600)
    minutes, seconds = divmod(rem, 60)
    print("The time Taken For the Addons Upgrade ","{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds))
     
    
    logs_pusher(regionName=region,cluster_name=clust_name,msg="The time Taken For the addons Upgrade "+"{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds))
       

    return d