Helm SDK从扩展存储库下载图表 [英] Helm SDK download chart from extenanl repository

查看:11
本文介绍了Helm SDK从扩展存储库下载图表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要下载位于外部OCI存储库的图表,当我使用图表和版本的链接下载它并提供用户和密码时,它可以工作,但不能使用以下代码,这是我尝试的,但收到错误

无法下载版本为1.0.0的";https://fdr.cdn.repositories.amp/artifactory/control-1.0.0.tgz";(提示:运行helm repo update可能会有帮助),如果我单击上面的链接,它会要求用户并通过(在浏览器中),当我提供它时(与代码中的相同)图表已下载,您知道为什么代码不起作用吗?

这就是我尝试的

    package main

import (
    "fmt"
    "os"

    "helm.sh/helm/v3/pkg/action"
    "helm.sh/helm/v3/pkg/cli"
    "helm.sh/helm/v3/pkg/repo"
)

var config *cli.EnvSettings

func main() {
    config = cli.New()
    re := repo.Entry{
        Name:     "control",
        URL:      "https://fdr.cdn.repositories.amp/artifactory/control",
        Username:              "myuser",
        Password:              "mypass",
    }
    file, err := repo.LoadFile(config.RepositoryConfig)
    if err != nil {
        fmt.Println(err.Error())
    }
    file.Update(&re)
    file.WriteFile(config.RepositoryConfig, os.ModeAppend)

    co := action.ChartPathOptions{
        InsecureSkipTLSverify: false,
        RepoURL:               "https://fdr.cdn.repositories.amp/artifactory/control",
        Username:              "myuser",
        Password:              "mypass",
        Version:               "1.0.0",
    }

    fp, err := co.LocateChart("control", config)
    if err != nil {
        fmt.Println(err.Error())
    }
    fmt.Println(fp)
}

调试时我找到的错误所在的代码https://github.com/helm/helm/blob/release-3.6/pkg/downloader/chart_downloader.go#L352 它正在尝试查找我的笔记本电脑中不存在的缓存,我如何禁用它或其他解决方案以使其正常工作?

推荐答案

我认为您需要更新存储库,然后才能找到图表。

This是CLI用于更新资料库的代码。

this是对资料库执行更新的函数。

这篇关于Helm SDK从扩展存储库下载图表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆