gpt4 book ai didi

go - Kubernetes 运算符(operator)使用 yaml 模板创建 Deployment

转载 作者:行者123 更新时间:2023-12-05 04:48:04 34 4
gpt4 key购买 nike

我正在尝试按照此 link 创建我自己的 kubernetes 运算符(operator).在 Reconcile 函数中,我需要创建多个 Deployment,每个 Deployment 的某些属性(例如名称)会有所不同,而且配置非常庞大。不是通过使用 appsv1.Deployment 创建部署并在其中创建每个属性(如下面的代码),有没有一种方法可以提供一个 yaml 模板文件并读取该文件以获取 appsv1.Deployment 对象?

    dep := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: customName,
Namespace: m.Namespace,
},
Spec: appsv1.DeploymentSpec{
Strategy: appsv1.DeploymentStrategy{
Type: "RollingUpdate",
},
... and so on

除了上面的内容,是否可以使用一些方便的实用程序函数来实现类似下面的内容?

dep := utils.parseYaml(deploymentYamlFile)

最佳答案

是的,您可以将Deployment 放在yaml 文件中并在代码中读取它。

鉴于此文件结构:

example.go
manifests/deployment.yaml

你会在 example.go 中有这样的东西:

import (
"io/ioutil"

appsv1 "k8s.io/api/apps/v1"
"sigs.k8s.io/yaml"
)

func example() {
var bs []byte
{
bs, err = ioutil.ReadFile("manifests/deployment.yaml")
if err != nil {
// handle err
}
}

var deployment appsv1.Deployment
err = yaml.Unmarshal(bs, &deployment)
if err != nil {
// handle err
}

// now you have your deployment load into `deployment` var
}

关于go - Kubernetes 运算符(operator)使用 yaml 模板创建 Deployment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68255140/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com