Merge pull request #5889 from mszacillo/cleanup-work-immediately

Cleanup works from cluster if purgemode is immediately
This commit is contained in:
karmada-bot 2024-11-28 19:17:04 +08:00 committed by GitHub
commit c8b033d47d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 1 deletions

View File

@ -186,7 +186,11 @@ func ObtainBindingSpecExistingClusters(bindingSpec workv1alpha2.ResourceBindingS
}
for _, task := range bindingSpec.GracefulEvictionTasks {
clusterNames.Insert(task.FromCluster)
// EvictionTasks with Immediately PurgeMode should not be treated as existing clusters
// Work on those clusters should be removed immediately and treated as orphans
if task.PurgeMode != policyv1alpha1.Immediately {
clusterNames.Insert(task.FromCluster)
}
}
return clusterNames

View File

@ -35,6 +35,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
"github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager"
@ -335,6 +336,36 @@ func TestObtainBindingSpecExistingClusters(t *testing.T) {
},
want: sets.New("member1", "member2", "member3"),
},
{
name: "unique cluster names with GracefulEvictionTasks with PurgeMode Immediately",
bindingSpec: workv1alpha2.ResourceBindingSpec{
Clusters: []workv1alpha2.TargetCluster{
{
Name: "member1",
Replicas: 2,
},
{
Name: "member2",
Replicas: 3,
},
},
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{
FromCluster: "member3",
PurgeMode: policyv1alpha1.Immediately,
},
{
FromCluster: "member4",
PurgeMode: policyv1alpha1.Graciously,
},
{
FromCluster: "member5",
PurgeMode: policyv1alpha1.Never,
},
},
},
want: sets.New("member1", "member2", "member4", "member5"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {