diff --git a/pkg/addon-operator/operator.go b/pkg/addon-operator/operator.go index 0f7d43e25..184fdfed9 100644 --- a/pkg/addon-operator/operator.go +++ b/pkg/addon-operator/operator.go @@ -352,13 +352,7 @@ func (op *AddonOperator) WithLeaderElector(config *leaderelection.LeaderElection // Returns an error if any initialization step fails. func (op *AddonOperator) Setup() error { // Helm client factory. - helmClient, err := helm.InitHelmClientFactory(&helm.Options{ - Namespace: op.DefaultNamespace, - HistoryMax: app.Helm3HistoryMax, - Timeout: app.Helm3Timeout, - Logger: op.Logger.Named("helm"), - MetricStorage: op.MetricStorage, - }, op.CRDExtraLabels) + helmClient, err := helm.InitHelmClientFactory(op.helmOptions(), op.CRDExtraLabels) if err != nil { return fmt.Errorf("initialize Helm: %s", err) } @@ -395,6 +389,17 @@ func (op *AddonOperator) Setup() error { return nil } +func (op *AddonOperator) helmOptions() *helm.Options { + return &helm.Options{ + Namespace: op.DefaultNamespace, + HistoryMax: app.Helm3HistoryMax, + Timeout: app.Helm3Timeout, + HelmIgnoreRelease: app.HelmIgnoreRelease, + Logger: op.Logger.Named("helm"), + MetricStorage: op.MetricStorage, + } +} + func ensureTempDirectory(inDir string) (string, error) { // No path to temporary dir, use default temporary dir. if inDir == "" { diff --git a/pkg/addon-operator/operator_test.go b/pkg/addon-operator/operator_test.go index a1ef8ebd7..11555c294 100644 --- a/pkg/addon-operator/operator_test.go +++ b/pkg/addon-operator/operator_test.go @@ -19,6 +19,7 @@ import ( "sigs.k8s.io/yaml" "github.com/flant/addon-operator/pkg/addon-operator/converge" + "github.com/flant/addon-operator/pkg/app" mockhelm "github.com/flant/addon-operator/pkg/helm/test/mock" mockhelmresmgr "github.com/flant/addon-operator/pkg/helm_resources_manager/test/mock" . "github.com/flant/addon-operator/pkg/hook/types" @@ -172,6 +173,18 @@ func assembleTestAddonOperator(t *testing.T, configPath string) (*AddonOperator, return op, result } +func TestHelmOptionsIncludeIgnoredRelease(t *testing.T) { + g := NewWithT(t) + previous := app.HelmIgnoreRelease + app.HelmIgnoreRelease = "release-to-ignore" + t.Cleanup(func() { app.HelmIgnoreRelease = previous }) + + op := &AddonOperator{Logger: log.NewNop()} + options := op.helmOptions() + + g.Expect(options.HelmIgnoreRelease).To(Equal("release-to-ignore")) +} + func convergeDone(op *AddonOperator) func(g Gomega) bool { return func(g Gomega) bool { if op.IsStartupConvergeDone() {