-2

我正在寻找有关 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

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

4

1 回答 1

0

您不应使用 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"})
于 2019-08-28T05:11:08.647 回答