
Smurf
Smurf is a command-line interface (CLI) application built using Golang leveraging technology specific SDKs, designed to simplify and automate commands for essential tools like Terraform and Docker. It provides intuitive, unified commands to execute Terraform plans, Docker container management, and other DevOps tasks seamlessly from one interface. Whether you need to spin up environments, manage containers, or apply infrastructure as code, this CLI streamlines multi-tool operations, boosting productivity and reducing context-switching.
Features
- Terraform Command Wrapper (stf): Run
init, plan, apply, output, drift, validate, destroy, format commands, and provision, a combined operation of init, validate, and apply.
- Helm Command Wrapper (selm): Run
create, install, lint, list, status, template, upgrade, uninstall commands, and provision, a combination of install, upgrade, lint, and template.
- Docker Command Wrapper (sdkr): Run
build, scan, tag, publish, push commands, and provision, a combination of build, scan, and publish.
- Multicloud Container registry : Push images from multiple cloud registries like AWS ECR, GCP GCR, Azure ACR, and Docker Hub.Run
smurf sdkr push --help to push images from the specified registry.
- Git Integration: (Yet to come)
- Unified CLI Interface: Manage multi-tool operations from one interface, reducing the need for multiple command sets.
Installation
Prerequisites
- Go 1.20 or higher
- Git
- Terraform, Helm, and Docker Daemon installed and accessible via your PATH
Installation Steps
-
Clone the repository:
git clone https://github.com/clouddrove/smurf.git
-
Change to the project directory:
cd smurf
-
Build the tool:
go build -o smurf .
This will build smurf in your project directory.
Usage
Use smurf stf <command> to run Terraform commands. Supported commands include:
- Help:
smurf stf --help
- Initialize Terraform:
smurf stf init
- Generate and Show Execution Plan:
smurf stf plan
- Apply Terraform Changes:
smurf stf apply
- Detect Drift in Terraform State:
smurf stf drift
- Provision Terraform Environment:
smurf stf provision
The provision command for Terraform performs init, validate, and apply.
Helm Commands
Use smurf selm <command> to run Helm commands. Supported commands include:
- Help:
smurf selm --help
- Create a Helm Chart:
smurf selm create
- Install a Chart:
smurf selm install
- Upgrade a Release:
smurf selm upgrade
- Provision Helm Environment:
smurf selm provision --help
The provision command for Helm combines install, upgrade, lint, and template.
Docker Commands
Use smurf sdkr <command> <flags> to run Docker commands. Supported commands include:
- Help:
smurf sdkr --help
- Build an Image:
smurf sdkr build
- Scan an Image:
smurf sdkr scan
- Push an Image:
smurf sdkr push --help
- Provision Registry Environment:
smurf sdkr provision-hub [flags] (for Docker Hub)
The provision-hub command for Docker combines build, scan, and publish.
The provision-ecr command for Docker combines build, scan, and publish for AWS ECR.
THE provision-gcr command for Docker combines build, scan, and publish for GCP GCR.
THE provision-acr command for Docker combines build, scan, and publish for Azure ACR.
Contributors ✨
Big thanks to our contributors for elevating our project with their dedication and expertise! But, we do not wish to stop there, would like to invite contributions from the community in improving these projects and making them more versatile for better reach. Remember, every bit of contribution is immensely valuable, as, together, we are moving in only 1 direction, i.e. forward.
If you're considering contributing to our project, here are a few quick guidelines that we have been following (Got a suggestion? We are all ears!):
- Fork the Repository: Create a new branch for your feature or bug fix.
- Coding Standards: You know the drill.
- Clear Commit Messages: Write clear and concise commit messages to facilitate understanding.
- Thorough Testing: Test your changes thoroughly before submitting a pull request.
- Documentation Updates: Include relevant documentation updates if your changes impact it.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Feedback
Spot a bug or have thoughts to share with us? Let's squash it together! Log it in our issue tracker, feel free to drop us an email at hello@clouddrove.com.
Show some love with a ★ on our GitHub! if our work has brightened your day! – your feedback fuels our journey!
Join our vibrant open-source slack community and embark on an ever-evolving journey with CloudDrove; helping you in moving upwards in your career path.
Join our vibrant Open Source Slack Community and embark on a learning journey with CloudDrove. Grow with us in the world of DevOps and set your career on a path of consistency.
🌐💬What you'll get after joining this Slack community:
- 🚀 Encouragement to upgrade your best version.
- 🌈 Learning companionship with our DevOps squad.
- 🌱 Relentless growth with daily updates on new advancements in technologies.
Join our tech elites Join Now 🚀
Tap into our capabilities
We provide a platform for organizations to engage with experienced top-tier DevOps & Cloud services. Tap into our pool of certified engineers and architects to elevate your DevOps and Cloud Solutions.
At CloudDrove, has extensive experience in designing, building & migrating environments, securing, consulting, monitoring, optimizing, automating, and maintaining complex and large modern systems. With remarkable client footprints in American & European corridors, our certified architects & engineers are ready to serve you as per your requirements & schedule. Write to us at business@clouddrove.com.
We are The Cloud Experts!
We ❤️ Open Source and you can check out our other modules to get help with your new Cloud ideas.