腳本說(shuō)明:
使用Kebernetes最多的使用的是yaml語(yǔ)言,這種語(yǔ)言剛使用比較難懂诫睬,最好是先轉(zhuǎn)換為json,下面的腳本可以對(duì)json和yaml語(yǔ)言互相轉(zhuǎn)換字逗。
#!/usr/bin/env python
#coding:utf8
#
import sys,json,os
reload(sys)
sys.setdefaultencoding('utf8')
import json,yaml
import argparse
parser = argparse.ArgumentParser(description='json和yaml互相轉(zhuǎn)換工具!')
parser.add_argument('filename')
args = parser.parse_args()
txt=""
if os.path.isfile(args.filename):
with open(args.filename,'r') as f:
for a in f.readlines():
txt=txt+a
else:
print "%s is not file" % (args.filename)
parser.print_help()
sys.exit()
print "##########################################################################################"
print "Yaml format: "
print yaml.dump(yaml.load(txt),default_flow_style=False)
print "##########################################################################################"
print "Json format: "
print json.dumps(yaml.load(txt),indent=2,sort_keys=True)
安裝yaml模塊
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
python PyYAML-3.13
將json轉(zhuǎn)換為yaml
[root@master opt]# python yaml2json.py dashboard-adminuser.yaml
##########################################################################################
Yaml format:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
##########################################################################################
Json format:
{
"apiVersion": "rbac.authorization.k8s.io/v1",
"kind": "ClusterRoleBinding",
"metadata": {
"name": "admin-user"
},
"roleRef": {
"apiGroup": "rbac.authorization.k8s.io",
"kind": "ClusterRole",
"name": "cluster-admin"
},
"subjects": [
{
"kind": "ServiceAccount",
"name": "admin-user",
"namespace": "kube-system"
}
]
}