From 9d164de18b153f92e17615e6f819ad9c21eda717 Mon Sep 17 00:00:00 2001 From: Malte Poll <1780588+malt3@users.noreply.github.com> Date: Thu, 22 Feb 2024 12:18:55 +0100 Subject: [PATCH] helm: avoid waiting for non-essential services (#2939) 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) }