You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
3 years ago
|
import k8s
|
||
|
import harbor
|
||
|
import os
|
||
|
import argparse
|
||
|
|
||
|
argparser = argparse.ArgumentParser()
|
||
|
argparser.description = '输入一个参数,--is_first '
|
||
|
argparser.add_argument('-f', '--is_first', dest='is_first', default=False, help='是否是第一次执行')
|
||
|
|
||
|
ns_list = ['anxinyun']
|
||
|
|
||
|
|
||
|
def first_get_all():
|
||
|
for ns in ns_list:
|
||
|
image_list = k8s.list_deployment(ns)
|
||
|
out_file(image_list)
|
||
|
|
||
|
|
||
|
def out_file(image_list):
|
||
|
image_url_list = list(
|
||
|
map(lambda i: "repository.anxinyun.cn/{}/{}:{}".format(i['project'], i['name'], i['tag']), image_list))
|
||
|
if os.path.exists('images.txt'):
|
||
|
os.remove("images.txt")
|
||
|
with open("images.txt", "a") as file:
|
||
|
file.writelines(s + '\n' for s in image_url_list)
|
||
|
|
||
|
|
||
|
def get_latest_images():
|
||
|
pre_image_list = []
|
||
|
for ns in ns_list:
|
||
|
image_list = k8s.list_deployment(ns)
|
||
|
for image in image_list:
|
||
|
tag = harbor.get_image_latest_tag(image['project'], image['name'])
|
||
|
if tag != image['tag']:
|
||
|
pre_image_list.append(image)
|
||
|
out_file(pre_image_list)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
args = argparser.parse_args()
|
||
|
if args.is_first:
|
||
|
first_get_all()
|
||
|
else:
|
||
|
get_latest_images()
|