我正在编写自动化脚本,以使用一个yaml中的变量,并在另一个yaml中替换
要求: 我应该加载yaml1并创建变量,并将它们用作yaml2中的变量。我能够创建变量,但无法获取替换yaml2中获得的变量的逻辑。请帮忙
样品yaml1
变量yaml
environmentName: "dev1_westus2"
jumpbox: "dev1-westus2-jumpbox"
jumpboxDeploymentIndex: "0"
k8sClusterB:
kubeConfig: "dev1"
kubeContext: "admin"
namespace: "cp5"
nfsMountName: "nfsdev1westus2_cp5"
usego: "true"
示例值.yaml:
namespace: null
environmentName: null
protocol: https://
proxyErrorLog: /dev/stderr
adminAccessLog: /dev/stdout
adminErrorLog: /dev/stderr
serviceName: apiver
kubeConfig: null
kubeContext: null
replicas: 1
image:
repository: ubuntu
通过从variables.yaml中获取上述变量,应替换values.yaml中的空值
例如:
它应该从variables.yaml中获取environmentname、namespace等,并仅将vaules.yaml中的值替换为null值
所需输出:
namespace: cp5
environmentName: dev1_westus2
protocol: https://
proxyErrorLog: /dev/stderr
adminAccessLog: /dev/stdout
adminErrorLog: /dev/stderr
serviceName: apiver
kubeConfig: dev1
kubeContext: admin
replicas: 1
image:
repository: ubuntu
示例代码:
import yaml
with open('variable.yaml') as info:
info_dict = yaml.safe_load(info)
print (info_dict)
for item, doc in info_dict.items():
print(item, ":", doc)
多谢各位
这会让你走到那里的一段路。不过,我发现variable.yaml有一个问题——嵌套值(如kubeConfig)不太容易访问。程序如何知道如何查看k8sClusterB.kubeConfig来访问kubeConfig值
相关问题 更多 >
编程相关推荐