-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: don't wait for pipeline to finish updating because we can't distinguish failure from progressing #313
Conversation
…gives a false positive failure Signed-off-by: Julie Vogelman <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
Signed-off-by: Julie Vogelman <[email protected]>
@@ -110,15 +110,16 @@ func verifyPipelinePaused(namespace string, pipelineRolloutName string, pipeline | |||
}, testTimeout).Should(Equal(metav1.ConditionTrue)) | |||
|
|||
document("Verify that Pipeline is paused and fully drained") | |||
verifyPipelineStatusEventually(Namespace, pipelineName, | |||
verifyPipelineStatusEventually(namespace, pipelineName, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we weren't using the parameter passed in to the function
@@ -251,7 +251,7 @@ var _ = Describe("Functional e2e", Serial, func() { | |||
|
|||
verifyPipelineRolloutDeployed(pipelineRolloutName) | |||
verifyPipelineRolloutHealthy(pipelineRolloutName) | |||
verifyInProgressStrategy(Namespace, pipelineRolloutName, apiv1.UpgradeStrategyNoOp) | |||
verifyInProgressStrategy(pipelineRolloutName, apiv1.UpgradeStrategyNoOp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove unused parameter from this function
} | ||
return false, metav1.Condition{} | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no longer used
@@ -669,15 +669,10 @@ func createPipelineRollout(isbsvcSpec numaflowv1.PipelineSpec) *apiv1.PipelineRo | |||
} | |||
} | |||
|
|||
func createPipelineOfSpec(spec numaflowv1.PipelineSpec, phase numaflowv1.PipelinePhase, fullyReconciled bool) *numaflowv1.Pipeline { | |||
func createPipelineOfSpec(spec numaflowv1.PipelineSpec, phase numaflowv1.PipelinePhase) *numaflowv1.Pipeline { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not needed in the test anymore
|
||
return unhealthyOrProgressing, nil | ||
|
||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no longer used
func(retrievedPipelineSpec numaflowv1.PipelineSpec, retrievedPipelineStatus numaflowv1.PipelineStatus) bool { | ||
return retrievedPipelineStatus.Phase == numaflowv1.PipelinePhasePaused && retrievedPipelineStatus.DrainedOnPause | ||
|
||
}) | ||
verifyPodsRunning(namespace, 0, getVertexLabelSelector(pipelineName)) | ||
// this happens too fast to verify it: | ||
//verifyPodsRunning(namespace, 0, getVertexLabelSelector(pipelineName)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this can happen too fast now to verify 0 Pods now but note that Numaflow has in fact indicated phase=Paused and drainedOnPause=true in the previous step, which it would only do if there were 0 Pods
Signed-off-by: Julie Vogelman <[email protected]>
Modifications
This makes it so that we no longer require to be paused simply because pipeline is still reconciling.
The original process of updating was:
desiredPhase=Paused
pipeline.ObservedGeneration
and pipeline Conditions, which indicate whether daemon, vertices, side inputs are fully reconcileddesiredPhase=Running
I have to remove step 4 because it's impossible to know based on Pipeline Conditions whether Pipeline is in fact still "progressing" or failed. This becomes clear when we actually deploy a bad pipeline.
Why I think this is okay to remove: After the Pipeline has been paused, it goes down to 0 vertices. After we apply the spec, Numaflow Controller updates the Vertex specs. Then we set it to
desiredPhase=Running
, and it scales those Vertices back up. My original motivation to wait for it to fully reconcile was out of paranoia that we would somehow be "Running" an older Vertex but now this seems unnecessary.Verification
Ran e2e test about 6 times with success every time