Skip to content

Commit

Permalink
updated repo for jenkins, minio and grafana
Browse files Browse the repository at this point in the history
Signed-off-by: Nitishkumar Singh <nitishkumarsingh71@gmail.com>

updated grafana, minio and jenkins to new style

Signed-off-by: Nitishkumar Singh <nitishkumarsingh71@gmail.com>

removed additional commented code

Signed-off-by: Nitishkumar Singh <nitishkumarsingh71@gmail.com>

included set options

Signed-off-by: Nitishkumar Singh <nitishkumarsingh71@gmail.com>

moved flag error handling to prerun

Signed-off-by: Nitishkumar Singh <nitishkumarsingh71@gmail.com>
  • Loading branch information
nitishkumar71 authored and alexellis committed Dec 9, 2020
1 parent d284a8d commit 37ae4ef
Show file tree
Hide file tree
Showing 4 changed files with 199 additions and 106 deletions.
88 changes: 65 additions & 23 deletions cmd/apps/grafana_app.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@ import (
"os"
"path"

"github.com/alexellis/arkade/pkg/k8s"

"github.com/alexellis/arkade/pkg"
"github.com/alexellis/arkade/pkg/apps"
"github.com/alexellis/arkade/pkg/config"
"github.com/alexellis/arkade/pkg/env"
"github.com/alexellis/arkade/pkg/helm"
"github.com/alexellis/arkade/pkg/k8s"
"github.com/alexellis/arkade/pkg/types"
"github.com/spf13/cobra"
)

Expand All @@ -30,20 +31,58 @@ func MakeInstallGrafana() *cobra.Command {
grafana.Flags().StringP("namespace", "n", "grafana", "The namespace to install grafana")
grafana.Flags().Bool("update-repo", true, "Update the helm repo")
grafana.Flags().Bool("persistence", false, "Make grafana persistent")
grafana.Flags().StringArray("set", []string{},
"Use custom flags or override existing flags \n(example --set persistence.enabled=true)")

grafana.PreRunE = func(command *cobra.Command, args []string) error {
_, err := command.Flags().GetString("kubeconfig")
if err != nil {
return fmt.Errorf("error with --kubeconfig usage: %s", err)
}

_, err = command.Flags().GetBool("wait")
if err != nil {
return fmt.Errorf("error with --wait usage: %s", err)
}

_, err = command.Flags().GetBool("persistence")
if err != nil {
return fmt.Errorf("error with --persistence usage: %s", err)
}

_, err = command.Flags().GetString("namespace")
if err != nil {
return fmt.Errorf("error with --namespace usage: %s", err)
}

_, err = command.Flags().GetBool("update-repo")
if err != nil {
return fmt.Errorf("error with --update-repo usage: %s", err)
}

_, err = command.Flags().GetStringArray("set")
if err != nil {
return fmt.Errorf("error with --set usage: %s", err)
}

return nil
}

grafana.RunE = func(command *cobra.Command, args []string) error {

const chartVersion = "5.0.4"

// Get all flags
kubeConfigPath, _ := command.Flags().GetString("kubeconfig")
if err := config.SetKubeconfig(kubeConfigPath); err != nil {
return err
}
wait, _ := command.Flags().GetBool("wait")
persistence, _ := command.Flags().GetBool("persistence")
namespace, _ := command.Flags().GetString("namespace")
updateRepo, _ := command.Flags().GetBool("update-repo")
customFlags, _ := command.Flags().GetStringArray("set")

if err := config.SetKubeconfig(kubeConfigPath); err != nil {
return err
}
// initialize client env
userPath, err := config.InitUserDir()
if err != nil {
Expand All @@ -62,12 +101,6 @@ func MakeInstallGrafana() *cobra.Command {
return err
}

updateRepo, _ := grafana.Flags().GetBool("update-repo")
err = helm.AddHelmRepo("stable", "https://charts.helm.sh/stable", updateRepo)
if err != nil {
return err
}

// create the namespace
nsRes, nsErr := k8s.KubectlTask("create", "namespace", namespace)
if nsErr != nil {
Expand All @@ -79,12 +112,6 @@ func MakeInstallGrafana() *cobra.Command {
log.Printf("[Warning] unable to create namespace %s, may already exist: %s", namespace, nsRes.Stderr)
}

// download the chart
err = helm.FetchChart("stable/grafana", chartVersion)
if err != nil {
return err
}

// define the values to override
// due the missing arm support. datasource and dashboard sidecars are not possible
overrides := map[string]string{
Expand All @@ -97,13 +124,28 @@ func MakeInstallGrafana() *cobra.Command {
overrides["persistence.size"] = "2Gi"
}

// install the chart
err = helm.Helm3Upgrade("stable/grafana", namespace,
"values.yaml",
chartVersion,
overrides,
wait)
// set custom flags
if err := mergeFlags(overrides, customFlags); err != nil {
return err
}

grafanaAppOptions := types.DefaultInstallOptions().
WithNamespace(namespace).
WithHelmPath(path.Join(userPath, ".helm")).
WithHelmRepo("grafana/grafana").
WithHelmURL("https://grafana.github.io/helm-charts/").
WithHelmRepoVersion(chartVersion).
WithOverrides(overrides).
WithHelmUpdateRepo(updateRepo).
WithKubeconfigPath(kubeConfigPath).
WithWait(wait)

_, err = helm.TryDownloadHelm(userPath, clientArch, clientOS)
if err != nil {
return err
}

_, err = apps.MakeInstallChart(grafanaAppOptions)
if err != nil {
return err
}
Expand Down
89 changes: 55 additions & 34 deletions cmd/apps/jenkins_app.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ import (
"strconv"
"strings"

"github.com/alexellis/arkade/pkg/apps"
"github.com/alexellis/arkade/pkg/k8s"
"github.com/alexellis/arkade/pkg/types"

"github.com/alexellis/arkade/pkg"
"github.com/alexellis/arkade/pkg/config"
Expand All @@ -35,14 +37,47 @@ func MakeInstallJenkins() *cobra.Command {
jenkins.Flags().StringArray("set", []string{},
"Use custom flags or override existing flags \n(example --set persistence.enabled=true)")

jenkins.RunE = func(command *cobra.Command, args []string) error {
kubeConfigPath := config.GetDefaultKubeconfig()
wait, _ := command.Flags().GetBool("wait")
jenkins.PreRunE = func(command *cobra.Command, args []string) error {
_, err := command.Flags().GetString("kubeconfig")
if err != nil {
return fmt.Errorf("error with --kubeconfig usage: %s", err)
}

_, err = command.Flags().GetBool("wait")
if err != nil {
return fmt.Errorf("error with --wait usage: %s", err)
}

_, err = command.Flags().GetBool("persistence")
if err != nil {
return fmt.Errorf("error with --persistence usage: %s", err)
}

_, err = command.Flags().GetString("namespace")
if err != nil {
return fmt.Errorf("error with --namespace usage: %s", err)
}

_, err = command.Flags().GetBool("update-repo")
if err != nil {
return fmt.Errorf("error with --update-repo usage: %s", err)
}

if command.Flags().Changed("kubeconfig") {
kubeConfigPath, _ = command.Flags().GetString("kubeconfig")
_, err = command.Flags().GetStringArray("set")
if err != nil {
return fmt.Errorf("error with --set usage: %s", err)
}

return nil
}

jenkins.RunE = func(command *cobra.Command, args []string) error {
wait, _ := command.Flags().GetBool("wait")
kubeConfigPath, _ := command.Flags().GetString("kubeconfig")
updateRepo, _ := jenkins.Flags().GetBool("update-repo")
ns, _ := command.Flags().GetString("namespace")
persistence, _ := command.Flags().GetBool("persistence")
customFlags, _ := command.Flags().GetStringArray("set")

fmt.Printf("Using kubeconfig: %s\n", kubeConfigPath)

Expand All @@ -65,44 +100,30 @@ func MakeInstallJenkins() *cobra.Command {

os.Setenv("HELM_HOME", path.Join(userPath, ".helm"))

ns, _ := jenkins.Flags().GetString("namespace")

_, err = helm.TryDownloadHelm(userPath, clientArch, clientOS)
if err != nil {
return err
}

err = helm.AddHelmRepo("stable", "https://charts.helm.sh/stable", updateRepo)
if err != nil {
return err
}

err = helm.FetchChart("stable/jenkins", defaultVersion)
overrides := map[string]string{}
overrides["persistence.enabled"] = strings.ToLower(strconv.FormatBool(persistence))

if err != nil {
// set custom flags
if err := mergeFlags(overrides, customFlags); err != nil {
return err
}

persistence, _ := jenkins.Flags().GetBool("persistence")
overrides := map[string]string{}

overrides["persistence.enabled"] = strings.ToLower(strconv.FormatBool(persistence))
jenkinsAppOptions := types.DefaultInstallOptions().
WithNamespace(ns).
WithHelmPath(path.Join(userPath, ".helm")).
WithHelmRepo("jenkins/jenkins").
WithHelmURL("https://charts.jenkins.io/").
WithOverrides(overrides).
WithHelmUpdateRepo(updateRepo).
WithKubeconfigPath(kubeConfigPath).
WithWait(wait)

customFlags, err := jenkins.Flags().GetStringArray("set")
_, err = helm.TryDownloadHelm(userPath, clientArch, clientOS)
if err != nil {
return fmt.Errorf("error with --set usage: %s", err)
}

if err := mergeFlags(overrides, customFlags); err != nil {
return err
}

err = helm.Helm3Upgrade("stable/jenkins", ns,
"values.yaml",
defaultVersion,
overrides,
wait)

_, err = apps.MakeInstallChart(jenkinsAppOptions)
if err != nil {
return err
}
Expand Down

0 comments on commit 37ae4ef

Please sign in to comment.