Nested Modules
Context
We now have modules with a lot of duplicate code and only differ in core functionality.
An example is our vault and jfrog modules. We have three vault modules that install the CLI and then authenticate the user using the module-specific method.
Similarly, our jfrog-oauth and jfrog-token modules also overlap a lot of functionality and can benefit from a shared config.
Proposal
Start creating shared modules that other modules will use to provide the common functionality.
To start, we can create a common module vault-cli, which, when used in the root of a template, will install the vault CLI to the template. Other vault modules can use the same standard module to install the CLI. This will help simplify and maintain modules easily and prevent feature drift.