From 83ee711c7705a779e7c4a6112a36df4ce44d8f45 Mon Sep 17 00:00:00 2001 From: Malte Poll <1780588+malt3@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:27:43 +0100 Subject: [PATCH] helm: avoid waiting for non-essential services In our e2e tests, we see a lot of "etcd-leader changed" errors while deploying non-essential helm charts. If this transient error occurs, helm gets into a broken state where it cannot uninstall cleanly and thus any retry attempts fail. By not waiting for the installation of helm charts to succeed, we can avoid making most of the kubernetes API calls while control-plane nodes are joining. This makes "constellation apply" faster and more resilient. --- internal/constellation/helm/loader.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/constellation/helm/loader.go b/internal/constellation/helm/loader.go index 3b3c7ff07..6f6c95d4f 100644 --- a/internal/constellation/helm/loader.go +++ b/internal/constellation/helm/loader.go @@ -151,7 +151,7 @@ func (i *chartLoader) loadReleases(conformanceMode, deployCSIDriver bool, helmWa releases := releaseApplyOrder{ciliumRelease, conServicesRelease, certManagerRelease, operatorRelease} if deployCSIDriver { - csiRelease, err := i.loadRelease(csiInfo, helmWaitMode) + csiRelease, err := i.loadRelease(csiInfo, WaitModeNone) if err != nil { return nil, fmt.Errorf("loading snapshot CRDs: %w", err) } @@ -163,14 +163,14 @@ func (i *chartLoader) loadReleases(conformanceMode, deployCSIDriver bool, helmWa releases = append(releases, csiRelease) } if i.csp == cloudprovider.AWS { - awsRelease, err := i.loadRelease(awsLBControllerInfo, helmWaitMode) + awsRelease, err := i.loadRelease(awsLBControllerInfo, WaitModeNone) if err != nil { return nil, fmt.Errorf("loading aws-services: %w", err) } releases = append(releases, awsRelease) } if i.csp == cloudprovider.OpenStack && openStackCfg.DeployYawolLoadBalancer != nil && *openStackCfg.DeployYawolLoadBalancer { - yawolRelease, err := i.loadRelease(yawolLBControllerInfo, helmWaitMode) + yawolRelease, err := i.loadRelease(yawolLBControllerInfo, WaitModeNone) if err != nil { return nil, fmt.Errorf("loading yawol chart: %w", err) }