我正在寻找有关golang代码的帮助,以根据用户输入来修改podspec。

这是我的流程。

用户提供了不完整的yaml文件来创建部署。假设它们缺少/更新环境变量信息。
用户还给出了具有环境变量信息的变量foo [{name:“abc”,value:“xyz”},{name:“ab”,value:“12”}]。在创建部署之前,我需要阅读yaml文件并合并变量。

到目前为止,这是我所发现的,
读取yaml文件。

decode := scheme.Codecs.UniversalDeserializer().Decode
data, _ := readyamlfile(file)
obj, _, _ := decode(data, nil, nil)
dep := obj.(*appsv1.Deployment)

从dep我可以找到podspec。现在,我需要根据用户输入foo更新对象。不知道我是否可以使用XXX_Merge函数。请推荐并尽可能提供XXX_Merge函数的工作示例指针。 https://godoc.org/k8s.io/apiserver/pkg/apis/example/v1#PodSpec.XXX_Merge

请让我知道是否还有其他方法。

最佳答案

您不应该使用XXX_Merge。只需用用户输入填充dep对象。例如:

dep.Spec.Template.Env = append(dep.Spec.Template.Env, EnvVar{Name: "abc", Value: "xyz"})
dep.Spec.Template.Env = append(dep.Spec.Template.Env, EnvVar{Name: "ab", Value: "12"})

关于go - 如何操作kubernetes PodSpec对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57681781/

10-16 09:25