脚本说明:
使用Kebernetes最多的使用的是yaml语言,这种语言刚使用比较难懂,最好是先转换为json,下面的脚本可以对json和yaml语言互相转换。
#!/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互相转换工具!')
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转换为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"
}
]
}
网友评论