package install import ( "fmt" "os" "sync" log "oc-deploy/log_wrapper" "oc-deploy/versionOc" "oc-deploy/tool" "oc-deploy/chart" "oc-deploy/helm" ) func (this *InstallClass) NewUninstall() (string, error) { dst := fmt.Sprintf("%s/oc.yml", this.Workspace) if _, err := os.Stat(dst); err != nil { return dst, err } version, err := versionOc.GetFromFile(dst) if err != nil { return "", err } this.Version = version // Lecture du fichier de conf this.tools, err = tool.FromConfigFile(dst) if err != nil { return dst, err } this.charts, _ = chart.FromConfigFile(dst) if err != nil { return dst, err } return dst, nil } func (this *InstallClass) UninstallCharts() (error) { helm_bin, _ := this.getToolBin("helm") kubectl_bin, _ := this.getToolBin("kubectl") var wg sync.WaitGroup for _, v := range this.charts { for _, v1 := range v.Charts { wg.Add(1) go func() { defer wg.Done() this.uninstallChart(helm_bin, kubectl_bin, v1) } () } } wg.Wait() return nil } func (this *InstallClass) uninstallChart(helm_bin string, kubectl_bin string, chart chart.ChartData) { log.Log().Info().Msg(fmt.Sprintf(" << Chart : %s ", chart.Name)) helmchart := helm.HelmChart{Bin: helm_bin, Name: chart.Name} res, err := helmchart.Uninstall() if err != nil { log.Log().Error().Msg(fmt.Sprintf(" >> %s %s (%s)", helmchart.Name, "KO", err)) return } log.Log().Info().Msg(fmt.Sprintf(" >> %s (%s)", helmchart.Name, res)) }