我有以下代碼,我能夠在目標(biāo)集群中創(chuàng)建一個(gè)頭盔圖。當(dāng)你安裝一些圖表直到應(yīng)用程序(在圖表內(nèi))可用時(shí),需要時(shí)間,如何檢查通過helm圖表安裝的應(yīng)用程序是否啟動(dòng)并運(yùn)行?有沒有辦法用舵手客戶端做到這一點(diǎn)(我們使用的是舵機(jī)3.5.2)tmpfile, err := ioutil.TempFile(kp, kcp)if err != nil { log.Error(err, "error")}defer os.Remove(tmpfile.Name()) if _, err := tmpfile.Write(cfg); err != nil { return err}if err := tmpfile.Close(); err != nil { return err}kcfgFilePath := tmpfile.Name()settings := cli.New()ac := new(action.Configuration)clientGetter := genericclioptions.NewConfigFlags(false)clientGetter.KubeConfig = &kcfgFilePathfor _, chartInstallation := range charts { chart, err := loader.Load(chartInstallation.Path) if err != nil { return err } releaseName := releaseName + "-" + chartInstallation.Name if err := ac.Init(clientGetter, settings.Namespace(), os.Getenv("HELM_DRIVER"), func(format string, v ...interface{}) { }); err != nil { return err } releasePresent := true statusAction := action.NewStatus(ac) status, err := statusAction.Run(releaseName) if err != nil { if strings.Contains(err.Error(), driver.ErrReleaseNotFound.Error()) { releasePresent = false } else { return err } } if !releasePresent { // install chart installAction := action.NewInstall(ac) installAction.CreateNamespace = true installAction.Namespace = chartInstallation.Namespace installAction.ReleaseName = releaseName _, err := installAction.Run(chart, nil) if err != nil { return err } log.Info(“chart installed: ", "releaseName", releaseName) }
1 回答
慕田峪9158850
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
您需要 (或 ) 使用 --wait 標(biāo)志:helm installupgrade
--wait:等到所有 Pod 都處于就緒狀態(tài)、PVC 已綁定、部署具有處于就緒狀態(tài)的最?。ㄋ铚p號(hào))Pod 和服務(wù)具有 IP 地址(如果是 LoadBalancer,則為 Ingress),然后再將發(fā)布標(biāo)記為成功。它將等待一直到 [...]maxUnavailable--timeout
確保您的窗格具有活動(dòng)性和就緒性檢查。只有在這些檢查通過后,使用該版本才會(huì)成功返回。--wait
- 1 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
