Call helm dependency update when so instructed [#25]

As with Lint, I have no idea whether the --namespace flag actually
matters here. I don't think it will hurt, though!
This commit is contained in:
Erin Call
2019-12-27 15:06:32 -08:00
parent 3b78f01b45
commit 181165cc51
5 changed files with 241 additions and 6 deletions

View File

@@ -96,7 +96,9 @@ func (p *Plan) Execute() error {
var upgrade = func(cfg Config) []Step {
steps := initKube(cfg)
if cfg.UpdateDependencies {
steps = append(steps, depUpdate(cfg)...)
}
steps = append(steps, &run.Upgrade{
Chart: cfg.Chart,
Release: cfg.Release,
@@ -113,6 +115,9 @@ var upgrade = func(cfg Config) []Step {
var uninstall = func(cfg Config) []Step {
steps := initKube(cfg)
if cfg.UpdateDependencies {
steps = append(steps, depUpdate(cfg)...)
}
steps = append(steps, &run.Uninstall{
Release: cfg.Release,
DryRun: cfg.DryRun,
@@ -122,11 +127,15 @@ var uninstall = func(cfg Config) []Step {
}
var lint = func(cfg Config) []Step {
lint := &run.Lint{
Chart: cfg.Chart,
steps := make([]Step, 0)
if cfg.UpdateDependencies {
steps = append(steps, depUpdate(cfg)...)
}
steps = append(steps, &run.Lint{
Chart: cfg.Chart,
})
return []Step{lint}
return steps
}
var help = func(cfg Config) []Step {
@@ -147,3 +156,11 @@ func initKube(cfg Config) []Step {
},
}
}
func depUpdate(cfg Config) []Step {
return []Step{
&run.DepUpdate{
Chart: cfg.Chart,
},
}
}

View File

@@ -167,7 +167,17 @@ func (suite *PlanTestSuite) TestUpgrade() {
suite.Equal(expected, upgrade)
}
func (suite *PlanTestSuite) TestDel() {
func (suite *PlanTestSuite) TestUpgradeWithUpdateDependencies() {
cfg := Config{
UpdateDependencies: true,
}
steps := upgrade(cfg)
suite.Require().Equal(3, len(steps), "upgrade should have a third step when DepUpdate is true")
suite.IsType(&run.InitKube{}, steps[0])
suite.IsType(&run.DepUpdate{}, steps[1])
}
func (suite *PlanTestSuite) TestUninstall() {
cfg := Config{
KubeToken: "b2YgbXkgYWZmZWN0aW9u",
SkipTLSVerify: true,
@@ -205,6 +215,16 @@ func (suite *PlanTestSuite) TestDel() {
suite.Equal(expected, actual)
}
func (suite *PlanTestSuite) TestUninstallWithUpdateDependencies() {
cfg := Config{
UpdateDependencies: true,
}
steps := uninstall(cfg)
suite.Require().Equal(3, len(steps), "uninstall should have a third step when DepUpdate is true")
suite.IsType(&run.InitKube{}, steps[0])
suite.IsType(&run.DepUpdate{}, steps[1])
}
func (suite *PlanTestSuite) TestInitKube() {
cfg := Config{
KubeToken: "cXVlZXIgY2hhcmFjdGVyCg==",
@@ -231,6 +251,23 @@ func (suite *PlanTestSuite) TestInitKube() {
suite.Equal(expected, init)
}
func (suite *PlanTestSuite) TestDepUpdate() {
cfg := Config{
UpdateDependencies: true,
Chart: "scatterplot",
}
steps := depUpdate(cfg)
suite.Require().Equal(1, len(steps), "depUpdate should return one step")
suite.Require().IsType(&run.DepUpdate{}, steps[0])
update, _ := steps[0].(*run.DepUpdate)
expected := &run.DepUpdate{
Chart: "scatterplot",
}
suite.Equal(expected, update)
}
func (suite *PlanTestSuite) TestLint() {
cfg := Config{
Chart: "./flow",
@@ -245,6 +282,15 @@ func (suite *PlanTestSuite) TestLint() {
suite.Equal(want, steps[0])
}
func (suite *PlanTestSuite) TestLintWithUpdateDependencies() {
cfg := Config{
UpdateDependencies: true,
}
steps := lint(cfg)
suite.Require().Equal(2, len(steps), "lint should have a second step when DepUpdate is true")
suite.IsType(&run.DepUpdate{}, steps[0])
}
func (suite *PlanTestSuite) TestDeterminePlanUpgradeCommand() {
cfg := Config{
Command: "upgrade",