acoustic-carpenter-78188
03/10/2026, 6:26 PMhandleAbortAndFinalize to remove the finalizer even though no plugin ever ran and there is nothing to clean up. Additionally, validateSpec only checked 4 of the 9 required spec fields, leaving runName, org, project, domain, and actionName unvalidated at the controller level.
What changes were proposed in this pull request?
• Replaced the separate validateSpec function and inline ResolvePlugin block with a unified validateTaskAction function that validates all required spec fields and resolves the plugin in a single pass
• This validation now runs before the finalizer is added if validation fails, the resource is marked terminal (Failed condition), not requeued, and no finalizer is registered, making deletion trivial
• Introduced a pluginResolver interface so validateTaskAction is testable without a real plugin registry
• Added taskaction_validation_test.go with standard Go unit tests covering all 9 required field checks and the plugin-not-found case
• Fixed the existing integration test fixture which was missing required fields (taskType, taskTemplate)
How was this patch tested?
• Unit tests: go test ./pkg/controller/... -run TestValidateTaskAction -v covers all 9 missing-field cases and plugin-not-found
• Integration test: go test ./pkg/controller/... -v confirms reconcile completes without error and sets conditions
Setup process
Screenshots
Check all the applicable boxes
• I updated the documentation accordingly.
• All new and existing tests passed.
• All commits are signed-off.
Related PRs
Docs link
• main
• #6583
• #7006 👈
flyteorg/flyteacoustic-carpenter-78188
03/11/2026, 3:38 PM