mirror of
https://github.com/foomo/squadron.git
synced 2026-10-06 23:56:54 +00:00
feat: add helm release description
This commit is contained in:
+16
-1
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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://") {
|
||||
|
||||
Reference in New Issue
Block a user