Open Warashi opened 2 months ago
Thanks @Warashi ! As mentioned in the docs, we want to support ReplicationController, DaemonSet, and StatefulSet in our plan. There is currently no CronJob on the list. Could you confirm the behavior of the current piped with the above planned Kind? If it all worked, then we can rename this issue as support CronJob as PipeCD managed workload ref: https://pipecd.dev/docs-v0.47.x/user-guide/configuration-reference/#kubernetesworkload
I checked the behavior of ReplicationController, DaemonSet, and StatefulSet. When I changed the image tags of these kinds of manifests, the sync strategy became PipelineSync. However, I only checked the WAIT_APPROVAL stage and K8S_PRIMARY_ROLLOUT stage with example manifests in Kubernetes' official documents. In perfect, I should check the behaviors of all stages, but I think it's enough to determine if PipelineSync is supported.
What would you like to be added:
Support StatefulSet, CronJob, ...etc, as a workload in Kubernetes PipelineSync.
A document states that PipeCD supports Deployment as the only supported workload in the Kubernetes platform. https://pipecd.dev/docs-v0.47.x/user-guide/configuration-reference/#kubernetesworkload
I tried to specify StatefulSet as a workload, and its deployment was planned as PipelineSync. So, StatefulSet seems supported. So, the document seems wrong, or I missed some unsupported features.
Conversely, when I tried to specify CronJob as a workload, its deployment was planned as QuickSync. So, CronJob seems not supported.
This comes from the line below. CronJob's container spec is
spec.jobTemplate.spec.template
, notspec.template
. https://github.com/pipe-cd/pipecd/blob/b20163b70902d4f0f6698ff85f8ac427d61359f8/pkg/app/piped/planner/kubernetes/kubernetes.go#L260Why is this needed:
We want to use WAIT_APPROVAL stage with these workloads.