fix(#507): support assign --post-renderer within helmfile flags and helmdefault or release config

1. only implement post-renderer flags this patch
2. As mumoshu advise, add helmfile flags `--post-render` and add the
   postRenderer  config in helmDefaults and release. the priority is
   helmfile flags > release > helmDefaults.
3. fix the test case in state_test.go and some other tests.

Signed-off-by: guofutan <guofutan@tencent.com>
Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
guofutan
2022-12-13 13:12:07 +08:00
committed by yxxhero
parent 1f0f7ec8d6
commit 0a953731b0
18 changed files with 320 additions and 102 deletions
+2
View File
@@ -1392,6 +1392,7 @@ Do you really want to apply?
}
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
r.helm.SetPostRenderer(c.PostRenderer())
// We deleted releases by traversing the DAG in reverse order
if len(releasesToBeDeleted) > 0 {
@@ -1774,6 +1775,7 @@ Do you really want to sync?
var errs []error
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
r.helm.SetPostRenderer(c.PostRenderer())
// Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies
st.Releases = selectedAndNeededReleases
+14
View File
@@ -2304,6 +2304,10 @@ func (c configImpl) SkipCharts() bool {
return c.skipCharts
}
func (c configImpl) PostRenderer() string {
return ""
}
type applyConfig struct {
args string
values []string
@@ -2334,6 +2338,7 @@ type applyConfig struct {
wait bool
waitForJobs bool
reuseValues bool
postRenderer string
// template-only options
includeCRDs, skipTests bool
@@ -2473,6 +2478,10 @@ func (a applyConfig) ReuseValues() bool {
return a.reuseValues
}
func (a applyConfig) PostRenderer() string {
return a.postRenderer
}
type depsConfig struct {
skipRepos bool
includeTransitiveNeeds bool
@@ -2555,6 +2564,11 @@ func (helm *mockHelmExec) SetHelmBinary(bin string) {
}
func (helm *mockHelmExec) SetEnableLiveOutput(enableLiveOutput bool) {
}
func (helm *mockHelmExec) SetPostRenderer(postRenderer string) {
}
func (helm *mockHelmExec) GetPostRenderer() string {
return ""
}
func (helm *mockHelmExec) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string, passCredentials string, skipTLSVerify string) error {
helm.repos = append(helm.repos, mockRepo{Name: name})
return nil
+3
View File
@@ -42,6 +42,7 @@ type ReposConfigProvider interface {
type ApplyConfigProvider interface {
Args() string
PostRenderer() string
Values() []string
Set() []string
@@ -80,6 +81,7 @@ type ApplyConfigProvider interface {
type SyncConfigProvider interface {
Args() string
PostRenderer() string
Values() []string
Set() []string
@@ -186,6 +188,7 @@ type FetchConfigProvider interface {
type TemplateConfigProvider interface {
Args() string
PostRenderer() string
Values() []string
Set() []string
+6
View File
@@ -53,6 +53,12 @@ func (helm *noCallHelmExec) SetHelmBinary(bin string) {
func (helm *noCallHelmExec) SetEnableLiveOutput(enableLiveOutput bool) {
helm.doPanic()
}
func (helm *noCallHelmExec) SetPostRenderer(postRenderer string) {
}
func (helm *noCallHelmExec) GetPostRenderer() string {
return ""
}
func (helm *noCallHelmExec) AddRepo(name, repository, cafile, certfile, keyfile, username, password string, managed string, passCredentials string, skipTLSVerify string) error {
helm.doPanic()
return nil