Skip to content

Commit

Permalink
fix(cluster): delete addons when delete cluster
Browse files Browse the repository at this point in the history
Signed-off-by: Tengfei Wang <[email protected]>
  • Loading branch information
davidwtf authored and tke-robot committed Jun 5, 2020
1 parent 6f5c8b0 commit 2b4443e
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
5 changes: 5 additions & 0 deletions pkg/platform/controller/addon/ipam/ipam_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -651,6 +651,11 @@ func (c *Controller) uninstallIPAM(ctx context.Context, ipam *v1.IPAM) error {
if err != nil {
return err
}
if cluster.Status.Phase == v1.ClusterTerminating {
log.Info(fmt.Sprintf("Keep the components of IPAM %s when deleting the cluster", ipam.Name))
return nil
}

kubeClient, err := util.BuildExternalClientSet(ctx, cluster, c.client.PlatformV1())
if err != nil {
return err
Expand Down
5 changes: 5 additions & 0 deletions pkg/platform/controller/addon/tappcontroller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,11 @@ func (c *Controller) uninstallTappController(ctx context.Context, tappController
if err != nil {
return err
}
if cluster.Status.Phase == v1.ClusterTerminating {
log.Info(fmt.Sprintf("Keep the components of TappController %s when deleting the cluster", tappController.Name))
return nil
}

kubeClient, err := util.BuildExternalClientSet(ctx, cluster, c.client.PlatformV1())
if err != nil {
return err
Expand Down
52 changes: 52 additions & 0 deletions pkg/platform/controller/cluster/deletion/cluster_deleter.go
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,8 @@ type deleteResourceFunc func(ctx context.Context, deleter *clusterDeleter, clust
var deleteResourceFuncs = []deleteResourceFunc{
deletePersistentEvent,
deleteHelm,
deleteIPAM,
deleteTappControllers,
deleteClusterProvider,
deleteMachine,
deleteClusterCredential,
Expand Down Expand Up @@ -318,6 +320,56 @@ func deleteHelm(ctx context.Context, deleter *clusterDeleter, cluster *platformv
return nil
}

func deleteIPAM(ctx context.Context, deleter *clusterDeleter, cluster *platformv1.Cluster) error {
log.Info("Cluster controller - deleteIPAM", log.String("clusterName", cluster.Name))

listOpt := metav1.ListOptions{
FieldSelector: fmt.Sprintf("spec.clusterName=%s", cluster.Name),
}
ipamList, err := deleter.platformClient.IPAMs().List(ctx, listOpt)
if err != nil {
return err
}
if len(ipamList.Items) == 0 {
return nil
}
background := metav1.DeletePropagationBackground
deleteOpt := metav1.DeleteOptions{PropagationPolicy: &background}
for _, ipam := range ipamList.Items {
if err := deleter.platformClient.IPAMs().Delete(ctx, ipam.ObjectMeta.Name, deleteOpt); err != nil {
if !errors.IsNotFound(err) {
return err
}
}
}
return nil
}

func deleteTappControllers(ctx context.Context, deleter *clusterDeleter, cluster *platformv1.Cluster) error {
log.Info("Cluster controller - deleteTappControllers", log.String("clusterName", cluster.Name))

listOpt := metav1.ListOptions{
FieldSelector: fmt.Sprintf("spec.clusterName=%s", cluster.Name),
}
tappControllerList, err := deleter.platformClient.TappControllers().List(ctx, listOpt)
if err != nil {
return err
}
if len(tappControllerList.Items) == 0 {
return nil
}
background := metav1.DeletePropagationBackground
deleteOpt := metav1.DeleteOptions{PropagationPolicy: &background}
for _, item := range tappControllerList.Items {
if err := deleter.platformClient.TappControllers().Delete(ctx, item.Name, deleteOpt); err != nil {
if !errors.IsNotFound(err) {
return err
}
}
}
return nil
}

func deleteClusterProvider(ctx context.Context, deleter *clusterDeleter, cluster *platformv1.Cluster) error {
log.Info("Cluster controller - deleteClusterProvider", log.String("clusterName", cluster.Name))

Expand Down

0 comments on commit 2b4443e

Please sign in to comment.