diff --git a/pkg/monitortests/clusterversionoperator/legacycvomonitortests/operators.go b/pkg/monitortests/clusterversionoperator/legacycvomonitortests/operators.go index e5b86f7e9c66..4fb0051ec51f 100644 --- a/pkg/monitortests/clusterversionoperator/legacycvomonitortests/operators.go +++ b/pkg/monitortests/clusterversionoperator/legacycvomonitortests/operators.go @@ -68,6 +68,17 @@ func testUpgradeOperatorStateTransitions(events monitorapi.Intervals, clientConf return "", nil } + // Determine if condition is within a the upgrade window. + inUpgradeWindow := operatorstateanalyzer.InUpgradeWindow(events, condition.LastTransitionTime.Time) + + if condition.Status == configv1.ConditionFalse { + if condition.Type == configv1.OperatorAvailable { + if !inUpgradeWindow { + // Operators should never go Available=False outside of the upgrade window. + return "", nil + } + } + } switch operator { case "authentication": if condition.Type == configv1.OperatorAvailable && condition.Status == configv1.ConditionFalse && (condition.Reason == "APIServices_Error" || condition.Reason == "APIServerDeployment_NoDeployment" || condition.Reason == "APIServerDeployment_NoPod" || condition.Reason == "APIServerDeployment_PreconditionNotFulfilled" || condition.Reason == "APIServices_PreconditionNotReady" || condition.Reason == "OAuthServerDeployment_NoDeployment" || condition.Reason == "OAuthServerRouteEndpointAccessibleController_EndpointUnavailable" || condition.Reason == "OAuthServerServiceEndpointAccessibleController_EndpointUnavailable" || condition.Reason == "WellKnown_NotReady") {