Feat: support helm flag --enable-dns (#830)
* Support helm flag --enable-dns Signed-off-by: vincent_stchu <24803055+vincentstchu@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									b7233d1238
								
							
						
					
					
						commit
						3d0f0afe3a
					
				|  | @ -157,6 +157,8 @@ type HelmSpec struct { | ||||||
| 	KubeContext string   `yaml:"kubeContext,omitempty"` | 	KubeContext string   `yaml:"kubeContext,omitempty"` | ||||||
| 	Args        []string `yaml:"args,omitempty"` | 	Args        []string `yaml:"args,omitempty"` | ||||||
| 	Verify      bool     `yaml:"verify"` | 	Verify      bool     `yaml:"verify"` | ||||||
|  | 	// EnableDNS, when set to true, enable DNS lookups when rendering templates
 | ||||||
|  | 	EnableDNS bool `yaml:"enableDNS"` | ||||||
| 	// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
 | 	// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
 | ||||||
| 	Devel bool `yaml:"devel"` | 	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, 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
 | ||||||
|  | @ -233,6 +235,8 @@ type ReleaseSpec struct { | ||||||
| 	// Verify enables signature verification on fetched chart.
 | 	// Verify enables signature verification on fetched chart.
 | ||||||
| 	// Beware some (or many?) chart repositories and charts don't seem to support it.
 | 	// Beware some (or many?) chart repositories and charts don't seem to support it.
 | ||||||
| 	Verify *bool `yaml:"verify,omitempty"` | 	Verify *bool `yaml:"verify,omitempty"` | ||||||
|  | 	// EnableDNS, when set to true, enable DNS lookups when rendering templates
 | ||||||
|  | 	EnableDNS *bool `yaml:"enableDNS,omitempty"` | ||||||
| 	// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
 | 	// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
 | ||||||
| 	Devel *bool `yaml:"devel,omitempty"` | 	Devel *bool `yaml:"devel,omitempty"` | ||||||
| 	// 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, 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
 | ||||||
|  | @ -2477,6 +2481,10 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp | ||||||
| 		flags = append(flags, "--verify") | 		flags = append(flags, "--verify") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if release.EnableDNS != nil && *release.EnableDNS || release.EnableDNS == nil && st.HelmDefaults.EnableDNS { | ||||||
|  | 		flags = append(flags, "--enable-dns") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	if release.Wait != nil && *release.Wait || release.Wait == nil && st.HelmDefaults.Wait { | 	if release.Wait != nil && *release.Wait || release.Wait == nil && st.HelmDefaults.Wait { | ||||||
| 		flags = append(flags, "--wait") | 		flags = append(flags, "--wait") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -235,6 +235,41 @@ func TestHelmState_flagsForUpgrade(t *testing.T) { | ||||||
| 				"--namespace", "test-namespace", | 				"--namespace", "test-namespace", | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name: "enable-dns", | ||||||
|  | 			defaults: HelmSpec{ | ||||||
|  | 				EnableDNS: false, | ||||||
|  | 			}, | ||||||
|  | 			release: &ReleaseSpec{ | ||||||
|  | 				Chart:     "test/chart", | ||||||
|  | 				Version:   "0.1", | ||||||
|  | 				EnableDNS: &enable, | ||||||
|  | 				Name:      "test-charts", | ||||||
|  | 				Namespace: "test-namespace", | ||||||
|  | 			}, | ||||||
|  | 			want: []string{ | ||||||
|  | 				"--version", "0.1", | ||||||
|  | 				"--enable-dns", | ||||||
|  | 				"--namespace", "test-namespace", | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name: "enable-dns-from-default", | ||||||
|  | 			defaults: HelmSpec{ | ||||||
|  | 				EnableDNS: true, | ||||||
|  | 			}, | ||||||
|  | 			release: &ReleaseSpec{ | ||||||
|  | 				Chart:     "test/chart", | ||||||
|  | 				Version:   "0.1", | ||||||
|  | 				EnableDNS: &disable, | ||||||
|  | 				Name:      "test-charts", | ||||||
|  | 				Namespace: "test-namespace", | ||||||
|  | 			}, | ||||||
|  | 			want: []string{ | ||||||
|  | 				"--version", "0.1", | ||||||
|  | 				"--namespace", "test-namespace", | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			name: "force", | 			name: "force", | ||||||
| 			defaults: HelmSpec{ | 			defaults: HelmSpec{ | ||||||
|  |  | ||||||
|  | @ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) { | ||||||
| 	run(testcase{ | 	run(testcase{ | ||||||
| 		subject: "baseline", | 		subject: "baseline", | ||||||
| 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, | 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, | ||||||
| 		want:    "foo-values-77cb4d7f9b", | 		want:    "foo-values-76d4857b56", | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	run(testcase{ | 	run(testcase{ | ||||||
| 		subject: "different bytes content", | 		subject: "different bytes content", | ||||||
| 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, | 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, | ||||||
| 		data:    []byte(`{"k":"v"}`), | 		data:    []byte(`{"k":"v"}`), | ||||||
| 		want:    "foo-values-6f6bc74b55", | 		want:    "foo-values-55d59fb487", | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	run(testcase{ | 	run(testcase{ | ||||||
| 		subject: "different map content", | 		subject: "different map content", | ||||||
| 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, | 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"}, | ||||||
| 		data:    map[string]interface{}{"k": "v"}, | 		data:    map[string]interface{}{"k": "v"}, | ||||||
| 		want:    "foo-values-57dfc6cb8f", | 		want:    "foo-values-7c8d99f9f7", | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	run(testcase{ | 	run(testcase{ | ||||||
| 		subject: "different chart", | 		subject: "different chart", | ||||||
| 		release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, | 		release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"}, | ||||||
| 		want:    "foo-values-74594bb67", | 		want:    "foo-values-7467f76549", | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	run(testcase{ | 	run(testcase{ | ||||||
| 		subject: "different name", | 		subject: "different name", | ||||||
| 		release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, | 		release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"}, | ||||||
| 		want:    "bar-values-bdbb54d7", | 		want:    "bar-values-dbdf465b7", | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	run(testcase{ | 	run(testcase{ | ||||||
| 		subject: "specific ns", | 		subject: "specific ns", | ||||||
| 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, | 		release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"}, | ||||||
| 		want:    "myns-foo-values-677dcd477", | 		want:    "myns-foo-values-6d4874d757", | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
| 	for id, n := range ids { | 	for id, n := range ids { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue