Skip to content

Commit

Permalink
Merge pull request #3543 from BeckerMax/bug/deploy-order-grm
Browse files Browse the repository at this point in the history
Fix gardener-resource-manager deletion order
  • Loading branch information
timuthy committed Feb 12, 2021
2 parents 960a172 + db21799 commit 5600eb6
Showing 1 changed file with 36 additions and 17 deletions.
53 changes: 36 additions & 17 deletions pkg/operation/seed/seed.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@ package seed
import (
"context"
"encoding/json"
"errors"
"fmt"
"path/filepath"
"strings"
"time"

"github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants"
gardencorelisters "github.com/gardener/gardener/pkg/client/core/listers/core/v1beta1"
Expand Down Expand Up @@ -814,6 +816,10 @@ func BootstrapCluster(ctx context.Context, k8sGardenClient, k8sSeedClient kubern
return err
}

if err := deployGardenerResourceManager(ctx, k8sSeedClient, v1beta1constants.GardenNamespace, imageVector); err != nil {
return err
}

// Deploy component specific resources
bootstrapComponents, err := bootstrapComponents(k8sSeedClient, v1beta1constants.GardenNamespace, imageVector, imageVectorOverwrites)
if err != nil {
Expand Down Expand Up @@ -847,25 +853,29 @@ func DebootstrapCluster(ctx context.Context, k8sSeedClient kubernetes.Interface)
})
}

return flow.Parallel(debootstrapFunctions...)(ctx)
}
if err = flow.Parallel(debootstrapFunctions...)(ctx); err != nil {
return err
}

func bootstrapComponents(c kubernetes.Interface, namespace string, imageVector imagevector.ImageVector, imageVectorOverwrites map[string]string) ([]component.DeployWaiter, error) {
var components []component.DeployWaiter
return destroyGardenerResourceManager(ctx, k8sSeedClient)
}

kubernetesVersion, err := semver.NewVersion(c.Version())
if err != nil {
return nil, err
func destroyGardenerResourceManager(ctx context.Context, c kubernetes.Interface) error {
managedResources := &v1alpha1.ManagedResourceList{}
if err := c.Client().List(ctx, managedResources, client.InNamespace(v1beta1constants.GardenNamespace)); err != nil {
return err
}
if len(managedResources.Items) == 0 {
rm := resourcemanager.New(c.Client(), v1beta1constants.GardenNamespace, "", 0, resourcemanager.Values{})
return rm.Destroy(ctx)
}
return errors.New("cannot delete gardener-resource-manager there are managed resources in the garden namespace left")
}

// gardener-resource-manager
var grmImage string
if imageVector != nil {
image, err := imageVector.FindImage(common.GardenerResourceManagerImageName, imagevector.RuntimeVersion(c.Version()), imagevector.TargetVersion(c.Version()))
if err != nil {
return nil, err
}
grmImage = image.String()
func deployGardenerResourceManager(ctx context.Context, c kubernetes.Interface, namespace string, imageVector imagevector.ImageVector) error {
image, err := imageVector.FindImage(common.GardenerResourceManagerImageName, imagevector.RuntimeVersion(c.Version()), imagevector.TargetVersion(c.Version()))
if err != nil {
return err
}
cfg := resourcemanager.Values{
ConcurrentSyncs: pointer.Int32Ptr(20),
Expand All @@ -874,8 +884,17 @@ func bootstrapComponents(c kubernetes.Interface, namespace string, imageVector i

SyncPeriod: utils.DurationPtr(time.Hour),
}
rm := resourcemanager.New(c.Client(), namespace, grmImage, 1, cfg)
components = append(components, rm)
rm := resourcemanager.New(c.Client(), namespace, image.String(), 1, cfg)
return rm.Deploy(ctx)
}

func bootstrapComponents(c kubernetes.Interface, namespace string, imageVector imagevector.ImageVector, imageVectorOverwrites map[string]string) ([]component.DeployWaiter, error) {
var components []component.DeployWaiter

kubernetesVersion, err := semver.NewVersion(c.Version())
if err != nil {
return nil, err
}

// cluster-autoscaler
components = append(components, clusterautoscaler.NewBootstrapper(c.Client(), namespace))
Expand Down

0 comments on commit 5600eb6

Please sign in to comment.