1

client-go を使用して Helm オペレーターを作成しようとしており、RepoURLchartnameを使用してコントローラーからチャートを取得したいと考えています。ローカル マシンで問題なく動作するサンプル コードを作成しました。しかし、コンテナ内で同じコードを実行すると、同じコードがエラーをスローします。次のコードを見つけてください。

func FetchURL() error {
    repoURL := "https://kubernetes-charts.storage.googleapis.com"
    username := ""
    password := ""
    var settings environment.EnvSettings
    flags := pflag.NewFlagSet("helm-env", pflag.ContinueOnError)
    settings.AddFlags(flags)
    settings.Init(flags)
    getters := getter.All(settings)

    getters := getter.All(settings)

    var err error
    destDir, err := ioutil.TempDir("", "helm-")
    if err != nil {
        return fmt.Errorf("Failed to untar: %s", err)
    }
    defer os.RemoveAll(destDir)

    chartURL, err := repo.FindChartInAuthRepoURL(repoURL, username, password, chartRef, "", "", "", "", getter.All(settings))
    if err != nil {
        return fmt.Errorf("Error finding the Chart URL: %s", err)
    }
    fmt.Println(chartURL)
    return nil
}

上記の関数は、chartURL の取得中に次のエラーをスローしています。

Fetching Chart
Error finding the Chart URL: Looks like "https://kubernetes-charts.storage.googleapis.com" is not a valid chart repository or cannot be reached: Get https://kubernetes-charts.storage.googleapis.com/index.yaml: x509: certificate signed by unknown authority

CA証明書を要求していることがわかりますが、TLS証明書なしでヘルムを初期化したため、どのCA証明書かわかりません。

また、ポッド内の helm バイナリをコピーして実行しようとしました。

helm init --client-only
helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Unable to get an update from the "stable" chart repository (https://kubernetes-charts.storage.googleapis.com):
    Get https://kubernetes-charts.storage.googleapis.com/index.yaml: x509: certificate signed by unknown authority
...Unable to get an update from the "bitnami" chart repository (https://charts.bitnami.com/bitnami):
    Get https://charts.bitnami.com/bitnami/index.yaml: x509: certificate signed by unknown authority
Update Complete.

そこでも同じ問題に直面しています。誰かが同様の問題に直面しましたか?

4

1 に答える 1