in eksupdate/src/self_managed.py [0:0]
def Update_nodeGroup(Clustername,Nodegroup,Version,regionName):
client = boto3.client('eks',region_name=regionName)
start=time.time()
''' updating Node group '''
ami_type,lt_id,old_version,latest_ami=lt_id_func(Clustername,Nodegroup,Version,regionName)
if ami_type=="CUSTOM":
update_current_launch_template_ami(lt_id,latest_ami,regionName)
while True:
try:
if status_of_cluster(Clustername,regionName)[0]=="ACTIVE" and Desc_node_groups(Clustername,Nodegroup,regionName)[0]=="ACTIVE" and Desc_node_groups(Clustername,Nodegroup,regionName)[1]!=Version:
if ami_type=="CUSTOM":
client.update_nodegroup_version(
clusterName=Clustername,
nodegroupName=Nodegroup,
launchTemplate={
'version':"$Latest",
'id': lt_id
},
)
else:
client.update_nodegroup_version(
clusterName=Clustername,
nodegroupName=Nodegroup,
version=Version,
)
started = time.time()
print("Updating Node Group ",Nodegroup)
time.sleep(20)
if Desc_node_groups(Clustername,Nodegroup,regionName)[0]=="UPDATING":
end=time.time()
hours, rem = divmod(end-start, 3600)
minutes, seconds = divmod(rem, 60)
print("The {Ng}".format(Ng=Nodegroup)+" NodeGroup is Still Updating ","{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds))
time.sleep(20)
if Desc_node_groups(Clustername,Nodegroup,regionName)[0]=="DEGRADED":
raise Exception("NodeGroup has not started due to unavailability ")
if Desc_node_groups(Clustername,Nodegroup,regionName)[0]=="ACTIVE" and Desc_node_groups(Clustername,Nodegroup,regionName)[1]==Version:
end=time.time()
hours, rem = divmod(end-start, 3600)
minutes, seconds = divmod(rem, 60)
print("The Time Taken For the NodeGroup Upgrade "+str(Nodegroup),"{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds))
logs_pusher(regionName=regionName,cluster_name=Clustername,msg="The Taken For the NodeGroup Upgrade "+"{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds))
return True
except Exception as e:
print(e)
raise Exception(e)