From c4f5c0a9823de444347f066724d56350fcde6abd Mon Sep 17 00:00:00 2001 From: Britania Rodriguez Reyes Date: Tue, 2 Dec 2025 11:35:20 -0600 Subject: [PATCH 1/5] reformat and add label to distinguish between approval object tasks Signed-off-by: Britania Rodriguez Reyes --- apis/placement/v1beta1/commons.go | 9 +++ apis/placement/v1beta1/stageupdate_types.go | 2 + ....kubernetes-fleet.io_approvalrequests.yaml | 1 + ...etes-fleet.io_clusterapprovalrequests.yaml | 1 + pkg/controllers/updaterun/execution.go | 23 +++--- .../updaterun/execution_integration_test.go | 8 ++ pkg/controllers/updaterun/execution_test.go | 18 +++-- test/e2e/cluster_staged_updaterun_test.go | 75 ++++++++++--------- test/e2e/staged_updaterun_test.go | 67 +++++++++-------- 9 files changed, 120 insertions(+), 84 deletions(-) diff --git a/apis/placement/v1beta1/commons.go b/apis/placement/v1beta1/commons.go index 9ced5c1b5..5babe38a3 100644 --- a/apis/placement/v1beta1/commons.go +++ b/apis/placement/v1beta1/commons.go @@ -158,6 +158,9 @@ const ( // TargetUpdateRunLabel indicates the target update run on a staged run related object. TargetUpdateRunLabel = FleetPrefix + "targetupdaterun" + // TargetStageTaskLabel indicates the target stage task on a staged run related object. + TargetStageTaskLabel = FleetPrefix + "targetstagetask" + // UpdateRunDeleteStageName is the name of delete stage in the staged update run. UpdateRunDeleteStageName = FleetPrefix + "deleteStage" @@ -167,6 +170,12 @@ const ( // TargetUpdatingStageNameLabel indicates the updating stage name on a staged run related object. TargetUpdatingStageNameLabel = FleetPrefix + "targetUpdatingStage" + // BeforeStageTaskLabelValue is the before stage task label value. + BeforeStageTaskLabelValue = "beforeStage" + + // AfterStageTaskLabelValue is the after stage task label value. + AfterStageTaskLabelValue = "afterStage" + // BeforeStageApprovalTaskNameFmt is the format of the before stage approval task name. BeforeStageApprovalTaskNameFmt = "%s-before-%s" diff --git a/apis/placement/v1beta1/stageupdate_types.go b/apis/placement/v1beta1/stageupdate_types.go index bc7a8d212..81b843ca2 100644 --- a/apis/placement/v1beta1/stageupdate_types.go +++ b/apis/placement/v1beta1/stageupdate_types.go @@ -679,6 +679,7 @@ type ApprovalRequestObjList interface { // - `TargetUpdateRun`: Points to the cluster staged update run that this approval request is for. // - `TargetStage`: The name of the stage that this approval request is for. // - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. +// - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. type ClusterApprovalRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` @@ -925,6 +926,7 @@ func (s *StagedUpdateStrategyList) GetUpdateStrategyObjs() []UpdateStrategyObj { // - `TargetUpdateRun`: Points to the staged update run that this approval request is for. // - `TargetStage`: The name of the stage that this approval request is for. // - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. +// - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. type ApprovalRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml index 3835fd87c..a16ff6bb4 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml @@ -41,6 +41,7 @@ spec: - `TargetUpdateRun`: Points to the staged update run that this approval request is for. - `TargetStage`: The name of the stage that this approval request is for. - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. + - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. properties: apiVersion: description: |- diff --git a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml index 56f4b7552..c16ce6f03 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml @@ -172,6 +172,7 @@ spec: - `TargetUpdateRun`: Points to the cluster staged update run that this approval request is for. - `TargetStage`: The name of the stage that this approval request is for. - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. + - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. properties: apiVersion: description: |- diff --git a/pkg/controllers/updaterun/execution.go b/pkg/controllers/updaterun/execution.go index 1180ae34a..60807ba74 100644 --- a/pkg/controllers/updaterun/execution.go +++ b/pkg/controllers/updaterun/execution.go @@ -83,10 +83,6 @@ func (r *Reconciler) execute( // which would update the lastTransitionTime even though the status hasn't effectively changed. markUpdateRunProgressingIfNotWaitingOrStuck(updateRun) if updatingStageIndex < len(updateRunStatus.StagesStatus) { - maxConcurrency, err := calculateMaxConcurrencyValue(updateRunStatus, updatingStageIndex) - if err != nil { - return false, 0, err - } updatingStageStatus = &updateRunStatus.StagesStatus[updatingStageIndex] approved, err := r.checkBeforeStageTasksStatus(ctx, updatingStageIndex, updateRun) if err != nil { @@ -97,6 +93,10 @@ func (r *Reconciler) execute( markUpdateRunWaiting(updateRun, fmt.Sprintf(condition.UpdateRunWaitingMessageFmt, "before-stage", updatingStageStatus.StageName)) return false, stageUpdatingWaitTime, nil } + maxConcurrency, err := calculateMaxConcurrencyValue(updateRunStatus, updatingStageIndex) + if err != nil { + return false, 0, err + } waitTime, err = r.executeUpdatingStage(ctx, updateRun, updatingStageIndex, toBeUpdatedBindings, maxConcurrency) // The execution has not finished yet. return false, waitTime, err @@ -111,17 +111,17 @@ func (r *Reconciler) execute( func (r *Reconciler) checkBeforeStageTasksStatus(ctx context.Context, updatingStageIndex int, updateRun placementv1beta1.UpdateRunObj) (bool, error) { updateRunRef := klog.KObj(updateRun) updateRunStatus := updateRun.GetUpdateRunStatus() - updatingStageStatus := &updateRunStatus.StagesStatus[updatingStageIndex] updatingStage := &updateRunStatus.UpdateStrategySnapshot.Stages[updatingStageIndex] if updatingStage.BeforeStageTasks == nil { klog.V(2).InfoS("There is no before stage task for this stage", "stage", updatingStage.Name, "updateRun", updateRunRef) return true, nil } + updatingStageStatus := &updateRunStatus.StagesStatus[updatingStageIndex] for i, task := range updatingStage.BeforeStageTasks { switch task.Type { case placementv1beta1.StageTaskTypeApproval: - approved, err := r.handleStageApprovalTask(ctx, &updatingStageStatus.BeforeStageTaskStatus[i], updatingStage, updateRun) + approved, err := r.handleStageApprovalTask(ctx, &updatingStageStatus.BeforeStageTaskStatus[i], updatingStage, updateRun, placementv1beta1.BeforeStageTaskLabelValue) if err != nil { return false, err } @@ -418,7 +418,7 @@ func (r *Reconciler) checkAfterStageTasksStatus(ctx context.Context, updatingSta klog.V(2).InfoS("The after stage wait task has completed", "stage", updatingStage.Name, "updateRun", updateRunRef) } case placementv1beta1.StageTaskTypeApproval: - approved, err := r.handleStageApprovalTask(ctx, &updatingStageStatus.AfterStageTaskStatus[i], updatingStage, updateRun) + approved, err := r.handleStageApprovalTask(ctx, &updatingStageStatus.AfterStageTaskStatus[i], updatingStage, updateRun, placementv1beta1.AfterStageTaskLabelValue) if err != nil { return false, -1, err } @@ -440,6 +440,7 @@ func (r *Reconciler) handleStageApprovalTask( stageTaskStatus *placementv1beta1.StageTaskStatus, updatingStage *placementv1beta1.StageConfig, updateRun placementv1beta1.UpdateRunObj, + stageTaskType string, ) (bool, error) { updateRunRef := klog.KObj(updateRun) @@ -450,7 +451,7 @@ func (r *Reconciler) handleStageApprovalTask( } // Check if the approval request has been created. - approvalRequest := buildApprovalRequestObject(types.NamespacedName{Name: stageTaskStatus.ApprovalRequestName, Namespace: updateRun.GetNamespace()}, updatingStage.Name, updateRun.GetName()) + approvalRequest := buildApprovalRequestObject(types.NamespacedName{Name: stageTaskStatus.ApprovalRequestName, Namespace: updateRun.GetNamespace()}, updatingStage.Name, updateRun.GetName(), stageTaskType) requestRef := klog.KObj(approvalRequest) if err := r.Client.Create(ctx, approvalRequest); err != nil { if apierrors.IsAlreadyExists(err) { @@ -618,9 +619,9 @@ func checkClusterUpdateResult( return false, nil } -// buildApprovalRequestObject creates an approval request object for after-stage tasks. +// buildApprovalRequestObject creates an approval request object for before-stage or after-stage tasks. // It returns a ClusterApprovalRequest if namespace is empty, otherwise returns an ApprovalRequest. -func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, updateRunName string) placementv1beta1.ApprovalRequestObj { +func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, updateRunName, stageTaskType string) placementv1beta1.ApprovalRequestObj { var approvalRequest placementv1beta1.ApprovalRequestObj if namespacedName.Namespace == "" { approvalRequest = &placementv1beta1.ClusterApprovalRequest{ @@ -629,6 +630,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, + placementv1beta1.TargetStageTaskLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -645,6 +647,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, + placementv1beta1.TargetStageTaskLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_integration_test.go b/pkg/controllers/updaterun/execution_integration_test.go index 3d2af3627..1ebfa97a5 100644 --- a/pkg/controllers/updaterun/execution_integration_test.go +++ b/pkg/controllers/updaterun/execution_integration_test.go @@ -173,6 +173,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -324,6 +325,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -379,6 +381,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -531,6 +534,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1085,6 +1089,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1306,6 +1311,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1339,6 +1345,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1441,6 +1448,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_test.go b/pkg/controllers/updaterun/execution_test.go index 6d8650d60..0f6d0179f 100644 --- a/pkg/controllers/updaterun/execution_test.go +++ b/pkg/controllers/updaterun/execution_test.go @@ -346,22 +346,25 @@ func TestBuildApprovalRequestObject(t *testing.T) { namespacedName types.NamespacedName stageName string updateRunName string + stageTaskType string want placementv1beta1.ApprovalRequestObj }{ { name: "should create ClusterApprovalRequest when namespace is empty", namespacedName: types.NamespacedName{ - Name: "test-approval-request", + Name: fmt.Sprintf(placementv1beta1.BeforeStageApprovalTaskNameFmt, "test-update-run", "test-stage"), Namespace: "", }, stageName: "test-stage", updateRunName: "test-update-run", + stageTaskType: placementv1beta1.BeforeStageTaskLabelValue, want: &placementv1beta1.ClusterApprovalRequest{ ObjectMeta: metav1.ObjectMeta{ - Name: "test-approval-request", + Name: fmt.Sprintf(placementv1beta1.BeforeStageApprovalTaskNameFmt, "test-update-run", "test-stage"), Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -374,18 +377,20 @@ func TestBuildApprovalRequestObject(t *testing.T) { { name: "should create namespaced ApprovalRequest when namespace is provided", namespacedName: types.NamespacedName{ - Name: "test-approval-request", + Name: fmt.Sprintf(placementv1beta1.AfterStageApprovalTaskNameFmt, "test-update-run", "test-stage"), Namespace: "test-namespace", }, stageName: "test-stage", updateRunName: "test-update-run", + stageTaskType: placementv1beta1.AfterStageTaskLabelValue, want: &placementv1beta1.ApprovalRequest{ ObjectMeta: metav1.ObjectMeta{ - Name: "test-approval-request", + Name: fmt.Sprintf(placementv1beta1.AfterStageApprovalTaskNameFmt, "test-update-run", "test-stage"), Namespace: "test-namespace", Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", + placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -399,7 +404,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - got := buildApprovalRequestObject(test.namespacedName, test.stageName, test.updateRunName) + got := buildApprovalRequestObject(test.namespacedName, test.stageName, test.updateRunName, test.stageTaskType) // Compare the whole objects using cmp.Diff with ignore options if diff := cmp.Diff(test.want, got); diff != "" { @@ -1035,6 +1040,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1091,6 +1097,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1147,6 +1154,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/test/e2e/cluster_staged_updaterun_test.go b/test/e2e/cluster_staged_updaterun_test.go index c56ccfc6c..9146889bc 100644 --- a/test/e2e/cluster_staged_updaterun_test.go +++ b/test/e2e/cluster_staged_updaterun_test.go @@ -145,7 +145,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -153,7 +153,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to all the members after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[0], resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[0]) @@ -217,7 +217,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { []string{resourceSnapshotIndex1st, resourceSnapshotIndex2nd, resourceSnapshotIndex1st}, []bool{true, true, true}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -229,7 +229,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to all the members after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[1], resourceSnapshotIndex2nd, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[1]) @@ -325,7 +325,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -333,7 +333,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to all the members after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[0], resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[0]) @@ -396,7 +396,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { []string{resourceSnapshotIndex1st, resourceSnapshotIndex2nd, resourceSnapshotIndex1st}, []bool{true, true, true}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -408,7 +408,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to member-cluster-1 and member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[1], resourceSnapshotIndex2nd, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[1]) @@ -444,7 +444,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { []string{resourceSnapshotIndex2nd, resourceSnapshotIndex1st, resourceSnapshotIndex2nd}, []bool{true, true, true}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[2], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[2], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollback resources to prod stage until approved", func() { @@ -456,7 +456,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollback resources to member-cluster-1 and member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[2], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[2], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[2], resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[1]) @@ -550,7 +550,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames[:2], []string{"", resourceSnapshotIndex1st}, []bool{false, true}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -558,7 +558,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to member-cluster-1 after approval but not member-cluster-3 and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[0], resourceSnapshotIndex1st, policySnapshotIndex1st, 2, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[0]) @@ -606,7 +606,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{resourceSnapshotIndex1st, resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to keep CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -614,7 +614,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[1], resourceSnapshotIndex1st, policySnapshotIndex2nd, 3, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[1]) @@ -658,11 +658,11 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(workResourceIdentifiers(), resourceSnapshotIndex1st, false, []string{allMemberClusterNames[2]}, []string{resourceSnapshotIndex1st}, []bool{false}, nil, nil) Consistently(crpStatusUpdatedActual, consistentlyDuration, consistentlyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[2], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[2], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should remove resources on member-cluster-1 and member-cluster-2 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[2], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[2], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) // need to go through two stages csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[2], resourceSnapshotIndex1st, policySnapshotIndex3rd, 1, defaultApplyStrategy, &strategy.Spec, [][]string{{}, {allMemberClusterNames[2]}}, []string{allMemberClusterNames[0], allMemberClusterNames[1]}, nil, nil, true) @@ -753,7 +753,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames[2:], []string{""}, []bool{false}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -761,7 +761,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[0], resourceSnapshotIndex1st, policySnapshotIndex1st, 1, defaultApplyStrategy, &strategy.Spec, [][]string{{}, {allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[0]) @@ -808,7 +808,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, resourceSnapshotIndex1st}, []bool{false, true, true}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to keep CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to member-cluster-1 until approved", func() { @@ -816,7 +816,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to member-cluster-1 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[1], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[1], resourceSnapshotIndex1st, policySnapshotIndex1st, 3, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[1]) @@ -860,7 +860,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(workResourceIdentifiers(), resourceSnapshotIndex1st, true, allMemberClusterNames[1:], []string{resourceSnapshotIndex1st, resourceSnapshotIndex1st}, []bool{true, true}, nil, nil) Consistently(crpStatusUpdatedActual, consistentlyDuration, consistentlyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[2], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[2], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not remove resources from member-cluster-1 until approved", func() { @@ -868,7 +868,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should remove resources on member-cluster-1 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[2], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[2], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[2], resourceSnapshotIndex1st, policySnapshotIndex1st, 2, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[2]}}, []string{allMemberClusterNames[0]}, nil, nil, true) Eventually(csurSucceededActual, 2*updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[2]) @@ -1038,7 +1038,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, wantROs) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to member-cluster-1 and member-cluster-3 until approved", func() { @@ -1046,7 +1046,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should rollout resources to member-cluster-1 and member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunName, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, wantCROs, wantROs, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunName) @@ -1144,11 +1144,11 @@ var _ = Describe("test CRP rollout with staged update run", func() { []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should report diff for member-cluster-1 and member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunName, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), applyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunName) @@ -1259,10 +1259,10 @@ var _ = Describe("test CRP rollout with staged update run", func() { Eventually(configMapActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update to the new configmap %s on cluster %s", newConfigMap.Name, allMemberClusterNames[1]) // Approval for AfterStageTasks of canary stage - validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) // Approval for BeforeStageTasks of prod stage - validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) // Verify complete rollout csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunName, resourceSnapshotIndex2nd, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) @@ -1333,6 +1333,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: envCanary, placementv1beta1.TargetUpdateRunLabel: updateRunName, + placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -1345,11 +1346,11 @@ var _ = Describe("test CRP rollout with staged update run", func() { }) It("Should approve after-stage cluster approval request using kubectl-fleet approve plugin for canary stage", func() { - approveClusterApprovalRequest(envCanary, updateRunName) + approveClusterApprovalRequest(envCanary, updateRunName, placementv1beta1.AfterStageTaskLabelValue) }) It("Should approve before-stage cluster approval request using kubectl-fleet approve plugin for prod stage", func() { - approveClusterApprovalRequest(envProd, updateRunName) + approveClusterApprovalRequest(envProd, updateRunName, placementv1beta1.BeforeStageTaskLabelValue) }) It("Should complete the staged update run after approval", func() { @@ -1425,10 +1426,10 @@ var _ = Describe("test CRP rollout with staged update run", func() { createClusterStagedUpdateRunSucceed(updateRunName, crpName, resourceSnapshotIndex1st, strategyName, placementv1beta1.StateExecuted) // Approval for AfterStageTasks of canary stage - validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) // Approval for BeforeStageTasks of prod stage - validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunName, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunName, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunName) @@ -1754,11 +1755,11 @@ var _ = Describe("test CRP rollout with staged update run", func() { crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName) - validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should rollout resources to all the members and complete the cluster staged update run successfully", func() { - validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveClusterApprovalRequests(updateRunNames[0], envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) csurSucceededActual := clusterStagedUpdateRunStatusSucceededActual(updateRunNames[0], resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(csurSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[0]) @@ -2209,12 +2210,13 @@ func updateClusterStagedUpdateRunState(updateRunName string, state placementv1be }, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update ClusterStagedUpdateRun %s state to %s", updateRunName, state) } -func validateAndApproveClusterApprovalRequests(updateRunName, stageName, approvalRequestNameFmt string) { +func validateAndApproveClusterApprovalRequests(updateRunName, stageName, approvalRequestNameFmt, stageTaskType string) { Eventually(func() error { appReqList := &placementv1beta1.ClusterApprovalRequestList{} if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, + placementv1beta1.TargetStageTaskLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2245,7 +2247,7 @@ func updateConfigMapSucceed(newConfigMap *corev1.ConfigMap) { Expect(hubClient.Update(ctx, cm)).To(Succeed(), "Failed to update configmap %s in namespace %s", newConfigMap.Name, newConfigMap.Namespace) } -func approveClusterApprovalRequest(stageName, updateRunName string) { +func approveClusterApprovalRequest(stageName, updateRunName, stageTask string) { var approvalRequestName string // Get the cluster approval request name. @@ -2254,6 +2256,7 @@ func approveClusterApprovalRequest(stageName, updateRunName string) { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, + placementv1beta1.TargetStageTaskLabel: stageTask, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } diff --git a/test/e2e/staged_updaterun_test.go b/test/e2e/staged_updaterun_test.go index 95e9dffe2..f00d71a97 100644 --- a/test/e2e/staged_updaterun_test.go +++ b/test/e2e/staged_updaterun_test.go @@ -135,7 +135,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -143,7 +143,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to all the members after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[0], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[0]) @@ -206,7 +206,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem []string{resourceSnapshotIndex1st, resourceSnapshotIndex2nd, resourceSnapshotIndex1st}, []bool{true, true, true}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { By("Verify that the configmap is not updated on member-cluster-1 and member-cluster-3") @@ -217,7 +217,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to all the members after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[1], testNamespace, resourceSnapshotIndex2nd, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[1]) @@ -311,7 +311,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -319,7 +319,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to all the members after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[0], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[0]) @@ -382,7 +382,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem []string{resourceSnapshotIndex1st, resourceSnapshotIndex2nd, resourceSnapshotIndex1st}, []bool{true, true, true}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -394,7 +394,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to member-cluster-1 and member-cluster-3 after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[1], testNamespace, resourceSnapshotIndex2nd, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[1]) @@ -430,7 +430,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem []string{resourceSnapshotIndex2nd, resourceSnapshotIndex1st, resourceSnapshotIndex2nd}, []bool{true, true, true}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollback resources to prod stage until approved", func() { @@ -442,7 +442,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollback resources to member-cluster-1 and member-cluster-3 after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[2], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[1]) @@ -534,7 +534,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames[:2], []string{"", resourceSnapshotIndex1st}, []bool{false, true}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -542,7 +542,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to member-cluster-1 after approval but not member-cluster-3 and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[0], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, 2, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s succeeded", updateRunNames[0]) @@ -590,7 +590,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{resourceSnapshotIndex1st, resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to keep RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -598,7 +598,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to member-cluster-3 after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[1], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex2nd, 3, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[1]) @@ -642,11 +642,11 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(appConfigMapIdentifiers(), resourceSnapshotIndex1st, false, []string{allMemberClusterNames[2]}, []string{resourceSnapshotIndex1st}, []bool{false}, nil, nil) Consistently(rpStatusUpdatedActual, consistentlyDuration, consistentlyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should remove resources on member-cluster-1 and member-cluster-2 after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) // need to go through two stages surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[2], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex3rd, 1, defaultApplyStrategy, &strategy.Spec, [][]string{{}, {allMemberClusterNames[2]}}, []string{allMemberClusterNames[0], allMemberClusterNames[1]}, nil, nil, true) @@ -735,7 +735,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames[2:], []string{""}, []bool{false}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to prod stage until approved", func() { @@ -743,7 +743,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[0], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, 1, defaultApplyStrategy, &strategy.Spec, [][]string{{}, {allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[0]) @@ -790,7 +790,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, resourceSnapshotIndex1st}, []bool{false, true, true}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to keep RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to member-cluster-1 until approved", func() { @@ -798,7 +798,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to member-cluster-1 after approval and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[1], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[1], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, 3, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[1]) @@ -842,7 +842,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(appConfigMapIdentifiers(), resourceSnapshotIndex1st, true, allMemberClusterNames[1:], []string{resourceSnapshotIndex1st, resourceSnapshotIndex1st}, []bool{true, true}, nil, nil) Consistently(rpStatusUpdatedActual, consistentlyDuration, consistentlyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not remove resources from member-cluster-1 until approved", func() { @@ -850,7 +850,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should remove resources on member-cluster-1 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[2], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[2], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, 2, defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[2]}}, []string{allMemberClusterNames[0]}, nil, nil, true) Eventually(surSucceededActual, 2*updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[2]) @@ -993,7 +993,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, wantROs) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should not rollout resources to member-cluster-1 and member-cluster-3 until approved", func() { @@ -1001,7 +1001,7 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem }) It("Should rollout resources to member-cluster-1 and member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunName, testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, wantROs, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunName) @@ -1093,11 +1093,11 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should report diff for member-cluster-1 and member-cluster-3 after approval and complete the cluster staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunName, testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), applyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunName) @@ -1206,10 +1206,10 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem Eventually(configMapActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update to the new configmap %s on cluster %s", newConfigMap.Name, allMemberClusterNames[1]) // Approval for AfterStageTask of canary stage - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) // Approval for BeforeStageTask of prod stage - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) // Verify complete rollout. surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunName, testNamespace, resourceSnapshotIndex2nd, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) @@ -1287,10 +1287,10 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem createStagedUpdateRunSucceed(updateRunName, testNamespace, rpName, resourceSnapshotIndex1st, strategyName, placementv1beta1.StateExecuted) // Approval for AfterStageTask of canary stage - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) // Approval for BeforeStageTask of prod stage - validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunName, testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunName, testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunName) @@ -1612,11 +1612,11 @@ var _ = Describe("test RP rollout with staged update run", Label("resourceplacem rpStatusUpdatedActual := rpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", resourceSnapshotIndex1st, ""}, []bool{false, true, false}, nil, nil) Eventually(rpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update RP %s/%s status as expected", testNamespace, rpName) - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envCanary, placementv1beta1.AfterStageApprovalTaskNameFmt, placementv1beta1.AfterStageTaskLabelValue) }) It("Should rollout resources to all the members and complete the staged update run successfully", func() { - validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt) + validateAndApproveNamespacedApprovalRequests(updateRunNames[0], testNamespace, envProd, placementv1beta1.BeforeStageApprovalTaskNameFmt, placementv1beta1.BeforeStageTaskLabelValue) surSucceededActual := stagedUpdateRunStatusSucceededActual(updateRunNames[0], testNamespace, resourceSnapshotIndex1st, policySnapshotIndex1st, len(allMemberClusters), defaultApplyStrategy, &strategy.Spec, [][]string{{allMemberClusterNames[1]}, {allMemberClusterNames[0], allMemberClusterNames[2]}}, nil, nil, nil, true) Eventually(surSucceededActual, updateRunEventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to validate updateRun %s/%s succeeded", testNamespace, updateRunNames[0]) @@ -1770,12 +1770,13 @@ func updateStagedUpdateRunState(updateRunName, namespace string, state placement }, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update StagedUpdateRun %s to state %s", updateRunName, state) } -func validateAndApproveNamespacedApprovalRequests(updateRunName, namespace, stageName, approvalRequestNameFmt string) { +func validateAndApproveNamespacedApprovalRequests(updateRunName, namespace, stageName, approvalRequestNameFmt, stageTaskType string) { Eventually(func() error { appReqList := &placementv1beta1.ApprovalRequestList{} if err := hubClient.List(ctx, appReqList, client.InNamespace(namespace), client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, + placementv1beta1.TargetStageTaskLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } From 255856bfa8ca5ae2ecccead47e4603be5dc15572 Mon Sep 17 00:00:00 2001 From: Britania Rodriguez Reyes Date: Wed, 3 Dec 2025 18:22:58 -0600 Subject: [PATCH 2/5] address minor comment Signed-off-by: Britania Rodriguez Reyes --- apis/placement/v1beta1/commons.go | 4 ++-- apis/placement/v1beta1/stageupdate_types.go | 2 +- ...ernetes-fleet.io_clusterapprovalrequests.yaml | 2 +- pkg/controllers/updaterun/execution.go | 4 ++-- .../updaterun/execution_integration_test.go | 16 ++++++++-------- pkg/controllers/updaterun/execution_test.go | 10 +++++----- test/e2e/cluster_staged_updaterun_test.go | 6 +++--- test/e2e/staged_updaterun_test.go | 2 +- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/apis/placement/v1beta1/commons.go b/apis/placement/v1beta1/commons.go index 5babe38a3..ccb75f45e 100644 --- a/apis/placement/v1beta1/commons.go +++ b/apis/placement/v1beta1/commons.go @@ -158,8 +158,8 @@ const ( // TargetUpdateRunLabel indicates the target update run on a staged run related object. TargetUpdateRunLabel = FleetPrefix + "targetupdaterun" - // TargetStageTaskLabel indicates the target stage task on a staged run related object. - TargetStageTaskLabel = FleetPrefix + "targetstagetask" + // TargetTaskTypeLabel indicates the target task type (before-stage or after-stage) on a staged run related object. + TargetTaskTypeLabel = FleetPrefix + "targetTaskType" // UpdateRunDeleteStageName is the name of delete stage in the staged update run. UpdateRunDeleteStageName = FleetPrefix + "deleteStage" diff --git a/apis/placement/v1beta1/stageupdate_types.go b/apis/placement/v1beta1/stageupdate_types.go index 81b843ca2..a1aaa9b06 100644 --- a/apis/placement/v1beta1/stageupdate_types.go +++ b/apis/placement/v1beta1/stageupdate_types.go @@ -679,7 +679,7 @@ type ApprovalRequestObjList interface { // - `TargetUpdateRun`: Points to the cluster staged update run that this approval request is for. // - `TargetStage`: The name of the stage that this approval request is for. // - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. -// - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. +// - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. type ClusterApprovalRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml index c16ce6f03..2f0c5152f 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml @@ -172,7 +172,7 @@ spec: - `TargetUpdateRun`: Points to the cluster staged update run that this approval request is for. - `TargetStage`: The name of the stage that this approval request is for. - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. - - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. + - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. properties: apiVersion: description: |- diff --git a/pkg/controllers/updaterun/execution.go b/pkg/controllers/updaterun/execution.go index 60807ba74..f4f4af5b0 100644 --- a/pkg/controllers/updaterun/execution.go +++ b/pkg/controllers/updaterun/execution.go @@ -630,7 +630,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetStageTaskLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -647,7 +647,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetStageTaskLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_integration_test.go b/pkg/controllers/updaterun/execution_integration_test.go index 1ebfa97a5..a7915dae2 100644 --- a/pkg/controllers/updaterun/execution_integration_test.go +++ b/pkg/controllers/updaterun/execution_integration_test.go @@ -173,7 +173,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -325,7 +325,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -381,7 +381,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -534,7 +534,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1089,7 +1089,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1311,7 +1311,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1345,7 +1345,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1448,7 +1448,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_test.go b/pkg/controllers/updaterun/execution_test.go index 0f6d0179f..eadf658b3 100644 --- a/pkg/controllers/updaterun/execution_test.go +++ b/pkg/controllers/updaterun/execution_test.go @@ -364,7 +364,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -390,7 +390,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", - placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1040,7 +1040,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1097,7 +1097,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1154,7 +1154,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/test/e2e/cluster_staged_updaterun_test.go b/test/e2e/cluster_staged_updaterun_test.go index 9146889bc..960be79c4 100644 --- a/test/e2e/cluster_staged_updaterun_test.go +++ b/test/e2e/cluster_staged_updaterun_test.go @@ -1333,7 +1333,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: envCanary, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetStageTaskLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2216,7 +2216,7 @@ func validateAndApproveClusterApprovalRequests(updateRunName, stageName, approva if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetStageTaskLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2256,7 +2256,7 @@ func approveClusterApprovalRequest(stageName, updateRunName, stageTask string) { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetStageTaskLabel: stageTask, + placementv1beta1.TargetTaskTypeLabel: stageTask, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } diff --git a/test/e2e/staged_updaterun_test.go b/test/e2e/staged_updaterun_test.go index f00d71a97..fea8384aa 100644 --- a/test/e2e/staged_updaterun_test.go +++ b/test/e2e/staged_updaterun_test.go @@ -1776,7 +1776,7 @@ func validateAndApproveNamespacedApprovalRequests(updateRunName, namespace, stag if err := hubClient.List(ctx, appReqList, client.InNamespace(namespace), client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetStageTaskLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } From 27bbceff5ff9e76d88861791485cff1a676bedfd Mon Sep 17 00:00:00 2001 From: Britania Rodriguez Reyes Date: Wed, 3 Dec 2025 18:24:52 -0600 Subject: [PATCH 3/5] minor fix Signed-off-by: Britania Rodriguez Reyes --- apis/placement/v1beta1/stageupdate_types.go | 2 +- .../bases/placement.kubernetes-fleet.io_approvalrequests.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apis/placement/v1beta1/stageupdate_types.go b/apis/placement/v1beta1/stageupdate_types.go index a1aaa9b06..2e1dfdc2f 100644 --- a/apis/placement/v1beta1/stageupdate_types.go +++ b/apis/placement/v1beta1/stageupdate_types.go @@ -926,7 +926,7 @@ func (s *StagedUpdateStrategyList) GetUpdateStrategyObjs() []UpdateStrategyObj { // - `TargetUpdateRun`: Points to the staged update run that this approval request is for. // - `TargetStage`: The name of the stage that this approval request is for. // - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. -// - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. +// - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. type ApprovalRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml index a16ff6bb4..ed7ec2634 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml @@ -41,7 +41,7 @@ spec: - `TargetUpdateRun`: Points to the staged update run that this approval request is for. - `TargetStage`: The name of the stage that this approval request is for. - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. - - `TargetStageTask`: Indicates whether this approval request is for the before or after stage task. + - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. properties: apiVersion: description: |- From d9ac0a0e726510075abdbccf6ebcc7d43875ede9 Mon Sep 17 00:00:00 2001 From: Britania Rodriguez Reyes Date: Wed, 3 Dec 2025 18:31:14 -0600 Subject: [PATCH 4/5] fix lint Signed-off-by: Britania Rodriguez Reyes --- pkg/controllers/updaterun/execution.go | 4 ++-- .../updaterun/execution_integration_test.go | 16 ++++++++-------- pkg/controllers/updaterun/execution_test.go | 10 +++++----- test/e2e/cluster_staged_updaterun_test.go | 6 +++--- test/e2e/staged_updaterun_test.go | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/pkg/controllers/updaterun/execution.go b/pkg/controllers/updaterun/execution.go index f4f4af5b0..f13f6cd17 100644 --- a/pkg/controllers/updaterun/execution.go +++ b/pkg/controllers/updaterun/execution.go @@ -630,7 +630,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -647,7 +647,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_integration_test.go b/pkg/controllers/updaterun/execution_integration_test.go index a7915dae2..1938308ba 100644 --- a/pkg/controllers/updaterun/execution_integration_test.go +++ b/pkg/controllers/updaterun/execution_integration_test.go @@ -173,7 +173,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -325,7 +325,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -381,7 +381,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -534,7 +534,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1089,7 +1089,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1311,7 +1311,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1345,7 +1345,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1448,7 +1448,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_test.go b/pkg/controllers/updaterun/execution_test.go index eadf658b3..df545fd5c 100644 --- a/pkg/controllers/updaterun/execution_test.go +++ b/pkg/controllers/updaterun/execution_test.go @@ -364,7 +364,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -390,7 +390,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1040,7 +1040,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1097,7 +1097,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1154,7 +1154,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/test/e2e/cluster_staged_updaterun_test.go b/test/e2e/cluster_staged_updaterun_test.go index 960be79c4..3949dbcf6 100644 --- a/test/e2e/cluster_staged_updaterun_test.go +++ b/test/e2e/cluster_staged_updaterun_test.go @@ -1333,7 +1333,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: envCanary, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2216,7 +2216,7 @@ func validateAndApproveClusterApprovalRequests(updateRunName, stageName, approva if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2256,7 +2256,7 @@ func approveClusterApprovalRequest(stageName, updateRunName, stageTask string) { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTask, + placementv1beta1.TargetTaskTypeLabel: stageTask, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } diff --git a/test/e2e/staged_updaterun_test.go b/test/e2e/staged_updaterun_test.go index fea8384aa..e479125c9 100644 --- a/test/e2e/staged_updaterun_test.go +++ b/test/e2e/staged_updaterun_test.go @@ -1776,7 +1776,7 @@ func validateAndApproveNamespacedApprovalRequests(updateRunName, namespace, stag if err := hubClient.List(ctx, appReqList, client.InNamespace(namespace), client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TargetTaskTypeLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } From 469d0f7569f749c256ba598cd51c489b6616cc89 Mon Sep 17 00:00:00 2001 From: Britania Rodriguez Reyes Date: Thu, 4 Dec 2025 16:41:12 -0600 Subject: [PATCH 5/5] address comments Signed-off-by: Britania Rodriguez Reyes --- apis/placement/v1beta1/commons.go | 6 +++--- apis/placement/v1beta1/stageupdate_types.go | 4 ++-- ...ent.kubernetes-fleet.io_approvalrequests.yaml | 2 +- ...ernetes-fleet.io_clusterapprovalrequests.yaml | 2 +- pkg/controllers/updaterun/execution.go | 4 ++-- .../updaterun/execution_integration_test.go | 16 ++++++++-------- pkg/controllers/updaterun/execution_test.go | 10 +++++----- test/e2e/cluster_staged_updaterun_test.go | 6 +++--- test/e2e/staged_updaterun_test.go | 2 +- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/apis/placement/v1beta1/commons.go b/apis/placement/v1beta1/commons.go index ccb75f45e..3d118dff0 100644 --- a/apis/placement/v1beta1/commons.go +++ b/apis/placement/v1beta1/commons.go @@ -156,10 +156,10 @@ const ( UpdateRunFinalizer = FleetPrefix + "stagedupdaterun-finalizer" // TargetUpdateRunLabel indicates the target update run on a staged run related object. - TargetUpdateRunLabel = FleetPrefix + "targetupdaterun" + TargetUpdateRunLabel = FleetPrefix + "targetUpdateRun" - // TargetTaskTypeLabel indicates the target task type (before-stage or after-stage) on a staged run related object. - TargetTaskTypeLabel = FleetPrefix + "targetTaskType" + // TaskTypeLabel indicates the task type (before-stage or after-stage) on a staged run related object. + TaskTypeLabel = FleetPrefix + "taskType" // UpdateRunDeleteStageName is the name of delete stage in the staged update run. UpdateRunDeleteStageName = FleetPrefix + "deleteStage" diff --git a/apis/placement/v1beta1/stageupdate_types.go b/apis/placement/v1beta1/stageupdate_types.go index 2e1dfdc2f..85d3672a0 100644 --- a/apis/placement/v1beta1/stageupdate_types.go +++ b/apis/placement/v1beta1/stageupdate_types.go @@ -679,7 +679,7 @@ type ApprovalRequestObjList interface { // - `TargetUpdateRun`: Points to the cluster staged update run that this approval request is for. // - `TargetStage`: The name of the stage that this approval request is for. // - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. -// - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. +// - `TaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. type ClusterApprovalRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` @@ -926,7 +926,7 @@ func (s *StagedUpdateStrategyList) GetUpdateStrategyObjs() []UpdateStrategyObj { // - `TargetUpdateRun`: Points to the staged update run that this approval request is for. // - `TargetStage`: The name of the stage that this approval request is for. // - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. -// - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. +// - `TaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. type ApprovalRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml index ed7ec2634..eb0f9fbaa 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_approvalrequests.yaml @@ -41,7 +41,7 @@ spec: - `TargetUpdateRun`: Points to the staged update run that this approval request is for. - `TargetStage`: The name of the stage that this approval request is for. - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. - - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. + - `TaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. properties: apiVersion: description: |- diff --git a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml index 2f0c5152f..ce736fcc3 100644 --- a/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml +++ b/config/crd/bases/placement.kubernetes-fleet.io_clusterapprovalrequests.yaml @@ -172,7 +172,7 @@ spec: - `TargetUpdateRun`: Points to the cluster staged update run that this approval request is for. - `TargetStage`: The name of the stage that this approval request is for. - `IsLatestUpdateRunApproval`: Indicates whether this approval request is the latest one related to this update run. - - `TargetTaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. + - `TaskTypeLabel`: Indicates whether this approval request is for the before or after stage task. properties: apiVersion: description: |- diff --git a/pkg/controllers/updaterun/execution.go b/pkg/controllers/updaterun/execution.go index f13f6cd17..74a3a4045 100644 --- a/pkg/controllers/updaterun/execution.go +++ b/pkg/controllers/updaterun/execution.go @@ -630,7 +630,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TaskTypeLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -647,7 +647,7 @@ func buildApprovalRequestObject(namespacedName types.NamespacedName, stageName, Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TaskTypeLabel: stageTaskType, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_integration_test.go b/pkg/controllers/updaterun/execution_integration_test.go index 1938308ba..86632ee5e 100644 --- a/pkg/controllers/updaterun/execution_integration_test.go +++ b/pkg/controllers/updaterun/execution_integration_test.go @@ -173,7 +173,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -325,7 +325,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -381,7 +381,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -534,7 +534,7 @@ var _ = Describe("UpdateRun execution tests - double stages", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[1].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1089,7 +1089,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1311,7 +1311,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1345,7 +1345,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1448,7 +1448,7 @@ var _ = Describe("UpdateRun execution tests - single stage", func() { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: updateRun.Status.StagesStatus[0].StageName, placementv1beta1.TargetUpdateRunLabel: updateRun.Name, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/pkg/controllers/updaterun/execution_test.go b/pkg/controllers/updaterun/execution_test.go index df545fd5c..510720906 100644 --- a/pkg/controllers/updaterun/execution_test.go +++ b/pkg/controllers/updaterun/execution_test.go @@ -364,7 +364,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -390,7 +390,7 @@ func TestBuildApprovalRequestObject(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: "test-stage", placementv1beta1.TargetUpdateRunLabel: "test-update-run", - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1040,7 +1040,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1097,7 +1097,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, @@ -1154,7 +1154,7 @@ func TestCheckBeforeStageTasksStatus_NegativeCases(t *testing.T) { Labels: map[string]string{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: testUpdateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.BeforeStageTaskLabelValue, placementv1beta1.IsLatestUpdateRunApprovalLabel: "true", }, }, diff --git a/test/e2e/cluster_staged_updaterun_test.go b/test/e2e/cluster_staged_updaterun_test.go index 3949dbcf6..b81107219 100644 --- a/test/e2e/cluster_staged_updaterun_test.go +++ b/test/e2e/cluster_staged_updaterun_test.go @@ -1333,7 +1333,7 @@ var _ = Describe("test CRP rollout with staged update run", func() { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: envCanary, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, + placementv1beta1.TaskTypeLabel: placementv1beta1.AfterStageTaskLabelValue, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2216,7 +2216,7 @@ func validateAndApproveClusterApprovalRequests(updateRunName, stageName, approva if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TaskTypeLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } @@ -2256,7 +2256,7 @@ func approveClusterApprovalRequest(stageName, updateRunName, stageTask string) { if err := hubClient.List(ctx, appReqList, client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTask, + placementv1beta1.TaskTypeLabel: stageTask, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) } diff --git a/test/e2e/staged_updaterun_test.go b/test/e2e/staged_updaterun_test.go index e479125c9..939de0c78 100644 --- a/test/e2e/staged_updaterun_test.go +++ b/test/e2e/staged_updaterun_test.go @@ -1776,7 +1776,7 @@ func validateAndApproveNamespacedApprovalRequests(updateRunName, namespace, stag if err := hubClient.List(ctx, appReqList, client.InNamespace(namespace), client.MatchingLabels{ placementv1beta1.TargetUpdatingStageNameLabel: stageName, placementv1beta1.TargetUpdateRunLabel: updateRunName, - placementv1beta1.TargetTaskTypeLabel: stageTaskType, + placementv1beta1.TaskTypeLabel: stageTaskType, }); err != nil { return fmt.Errorf("failed to list approval requests: %w", err) }