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
|
||||
}
|
||||
|
||||
// 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 {
|
||||
flags := []string{}
|
||||
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) {
|
||||
var flags []string
|
||||
flags = st.appendChartVersionFlags(flags, release)
|
||||
if release.EnableDNS != nil && *release.EnableDNS || release.EnableDNS == nil && st.HelmDefaults.EnableDNS {
|
||||
flags = append(flags, "--enable-dns")
|
||||
}
|
||||
flags = st.appendEnableDNSFlags(flags, release)
|
||||
|
||||
flags = st.appendWaitFlags(flags, helm, release, opt)
|
||||
flags = st.appendWaitForJobsFlags(flags, release, opt)
|
||||
|
|
@ -2901,6 +2907,7 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec,
|
|||
settings := cli.New()
|
||||
var flags []string
|
||||
flags = st.appendChartVersionFlags(flags, release)
|
||||
flags = st.appendEnableDNSFlags(flags, release)
|
||||
|
||||
disableOpenAPIValidation := false
|
||||
if release.DisableOpenAPIValidation != nil {
|
||||
|
|
|
|||
|
|
@ -1858,14 +1858,19 @@ func TestHelmState_DiffReleases(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestHelmState_DiffFlags(t *testing.T) {
|
||||
enable := true
|
||||
disable := false
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
defaults HelmSpec
|
||||
releases []ReleaseSpec
|
||||
helm *exectest.Helm
|
||||
wantDiffFlags []string
|
||||
}{
|
||||
{
|
||||
name: "release with api version and kubeversion",
|
||||
defaults: HelmSpec{},
|
||||
releases: []ReleaseSpec{
|
||||
{
|
||||
Name: "releaseName",
|
||||
|
|
@ -1879,6 +1884,7 @@ func TestHelmState_DiffFlags(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "release with kubeversion and plain http which is ignored",
|
||||
defaults: HelmSpec{},
|
||||
releases: []ReleaseSpec{
|
||||
{
|
||||
Name: "releaseName",
|
||||
|
|
@ -1890,6 +1896,44 @@ func TestHelmState_DiffFlags(t *testing.T) {
|
|||
helm: &exectest.Helm{},
|
||||
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 {
|
||||
tt := tests[i]
|
||||
|
|
@ -1897,6 +1941,7 @@ func TestHelmState_DiffFlags(t *testing.T) {
|
|||
state := &HelmState{
|
||||
ReleaseSetSpec: ReleaseSetSpec{
|
||||
Releases: tt.releases,
|
||||
HelmDefaults: tt.defaults,
|
||||
},
|
||||
logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
|
|
|
|||
Loading…
Reference in New Issue