Merge pull request #5889 from mszacillo/cleanup-work-immediately
Cleanup works from cluster if purgemode is immediately
This commit is contained in:
commit
c8b033d47d
|
@ -186,8 +186,12 @@ func ObtainBindingSpecExistingClusters(bindingSpec workv1alpha2.ResourceBindingS
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, task := range bindingSpec.GracefulEvictionTasks {
|
for _, task := range bindingSpec.GracefulEvictionTasks {
|
||||||
|
// 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)
|
clusterNames.Insert(task.FromCluster)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return clusterNames
|
return clusterNames
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ import (
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
"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"
|
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
|
||||||
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
|
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
|
||||||
"github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager"
|
"github.com/karmada-io/karmada/pkg/util/fedinformer/genericmanager"
|
||||||
|
@ -335,6 +336,36 @@ func TestObtainBindingSpecExistingClusters(t *testing.T) {
|
||||||
},
|
},
|
||||||
want: sets.New("member1", "member2", "member3"),
|
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 {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue