chore(state): Append Api Versions flags to helm-diff (#107)
* chore(state): Append Api Versions flags to helm-diff Signed-off-by: Sergio Morales <sergio@cornershopapp.com> * chore(state): Added unit test to state.flagsForDiff Signed-off-by: Sergio Morales <sergio@cornershopapp.com> * chore(state): Check Helmstate values if ReleaseSpec values aren't set Signed-off-by: Sergio Morales <sergio@cornershopapp.com>
This commit is contained in:
parent
577f54af7a
commit
414db47428
|
|
@ -2536,6 +2536,8 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec,
|
|||
flags = append(flags, "--disable-validation")
|
||||
}
|
||||
|
||||
flags = st.appendApiVersionsFlags(flags, release)
|
||||
|
||||
flags = st.appendConnectionFlags(flags, helm, release)
|
||||
|
||||
var err error
|
||||
|
|
@ -2566,11 +2568,20 @@ func (st *HelmState) chartVersionFlags(release *ReleaseSpec) []string {
|
|||
}
|
||||
|
||||
func (st *HelmState) appendApiVersionsFlags(flags []string, r *ReleaseSpec) []string {
|
||||
for _, a := range r.ApiVersions {
|
||||
flags = append(flags, "--api-versions", a)
|
||||
|
||||
if len(r.ApiVersions) != 0 {
|
||||
for _, a := range r.ApiVersions {
|
||||
flags = append(flags, "--api-versions", a)
|
||||
}
|
||||
} else {
|
||||
for _, a := range st.ApiVersions {
|
||||
flags = append(flags, "--api-versions", a)
|
||||
}
|
||||
}
|
||||
|
||||
if r.KubeVersion != "" {
|
||||
flags = append(flags, "--kube-version", r.KubeVersion)
|
||||
} else if st.KubeVersion != "" {
|
||||
flags = append(flags, "--kube-version", st.KubeVersion)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1614,6 +1614,53 @@ func TestHelmState_DiffReleases(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestHelmState_DiffFlags(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
releases []ReleaseSpec
|
||||
helm *exectest.Helm
|
||||
wantDiffFlags []string
|
||||
}{
|
||||
{
|
||||
name: "release with api version and kubeversion",
|
||||
releases: []ReleaseSpec{
|
||||
{
|
||||
Name: "releaseName",
|
||||
Chart: "foo",
|
||||
KubeVersion: "1.21",
|
||||
ApiVersions: []string{"helmfile.test/v1", "helmfile.test/v2"},
|
||||
},
|
||||
},
|
||||
helm: &exectest.Helm{},
|
||||
wantDiffFlags: []string{"--api-versions", "helmfile.test/v1", "--api-versions", "helmfile.test/v2", "--kube-version", "1.21"},
|
||||
},
|
||||
}
|
||||
for i := range tests {
|
||||
tt := tests[i]
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
state := &HelmState{
|
||||
ReleaseSetSpec: ReleaseSetSpec{
|
||||
Releases: tt.releases,
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
RenderedValues: map[string]interface{}{},
|
||||
}
|
||||
for j := range tt.releases {
|
||||
flags, _, errs := state.flagsForDiff(tt.helm, &tt.releases[j], false, 1)
|
||||
if errs != nil {
|
||||
t.Errorf("unexpected error: %v", errs)
|
||||
}
|
||||
if !reflect.DeepEqual(flags, tt.wantDiffFlags) {
|
||||
t.Errorf("HelmState.flagsForDiff() for [%s][%s] = %v, want %v", tt.name, tt.releases[j].Name, flags, tt.wantDiffFlags)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestHelmState_SyncReleasesCleanup(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
|
|
|
|||
Loading…
Reference in New Issue