smurf

command module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

README

Banner

Smurf

Go Report Status Build Status Slack Chat Apache-2.0 License

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
  1. Clone the repository:

    git clone https://github.com/clouddrove/smurf.git
    
  2. Change to the project directory:

    cd smurf
    
  3. Build the tool:

    go build -o smurf .
    

    This will build smurf in your project directory.

Usage

Terraform Commands

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 Slack Community

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.

Documentation

Overview

Copyright © 2024 NAME HERE <EMAIL ADDRESS>

Directories

Path Synopsis
cmd
internal

Jump to

Keyboard shortcuts

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