Selection des charts

This commit is contained in:
admju 2024-09-03 15:26:10 +00:00
parent 756638fe21
commit 9e267becca
3 changed files with 22 additions and 12 deletions

View File

@ -5,7 +5,6 @@
package cmd package cmd
import ( import (
"strings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
log "oc-deploy/log_wrapper" log "oc-deploy/log_wrapper"
@ -29,7 +28,7 @@ func Execute() {
Long: `deploy Charts`, Long: `deploy Charts`,
Args: cobra.MaximumNArgs(0), Args: cobra.MaximumNArgs(0),
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
InstallCmd(context, version, strings.Split(modules, ",")) InstallCmd(context, version, modules)
}, },
Example: "oc-deploy install --version 1.0 --context ex1", Example: "oc-deploy install --version 1.0 --context ex1",
} }
@ -58,7 +57,7 @@ func Execute() {
cmdInstall.Flags().StringVarP(&context, "context", "p", "opencloud", "Nom du projet") cmdInstall.Flags().StringVarP(&context, "context", "p", "opencloud", "Nom du projet")
cmdInstall.Flags().StringVarP(&version, "version", "v", "latest", "Version") cmdInstall.Flags().StringVarP(&version, "version", "v", "latest", "Version")
cmdInstall.Flags().StringArrayVarP(&modules, "modules", "m", "", "modules, ...") cmdInstall.Flags().StringArrayVarP(&modules, "modules", "m", []string{}, "modules, ...")
cmdUninstall.Flags().StringVarP(&context, "context", "p", "opencloud", "Nom du projet") cmdUninstall.Flags().StringVarP(&context, "context", "p", "opencloud", "Nom du projet")

View File

@ -12,7 +12,7 @@ func InstallCmd(context string, version string, modules []string) {
log.Log().Info().Msg(" << Contexte : " + context) log.Log().Info().Msg(" << Contexte : " + context)
if len(modules) > 0 { if len(modules) > 0 {
log.Log().Info().Msg(fmt.Sprintf(" << Modules : |%s| %d", modules, len(modules))) log.Log().Info().Msg(fmt.Sprintf(" << Modules : %s", modules))
} }
workspace := fmt.Sprintf("workspace_%s", context) workspace := fmt.Sprintf("workspace_%s", context)
@ -40,7 +40,7 @@ func InstallCmd(context string, version string, modules []string) {
log.Log().Fatal().Msg(" >> " + err.Error()) log.Log().Fatal().Msg(" >> " + err.Error())
} }
err = obj.InstallCharts() err = obj.InstallCharts(modules)
if err != nil { if err != nil {
log.Log().Fatal().Msg(" >> " + err.Error()) log.Log().Fatal().Msg(" >> " + err.Error())
} }

View File

@ -89,7 +89,7 @@ func (this *InstallClass) ChartRepo() (error) {
} }
func (this *InstallClass) InstallCharts() (error) { func (this *InstallClass) InstallCharts(modules []string) (error) {
helm_bin, _ := this.getToolBin("helm") helm_bin, _ := this.getToolBin("helm")
kubectl_bin, _ := this.getToolBin("kubectl") kubectl_bin, _ := this.getToolBin("kubectl")
@ -97,19 +97,30 @@ func (this *InstallClass) InstallCharts() (error) {
for _, v := range this.charts { for _, v := range this.charts {
for _, v1 := range v.Charts { for _, v1 := range v.Charts {
wg.Add(1) if len(modules) == 0 || stringInSlice(v1.Name, modules) {
wg.Add(1)
go func() { go func() {
defer wg.Done() defer wg.Done()
this.installChart(helm_bin, kubectl_bin, v1) this.installChart(helm_bin, kubectl_bin, v1)
} () } ()
}
} }
} }
wg.Wait() wg.Wait()
return nil return nil
} }
func stringInSlice(a string, list []string) bool {
for _, b := range list {
if b == a {
return true
}
}
return false
}
func (this *InstallClass) installChart(helm_bin string, kubectl_bin string, chart chart.ChartData) { func (this *InstallClass) installChart(helm_bin string, kubectl_bin string, chart chart.ChartData) {
log.Log().Info().Msg(fmt.Sprintf(" << Chart : %s ", chart.Name)) log.Log().Info().Msg(fmt.Sprintf(" << Chart : %s ", chart.Name))