fusion

module
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2023 License: MIT

README

🧬 fusion

Go Reference Latest Release Go Report Card

Generate secure by default cloud infrastructure configuration with Go and Terraform.

Install 📥

Install the fusion cli

Go

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
Homebrew
brew tap slalombuild/fusion https://github.com/slalombuild/fusion
brew install fusion
Scoop
scoop bucket add fusion https://github.com/slalombuild/fusion.git
scoop install fusion
Docker Image
docker run --rm -it ghcr.io/slalombuild/fusion:latest --help

Usage ⚡️

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.
  -v, --verbose     Enable verbose logging
  -n, --no-color    Disable colorful output ($NO_COLOR)

Commands:
  new    Create new cloud resources with Terraform

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

Snippets are available in all supported IDEs with the pattern fsn-<provider>_<resource>

VSCode
# 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.

Intellij
# 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.

Contributions

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.

Directories

Path Synopsis
cmd
internal
commands/awscmd
Package awscmd contains all commands for the aws section of the fusion cli
Package awscmd contains all commands for the aws section of the fusion cli
commands/azurecmd
Package azurecmd contains all commands for the aws section of the fusion cli
Package azurecmd contains all commands for the aws section of the fusion cli
commands/ctlcmd
Package ctlcmd contains all commands for the fusionctl cli
Package ctlcmd contains all commands for the fusionctl cli
commands/gcpcmd
Package gcpcmd contains all commands for the gcp section of the fusion cli
Package gcpcmd contains all commands for the gcp section of the fusion cli
Package snippets implements support for building snippets for vscode
Package snippets implements support for building snippets for vscode
Package templates includes go text/templates for terraform resources
Package templates includes go text/templates for terraform resources
aws
Package aws provides terraform templates for Amazon Web Services (AWS)
Package aws provides terraform templates for Amazon Web Services (AWS)
azure
Package azure provides terraform templates for Microsoft Azure
Package azure provides terraform templates for Microsoft Azure
gcp
Package gcp provides terraform templates for Google Cloud Platform (GCP)
Package gcp provides terraform templates for Google Cloud Platform (GCP)
Package terraform provides convenience utilities for working with the terraform command line tool programatically.
Package terraform provides convenience utilities for working with the terraform command line tool programatically.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL