feat: add helm release description

This commit is contained in:
franklin
2021-10-15 10:12:46 +02:00
parent 06e12e0058
commit 2d2269aa75
4 changed files with 45 additions and 19 deletions
+16 -1
View File
@@ -2,10 +2,13 @@ package actions
import (
"fmt"
"os/user"
"strings"
"github.com/spf13/cobra"
"github.com/foomo/squadron"
"github.com/foomo/squadron/util"
)
func init() {
@@ -73,8 +76,20 @@ func up(args []string, cwd, namespace string, build, push, diff bool, files []st
return err
}
username := "unknown"
if value, err := util.NewCommand("git").Args("config", "user.name").Run(); err == nil {
username = strings.TrimSpace(value)
} else if value, err := user.Current(); err == nil {
username = strings.TrimSpace(value.Name)
}
commit := ""
if value, err := util.NewCommand("git").Args("rev-parse", "--short", "HEAD").Run(); err == nil {
commit = strings.TrimSpace(value)
}
if !diff {
return sq.Up(units, helmArgs)
return sq.Up(units, helmArgs, username, version, commit)
} else if out, err := sq.Diff(units, helmArgs); err != nil {
return err
} else {
+1
View File
@@ -9,6 +9,7 @@ require (
github.com/sirupsen/logrus v1.8.1
github.com/spf13/cobra v1.2.1
github.com/stretchr/testify v1.7.0
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
k8s.io/api v0.22.2
+4 -2
View File
@@ -199,6 +199,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -226,7 +228,6 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -635,8 +636,9 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
+24 -16
View File
@@ -326,13 +326,18 @@ func (sq *Squadron) Status(units map[string]*Unit, helmArgs []string) error {
return nil
}
func (sq *Squadron) Up(units map[string]*Unit, helmArgs []string) error {
func (sq *Squadron) Up(units map[string]*Unit, helmArgs []string, username, version, commit string) error {
description := fmt.Sprintf("\nManaged-By: Squadron %s\nDeployed-By: %s\nGit-Commit: %s", version, username, commit)
if sq.c.Unite {
logrus.Infof("running helm upgrade for chart: %s", sq.chartPath())
_, err := util.NewHelmCommand().
Stdout(os.Stdout).
Args("upgrade", sq.name, sq.chartPath(), "--install").
Args("upgrade", sq.name, sq.chartPath()).
Args("--namespace", sq.namespace).
Args("--dependency-update").
Args("--description", description).
Args("--install").
Args(helmArgs...).
Run()
return err
@@ -340,25 +345,28 @@ func (sq *Squadron) Up(units map[string]*Unit, helmArgs []string) error {
for uName, u := range units {
// todo use release prefix on install: squadron name or --name
rName := fmt.Sprintf("%s-%s", sq.name, uName)
logrus.Infof(
"running helm dependency update for %s in %s",
uName,
strings.TrimPrefix(u.Chart.Repository, "file://"),
)
if strings.Contains(u.Chart.Repository, "file://") {
if _, err := util.NewHelmCommand().
Args("dependency", "update").
Cwd(strings.TrimPrefix(u.Chart.Repository, "file://")).
Stdout(os.Stdout).
Run(); err != nil {
return err
}
}
//logrus.Infof(
// "running helm dependency update for %s in %s",
// uName,
// strings.TrimPrefix(u.Chart.Repository, "file://"),
//)
//if strings.Contains(u.Chart.Repository, "file://") {
// if _, err := util.NewHelmCommand().
// Args("dependency", "update").
// Cwd(strings.TrimPrefix(u.Chart.Repository, "file://")).
// Stdout(os.Stdout).
// Run(); err != nil {
// return err
// }
//}
logrus.Infof("running helm upgrade for %s", uName)
cmd := util.NewHelmCommand().
Stdout(os.Stdout).
Args("upgrade", rName, "--install").
Args("--description", description).
Args("--namespace", sq.namespace).
Args("--dependency-update").
Args("--install").
Args("-f", path.Join(sq.chartPath(), uName+".yaml")).
Args(helmArgs...)
if strings.Contains(u.Chart.Repository, "file://") {