A Prefect Kubernetes operator #15050
Replies: 3 comments 3 replies
-
@chrisguidry could a Cloud user leverage the |
Beta Was this translation helpful? Give feedback.
-
A status update: development on the operator has been coming along well, and we're getting close to the first release! Big thanks to @mitchnielsen and @parkedwards for all their contributions here. 🙇 |
Beta Was this translation helpful? Give feedback.
-
We've got our first (and second!) releases of We're sure there are still many details to iron out and we'd love feedback from anyone operating Prefect in Kubernetes. I'd say this version would be a great place to start for development and test workloads where ephemeral storage makes sense, for spinning up workers for a production We'll be doing a lot more testing internally over the coming weeks to make sure the |
Beta Was this translation helpful? Give feedback.
-
I've been prototyping an operator for Kubernetes that can provision Prefect servers and workers with custom resources in the cluster. I'm looking for feedback from the community, especially from folks on platform teams who are provisioning Prefect for their organization.
The goal here is to make provisioning Prefect servers in a cluster as comfortable as any other Kubernetes resource, while covering many of the small details, like health probes and when database migrations are applied.
We're still quite early in this journey and would appreciate any feedback and feature requests you'd have for this operator. It's so early we haven't event published an image yet!
This idea started because I run Prefect on Kubernetes in a small environment where there is one central namespace running a Prefect server, then work pools with workers running in isolated namespaces with access to databases and other API secrets. I feel this is a common pattern, so I am trying to support both the use case of a single Prefect server per namespace and one where there is a Prefect server in the cluster and many worker using it.
In the initial design, we have two namespaced CRDs,
PrefectServer
andPrefectWorkPool
:The
PrefectServer
will own aDeployment
andService
, as well as aPersistentVolumeClaim
if necessary for SQLite-backed servers. ThePrefectWorkPool
will own aDeployment
with the specified number of replicas.The prototype is implemented in Go using the Operator SDK, so it can take advantage of the amazing and mature tooling around Kubernetes. I tried the Python
kopf
framework, which I found quite pleasant, but ultimately decided against due to the large warning at the top of their documentation.Beta Was this translation helpful? Give feedback.
All reactions