为了账号安全,请及时绑定邮箱和手机立即绑定

Helm go sdk 从外部位置安装图表

Helm go sdk 从外部位置安装图表

Go
翻过高山走不出你 2022-08-24 17:04:41
我使用以下代码来安装在我的源代码中有界的图表(例如,在我的go bin应用程序中),现在我需要将图表移动到git存储库或工件,app/chart/chart1 我的问题是,如何从程序外部安装图表?这是我使用的代码,适用于捆绑图表我使用加载程序包,当我将图表捆绑在我的应用程序中时,它可以正常工作helm3chart, err := loader.Load(“chart/chart1”)https://pkg.go.dev/helm.sh/helm/v3@v3.5.4/pkg/chart/loader我应该以某种方式加载它与http调用或头盔有一些内置功能?我们需要一些有效的方法来处理它
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

您可以使用类似这样的东西来安装图表nginx



    myChart, err := loader.Load("https://charts.bitnami.com/bitnami/nginx-8.8.4.tgz")

...

    install := action.NewInstall(m.actionConfig)

    install.ReleaseName = "my-release"

...

    myRelease, err := install.Run(myChart, myValues)

它类似于:


helm install my-release https://charts.bitnami.com/bitnami/nginx-8.8.4.tgz


查看完整回答
反对 回复 2022-08-24
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

似乎 helm 在其升级/安装命令期间首先检查几个不同的位置,您可以看到这些位置在这里被调用。该函数的内容在这里。然后继续在这里loader.Load



查看完整回答
反对 回复 2022-08-24
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

loader.load仅检查文件和目录。如果要使用URL,sdk在安装界面中提供了方法。下面是一个示例:LocateChart


settings := cli.New()

actionConfig := new(action.Configuration)

if err := actionConfig.Init(settings.RESTClientGetter(), settings.Namespace(), os.Getenv("HELM_DRIVER"), log.Printf); err != nil {

        log.Printf("%+v", err)

        os.Exit(1)

        }


client := action.NewInstall(actionConfig)


chrt_path, err := client.LocateChart("https://github.com/kubernetes/ingress-nginx/releases/download/helm-chart-4.0.6/ingress-nginx-4.0.6.tgz", settings); if err != nil {

        panic(err)

}


myChart, err := loader.Load(chrt_path); if err != nil {

        panic(err)

}

然后,您可以简单的设置安装选项和调用方法。client.Run


查看完整回答
反对 回复 2022-08-24
  • 3 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信