taubyte / tau

Open source distributed Platform as a Service (PaaS). A self-hosted Vercel / Netlify / Cloudflare alternative.
https://tau.how
BSD 3-Clause "New" or "Revised" License
3.39k stars 95 forks source link

[feature] Cloud Development Kit #184

Closed samyfodil closed 4 months ago

samyfodil commented 5 months ago

Discussed in https://github.com/orgs/taubyte/discussions/147

Originally posted by **samyfodil** May 4, 2024 Coding your infrastructure is a powerful way make cloud as transparent as possible. AWS CDK has become popular because of that. But how can we implement the same on Taubyte? Taubyte does not use APIs for resource declaration/provisioning, but rather git. So this is how I propose it being implemented: - Developer defines an 'export' folder under .taubyte - The repository code is built - If successful, the code inside 'export' is executed on a freshly cloned configuration repository - If no issue, config changes are pushed & assets from code build are published. Let's dig deeper into export: We already have great way, [go-schema](https://github.com/taubyte/go-project-schema), to alter configuration repository. It's used by tau-cli. I think [go-schema](https://github.com/taubyte/go-project-schema) will compile to wasm/wasi. if not we can make it. Then we can use for example [extism](https://extism.org/) to create cdk in popular languages while only keeping one core implementation in go.