From 969a46f4d6f2a1ab249de180210ae770d810ee39 Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Mon, 21 Sep 2020 23:27:38 +0200 Subject: [PATCH] internal/helm: return callback on empty TLS config ...and no-op on empty valuesFile string. --- controllers/helmchart_controller.go | 12 ++++-------- controllers/helmrepository_controller.go | 4 +--- internal/helm/chart.go | 2 +- internal/helm/getter.go | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/controllers/helmchart_controller.go b/controllers/helmchart_controller.go index 2467f0af..4ead3e63 100644 --- a/controllers/helmchart_controller.go +++ b/controllers/helmchart_controller.go @@ -296,9 +296,7 @@ func (r *HelmChartReconciler) reconcileFromHelmRepository(ctx context.Context, err = fmt.Errorf("auth options error: %w", err) return sourcev1.HelmChartNotReady(chart, sourcev1.AuthenticationFailedReason, err.Error()), err } - if cleanup != nil { - defer cleanup() - } + defer cleanup() clientOpts = opts } @@ -435,11 +433,9 @@ func (r *HelmChartReconciler) reconcileFromTarballArtifact(ctx context.Context, return chart, nil } - // Overwrite default values if instructed to - if chart.Spec.ValuesFile != "" { - if err := helm.OverwriteChartDefaultValues(chartPath, chart.Spec.ValuesFile); err != nil { - return sourcev1.HelmChartNotReady(chart, sourcev1.ChartPackageFailedReason, err.Error()), err - } + // Overwrite default values if configured + if err := helm.OverwriteChartDefaultValues(chartPath, chart.Spec.ValuesFile); err != nil { + return sourcev1.HelmChartNotReady(chart, sourcev1.ChartPackageFailedReason, err.Error()), err } // Ensure artifact directory exists diff --git a/controllers/helmrepository_controller.go b/controllers/helmrepository_controller.go index 7fbe7ef0..8fe19cb1 100644 --- a/controllers/helmrepository_controller.go +++ b/controllers/helmrepository_controller.go @@ -195,9 +195,7 @@ func (r *HelmRepositoryReconciler) reconcile(ctx context.Context, repository sou err = fmt.Errorf("auth options error: %w", err) return sourcev1.HelmRepositoryNotReady(repository, sourcev1.AuthenticationFailedReason, err.Error()), err } - if cleanup != nil { - defer cleanup() - } + defer cleanup() clientOpts = opts } diff --git a/internal/helm/chart.go b/internal/helm/chart.go index 1ee16328..b7bbea89 100644 --- a/internal/helm/chart.go +++ b/internal/helm/chart.go @@ -28,7 +28,7 @@ import ( // OverwriteChartDefaultValues overwrites the chart default values file in the // given chartPath with the contents of the given valuesFile. func OverwriteChartDefaultValues(chartPath, valuesFile string) error { - if valuesFile == chartutil.ValuesfileName { + if valuesFile == "" || valuesFile == chartutil.ValuesfileName { return nil } srcPath := path.Join(chartPath, valuesFile) diff --git a/internal/helm/getter.go b/internal/helm/getter.go index 05145ae3..7abb549a 100644 --- a/internal/helm/getter.go +++ b/internal/helm/getter.go @@ -60,7 +60,7 @@ func TLSClientConfigFromSecret(secret corev1.Secret) (getter.Option, func(), err certBytes, keyBytes, caBytes := secret.Data["certFile"], secret.Data["keyFile"], secret.Data["caFile"] switch { case len(certBytes)+len(keyBytes)+len(caBytes) == 0: - return nil, nil, nil + return nil, func() {}, nil case (len(certBytes) > 0 && len(keyBytes) == 0) || (len(keyBytes) > 0 && len(certBytes) == 0): return nil, nil, fmt.Errorf("invalid '%s' secret data: fields 'certFile' and 'keyFile' require each other's presence", secret.Name)