client-go を使用して Helm オペレーターを作成しようとしており、RepoURLとchartnameを使用してコントローラーからチャートを取得したいと考えています。ローカル マシンで問題なく動作するサンプル コードを作成しました。しかし、コンテナ内で同じコードを実行すると、同じコードがエラーをスローします。次のコードを見つけてください。
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.
そこでも同じ問題に直面しています。誰かが同様の問題に直面しましたか?