Skip to content

Commit e079429

Browse files
authored
Merge pull request #102 from fluxcd/fix-target-namespace
Configure release namespace in runner constructor
2 parents 4379ef3 + 899e8be commit e079429

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

.github/workflows/e2e.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ jobs:
7878
echo -e "$RESULT\n\ndoes not equal\n\n$EXPECTED"
7979
exit 1
8080
fi
81+
- name: Run target namespace test
82+
run: |
83+
kubectl -n helm-system apply -f config/testdata/targetnamespace
84+
kubectl -n helm-system wait helmreleases/targetnamespace --for=condition=ready --timeout=4m
85+
86+
# Confirm release in "default" namespace
87+
kubectl -n default get deployment default-targetnamespace-podinfo
8188
- name: Run install fail test
8289
run: |
8390
test_name=install-fail
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: helm.toolkit.fluxcd.io/v2beta1
2+
kind: HelmRelease
3+
metadata:
4+
name: targetnamespace
5+
spec:
6+
interval: 5m
7+
chart:
8+
spec:
9+
chart: podinfo
10+
version: '>=4.0.0 <5.0.0'
11+
sourceRef:
12+
kind: HelmRepository
13+
name: podinfo
14+
interval: 1m
15+
targetNamespace: default

controllers/helmrelease_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ func (r *HelmReleaseReconciler) reconcileChart(ctx context.Context, hr *v2.HelmR
281281
func (r *HelmReleaseReconciler) reconcileRelease(ctx context.Context, log logr.Logger,
282282
hr v2.HelmRelease, chart *chart.Chart, values chartutil.Values) (v2.HelmRelease, error) {
283283
// Initialize Helm action runner
284-
run, err := runner.NewRunner(r.Config, hr.Namespace, r.Log)
284+
run, err := runner.NewRunner(r.Config, hr.GetReleaseNamespace(), hr.GetNamespace(), r.Log)
285285
if err != nil {
286286
return v2.HelmReleaseNotReady(hr, v2.InitFailedReason, "failed to initialize Helm action runner"), err
287287
}
@@ -606,7 +606,7 @@ func (r *HelmReleaseReconciler) garbageCollectHelmChart(ctx context.Context, hr
606606
// garbageCollectHelmRelease uninstalls the deployed Helm release of
607607
// the given v2beta1.HelmRelease.
608608
func (r *HelmReleaseReconciler) garbageCollectHelmRelease(logger logr.Logger, hr v2.HelmRelease) error {
609-
run, err := runner.NewRunner(r.Config, hr.Namespace, logger)
609+
run, err := runner.NewRunner(r.Config, hr.GetReleaseNamespace(), hr.GetNamespace(), logger)
610610
if err != nil {
611611
return err
612612
}

internal/runner/runner.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@ type Runner struct {
3939
}
4040

4141
// NewRunner constructs a new Runner configured to run Helm actions with the
42-
// given rest.Config, and the storage namespace configured to the provided
43-
// namespace.
44-
func NewRunner(clusterCfg *rest.Config, namespace string, logger logr.Logger) (*Runner, error) {
42+
// given rest.Config, and the release and storage namespace configured to the
43+
// provided values.
44+
func NewRunner(clusterCfg *rest.Config, releaseNamespace, storageNamespace string, logger logr.Logger) (*Runner, error) {
4545
cfg := new(action.Configuration)
4646
if err := cfg.Init(&genericclioptions.ConfigFlags{
4747
APIServer: &clusterCfg.Host,
4848
CAFile: &clusterCfg.CAFile,
4949
BearerToken: &clusterCfg.BearerToken,
50-
}, namespace, "secret", debugLogger(logger)); err != nil {
50+
Namespace: &releaseNamespace,
51+
}, storageNamespace, "secret", debugLogger(logger)); err != nil {
5152
return nil, err
5253
}
5354
return &Runner{config: cfg}, nil

0 commit comments

Comments
 (0)