Configure release namespace in runner constructor

This commit is contained in:
Hidde Beydals 2020-10-02 19:04:30 +02:00
parent 4379ef33a8
commit 899e8bedc7
4 changed files with 29 additions and 6 deletions

View File

@ -78,6 +78,13 @@ jobs:
echo -e "$RESULT\n\ndoes not equal\n\n$EXPECTED"
exit 1
fi
- name: Run target namespace test
run: |
kubectl -n helm-system apply -f config/testdata/targetnamespace
kubectl -n helm-system wait helmreleases/targetnamespace --for=condition=ready --timeout=4m
# Confirm release in "default" namespace
kubectl -n default get deployment default-targetnamespace-podinfo
- name: Run install fail test
run: |
test_name=install-fail

View File

@ -0,0 +1,15 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: targetnamespace
spec:
interval: 5m
chart:
spec:
chart: podinfo
version: '>=4.0.0 <5.0.0'
sourceRef:
kind: HelmRepository
name: podinfo
interval: 1m
targetNamespace: default

View File

@ -281,7 +281,7 @@ func (r *HelmReleaseReconciler) reconcileChart(ctx context.Context, hr *v2.HelmR
func (r *HelmReleaseReconciler) reconcileRelease(ctx context.Context, log logr.Logger,
hr v2.HelmRelease, chart *chart.Chart, values chartutil.Values) (v2.HelmRelease, error) {
// Initialize Helm action runner
run, err := runner.NewRunner(r.Config, hr.Namespace, r.Log)
run, err := runner.NewRunner(r.Config, hr.GetReleaseNamespace(), hr.GetNamespace(), r.Log)
if err != nil {
return v2.HelmReleaseNotReady(hr, v2.InitFailedReason, "failed to initialize Helm action runner"), err
}
@ -606,7 +606,7 @@ func (r *HelmReleaseReconciler) garbageCollectHelmChart(ctx context.Context, hr
// garbageCollectHelmRelease uninstalls the deployed Helm release of
// the given v2beta1.HelmRelease.
func (r *HelmReleaseReconciler) garbageCollectHelmRelease(logger logr.Logger, hr v2.HelmRelease) error {
run, err := runner.NewRunner(r.Config, hr.Namespace, logger)
run, err := runner.NewRunner(r.Config, hr.GetReleaseNamespace(), hr.GetNamespace(), logger)
if err != nil {
return err
}

View File

@ -39,15 +39,16 @@ type Runner struct {
}
// NewRunner constructs a new Runner configured to run Helm actions with the
// given rest.Config, and the storage namespace configured to the provided
// namespace.
func NewRunner(clusterCfg *rest.Config, namespace string, logger logr.Logger) (*Runner, error) {
// given rest.Config, and the release and storage namespace configured to the
// provided values.
func NewRunner(clusterCfg *rest.Config, releaseNamespace, storageNamespace string, logger logr.Logger) (*Runner, error) {
cfg := new(action.Configuration)
if err := cfg.Init(&genericclioptions.ConfigFlags{
APIServer: &clusterCfg.Host,
CAFile: &clusterCfg.CAFile,
BearerToken: &clusterCfg.BearerToken,
}, namespace, "secret", debugLogger(logger)); err != nil {
Namespace: &releaseNamespace,
}, storageNamespace, "secret", debugLogger(logger)); err != nil {
return nil, err
}
return &Runner{config: cfg}, nil