⚠️ The aim of this project was solely to make progress in Golang: it is no longer active and requires a complete rewrite.⚠️
- Quick Links
- Overview
- Features
- Repository Structure
- Modules
- Getting Started
- Contributing
- License
- Acknowledgments
Burntcoffee is a project that aims to provide a simple and efficient solution for managing and configuring firecracker instances. With its core functionalities, users can easily set up and control firecracker virtual machines, allowing them to create and manage lightweight, secure, and isolated environments. Burntcoffee's value proposition lies in simplifying the process of managing firecracker instances, making it an ideal choice for developers and system administrators who require efficient and secure virtualization for their applications.
Feature | Description | |
---|---|---|
📄 | Start a job | Start a job on an available firecracker socket. |
🧩 | Stop all jobs | Stop all running VMs in all firecracker sockets |
🧩 | Stop a specific jobs | Stop a single job |
🧪 | Config | Generate a configuration file that contains sockets and IP available for jobs |
└── burntcoffee/
├── config/
│ ├── config.go
│ ├── go.mod
│ └── go.sum
├── firecracker/
│ ├── firec.go
│ └── go.mod
├── go.mod
├── go.sum
├── go.work
└── main.go
.
File | Summary |
---|---|
go.work | The code snippet in the main.go file integrates the config and firecracker packages. It leverages dependencies to provide key functionalities for the burntcoffee repository's architecture. |
go.sum | The code snippet in the burntcoffee repository is responsible for configuring and interacting with the Firecracker virtualization technology. It provides essential functionalities for managing and controlling Firecracker instances. |
main.go | This code snippet is the main entry point of a command-line application called burntcoffee. It utilizes the Cobra framework to define and execute various commands related to managing firecracker virtual machines. The code includes commands to start, stop, and show the status of jobs running on VMs, as well as commands to generate and display configuration details. |
go.mod | The code snippet in the firecracker directory is a critical feature of the burntcoffee repository. It is responsible for handling firecracker operations and dependencies. It allows for the configuration and management of firecracker instances within the larger software architecture. |
config
File | Summary |
---|---|
go.sum | This code snippet, located in the config directory, is responsible for managing the configuration settings for the parent repository. It utilizes the dependencies gopkg.in/check.v1 and gopkg.in/yaml.v2 to load and parse YAML files. |
config.go | The config/config.go file in the burntcoffee repository is responsible for generating and retrieving configuration files for the application. It includes functions to generate a YAML config file with predefined instances and retrieve the config from a file. This file plays a critical role in managing and accessing the application's configuration settings. |
go.mod | The code snippet in the config directory provides configuration management for the burntcoffee repository. It uses the gopkg.in/yaml.v2 library to handle YAML configuration files. |
firecracker
File | Summary |
---|---|
firec.go | The firecracker/firec.go file in the burntcoffee repository contains functions for managing jobs in a distributed system. It allows starting, stopping, and showing the status of jobs on multiple instances. The functions make use of the HTTP protocol to send requests and handle responses. |
go.mod | This code snippet, located in the firecracker module, is a key file in the burntcoffee repository. It utilizes the firecracker/go.mod dependency and plays a critical role in the overall architecture of the system. |
- Clone the burntcoffee repository:
git clone https://github.com/qjoly/burntcoffee
- Change to the project directory:
cd burntcoffee
- Install the dependencies:
go build -o myapp
Use the following command to run burntcoffee:
./burntcoffee
To execute tests, run:
go test
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for burntcoffee.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone <your-forked-repo-url>
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear and concise message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- List any resources, contributors, inspiration, etc. here.