package
package copied to clipboard
Centralize applicable logic in k8s rather than in every language library
Maintaining many libraries is hell on wheels, especially if they are feature-rich and/or rapidly changing. It would be ideal to only maintain one copy of language-agnostic logic, without forcing the developer to have additional toolchains.
Shared logic can have a single implementation, such as an API server (distinct or extended from k8s) for Metaparticle.
For example, a given library could create the server, then make a single call to create a deployment with specific parameters. The API server could then build and make the Kubernetes API calls, figure out bad/missing parametrs, etc. This leaves the library only responsible for capturing those parameters, making a simple API call, and reporting the result. If Metaparticle winds up adding support for something more complex like a CI/CD pipeline, canary releasing, etc, this would be especially valuable.
I think a precursor to a step like this would be better speccing out the desired (current) features across all libraries, and very near term additions.
The mp-compiler project (https://github.com/metaparticle-io/metaparticle-io) tries to do a bunch of this, but there's definitely more logic that could be moved into that compiler.
For example the image build/push logic.
Would love contributions there.
@brendandburns that link 404s for me.
@willnewby I think it's https://github.com/metaparticle-io/metaparticle-ast
Oh hey. Thanks @vllry