Nebari Distribution Proposal #2858
Adam-D-Lewis
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
In Quansight, we've been talking about the idea of a Nebari distribution. I think the first thing we should do is to define what a distribution is. Here's my proposed definition below.
What is a distribution?
A nebari distribution is a tested set of configuration that is known to work and is usually geared towards a specific use case (see examples below).
Users deploying nebari can feel confident that if they deploy a distribution, it will be a good starting point for them.
Distribution Examples
For the sake of discussion, these are examples of distributions that should be possible.
Supported Features of a Distribution
As motivated by the distribution examples, a distribution should be able to define the following:
* Custom docker images could be specified as part of this.
**I could see us replacing Workflows (or supplementing it) with a "Downloads" feature which downloads files and puts them where specified in the NFS drive on initial deployment. It could use some type of workflow under the hood, but that would be an implementation detail.
How to define a distribution:
Various options exist to create a distribution:
- Nebari distribution plugin (not different from a regular nebari plugin, just want user to keep in mind a distribution plugin is likely to have dependencies on other plugins (e.g. Nebari MLflow plugin))
- yaml file
- other?
Nebari Plugin defined Distribution
I see a Nebari plugin as very robust and capable choice, but it is more difficult to create a distribution since you have to create a python package. I don't see that difficulty as an issue since I think anyone considering creating a Nebari plugin is capable of creating a python package or learning how to do so. This also allows us to specify dependencies on nebari and other plugins in the usual manner (pyproject.yaml).
Yaml File defined Distribution
I see a yaml file as not robust enough and likely to result in us trying to create a DSL in yaml to handle many different distribution needs. Nevertheless, I've tried to define below for the sake of argument. I didn't put it in a code block so that the scroll bars wouldn't appear.
The 3 major cons I've noted in the yaml file are:
I think we should define nebari distributions in plugins b/c of those limitations of the yaml file approach.
Beta Was this translation helpful? Give feedback.
All reactions