Selection des charts
This commit is contained in:
parent
756638fe21
commit
9e267becca
@ -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")
|
||||||
|
|
||||||
|
@ -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())
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
if len(modules) == 0 || stringInSlice(v1.Name, modules) {
|
||||||
wg.Add(1)
|
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))
|
||||||
|
Loading…
Reference in New Issue
Block a user