Obviously biased but we at Kurtosis are trying to solve this problem through Starlark.
We took Starlark added a few more of our instructions that make our Starlark container native. The complex Starlark definition supports
- Composition - you can import a remote definition and just use it
- Decomposable - you can break things apart
- Parametrizability - want one of a service and 10 of the other, just pass an argument
- Portable - It runs pretty much anywhere
Our runtime takes the Starlark and creates environments in both Docker and Kubernetes; from one definition
We took Starlark added a few more of our instructions that make our Starlark container native. The complex Starlark definition supports
- Composition - you can import a remote definition and just use it - Decomposable - you can break things apart - Parametrizability - want one of a service and 10 of the other, just pass an argument - Portable - It runs pretty much anywhere
Our runtime takes the Starlark and creates environments in both Docker and Kubernetes; from one definition
Our CTO wrote this - https://docs.kurtosis.com/advanced-concepts/why-kurtosis-sta...
We are source available https://github.com/kurtosis-tech/kurtosis
Here is a popular environment definition - https://github.com/kurtosis-tech/ethereum-package that protocol developers use to setup custom Ethereum test environments