go - 如何操作kubernetes PodSpec对象

标签 go kubernetes proto client-go

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

相关文章:

email - 使用 gomail.v2 创建一个新的 *Dialer

go - 多行写长语句

Go:获取两个极限之间的所有数字/字母范围

kubernetes - MetalLB 无法连接到 Kubernetes API

multithreading - Postgres 锁在不同的 goroutine 上表现不一致

kubernetes - Flink Statefun HA Kubernetes集群

kubernetes - 如何将多个 Secrets 中的所有值传递给 Kubernetes 中的 env 变量?

python - 使用 google/protobuf/empty.proto 在没有参数的情况下调用 python grpc 方法期间出现 TypeError

go - 警告 : Missing 'go_package' option

protocol-buffers - grpc import google proto 无法解决