Merge pull request #4407 from CharlesQQ/evict-fix

fix(work):  motify gracefulEvictionTasks sub field creationTimestamp to pointer type
This commit is contained in:
karmada-bot 2024-01-02 21:43:27 +08:00 committed by GitHub
commit b69ead80d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 54 additions and 53 deletions

View File

@ -17843,7 +17843,6 @@
"properties": { "properties": {
"creationTimestamp": { "creationTimestamp": {
"description": "CreationTimestamp is a timestamp representing the server time when this object was created. Clients should not set this value to avoid the time inconsistency issue. It is represented in RFC3339 form(like '2021-04-25T10:02:10Z') and is in UTC.\n\nPopulated by the system. Read-only.", "description": "CreationTimestamp is a timestamp representing the server time when this object was created. Clients should not set this value to avoid the time inconsistency issue. It is represented in RFC3339 form(like '2021-04-25T10:02:10Z') and is in UTC.\n\nPopulated by the system. Read-only.",
"default": {},
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
}, },
"fromCluster": { "fromCluster": {

View File

@ -256,7 +256,7 @@ type GracefulEvictionTask struct {
// //
// Populated by the system. Read-only. // Populated by the system. Read-only.
// +optional // +optional
CreationTimestamp metav1.Time `json:"creationTimestamp,omitempty"` CreationTimestamp *metav1.Time `json:"creationTimestamp,omitempty"`
} }
// BindingSnapshot is a snapshot of a ResourceBinding or ClusterResourceBinding. // BindingSnapshot is a snapshot of a ResourceBinding or ClusterResourceBinding.

View File

@ -149,7 +149,10 @@ func (in *GracefulEvictionTask) DeepCopyInto(out *GracefulEvictionTask) {
*out = new(bool) *out = new(bool)
**out = **in **out = **in
} }
in.CreationTimestamp.DeepCopyInto(&out.CreationTimestamp) if in.CreationTimestamp != nil {
in, out := &in.CreationTimestamp, &out.CreationTimestamp
*out = (*in).DeepCopy()
}
return return
} }

View File

@ -44,7 +44,7 @@ func assessEvictionTasks(bindingSpec workv1alpha2.ResourceBindingSpec,
for _, task := range bindingSpec.GracefulEvictionTasks { for _, task := range bindingSpec.GracefulEvictionTasks {
// set creation timestamp for new task // set creation timestamp for new task
if task.CreationTimestamp.IsZero() { if task.CreationTimestamp.IsZero() {
task.CreationTimestamp = now task.CreationTimestamp = &now
keptTasks = append(keptTasks, task) keptTasks = append(keptTasks, task)
continue continue
} }

View File

@ -45,7 +45,7 @@ func Test_assessSingleTask(t *testing.T) {
args: args{ args: args{
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -56,7 +56,7 @@ func Test_assessSingleTask(t *testing.T) {
}, },
want: &workv1alpha2.GracefulEvictionTask{ want: &workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
}, },
{ {
@ -64,7 +64,7 @@ func Test_assessSingleTask(t *testing.T) {
args: args{ args: args{
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -4)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -4)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -80,7 +80,7 @@ func Test_assessSingleTask(t *testing.T) {
args: args{ args: args{
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -99,7 +99,7 @@ func Test_assessSingleTask(t *testing.T) {
args: args{ args: args{
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -113,7 +113,7 @@ func Test_assessSingleTask(t *testing.T) {
}, },
want: &workv1alpha2.GracefulEvictionTask{ want: &workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
}, },
{ {
@ -121,7 +121,7 @@ func Test_assessSingleTask(t *testing.T) {
args: args{ args: args{
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -135,7 +135,7 @@ func Test_assessSingleTask(t *testing.T) {
}, },
want: &workv1alpha2.GracefulEvictionTask{ want: &workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
}, },
{ {
@ -144,7 +144,7 @@ func Test_assessSingleTask(t *testing.T) {
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
GracePeriodSeconds: pointer.Int32(30), GracePeriodSeconds: pointer.Int32(30),
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -164,7 +164,7 @@ func Test_assessSingleTask(t *testing.T) {
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
GracePeriodSeconds: pointer.Int32(120), GracePeriodSeconds: pointer.Int32(120),
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -179,7 +179,7 @@ func Test_assessSingleTask(t *testing.T) {
want: &workv1alpha2.GracefulEvictionTask{ want: &workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
GracePeriodSeconds: pointer.Int32(120), GracePeriodSeconds: pointer.Int32(120),
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
}, },
{ {
@ -188,7 +188,7 @@ func Test_assessSingleTask(t *testing.T) {
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
SuppressDeletion: pointer.Bool(true), SuppressDeletion: pointer.Bool(true),
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -203,7 +203,7 @@ func Test_assessSingleTask(t *testing.T) {
want: &workv1alpha2.GracefulEvictionTask{ want: &workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
SuppressDeletion: pointer.Bool(true), SuppressDeletion: pointer.Bool(true),
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
}, },
{ {
@ -212,7 +212,7 @@ func Test_assessSingleTask(t *testing.T) {
task: workv1alpha2.GracefulEvictionTask{ task: workv1alpha2.GracefulEvictionTask{
FromCluster: "member1", FromCluster: "member1",
SuppressDeletion: pointer.Bool(false), SuppressDeletion: pointer.Bool(false),
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
opt: assessmentOption{ opt: assessmentOption{
timeout: timeout, timeout: timeout,
@ -271,11 +271,11 @@ func Test_assessEvictionTasks(t *testing.T) {
wantTask: []workv1alpha2.GracefulEvictionTask{ wantTask: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: timeNow, CreationTimestamp: &timeNow,
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: timeNow, CreationTimestamp: &timeNow,
}, },
}, },
wantCluster: nil, wantCluster: nil,
@ -290,11 +290,11 @@ func Test_assessEvictionTasks(t *testing.T) {
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{ GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
}, },
@ -305,11 +305,11 @@ func Test_assessEvictionTasks(t *testing.T) {
wantTask: []workv1alpha2.GracefulEvictionTask{ wantTask: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
wantCluster: nil, wantCluster: nil,
@ -324,11 +324,11 @@ func Test_assessEvictionTasks(t *testing.T) {
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{ GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -4)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -4)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -5)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -5)},
}, },
}, },
}, },
@ -353,11 +353,11 @@ func Test_assessEvictionTasks(t *testing.T) {
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
{ {
FromCluster: "member3", FromCluster: "member3",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -4)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -4)},
}, },
}, },
}, },
@ -368,11 +368,11 @@ func Test_assessEvictionTasks(t *testing.T) {
wantTask: []workv1alpha2.GracefulEvictionTask{ wantTask: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: timeNow, CreationTimestamp: &timeNow,
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
wantCluster: []string{"member3"}, wantCluster: []string{"member3"},
@ -388,11 +388,11 @@ func Test_assessEvictionTasks(t *testing.T) {
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{ GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
}, },
@ -405,11 +405,11 @@ func Test_assessEvictionTasks(t *testing.T) {
wantTask: []workv1alpha2.GracefulEvictionTask{ wantTask: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
wantCluster: nil, wantCluster: nil,
@ -425,11 +425,11 @@ func Test_assessEvictionTasks(t *testing.T) {
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{ GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
}, },
@ -454,11 +454,11 @@ func Test_assessEvictionTasks(t *testing.T) {
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{ GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
}, },
@ -472,11 +472,11 @@ func Test_assessEvictionTasks(t *testing.T) {
wantTask: []workv1alpha2.GracefulEvictionTask{ wantTask: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
wantCluster: nil, wantCluster: nil,
@ -492,11 +492,11 @@ func Test_assessEvictionTasks(t *testing.T) {
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{ GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
}, },
@ -510,11 +510,11 @@ func Test_assessEvictionTasks(t *testing.T) {
wantTask: []workv1alpha2.GracefulEvictionTask{ wantTask: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -1)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -1)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -2)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -2)},
}, },
}, },
wantCluster: nil, wantCluster: nil,
@ -557,11 +557,11 @@ func Test_nextRetry(t *testing.T) {
task: []workv1alpha2.GracefulEvictionTask{ task: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -19)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -19)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -10)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -10)},
}, },
}, },
timeout: timeout, timeout: timeout,
@ -575,11 +575,11 @@ func Test_nextRetry(t *testing.T) {
task: []workv1alpha2.GracefulEvictionTask{ task: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -10)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -10)},
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -5)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -5)},
}, },
}, },
timeout: timeout, timeout: timeout,
@ -593,12 +593,12 @@ func Test_nextRetry(t *testing.T) {
task: []workv1alpha2.GracefulEvictionTask{ task: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -60)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -60)},
SuppressDeletion: pointer.Bool(true), SuppressDeletion: pointer.Bool(true),
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -5)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -5)},
}, },
}, },
timeout: timeout, timeout: timeout,
@ -612,12 +612,12 @@ func Test_nextRetry(t *testing.T) {
task: []workv1alpha2.GracefulEvictionTask{ task: []workv1alpha2.GracefulEvictionTask{
{ {
FromCluster: "member1", FromCluster: "member1",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -60)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -60)},
SuppressDeletion: pointer.Bool(true), SuppressDeletion: pointer.Bool(true),
}, },
{ {
FromCluster: "member2", FromCluster: "member2",
CreationTimestamp: metav1.Time{Time: timeNow.Add(time.Minute * -5)}, CreationTimestamp: &metav1.Time{Time: timeNow.Add(time.Minute * -5)},
SuppressDeletion: pointer.Bool(true), SuppressDeletion: pointer.Bool(true),
}, },
}, },

View File

@ -6027,7 +6027,6 @@ func schema_pkg_apis_work_v1alpha2_GracefulEvictionTask(ref common.ReferenceCall
"creationTimestamp": { "creationTimestamp": {
SchemaProps: spec.SchemaProps{ SchemaProps: spec.SchemaProps{
Description: "CreationTimestamp is a timestamp representing the server time when this object was created. Clients should not set this value to avoid the time inconsistency issue. It is represented in RFC3339 form(like '2021-04-25T10:02:10Z') and is in UTC.\n\nPopulated by the system. Read-only.", Description: "CreationTimestamp is a timestamp representing the server time when this object was created. Clients should not set this value to avoid the time inconsistency issue. It is represented in RFC3339 form(like '2021-04-25T10:02:10Z') and is in UTC.\n\nPopulated by the system. Read-only.",
Default: map[string]interface{}{},
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
}, },
}, },