Hey folks! Curious if your Flyte users have a specific folder structure to hold generalized tasks, workflows, etc? We're brainstorming what might be the best way to organize and isolate workflow dependencies. For example, some workflows could share the same Dockerfile & requirements, but others may have their own... etc... any best practices folks developed at their companies they're willing to share? We tried to follow something similar to Flytesnacks but I think it got a bit disorganized.
09/22/2022, 9:39 PM
oh yeah please don’t follow flytesnacks. that repo is… overburdened. it needs to serve as 1) testing platform 2) code examples 3) outside-of-code documentation 4) probably something else i’m forgetting
and because we need to run it in CI there’s an interesting arrangement of inherited makefiles and bash scripts.
09/23/2022, 5:05 PM
Yes, actually my prompt is generally sparked by how complex our CI is getting.
09/23/2022, 11:49 PM
Cc @jeev / @Rahul Mehta and others please chime in
09/23/2022, 11:53 PM
We're in the process of writing up our CI process for Flyte — actually think we've found a way to set it up that reduces a lot of boilerplate.
The main aspect of our repo that allows us to do that is we're using a hermetic build system (Bazel, though one could probably achieve the same with pants or buck). We extended bazel in order to build a Flyte image and register entities
@Katrina P are you using a similar tool? In general the dependency isolation aspect is one that's well solved by the build systems I listed above
We'd eventually like to clean up and contribute a version of our bazel rules
09/26/2022, 10:00 PM
Super interesting @Rahul Mehta! I'd be very interested into looking into this. We aren't using any tool at all right now, just some custom github actions we've written up for workflows that get pushed to our main branch. (and unfortunately right now sometimes that means a gha for each workflow as it gets updated 😞 )
09/27/2022, 12:34 AM
ohh why a github action for each workflow?, why not package and register?
09/27/2022, 3:24 PM
The github action is packaging up the workflow and registering them individually because we wanted the version number for each workflow to be tied to the git hash where it was updated.
09/28/2022, 12:37 AM
But isn’t that the same?
09/28/2022, 11:16 PM
Interestingly enough, using a build system like this makes it feasible to rebuild/push a fresh container image each time and re-register workflows