You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* cleaned deps
* feat: helper function for sdkr subcommand
* feat: build cmd for docker
* feat: provision cmd , combination for build scan tag and push
* feat: push cmd for docker
* feat: scan cmd for docker
* feat: sdkr subcommand for smurf
* feat: tag command for docker
* feat: added docker cmd
* added deps
* refactor: updated the readme with latest changes
* refactor: added remove image helper function
* feat: added remove cmd for docker
* refactor: added -d delete flag in the cmd
* refactor: added cloud specific flags to push docker images
* refactor: added helper functions for pushing images to all the three clouds aws, azure, gcp
* added deps
* refactor: subcommand for sdkr used to push images to registries
* feat: added subcommand for push, az, to images to acr
* feat: added subcommand for push, aws, to images to ecr
* feat: added subcommand for push, gcp, to images to gcr
* feat: added subcommand for push, hub, to images to docker hub
* refactor: added multiarch and build args support
* refactor: cleaned up
* refactor: added plaform support
* refactor: added platform flag
* feat: provision cmd for ACR
* feat: provision cmd for ECR
* feat: provision cmd for GCR
* feat: provision cmd for Docker Hub
* updated deps
* refactor: delete provision , updated it to provisionHub
* refactor: updated Readme
* refactor: updated docs
* fmt: restructure of readme
* tested and updated dockerfile (#21)
* feat: updated go packages (#22)
Co-authored-by: Anmol Nagpal <[email protected]>
---------
Co-authored-by: Vishwajit Nagulkar <[email protected]>
Co-authored-by: Manjeet-Singh2428 <[email protected]>
Co-authored-by: Anmol Nagpal <[email protected]>
Smurf is a command-line interface built with Cobra, 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.
<imgtitle="Share on Twitter"src="https://user-images.githubusercontent.com/50652676/62817740-4c69db00-bb59-11e9-8a79-3580fbbf6d5c.png" />
33
+
</a>
34
+
</p>
35
+
36
+
Smurf is a command-line interface built with Cobra, designed to streamline DevOps workflows by providing unified commands for essential tools like Terraform, Helm, and Docker. With Smurf, you can execute Terraform, Helm, and Docker commands seamlessly from a single interface. This CLI simplifies tasks such as environment provisioning, container management, and infrastructure-as-code deployment, improving productivity and minimizing context-switching.
5
37
## Features
6
38
7
-
-**Terraform Command Wrapper:** Run `init`, `plan`, `apply`, `output` , `drift` commands and `provision` , which is a wrapper of init, drift, plan, apply, output.
8
-
-**Git Integration:** (yet to come)
9
-
-**Docker Integration:**(yet to come)
10
-
-**Helm Integration:**(yet to come)
39
+
-**Terraform Command Wrapper (stf):** Run `init`, `plan`, `apply`, `output`, `drift`, `validate`, `destroy`, `format` commands, and `provision`, a combined operation of `init`, `validate`, and `apply`.
40
+
-**Helm Command Wrapper (selm):** Run `create`, `install`, `lint`, `list`, `status`, `template`, `upgrade`, `uninstall` commands, and `provision`, a combination of `install`, `upgrade`, `lint`, and `template`.
41
+
-**Docker Command Wrapper (sdkr):** Run `build`, `scan`, `tag`, `publish`, `push` commands, and `provision`, a combination of `build`, `scan`, and `publish`.
42
+
-**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.
43
+
-**Git Integration:***(Yet to come)*
44
+
-**Unified CLI Interface:** Manage multi-tool operations from one interface, reducing the need for multiple command sets.
11
45
12
46
## Installation
13
47
14
48
### Prerequisites
15
49
16
50
- Go 1.20 or higher
17
51
- Git
18
-
- Terraforminstalled and available in your PATH
52
+
- Terraform, Helm, and Docker Daemon installed and accessible via your PATH
19
53
20
-
### Steps
54
+
### Installation Steps
21
55
22
56
1.**Clone the repository:**
23
57
@@ -31,60 +65,117 @@ Smurf is a command-line interface built with Cobra, designed to simplify and aut
31
65
cd smurf
32
66
```
33
67
34
-
3.**Build and install the tool:**
68
+
3.**Build the tool:**
35
69
36
70
```bash
37
-
go build .
71
+
go build -o smurf .
38
72
```
39
73
40
-
This will build `smurf`to your project directory.
74
+
This will build `smurf`in your project directory.
41
75
42
76
## Usage
43
77
44
-
Navigate to your Terraform project directory and use `smurf` commands as follows:
78
+
### Terraform Commands
79
+
80
+
Use `smurf stf <command>` to run Terraform commands. Supported commands include:
45
81
46
-
### Initialize Terraform
82
+
-**Help:**`smurf stf --help`
83
+
-**Initialize Terraform:**`smurf stf init`
84
+
-**Generate and Show Execution Plan:**`smurf stf plan`
85
+
-**Apply Terraform Changes:**`smurf stf apply`
86
+
-**Detect Drift in Terraform State:**`smurf stf drift`
The `provision-hub` command for Docker combines `build`, `scan`, and `publish`.
114
+
The `provision-ecr` command for Docker combines `build`, `scan`, and `publish` for AWS ECR.
115
+
THE `provision-gcr` command for Docker combines `build`, `scan`, and `publish` for GCP GCR.
116
+
THE `provision-acr` command for Docker combines `build`, `scan`, and `publish` for Azure ACR.
71
117
72
-
```bash
73
-
./smurf drift
74
-
```
75
118
76
-
Detects any drift between your Terraform state and the actual infrastructure.
77
119
78
-
## Important Notes
79
120
80
-
-**Uncommitted Changes:**`smurf` will check for uncommitted changes in your `.tf` files. If any are detected, it will prompt you to commit or discard them before proceeding. This ensures that only committed changes are applied, maintaining consistency and traceability.
121
+
## ✨ Contributors
81
122
82
-
-**Git Integration:** Make sure your project is initialized as a Git repository (`git init`) and that your `.tf` files are tracked.
123
+
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.
Contributions are welcome! Please open issues or pull requests on the [GitHub repository](https://github.com/clouddrove/smurf).
131
+
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!):
132
+
133
+
-**Fork the Repository:** Create a new branch for your feature or bug fix.
134
+
-**Coding Standards:** You know the drill.
135
+
-**Clear Commit Messages:** Write clear and concise commit messages to facilitate understanding.
136
+
-**Thorough Testing:** Test your changes thoroughly before submitting a pull request.
137
+
-**Documentation Updates:** Include relevant documentation updates if your changes impact it.
87
138
88
139
## License
89
140
90
-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
141
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
142
+
143
+
## Feedback
144
+
Spot a bug or have thoughts to share with us? Let's squash it together! Log it in our [issue tracker](https://github.com/clouddrove/smurf/issues), feel free to drop us an email at [hello@clouddrove.com](mailto:hello@clouddrove.com).
145
+
146
+
Show some love with a ★ on [our GitHub](https://github.com/clouddrove/smurf)! if our work has brightened your day! – your feedback fuels our journey!
147
+
148
+
## Join Our Slack Community
149
+
150
+
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.
151
+
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.
152
+
153
+
🌐💬What you'll get after joining this Slack community:
154
+
155
+
- 🚀 Encouragement to upgrade your best version.
156
+
- 🌈 Learning companionship with our DevOps squad.
157
+
- 🌱 Relentless growth with daily updates on new advancements in technologies.
158
+
159
+
Join our tech elites [Join Now][slack] 🚀
160
+
161
+
## Explore Our Blogs
162
+
163
+
Click [here][blog]:books::star2:
164
+
165
+
## Tap into our capabilities
166
+
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.
167
+
168
+
At [CloudDrove][website], 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](mailto:business@clouddrove.com).
169
+
170
+
<palign="center">We are <b> The Cloud Experts!</b></p>
171
+
<hr />
172
+
<palign="center">We ❤️ <ahref="https://github.com/clouddrove">Open Source</a> and you can check out <ahref="https://registry.terraform.io/namespaces/clouddrove">our other modules</a> to get help with your new Cloud ideas.</p>
Copy file name to clipboardexpand all lines: docs/sm/docs/index.md
+39-38
Original file line number
Diff line number
Diff line change
@@ -34,23 +34,24 @@
34
34
</p>
35
35
36
36
Smurf is a command-line interface built with Cobra, 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.
37
-
38
37
## Features
39
38
40
-
-**Terraform Command Wrapper:** Run `init`, `plan`, `apply`, `output` , `drift` commands and `provision` , which is a wrapper of init, drift, plan, apply, output.
41
-
-**Git Integration:** (yet to come)
42
-
-**Docker Integration:**(yet to come)
43
-
-**Helm Integration:**(yet to come)
39
+
-**Terraform Command Wrapper (stf):** Run `init`, `plan`, `apply`, `output`, `drift`, `validate`, `destroy`, `format` commands, and `provision`, a combined operation of `init`, `validate`, and `apply`.
40
+
-**Helm Command Wrapper (selm):** Run `create`, `install`, `lint`, `list`, `status`, `template`, `upgrade`, `uninstall` commands, and `provision`, a combination of `install`, `upgrade`, `lint`, and `template`.
41
+
-**Docker Command Wrapper (sdkr):** Run `build`, `scan`, `tag`, `publish`, `push` commands, and `provision`, a combination of `build`, `scan`, and `publish`.
42
+
-**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.
43
+
-**Git Integration:***(Yet to come)*
44
+
-**Unified CLI Interface:** Manage multi-tool operations from one interface, reducing the need for multiple command sets.
44
45
45
46
## Installation
46
47
47
48
### Prerequisites
48
49
49
50
- Go 1.20 or higher
50
51
- Git
51
-
- Terraforminstalled and available in your PATH
52
+
- Terraform, Helm, and Docker Daemon installed and accessible via your PATH
52
53
53
-
### Steps
54
+
### Installation Steps
54
55
55
56
1.**Clone the repository:**
56
57
@@ -64,55 +65,55 @@ Smurf is a command-line interface built with Cobra, designed to simplify and aut
64
65
cd smurf
65
66
```
66
67
67
-
3.**Build and install the tool:**
68
+
3.**Build the tool:**
68
69
69
70
```bash
70
-
go build .
71
+
go build -o smurf .
71
72
```
72
73
73
-
This will build `smurf`to your project directory.
74
+
This will build `smurf`in your project directory.
74
75
75
76
## Usage
76
77
77
-
Navigate to your Terraform project directory and use `smurf` commands as follows:
78
-
79
-
### Initialize Terraform
80
-
81
-
```bash
82
-
./smurf init
83
-
```
84
-
85
-
This initializes your Terraform working directory.
86
-
87
-
### Generate and Show an Execution Plan for Terraform
78
+
### Terraform Commands
88
79
89
-
```bash
90
-
./smurf plan
91
-
```
80
+
Use `smurf stf <command>` to run Terraform commands. Supported commands include:
92
81
93
-
Generates an execution plan and shows what actions Terraform will take.
82
+
-**Help:**`smurf stf --help`
83
+
-**Initialize Terraform:**`smurf stf init`
84
+
-**Generate and Show Execution Plan:**`smurf stf plan`
85
+
-**Apply Terraform Changes:**`smurf stf apply`
86
+
-**Detect Drift in Terraform State:**`smurf stf drift`
The `provision` command for Helm combines `install`, `upgrade`, `lint`, and `template`.
108
102
109
-
Detects any drift between your Terraform state and the actual infrastructure.
103
+
### Docker Commands
110
104
111
-
## Important Notes
105
+
Use `smurf sdkr <command> <flags>` to run Docker commands. Supported commands include:
112
106
113
-
-**Uncommitted Changes:**`smurf` will check for uncommitted changes in your `.tf` files. If any are detected, it will prompt you to commit or discard them before proceeding. This ensures that only committed changes are applied, maintaining consistency and traceability.
0 commit comments