Update examples to avoid duplication and allow for more examples to be given
We offer examples for different config for AWS and GCP at 10k architecture. Whilst this is useful, we do have a lot of different architecture sizes we could provide examples for. If we follow the current pattern of having all files for both GCP and AWS this will create a lot of duplication and maintenance cost for maintainers.
Ideally, we should look at providing 2 different types of example. One type of example would be based on the cloud provider. This would contain examples for the below files for both AWS and GCP:
Cloud Provider
│
└───ansible
│ │ filter.<plugin>.yml
│ │ vars.yml
│
└───terraform
│ main.tf
│ variables.tf
The above files are heavily dependent on the cloud provider being used, they don't change based on the architecture size. The only real exception to this is the vars.yml file that has a couple of extra passwords when using an architecture larger than 1k, this could be easily handled with some comments.
The other kind of examples we would then provide are ones for different architecture sizes. Terraforms environment.tf file is the only file that needs to be updated when changing an architecture size. So we could then provide examples of each different architectures environment.tf file, we would need to provide them for both AWS and GCP due to the difference but we could add more examples without adding as much maintenance cost.
An example structure for the examples' folder could look something like:
Cloud Provider
|
└───environments
| | 1k.tf
| | 2f.tf
| | ...
│
└───ansible
│ │ filter.<plugin>.yml
│ │ vars.yml
│
└───terraform
│ main.tf
│ variables.tf
With some simple instructions we can then guide a user on what to copy/paste to get the desired architecture. The examples above don't mention extras like Geo or RDS, but I think they could fit into this structure to avoid duplication aswell.