Skip to content

Commit 3eec977

Browse files
authored
test: add override, reportDiff E2Es for staged update run (#301)
1 parent 56a4628 commit 3eec977

File tree

3 files changed

+286
-42
lines changed

3 files changed

+286
-42
lines changed

test/e2e/actuals_test.go

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,7 +1439,7 @@ func crpStatusWithExternalStrategyActual(
14391439
reportDiff := crp.Spec.Strategy.ApplyStrategy != nil && crp.Spec.Strategy.ApplyStrategy.Type == placementv1beta1.ApplyStrategyTypeReportDiff
14401440

14411441
wantPlacementStatus, crpHasOverrides := buildPerClusterPlacementStatusesAndHasOverrides(
1442-
crp.Generation, reportDiff, wantSelectedClusters, wantObservedResourceIndexPerCluster, wantRolloutCompletedPerCluster, wantClusterResourceOverrides, wantResourceOverrides)
1442+
crp.Generation, reportDiff, true, wantSelectedClusters, wantObservedResourceIndexPerCluster, wantRolloutCompletedPerCluster, wantClusterResourceOverrides, wantResourceOverrides)
14431443

14441444
wantStatus := placementv1beta1.PlacementStatus{
14451445
PerClusterPlacementStatuses: wantPlacementStatus,
@@ -1484,7 +1484,7 @@ func rpStatusWithExternalStrategyActual(
14841484
reportDiff := rp.Spec.Strategy.ApplyStrategy != nil && rp.Spec.Strategy.ApplyStrategy.Type == placementv1beta1.ApplyStrategyTypeReportDiff
14851485

14861486
wantPlacementStatus, rpHasOverrides := buildPerClusterPlacementStatusesAndHasOverrides(
1487-
rp.Generation, reportDiff, wantSelectedClusters, wantObservedResourceIndexPerCluster, wantRolloutCompletedPerCluster, wantClusterResourceOverrides, wantResourceOverrides)
1487+
rp.Generation, reportDiff, false, wantSelectedClusters, wantObservedResourceIndexPerCluster, wantRolloutCompletedPerCluster, wantClusterResourceOverrides, wantResourceOverrides)
14881488

14891489
wantStatus := placementv1beta1.PlacementStatus{
14901490
PerClusterPlacementStatuses: wantPlacementStatus,
@@ -1511,6 +1511,7 @@ func rpStatusWithExternalStrategyActual(
15111511
func buildPerClusterPlacementStatusesAndHasOverrides(
15121512
generation int64,
15131513
reportDiff bool,
1514+
isClusterScoped bool,
15141515
wantSelectedClusters []string,
15151516
wantObservedResourceIndexPerCluster []string,
15161517
wantRolloutCompletedPerCluster []bool,
@@ -1537,42 +1538,44 @@ func buildPerClusterPlacementStatusesAndHasOverrides(
15371538
placementHasOverrides = true
15381539
}
15391540
if reportDiff {
1541+
diffedPlacements := []placementv1beta1.DiffedResourcePlacement{
1542+
{
1543+
ResourceIdentifier: placementv1beta1.ResourceIdentifier{
1544+
Version: "v1",
1545+
Kind: "ConfigMap",
1546+
Name: cmName,
1547+
Namespace: nsName,
1548+
},
1549+
ObservedDiffs: []placementv1beta1.PatchDetail{
1550+
{
1551+
Path: "/",
1552+
ValueInHub: "(the whole object)",
1553+
},
1554+
},
1555+
},
1556+
}
1557+
if isClusterScoped {
1558+
diffedPlacements = append(diffedPlacements, placementv1beta1.DiffedResourcePlacement{
1559+
ResourceIdentifier: placementv1beta1.ResourceIdentifier{
1560+
Version: "v1",
1561+
Kind: "Namespace",
1562+
Name: nsName,
1563+
},
1564+
ObservedDiffs: []placementv1beta1.PatchDetail{
1565+
{
1566+
Path: "/",
1567+
ValueInHub: "(the whole object)",
1568+
},
1569+
},
1570+
})
1571+
}
15401572
wantPlacementStatuses = append(wantPlacementStatuses, placementv1beta1.PerClusterPlacementStatus{
15411573
ClusterName: name,
15421574
Conditions: perClusterDiffReportedConditions(generation),
15431575
ApplicableResourceOverrides: wantResourceOverrides,
15441576
ApplicableClusterResourceOverrides: wantClusterResourceOverrides,
15451577
ObservedResourceIndex: wantObservedResourceIndexPerCluster[i],
1546-
// TODO(arvindth): Need to update this when we have more test cases for staged UpdateRun.
1547-
DiffedPlacements: []placementv1beta1.DiffedResourcePlacement{
1548-
{
1549-
ResourceIdentifier: placementv1beta1.ResourceIdentifier{
1550-
Version: "v1",
1551-
Kind: "Namespace",
1552-
Name: nsName,
1553-
},
1554-
ObservedDiffs: []placementv1beta1.PatchDetail{
1555-
{
1556-
Path: "/",
1557-
ValueInHub: "(the whole object)",
1558-
},
1559-
},
1560-
},
1561-
{
1562-
ResourceIdentifier: placementv1beta1.ResourceIdentifier{
1563-
Version: "v1",
1564-
Kind: "ConfigMap",
1565-
Name: cmName,
1566-
Namespace: nsName,
1567-
},
1568-
ObservedDiffs: []placementv1beta1.PatchDetail{
1569-
{
1570-
Path: "/",
1571-
ValueInHub: "(the whole object)",
1572-
},
1573-
},
1574-
},
1575-
},
1578+
DiffedPlacements: diffedPlacements,
15761579
})
15771580
} else {
15781581
wantPlacementStatuses = append(wantPlacementStatuses, placementv1beta1.PerClusterPlacementStatus{

test/e2e/cluster_staged_updaterun_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ var _ = Describe("test CRP rollout with staged update run", func() {
644644
})
645645
})
646646

647-
Context("Test staged update run with overrides", Ordered, func() {
647+
Context("Test cluster staged update run with overrides", Ordered, func() {
648648
var strategy *placementv1beta1.ClusterStagedUpdateStrategy
649649
updateRunName := fmt.Sprintf(clusterStagedUpdateRunNameWithSubIndexTemplate, GinkgoParallelProcess(), 0)
650650
croName := fmt.Sprintf(croNameTemplate, GinkgoParallelProcess())
@@ -778,15 +778,15 @@ var _ = Describe("test CRP rollout with staged update run", func() {
778778
validateLatestClusterResourceSnapshot(crpName, resourceSnapshotIndex1st)
779779
})
780780

781+
It("Should successfully schedule the crp", func() {
782+
validateLatestClusterSchedulingPolicySnapshot(crpName, policySnapshotIndex1st, 3)
783+
})
784+
781785
It("Should update crp status as pending rollout", func() {
782786
crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", "", ""}, []bool{false, false, false}, nil, nil)
783787
Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName)
784788
})
785789

786-
It("Should successfully schedule the crp", func() {
787-
validateLatestClusterSchedulingPolicySnapshot(crpName, policySnapshotIndex1st, 3)
788-
})
789-
790790
It("Should create a cluster staged update run successfully", func() {
791791
createClusterStagedUpdateRunSucceed(updateRunName, crpName, resourceSnapshotIndex1st, strategyName)
792792
})
@@ -824,7 +824,7 @@ var _ = Describe("test CRP rollout with staged update run", func() {
824824
})
825825
})
826826

827-
Context("Test staged update run with reportDiff mode", Ordered, func() {
827+
Context("Test cluster staged update run with reportDiff mode", Ordered, func() {
828828
var strategy *placementv1beta1.ClusterStagedUpdateStrategy
829829
var applyStrategy *placementv1beta1.ApplyStrategy
830830
updateRunName := fmt.Sprintf(clusterStagedUpdateRunNameWithSubIndexTemplate, GinkgoParallelProcess(), 0)
@@ -881,15 +881,15 @@ var _ = Describe("test CRP rollout with staged update run", func() {
881881
validateLatestClusterResourceSnapshot(crpName, resourceSnapshotIndex1st)
882882
})
883883

884+
It("Should successfully schedule the crp", func() {
885+
validateLatestClusterSchedulingPolicySnapshot(crpName, policySnapshotIndex1st, 3)
886+
})
887+
884888
It("Should update crp status as pending rollout", func() {
885889
crpStatusUpdatedActual := crpStatusWithExternalStrategyActual(nil, "", false, allMemberClusterNames, []string{"", "", ""}, []bool{false, false, false}, nil, nil)
886890
Eventually(crpStatusUpdatedActual, eventuallyDuration, eventuallyInterval).Should(Succeed(), "Failed to update CRP %s status as expected", crpName)
887891
})
888892

889-
It("Should successfully schedule the crp", func() {
890-
validateLatestClusterSchedulingPolicySnapshot(crpName, policySnapshotIndex1st, 3)
891-
})
892-
893893
It("Should create a cluster staged update run successfully", func() {
894894
createClusterStagedUpdateRunSucceed(updateRunName, crpName, resourceSnapshotIndex1st, strategyName)
895895
})

0 commit comments

Comments
 (0)