Fix enableDNS flag missing in diff command and refactor duplicate logic (#2147)
* Initial plan * Add enableDNS flag support to diff command Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com> * Extract EnableDNS flag logic into reusable function Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>
This commit is contained in:
parent
135ff63aa3
commit
d37f937c9e
|
|
@ -2699,6 +2699,14 @@ func (st *HelmState) appendKeyringFlags(flags []string, release *ReleaseSpec) []
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// appendEnableDNSFlags append the helm command-line flag for DNS resolution
|
||||||
|
func (st *HelmState) appendEnableDNSFlags(flags []string, release *ReleaseSpec) []string {
|
||||||
|
if release.EnableDNS != nil && *release.EnableDNS || release.EnableDNS == nil && st.HelmDefaults.EnableDNS {
|
||||||
|
flags = append(flags, "--enable-dns")
|
||||||
|
}
|
||||||
|
return flags
|
||||||
|
}
|
||||||
|
|
||||||
func (st *HelmState) kubeConnectionFlags(release *ReleaseSpec) []string {
|
func (st *HelmState) kubeConnectionFlags(release *ReleaseSpec) []string {
|
||||||
flags := []string{}
|
flags := []string{}
|
||||||
if release.KubeContext != "" {
|
if release.KubeContext != "" {
|
||||||
|
|
@ -2774,9 +2782,7 @@ func (st *HelmState) timeoutFlags(release *ReleaseSpec, ops *SyncOpts) []string
|
||||||
func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSpec, workerIndex int, opt *SyncOpts) ([]string, []string, error) {
|
func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSpec, workerIndex int, opt *SyncOpts) ([]string, []string, error) {
|
||||||
var flags []string
|
var flags []string
|
||||||
flags = st.appendChartVersionFlags(flags, release)
|
flags = st.appendChartVersionFlags(flags, release)
|
||||||
if release.EnableDNS != nil && *release.EnableDNS || release.EnableDNS == nil && st.HelmDefaults.EnableDNS {
|
flags = st.appendEnableDNSFlags(flags, release)
|
||||||
flags = append(flags, "--enable-dns")
|
|
||||||
}
|
|
||||||
|
|
||||||
flags = st.appendWaitFlags(flags, helm, release, opt)
|
flags = st.appendWaitFlags(flags, helm, release, opt)
|
||||||
flags = st.appendWaitForJobsFlags(flags, release, opt)
|
flags = st.appendWaitForJobsFlags(flags, release, opt)
|
||||||
|
|
@ -2901,6 +2907,7 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec,
|
||||||
settings := cli.New()
|
settings := cli.New()
|
||||||
var flags []string
|
var flags []string
|
||||||
flags = st.appendChartVersionFlags(flags, release)
|
flags = st.appendChartVersionFlags(flags, release)
|
||||||
|
flags = st.appendEnableDNSFlags(flags, release)
|
||||||
|
|
||||||
disableOpenAPIValidation := false
|
disableOpenAPIValidation := false
|
||||||
if release.DisableOpenAPIValidation != nil {
|
if release.DisableOpenAPIValidation != nil {
|
||||||
|
|
|
||||||
|
|
@ -1858,14 +1858,19 @@ func TestHelmState_DiffReleases(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestHelmState_DiffFlags(t *testing.T) {
|
func TestHelmState_DiffFlags(t *testing.T) {
|
||||||
|
enable := true
|
||||||
|
disable := false
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
defaults HelmSpec
|
||||||
releases []ReleaseSpec
|
releases []ReleaseSpec
|
||||||
helm *exectest.Helm
|
helm *exectest.Helm
|
||||||
wantDiffFlags []string
|
wantDiffFlags []string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "release with api version and kubeversion",
|
name: "release with api version and kubeversion",
|
||||||
|
defaults: HelmSpec{},
|
||||||
releases: []ReleaseSpec{
|
releases: []ReleaseSpec{
|
||||||
{
|
{
|
||||||
Name: "releaseName",
|
Name: "releaseName",
|
||||||
|
|
@ -1878,7 +1883,8 @@ func TestHelmState_DiffFlags(t *testing.T) {
|
||||||
wantDiffFlags: []string{"--api-versions", "helmfile.test/v1", "--api-versions", "helmfile.test/v2", "--kube-version", "1.21"},
|
wantDiffFlags: []string{"--api-versions", "helmfile.test/v1", "--api-versions", "helmfile.test/v2", "--kube-version", "1.21"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "release with kubeversion and plain http which is ignored",
|
name: "release with kubeversion and plain http which is ignored",
|
||||||
|
defaults: HelmSpec{},
|
||||||
releases: []ReleaseSpec{
|
releases: []ReleaseSpec{
|
||||||
{
|
{
|
||||||
Name: "releaseName",
|
Name: "releaseName",
|
||||||
|
|
@ -1890,13 +1896,52 @@ func TestHelmState_DiffFlags(t *testing.T) {
|
||||||
helm: &exectest.Helm{},
|
helm: &exectest.Helm{},
|
||||||
wantDiffFlags: []string{"--kube-version", "1.21"},
|
wantDiffFlags: []string{"--kube-version", "1.21"},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "release with enable-dns",
|
||||||
|
defaults: HelmSpec{EnableDNS: false},
|
||||||
|
releases: []ReleaseSpec{
|
||||||
|
{
|
||||||
|
Name: "releaseName",
|
||||||
|
Chart: "foo",
|
||||||
|
EnableDNS: &enable,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
helm: &exectest.Helm{},
|
||||||
|
wantDiffFlags: []string{"--enable-dns"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "release with disable-dns override",
|
||||||
|
defaults: HelmSpec{EnableDNS: true},
|
||||||
|
releases: []ReleaseSpec{
|
||||||
|
{
|
||||||
|
Name: "releaseName",
|
||||||
|
Chart: "foo",
|
||||||
|
EnableDNS: &disable,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
helm: &exectest.Helm{},
|
||||||
|
wantDiffFlags: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "release with enable-dns from default",
|
||||||
|
defaults: HelmSpec{EnableDNS: true},
|
||||||
|
releases: []ReleaseSpec{
|
||||||
|
{
|
||||||
|
Name: "releaseName",
|
||||||
|
Chart: "foo",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
helm: &exectest.Helm{},
|
||||||
|
wantDiffFlags: []string{"--enable-dns"},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
tt := tests[i]
|
tt := tests[i]
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
state := &HelmState{
|
state := &HelmState{
|
||||||
ReleaseSetSpec: ReleaseSetSpec{
|
ReleaseSetSpec: ReleaseSetSpec{
|
||||||
Releases: tt.releases,
|
Releases: tt.releases,
|
||||||
|
HelmDefaults: tt.defaults,
|
||||||
},
|
},
|
||||||
logger: logger,
|
logger: logger,
|
||||||
valsRuntime: valsRuntime,
|
valsRuntime: valsRuntime,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue