Generate secure by default cloud infrastructure configuration with Go and Terraform.
Install the fusion cli
If you have Go setup on your system, you can install fusion with go install
go install github.com/slalombuild/fusion/cmd/fusion@latest
# Optionally install the fusionctl dev tool
go install github.com/slalombuild/fusion/cmd/fusionctl@latest
brew tap slalombuild/fusion https://github.com/slalombuild/fusion
brew install fusion
scoop bucket add fusion https://github.com/slalombuild/fusion.git
scoop install fusion
docker run --rm -it ghcr.io/slalombuild/fusion:latest --help
Getting started with fusion is as simple as naming the type of cloud resource you want and allow fusion to generate the terraform.
See available commands with --help
fusion —-help
Usage: fusion <command>
Generate secure by default cloud infrastructure configuration
Flags:
-h, --help Show context-sensitive help.
--version Show version information
-v, --verbose Enable verbose logging
-n, --no-color Disable colorful output ($NO_COLOR)
--no-format Disable code formatting ($NO_FORMAT)
--config=CONFIG-FLAG Provide a JSON file which will populate flags and their values
Commands:
new Create new cloud resources with Terraform
gen Generate snippets and shell completions
Run "fusion <command> --help" for more information on a command.
For more in-depth examples of creating cloud resources with fusion, view the Example folder.
Snippets are available in all supported IDEs with the pattern fsn-<provider>_<resource>
# Install fusion vscode snippets into default snippets
# directory
fusion gen snippets -e vscode -i
VSCode not installed in the default directory?
You will need to output a json file with `fusion gen snippets -e vscode -o filename.json` and place it and `package.json` from the repository's snippets directory within `.../.vscode/extensions/fusion-snippets`, creating directories if needed. Restart your IDE to make them available.
# 1. Generate snippets
fusion gen snippets -e intellij -o filename.xml
# 2. Find your IDE's configuration directory
# 3. Create a directory within that called `templates` if it does not already exist, and drop the xml file in there. Then, restart your IDE to make them available.
Intellij users must check this page to find the Configuration directory that pertains to your IDE version and operating system.
Is there a feature that you'd like to see implemented in Fusion? Feel free to open a Feature Request issue to let us know what you'd like to see! We encourage submitting Pull Requests directly to add terraform resources to the library
For detailed development instructions, view our DEVELOPMENT and CONTRIBUTING guidelines.