Summary
In app/internal/k8s/app_client.go, the Spec_Pod case is currently a stub that returns an error:
case *flyteapp.Spec_Pod:
// K8sPod payloads are not yet supported — the pod spec serialization
// from flyteplugins is needed for a complete implementation.
return corev1.PodSpec{}, fmt.Errorf("K8sPod app payload is not yet supported")
What needs to be done
Implement the Spec_Pod case so that a K8sPod app payload is fully deserialized into a corev1.PodSpec. This requires:
- Leveraging the pod spec serialization from
flyteplugins (or an equivalent utility) to convert the flyteapp.Spec_Pod proto payload into a corev1.PodSpec.
- Handling any container overrides, resource requirements, environment variables, and port mappings that may be present in the pod spec.
- Adding unit tests covering the new code path.
Why this matters
Without this support, workflows that define tasks as K8sPod payloads cannot be scheduled via the app client, limiting the expressiveness available to Flyte v2 users.
Related
app/internal/k8s/app_client.go — buildPodSpec function, Spec_Pod case
Summary
In
app/internal/k8s/app_client.go, theSpec_Podcase is currently a stub that returns an error:What needs to be done
Implement the
Spec_Podcase so that aK8sPodapp payload is fully deserialized into acorev1.PodSpec. This requires:flyteplugins(or an equivalent utility) to convert theflyteapp.Spec_Podproto payload into acorev1.PodSpec.Why this matters
Without this support, workflows that define tasks as
K8sPodpayloads cannot be scheduled via the app client, limiting the expressiveness available to Flyte v2 users.Related
app/internal/k8s/app_client.go—buildPodSpecfunction,Spec_Podcase