diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..ea0e348a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,59 @@ +# Contributing + +We highly value and encourage contributions from the community! + +Reignite is [MPL-2.0 licensed](LICENSE) and accepts contributions via GitHub +Pull Requests.This document outlines some of the conventions on development +workflow, commit message formatting, contact points and other resources to make +it easier to get your contribution accepted. + +We gratefully welcome improvements to documentation as well as to code. + +## Guidelines + +If you have a feature suggestion or found a bug, head over to +[GitHub issues][issues] and see if there's an open issue matching your +description. If not feel free to open a new issue and add short description: + + - In case of a bug, be sure to include the steps you performed and what Reignite responded so it's easy for others to reproduce +- If you have a feature suggestion, describe it in moderate detail and include some potential uses you see for the feature. + +We prioritize the features to be implemented based on their usefulness/popularity. Of course if you want to start contributing yourself, go ahead! We'll be more than happy to review your pull requests. + +The maintainers will add the correct labels/milestones to the issue for you. + +[issues]: https://github.com/weaveworks/reignite/issues + +### Contributing your code + +The process to contribute code to Reignite is very straightforward. + +1. Go to the project on [GitHub][repo] and click the `Fork` button in the + top-right corner. This will create your own copy of the repository in your + personal account. +2. Using standard `git` workflow, `clone` your fork, make your changes and then + `commit` and `push` them to your repository. +3. Run `make generate && make test && make lint`, then `commit` and `push` the changes. +4. Go back to [GitHub][repo], select `Pull requests` from the top bar and click + `New pull request` to the right. Select the `compare across forks` link. + This will show repositories in addition to branches. +5. From the `head repository` dropdown, select your forked repository. If you + made a new branch, select it in the `compare` dropdown. You should always + target `weaveworks/reignite` and `main` as the base repository and branch. +6. With your changes visible, click `Create pull request`. Give it a short, + descriptive title and write a comment describing your changes. Click `Create + pull request`. + +That's it! Maintainers follow pull requests closely and will add the correct +labels and milestones. After a maintainer's review small changes/improvements +could be requested, don't worry, feedback can be easily addressed by performing +the requested changes and doing a commit and push. Your new changes will +automatically be added to the pull request. + +We also have Continuous Integration (CI) set up (powered by [GitHub +Actions][gha]) that will build the code and verify it compiles and passes all +tests successfully. If your changes didn't pass CI, you can click Details to go +and check why it happened. To integrate your changes, we require CI to pass. + +[repo]: https://github.com/weaveworks/reignite +[gha]: https://github.com/weaveworks/reignite/actions diff --git a/README.md b/README.md index 9c10a3db..d395945f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,57 @@ -# reignite - the spawn of ignite -(Re)Ignite a MicroVM + +# πŸ†πŸ…΄πŸ…ΈπŸ…ΆπŸ…½πŸ…ΈπŸ†ƒπŸ…΄ - the microvm service + +[![GitHub](https://img.shields.io/github/license/weaveworks/reignite)](https://img.shields.io/github/license/weaveworks/reignite) +[![codecov](https://codecov.io/gh/weaveworks/reignite/branch/main/graph/badge.svg?token=ZNPNRDI8Z0)](https://codecov.io/gh/weaveworks/reignite) +[![Go Report Card](https://goreportcard.com/badge/github.com/weaveworks/reignite)](https://goreportcard.com/report/github.com/weaveworks/reignite) + +## What is regnite? + +Reignite is a service for creating and managing the lifecycle of microVMs on a host machine. Initially we will be supporting [Firecracker](https://firecracker-microvm.github.io/). + +The primary use case for reignite is to create microVMs on a bare-metal host where the microVMs will be used as nodes in a virtualized Kubernetes cluster. It is an essential part of [Liquid Metal](https://www.weave.works/blog/multi-cluster-kubernetes-on-microvms-for-bare-metal) and will ultimately be driven by Cluster API Provider Microvm (coming soon). + +## Features + +Using API requests (via gRPC or HTTP): +- Create, update, delete microVMs using Firecracker +- Manage the lifecycle of microVMs (i.e. start, stop, pause) +- Make metadata available to microVMs to support cloud-init, ignition etc +- Use OCI images for the volumes, kernel & initrd +- (coming soon) Use CNI to configure the network for the microVMs + +## Documentation + +See our [getting started with reignite][quickstart] guide. + +## Contributing + +Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc]. + +Other interesting resources include: + +* [The issue tracker][issues] +* [The list of milestones][milestones] +* [Architectural Decision Records (ADR)][adr] +* [Getting started with reignite][quickstart] + +## Getting Help + +If you have any questions about, feedback for or problems with reignite: + +* [File an issue][issues]. + +Your feedback is always welcome! + +## License + +[MPL-2.0 License][license] + + +[quickstart]: ./docs/quick-start.md +[contrib]: ./CONTRIBUTING.md +[coc]: ./CODE_OF_CONDUCT.md +[issues]: https://github.com/weaveworks/reignite/issues +[milestones]: https://github.com/weaveworks/reignite/milestones +[adr]: ./docs/adr +[license]: ./LICENSE diff --git a/docs/quick-start.md b/docs/quick-start.md index 1d733de0..5382d637 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -1,5 +1,15 @@ # Getting started with reignite +## On MacOS + +You can use Vagrant: + +``` +vagrant up +``` + +It will create a new pre-configured machine ready to use. + ## Containerd ### Create thinpool