This is how I do it. Considerations going into this approach are:
- It puts all of your resources under terraform control, making it easy to reuse terraform code from other projects and/or use terraform for further integrations.
- It permits a fair amount of flexibility in workstation configuration (no need to hardcode your workstation to match mine).
- It provides a good setup for locally switching between multiple projects which might not all be running the same versions.
The examples here will assume that you are going to create a dev cluster for a fictional product named "Bigmoney". It is suggested to not use your product name in your cluster names, since product names are at the whim of marketing and other business tides. Instead, we will use a project codename of "ampersand" to signify "my team's clusters".