acoustic-carpenter-78188
12/30/2025, 4:07 AMThe pattern of using phase is deprecated. Newer API types should use conditions insteadIt's better for us to remove Phase and Message and just use Conditions in our executor to follow the best practice. ## What changes were proposed in this pull request? Controller changes: • Use
Conditions for the reconcile logic, following best practice mentioned in api-conventions
• Use common top-level condition which summarizes more detailed conditions (Succeed, Failed, Progressing). Use Reason for status detail
• Follow how k8s job controller did, check the terminate condition first, then going through others (link)
• Add fields in Spec, and update sample YAML
• Add more kubebuilder:printcolumn for observability
• Add workflowconnect mock and update taskaction controller test
Development Changes:
• Update go.mod, Dockerfile, and Makefile to build executor successfully
• Add DEVELOPMENT.md to guide through setting up local development environment and apply examples
• Update README to provide more descriptions
## How was this patch tested?
• task action controller unit test
❯ make test
/Users/nary/workData/open-source/flyte-v2/executor/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." outputcrdartifacts:config=config/crd/bases
/Users/nary/workData/open-source/flyte-v2/executor/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
go fmt ./...
go vet ./...
Setting up envtest binaries for Kubernetes version 1.34...
/Users/nary/workData/open-source/flyte-v2/executor/bin/k8s/1.34.1-darwin-arm64KUBEBUILDER_ASSETS="/Users/nary/workData/open-source/flyte-v2/executor/bin/k8s/1.34.1-darwin-arm64" go test $(go list ./... | grep -v /e2e) -coverprofile cover.out
github.com/flyteorg/flyte/v2/executor/api/v1 coverage: 0.0% of statements
github.com/flyteorg/flyte/v2/executor/cmd coverage: 0.0% of statements
ok github.com/flyteorg/flyte/v2/executor/pkg/controller 8.052s coverage: 39.5% of statements
github.com/flyteorg/flyte/v2/executor/test/utils coverage: 0.0% of statements
• Manual test, following DEVELOPMENT.md for setup and apply example with kubectl apply -k config/samples/. Ensure the conditions change correctly
❯ k describe taskactions taskaction-sample
Name: taskaction-sample
Namespace: default
Labels: app.kubernetes.io/managed-by=kustomize
app.kubernetes.io/name=executor
Annotations: <none>
API Version: flyte.org/v1
Kind: TaskAction
Metadata:
Creation Timestamp: 2025-12-30T022235Z
Generation: 1
Resource Version: 991
UID: 12fa6800-91de-4b11-9501-66b4ebd43df6
Spec:
Action Name: sample-task
Domain: dev
Input Uri: /tmp/input
Org: demo
Project: default
Run Name: sample-run
Run Output Base: /tmp/output
Status:
Conditions:
Last Transition Time: 2025-12-30T022647Z
Message: TaskAction has completed
Reason: Completed
Status: False
Type: Progressing
Last Transition Time: 2025-12-30T022647Z
Message: TaskAction completed successfully
Reason: Completed
Status: True
Type: Succeeded
State Json: {"actionId":"sample-run/sample-task","phase":"Succeeded","timestamp":"2025-12-30T022647Z"}
Events: <none>
### Labels
Please add one or more of the following labels to categorize your PR:
• added: For new features.
• changed: For changes in existing functionality.
• deprecated: For soon-to-be-removed features.
• removed: For features being removed.
• fixed: For any bug fixed.
• security: In case of vulnerabilities
This is important to improve the readability of release notes.
### 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
flyteorg/flyteacoustic-carpenter-78188
12/30/2025, 4:07 AM