Skip to content

Commit ff84430

Browse files
committed
keep available/applied condition true and update CRP status message/reason
Signed-off-by: Britania Rodriguez Reyes <britaniar@microsoft.com>
1 parent 621f1cc commit ff84430

File tree

9 files changed

+414
-180
lines changed

9 files changed

+414
-180
lines changed

hack/loadtest/test-crp.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ spec:
1414
maxUnavailable: 25%
1515
maxSurge: 25%
1616
unavailablePeriodSeconds: 60
17-
revisionHistoryLimit: 15
17+
revisionHistoryLimit: 15

pkg/controllers/clusterresourceplacement/placement_status.go

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -232,23 +232,13 @@ func setCRPConditions(
232232
shouldSkipRestCondTypes = true
233233
case rpsSetCondTypeCounter[i][condition.FalseConditionStatus] > 0:
234234
// There is at least one False condition of the given type being set on the per cluster placement statuses.
235-
if len(crp.Status.SelectedResources) == 0 && i == condition.AppliedCondition {
236-
// If the CRP has not selected any resources
237-
crp.SetConditions(metav1.Condition{
238-
Status: metav1.ConditionFalse,
239-
Type: string(fleetv1beta1.ClusterResourcePlacementAppliedConditionType),
240-
Reason: ApplyFailedReason,
241-
Message: fmt.Sprintf("Failed to apply resources to %d cluster(s). Please check placement status.", rpsSetCondTypeCounter[i][condition.FalseConditionStatus]),
242-
ObservedGeneration: crp.Generation,
243-
})
244-
} else {
245-
crp.SetConditions(i.FalseClusterResourcePlacementCondition(crp.Generation, rpsSetCondTypeCounter[i][condition.FalseConditionStatus]))
246-
}
235+
crp.SetConditions(i.FalseClusterResourcePlacementCondition(crp.Generation, rpsSetCondTypeCounter[i][condition.FalseConditionStatus]))
247236
shouldSkipRestCondTypes = true
248237
default:
249238
// All the conditions of the given type are True.
250239
cond := i.TrueClusterResourcePlacementCondition(crp.Generation, rpsSetCondTypeCounter[i][condition.TrueConditionStatus])
251-
if i == condition.OverriddenCondition {
240+
switch i {
241+
case condition.OverriddenCondition:
252242
hasOverride := false
253243
for _, status := range allRPS {
254244
if len(status.ApplicableResourceOverrides) > 0 || len(status.ApplicableClusterResourceOverrides) > 0 {
@@ -260,6 +250,15 @@ func setCRPConditions(
260250
cond.Reason = condition.OverrideNotSpecifiedReason
261251
cond.Message = "No override rules are configured for the selected resources"
262252
}
253+
case condition.AppliedCondition:
254+
if len(crp.Status.SelectedResources) == 0 {
255+
cond.Message = "Previous resources are deleted. No new resources are selected for the placement"
256+
}
257+
case condition.AvailableCondition:
258+
if len(crp.Status.SelectedResources) == 0 {
259+
cond.Reason = condition.NoResourcesSelectedReason
260+
cond.Message = "No new resources are selected for the placement. Please update crp to select new resources"
261+
}
263262
}
264263
crp.SetConditions(cond)
265264
}

pkg/controllers/clusterresourceplacement/placement_status_test.go

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4995,10 +4995,10 @@ func TestSetPlacementStatus(t *testing.T) {
49954995
},
49964996
},
49974997
{
4998-
name: "the placement is is failed because no resources were selected",
4998+
name: "the placement applied/available true because no resources were selected",
49994999
policy: &fleetv1beta1.PlacementPolicy{
50005000
PlacementType: fleetv1beta1.PickNPlacementType,
5001-
NumberOfClusters: ptr.To(int32(1)),
5001+
NumberOfClusters: ptr.To(int32(2)),
50025002
},
50035003
latestPolicySnapshot: &fleetv1beta1.ClusterSchedulingPolicySnapshot{
50045004
ObjectMeta: metav1.ObjectMeta{
@@ -5009,7 +5009,7 @@ func TestSetPlacementStatus(t *testing.T) {
50095009
fleetv1beta1.CRPTrackingLabel: testCRPName,
50105010
},
50115011
Annotations: map[string]string{
5012-
fleetv1beta1.NumberOfClustersAnnotation: strconv.Itoa(1),
5012+
fleetv1beta1.NumberOfClustersAnnotation: strconv.Itoa(2),
50135013
},
50145014
Generation: 1,
50155015
},
@@ -5091,9 +5091,15 @@ func TestSetPlacementStatus(t *testing.T) {
50915091
ObservedGeneration: 1,
50925092
},
50935093
{
5094-
Status: metav1.ConditionFalse,
5094+
Status: metav1.ConditionTrue,
50955095
Type: string(fleetv1beta1.ResourceBindingApplied),
5096-
Reason: condition.ApplyFailedReason,
5096+
Reason: condition.AllWorkAppliedReason,
5097+
ObservedGeneration: 1,
5098+
},
5099+
{
5100+
Status: metav1.ConditionTrue,
5101+
Type: string(fleetv1beta1.ResourceBindingAvailable),
5102+
Reason: condition.NoResourcesSelectedReason,
50975103
ObservedGeneration: 1,
50985104
},
50995105
},
@@ -5133,9 +5139,15 @@ func TestSetPlacementStatus(t *testing.T) {
51335139
ObservedGeneration: 1,
51345140
},
51355141
{
5136-
Status: metav1.ConditionFalse,
5142+
Status: metav1.ConditionTrue,
51375143
Type: string(fleetv1beta1.ResourceBindingApplied),
5138-
Reason: condition.ApplyFailedReason,
5144+
Reason: condition.AllWorkAppliedReason,
5145+
ObservedGeneration: 1,
5146+
},
5147+
{
5148+
Status: metav1.ConditionTrue,
5149+
Type: string(fleetv1beta1.ResourceBindingAvailable),
5150+
Reason: condition.NoResourcesSelectedReason,
51395151
ObservedGeneration: 1,
51405152
},
51415153
},
@@ -5149,9 +5161,16 @@ func TestSetPlacementStatus(t *testing.T) {
51495161
ObservedResourceIndex: "0",
51505162
Conditions: []metav1.Condition{
51515163
{
5152-
Status: metav1.ConditionFalse,
5164+
Status: metav1.ConditionTrue,
51535165
Type: string(fleetv1beta1.ClusterResourcePlacementAppliedConditionType),
5154-
Reason: condition.ApplyFailedReason,
5166+
Reason: condition.ApplySucceededReason,
5167+
ObservedGeneration: crpGeneration,
5168+
LastTransitionTime: metav1.NewTime(currentTime),
5169+
},
5170+
{
5171+
Status: metav1.ConditionTrue,
5172+
Type: string(fleetv1beta1.ClusterResourcePlacementAvailableConditionType),
5173+
Reason: condition.NoResourcesSelectedReason,
51555174
ObservedGeneration: crpGeneration,
51565175
LastTransitionTime: metav1.NewTime(currentTime),
51575176
},
@@ -5189,9 +5208,16 @@ func TestSetPlacementStatus(t *testing.T) {
51895208
ClusterName: "member-1",
51905209
Conditions: []metav1.Condition{
51915210
{
5192-
Status: metav1.ConditionFalse,
5211+
Status: metav1.ConditionTrue,
51935212
Type: string(fleetv1beta1.ResourcesAppliedConditionType),
5194-
Reason: condition.ApplyFailedReason,
5213+
Reason: condition.AllWorkAppliedReason,
5214+
ObservedGeneration: crpGeneration,
5215+
LastTransitionTime: metav1.NewTime(currentTime),
5216+
},
5217+
{
5218+
Status: metav1.ConditionTrue,
5219+
Type: string(fleetv1beta1.ResourcesAvailableConditionType),
5220+
Reason: condition.NoResourcesSelectedReason,
51955221
ObservedGeneration: crpGeneration,
51965222
LastTransitionTime: metav1.NewTime(currentTime),
51975223
},
@@ -5229,9 +5255,16 @@ func TestSetPlacementStatus(t *testing.T) {
52295255
ClusterName: "member-2",
52305256
Conditions: []metav1.Condition{
52315257
{
5232-
Status: metav1.ConditionFalse,
5258+
Status: metav1.ConditionTrue,
52335259
Type: string(fleetv1beta1.ResourcesAppliedConditionType),
5234-
Reason: condition.ApplyFailedReason,
5260+
Reason: condition.AllWorkAppliedReason,
5261+
ObservedGeneration: crpGeneration,
5262+
LastTransitionTime: metav1.NewTime(currentTime),
5263+
},
5264+
{
5265+
Status: metav1.ConditionTrue,
5266+
Type: string(fleetv1beta1.ResourcesAvailableConditionType),
5267+
Reason: condition.NoResourcesSelectedReason,
52355268
ObservedGeneration: crpGeneration,
52365269
LastTransitionTime: metav1.NewTime(currentTime),
52375270
},

0 commit comments

Comments
 (0)