wasmCloud / wasmcloud.com

https://wasmCloud.com website, documentation, blog, and community meetings, built with Docusaurus.
https://wasmcloud.com
Apache License 2.0
13 stars 33 forks source link

Infrastructure / Terraform provisioning scripts #510

Open brooksmtownsend opened 1 month ago

brooksmtownsend commented 1 month ago

One issue that came up in our wasmCloud community roadmap planning session was the desire for some infrastructure provisioning scripts, e.g. with Terraform and cloud-init to help illustrate the necessary infrastructure for wasmCloud. I think this can be a bit of a rabbit hole in terms of when we call this ticket "done" and we should not expect to be able to document this for every cloud, platform, and/or service.

What I would love at a minimum is an example for a cloud provider or two to show provisioning of NATS, wasmCloud, and wadm. Alternatively we could specify the necessary resources for the wasmCloud operator to function, which is primarily Kubernetes-based. I think leaning in the operator direction likely puts us on a good path for what many people use to provision and manage application infrastructure today.

ossfellow commented 1 month ago

I agree that this could become a rabbit hole, if cloud platforms are targeted directly, especially considering that different users/operators have different environment setup requirements (i.e. a regulated corp's setup is vastly different than an open-source startup's); infrastructure setup is best left to the user organization to manage according to their requirements and constraints.

Then, if instead we target Kubernetes, the very first question will be why do we even need this, when we can use Helm to achieve the same goal, especially given that the TF job most likely, and rightfully, will use the existing Helm charts to deploy the wasmCloud Operator?

I think the all-in-one Helm chart is a better investment than this.

brooksmtownsend commented 1 month ago

@ossfellow I think that makes a lot of sense. Looking back on the community meeting it looks like we focused on eksctl as an example here, which of course is something that can vary organization to organization.

Perhaps a better use of our time when it comes to infrastructure would be enumerating the Kubernetes resources that the all-in-one helm chart needs/uses to work? For example, needing a CSI driver for the storage of NATS Jetstream, etc?

ossfellow commented 1 month ago

For the Helm chart, like every other project, I think we should set reasonable defaults for wasmCloud specific assets (i.e. Wadm and wasmCloud-Operator), plus any NATS settings that have a material impact on wasmCloud. The other infrastructure components like the CNI, or CSI should be prerequisites for the chart, and not part of the deployment.

brooksmtownsend commented 1 month ago

The other infrastructure components like the CNI, or CSI should be prerequisites for the chart, and not part of the deployment.

Totally agreed, and documentation is key here for what we know are prerequisites