feat: add devel flag support (#313)
Resolves #161 Changelog: * add support for devel flag * allow for explicit disable of the devel default
This commit is contained in:
parent
8f96f0aff5
commit
595c70f85b
1
main.go
1
main.go
|
|
@ -609,6 +609,7 @@ func findAndIterateOverDesiredStates(fileOrDir string, converge func(*state.Helm
|
|||
if noTarget {
|
||||
continue
|
||||
}
|
||||
|
||||
errs := converge(st, helm)
|
||||
if err := clean(st, errs); err != nil {
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -15,12 +15,13 @@ import (
|
|||
|
||||
"regexp"
|
||||
|
||||
"os/exec"
|
||||
"syscall"
|
||||
|
||||
"github.com/roboll/helmfile/environment"
|
||||
"github.com/roboll/helmfile/valuesfile"
|
||||
"go.uber.org/zap"
|
||||
"gopkg.in/yaml.v2"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// HelmState structure for the helmfile
|
||||
|
|
@ -49,6 +50,8 @@ type HelmSpec struct {
|
|||
TillerNamespace string `yaml:"tillerNamespace"`
|
||||
Args []string `yaml:"args"`
|
||||
Verify bool `yaml:"verify"`
|
||||
// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
|
||||
Devel bool `yaml:"devel"`
|
||||
// Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful
|
||||
Wait bool `yaml:"wait"`
|
||||
// Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300)
|
||||
|
|
@ -75,6 +78,8 @@ type ReleaseSpec struct {
|
|||
Chart string `yaml:"chart"`
|
||||
Version string `yaml:"version"`
|
||||
Verify *bool `yaml:"verify"`
|
||||
// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
|
||||
Devel *bool `yaml:"devel"`
|
||||
// Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful
|
||||
Wait *bool `yaml:"wait"`
|
||||
// Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300)
|
||||
|
|
@ -798,6 +803,10 @@ func (state *HelmState) flagsForUpgrade(helm helmexec.Interface, release *Releas
|
|||
flags = append(flags, "--version", release.Version)
|
||||
}
|
||||
|
||||
if state.isDevelopment(release) {
|
||||
flags = append(flags, "--devel")
|
||||
}
|
||||
|
||||
if release.Verify != nil && *release.Verify || state.HelmDefaults.Verify {
|
||||
flags = append(flags, "--verify")
|
||||
}
|
||||
|
|
@ -843,6 +852,11 @@ func (state *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSp
|
|||
if release.Version != "" {
|
||||
flags = append(flags, "--version", release.Version)
|
||||
}
|
||||
|
||||
if state.isDevelopment(release) {
|
||||
flags = append(flags, "--devel")
|
||||
}
|
||||
|
||||
common, err := state.namespaceAndValuesFlags(helm, release)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -850,6 +864,15 @@ func (state *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSp
|
|||
return append(flags, common...), nil
|
||||
}
|
||||
|
||||
func (state *HelmState) isDevelopment(release *ReleaseSpec) bool {
|
||||
result := state.HelmDefaults.Devel
|
||||
if release.Devel != nil {
|
||||
result = *release.Devel
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func (state *HelmState) flagsForLint(helm helmexec.Interface, release *ReleaseSpec) ([]string, error) {
|
||||
return state.namespaceAndValuesFlags(helm, release)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -286,6 +286,42 @@ func TestHelmState_flagsForUpgrade(t *testing.T) {
|
|||
"--namespace", "test-namespace",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "devel",
|
||||
defaults: HelmSpec{
|
||||
Devel: true,
|
||||
},
|
||||
release: &ReleaseSpec{
|
||||
Chart: "test/chart",
|
||||
Version: "0.1",
|
||||
Wait: &enable,
|
||||
Name: "test-charts",
|
||||
Namespace: "test-namespace",
|
||||
},
|
||||
want: []string{
|
||||
"--version", "0.1",
|
||||
"--devel",
|
||||
"--wait",
|
||||
"--namespace", "test-namespace",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "devel-release",
|
||||
defaults: HelmSpec{
|
||||
Devel: true,
|
||||
},
|
||||
release: &ReleaseSpec{
|
||||
Chart: "test/chart",
|
||||
Version: "0.1",
|
||||
Devel: &disable,
|
||||
Name: "test-charts",
|
||||
Namespace: "test-namespace",
|
||||
},
|
||||
want: []string{
|
||||
"--version", "0.1",
|
||||
"--namespace", "test-namespace",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "wait-from-default",
|
||||
defaults: HelmSpec{
|
||||
|
|
|
|||
Loading…
Reference in New Issue