日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

使用python腳本自動生成K8S-YAML的方法示例

瀏覽:33日期:2022-07-17 18:23:30

1、生成 servie.yaml

1.1、yaml轉json

service模板yaml

apiVersion: v1kind: Servicemetadata: name: ${jarName} labels: name: ${jarName} version: v1spec: ports: - port: ${port} targetPort: ${port} selector: name: ${jarName}

轉成json的結構

{ 'apiVersion': 'v1', 'kind': 'Service', 'metadata': { 'name': '${jarName}', 'labels': { 'name': '${jarName}', 'version': 'v1' } }, 'spec': { 'ports': [ { 'port': '${port}', 'targetPort': '${port}' } ], 'selector': { 'name': '${jarName}' } }}

1.2、關鍵代碼

# 通過傳入service_name及ports列表def create_service_yaml(service_name, ports): # 將yaml讀取為json,然后修改所有需要修改的${jarName} service_data[’metadata’][’name’] = service_name service_data[’metadata’][’labels’][’name’] = service_name service_data[’spec’][’selector’][’name’] = service_name # .spec.ports 比較特殊,是一個字典列表,由于傳入的ports難以確定數量,難以直接修改 # 新建一個列表,遍歷傳入的ports列表,將傳入的每個port都生成為一個字典,添加入新列表中 new_spec_ports = [] for port in ports: port = int(port) new_port = {’port’: port, ’targetPort’: port} new_spec_ports.append(new_port) # 修改.spec.ports為新列表 service_data[’spec’][’ports’] = new_spec_ports

2、生成 deployment.yaml

2.1、yaml轉json

deployment模板yaml

apiVersion: apps/v1kind: Deploymentmetadata: name: ${jarName} labels: name: ${jarName}spec: selector: matchLabels: name: ${jarName} replicas: 1 template: metadata: labels: name: ${jarName} spec: containers: - name: ${jarName} image: reg.test.local/library/${jarName}:${tag} imagePullSecrets: - name: registry-secret

轉成的json結構

{ 'apiVersion': 'apps/v1', 'kind': 'Deployment', 'metadata': { 'name': '${jarName}', 'labels': { 'name': '${jarName}' } }, 'spec': { 'selector': { 'matchLabels': { 'name': '${jarName}' } }, 'replicas': 1, 'template': { 'metadata': { 'labels': { 'name': '${jarName}' } }, 'spec': { 'containers': [ { 'name': '${jarName}', 'image': 'reg.test.local/library/${jarName}:${tag}' } ], 'imagePullSecrets': [ { 'name': 'registry-secret' } ] } } }}

2.2、關鍵代碼

# 傳入service_name及image tagdef create_deploy_yaml(service_name, tag): # 首先修改所有的${jarName} deploy_data[’metadata’][’name’] = service_name deploy_data[’metadata’][’labels’][’name’] = service_name deploy_data[’spec’][’selector’][’matchLabels’][’name’] = service_name deploy_data[’spec’][’template’][’metadata’][’labels’][’name’] = service_name # 由于.spec.template.spec.containers的特殊性,我們采用直接修改的方式 # 首先拼接image字段 image = 'reg.test.local/library/' + service_name + ':' + tag # 創建new_containers字典列表 new_containers = [{’name’: service_name, ’image’: image}] deploy_data[’spec’][’template’][’spec’][’containers’] = new_containers

3、完整腳本

#!/usr/bin/python# encoding: utf-8'''The Script for Auto Create Deployment Yaml.File:auto_create_deploy_yamlUser:miaocunfaCreate Date: 2020-06-10Create Time: 17:06'''import osfrom ruamel.yaml import YAMLyaml = YAML()def create_service_yaml(service_name, ports): service_mould_file = 'mould/info-service-mould.yaml' isServiceMould = os.path.isfile(service_mould_file) if isServiceMould: # read Service-mould yaml convert json with open(service_mould_file, encoding=’utf-8’) as yaml_obj: service_data = yaml.load(yaml_obj) # Update jarName service_data[’metadata’][’name’] = service_name service_data[’metadata’][’labels’][’name’] = service_name service_data[’spec’][’selector’][’name’] = service_name # Update port new_spec_ports = [] for port in ports: port = int(port) portname = ’port’ + str(port) new_port = {’name’: portname, ’port’: port, ’targetPort’: port} new_spec_ports.append(new_port) service_data[’spec’][’ports’] = new_spec_ports # json To service yaml save_file = tag + ’/’ + service_name + ’_svc.yaml’ with open(save_file, mode=’w’, encoding=’utf-8’) as yaml_obj: yaml.dump(service_data, yaml_obj) print(save_file + ': Success!') else: print('Service Mould File is Not Exist!')def create_deploy_yaml(service_name, tag): deploy_mould_file = 'mould/info-deploy-mould.yaml' isDeployMould = os.path.isfile(deploy_mould_file) if isDeployMould: with open(deploy_mould_file, encoding=’utf-8’) as yaml_obj: deploy_data = yaml.load(yaml_obj) # Update jarName deploy_data[’metadata’][’name’] = service_name deploy_data[’metadata’][’labels’][’name’] = service_name deploy_data[’spec’][’selector’][’matchLabels’][’name’] = service_name deploy_data[’spec’][’template’][’metadata’][’labels’][’name’] = service_name # Update containers image = 'reg.test.local/library/' + service_name + ':' + tag new_containers = [{’name’: service_name, ’image’: image}] deploy_data[’spec’][’template’][’spec’][’containers’] = new_containers # json To service yaml save_file = tag + ’/’ + service_name + ’_deploy.yaml’ with open(save_file, mode=’w’, encoding=’utf-8’) as yaml_obj: yaml.dump(deploy_data, yaml_obj) print(save_file + ': Success!') else: print('Deploy Mould File is Not Exist!')services = { ’info-gateway’:[’9999’], ’info-admin’: [’7777’], ’info-config’:[’8888’], ’info-message-service’: [’8555’, ’9666’], ’info-auth-service’: [’8666’], ’info-scheduler-service’: [’8777’], ’info-uc-service’: [’8800’], ’info-ad-service’: [’8801’], ’info-community-service’: [’8802’], ’info-groupon-service’: [’8803’], ’info-hotel-service’: [’8804’], ’info-nearby-service’: [’8805’], ’info-news-service’: [’8806’], ’info-store-service’: [’8807’], ’info-payment-service’: [’8808’], ’info-agent-service’: [’8809’], ’info-consumer-service’: [’8090’],}prompt = 'n請輸入要生成的tag: 'answer = input(prompt)print('')if os.path.isdir(answer): raise SystemExit(answer + ’: is Already exists!’)else: tag = answer os.makedirs(tag) for service_name, service_ports in services.items(): create_service_yaml(service_name, service_ports) create_deploy_yaml(service_name, tag)

4、執行效果

➜ python3 Auto_Create_K8S_YAML.py請輸入要生成的tag: 0.0.10.0.1/info-gateway_svc.yaml: Success!0.0.1/info-gateway_deploy.yaml: Success!0.0.1/info-admin_svc.yaml: Success!0.0.1/info-admin_deploy.yaml: Success!0.0.1/info-config_svc.yaml: Success!0.0.1/info-config_deploy.yaml: Success!0.0.1/info-message-service_svc.yaml: Success!0.0.1/info-message-service_deploy.yaml: Success!0.0.1/info-auth-service_svc.yaml: Success!0.0.1/info-auth-service_deploy.yaml: Success!0.0.1/info-scheduler-service_svc.yaml: Success!0.0.1/info-scheduler-service_deploy.yaml: Success!0.0.1/info-uc-service_svc.yaml: Success!0.0.1/info-uc-service_deploy.yaml: Success!0.0.1/info-ad-service_svc.yaml: Success!0.0.1/info-ad-service_deploy.yaml: Success!0.0.1/info-community-service_svc.yaml: Success!0.0.1/info-community-service_deploy.yaml: Success!0.0.1/info-groupon-service_svc.yaml: Success!0.0.1/info-groupon-service_deploy.yaml: Success!0.0.1/info-hotel-service_svc.yaml: Success!0.0.1/info-hotel-service_deploy.yaml: Success!0.0.1/info-nearby-service_svc.yaml: Success!0.0.1/info-nearby-service_deploy.yaml: Success!0.0.1/info-news-service_svc.yaml: Success!0.0.1/info-news-service_deploy.yaml: Success!0.0.1/info-store-service_svc.yaml: Success!0.0.1/info-store-service_deploy.yaml: Success!0.0.1/info-payment-service_svc.yaml: Success!0.0.1/info-payment-service_deploy.yaml: Success!0.0.1/info-agent-service_svc.yaml: Success!0.0.1/info-agent-service_deploy.yaml: Success!0.0.1/info-consumer-service_svc.yaml: Success!0.0.1/info-consumer-service_deploy.yaml: Success!➜ lltotal 12drwxr-xr-x. 2 root root 4096 Jun 29 18:24 0.0.1# 生成的 service yaml➜ cat info-message-service_svc.yamlapiVersion: v1kind: Servicemetadata: name: info-message-service labels: name: info-message-service version: v1spec: ports: - name: port8555 port: 8555 targetPort: 8555 - name: port9666 port: 9666 targetPort: 9666 selector: name: info-message-service# 生成的 deployment yaml➜ cat info-message-service_deploy.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: info-message-service labels: name: info-message-servicespec: selector: matchLabels: name: info-message-service replicas: 2 template: metadata: labels: name: info-message-service spec: containers: - name: info-message-service image: reg.test.local/library/info-message-service:0.0.1 imagePullSecrets: - name: registry-secret

到此這篇關于使用python腳本自動生成K8S-YAML的方法示例的文章就介紹到這了,更多相關python自動生成K8S-YAML內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
奇米狠狠一区二区三区| 激情视频网站在线播放色| 免费在线小视频| 精品国产乱码久久久久久1区2匹| 欧美精品国产| 里番精品3d一二三区| 国语对白精品一区二区| 久久精品国产在热久久| 国产suv精品一区二区四区视频| 乱一区二区av| 美女福利一区二区三区| 99视频精品全国免费| 久久久久久久久久久9不雅视频| 在线手机中文字幕| 国精品一区二区| 麻豆亚洲精品| 国产探花一区二区| 精品少妇av| 欧美日韩国产高清电影| 日韩综合一区二区三区| 国产精品jk白丝蜜臀av小说| 最新中文字幕在线播放| 最新亚洲激情| 国产欧美激情| 亚洲一级网站| 国产精品videossex久久发布| 美女网站视频一区| 亚洲一区二区av| 国产劲爆久久| 九九综合九九| 国产精品黄网站| 五月精品视频| 日韩国产欧美| 成人欧美一区二区三区的电影| 98精品视频| 亚洲+小说+欧美+激情+另类| 成人国产精品久久| 中文字幕一区二区三区四区久久| 日韩综合在线| 青草av.久久免费一区| 国产99久久| 国产成人精品免费视| 欧美欧美黄在线二区| 久久香蕉国产| 国产精品亚洲欧美| 无码日韩精品一区二区免费| 国产黄大片在线观看| 国产精品日韩精品在线播放| 亚洲一二三区视频| 在线视频精品| 欧美搞黄网站| 激情综合激情| 国产99久久久国产精品成人免费| 国产精品成久久久久| 国产精品tv| 欧美国产免费| 麻豆高清免费国产一区| 久久99精品久久久久久园产越南| 亚洲人成高清| 久久国产精品毛片| 国产亚洲精品v| 午夜日韩福利| 蜜桃伊人久久| 亚洲ww精品| 国产欧美日韩一区二区三区四区 | 日韩黄色大片| 六月婷婷综合| 欧美日韩精品在线一区| 99久久夜色精品国产亚洲狼 | 欧美日韩精品一区二区三区视频 | 亚洲精品欧美| 日本欧美一区二区在线观看| 五月亚洲婷婷 | 亚洲精品一级二级| 亚洲一级少妇| 欧美午夜不卡| 免播放器亚洲一区| 日本电影久久久| 美女久久久久久| 国产99精品| 天堂精品久久久久| 精品久久久网| 欧美搞黄网站| 日本不卡在线视频| 国产精品手机在线播放| 色乱码一区二区三区网站| 91精品国产成人观看| 在线免费观看亚洲| 精品成人18| 国产一区91| 国内自拍视频一区二区三区| 麻豆久久精品| 久久男人天堂| 日本91福利区| 在线日韩中文| 麻豆中文一区二区| 水野朝阳av一区二区三区| 老司机精品视频网| 激情婷婷综合| 老色鬼精品视频在线观看播放| 在线亚洲观看| 久久久久欧美精品| 麻豆国产欧美一区二区三区| 亚洲欧美日韩在线观看a三区| 麻豆精品视频在线| 天堂精品久久久久| 老牛影视一区二区三区| 国产黄色精品| 亚洲v天堂v手机在线| 99在线观看免费视频精品观看| 久久伊人国产| 日韩av不卡一区二区| 国产毛片久久| 日韩精品专区| 精品五月天堂| 国产欧美日韩一级| 亚洲一区导航| 9国产精品视频| 欧洲毛片在线视频免费观看| 激情视频网站在线播放色| 国产精品久久久久久久久久妞妞 | 色吊丝一区二区| 国产精品久久久久久久久久白浆 | 亚洲精品系列| 视频一区二区三区中文字幕| 91精品久久久久久久久久不卡| 久久精品网址| 久久精品国产久精国产爱| 欧美综合精品| 国产欧美日韩视频在线| 国产亚洲精品美女久久 | 亚洲精品在线观看91| 久久国产小视频| 日韩久久精品| 久久一区二区三区喷水| 日韩精品电影| 99国产精品免费视频观看| 欧美亚洲国产精品久久| 99视频精品| 日本高清久久| 久久精品亚洲| 久久久久久美女精品| 亚洲成人精选| 亚州国产精品| 国产精品一区二区三区av| 精品日本视频| 欧美日韩国产传媒| 日韩精品三级| 亚洲综合电影| 蜜桃久久久久久| 国产精品蜜月aⅴ在线| 福利一区和二区| 亚洲激情国产| 久久av综合| 亚洲成人精选| 国产精品igao视频网网址不卡日韩| 国产在线日韩精品| 在线视频日韩| 久久69成人| 日韩视频免费| 欧美激情视频一区二区三区免费| 欧美日韩色图| 国产激情久久| 视频一区中文字幕国产| 精品久久网站| 日韩成人一级| 中日韩男男gay无套| 美日韩一区二区三区| 亚洲一区二区三区四区五区午夜 | 免费毛片在线不卡| 免费国产自线拍一欧美视频| 精品久久久中文字幕| 99在线观看免费视频精品观看| 美腿丝袜亚洲三区| 日韩av字幕| 黄色亚洲在线| 久久精品观看| 欧美激情国产在线| 91精品国产自产观看在线 | 亚洲一二三区视频| 久久久久国产一区二区| 色婷婷综合网| 国产亚洲一区| 一区二区三区四区在线观看国产日韩| 国产精品探花在线观看| 日本成人在线网站| 国产农村妇女精品一二区| 色爱av综合网| 色老板在线视频一区二区| 精品日韩一区| 国产精品国产三级国产在线观看| 欧美一区精品| 欧美一级二级视频| 欧美亚洲综合视频| 国产日韩欧美在线播放不卡| 日韩一区二区三区精品 | 亚洲www啪成人一区二区| 欧美国产三级| 久久精品午夜| 日韩一区二区三区免费|