Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: added releasing guide #191

Merged
merged 2 commits into from
Nov 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@
[![codecov](https://codecov.io/gh/weaveworks/flintlock/branch/main/graph/badge.svg?token=ZNPNRDI8Z0)](https://codecov.io/gh/weaveworks/flintlock)
[![Go Report Card](https://goreportcard.com/badge/github.com/weaveworks/flintlock)](https://goreportcard.com/report/github.com/weaveworks/flintlock)

## What is regnite?
## What is flintlock?

Flintlock 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/).
Flintlock 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 flintlock 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
Expand All @@ -26,28 +27,29 @@ See our [getting started with flintlock][quickstart] guide.

## Contributing

Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc].
Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc].

You can reach out to the maintainers and other contributors using the [#liquid-metal](https://weave-community.slack.com/archives/C02KARWGR7S) slack channel.

Other interesting resources include:

* [The issue tracker][issues]
* [The list of milestones][milestones]
* [Architectural Decision Records (ADR)][adr]
* [Getting started with flintlock][quickstart]
- [The issue tracker][issues]
- [The list of milestones][milestones]
- [Architectural Decision Records (ADR)][adr]
- [Getting started with flintlock][quickstart]

## Getting Help

If you have any questions about, feedback for or problems with flintlock:

* [File an issue][issues].
- [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
Expand Down
4 changes: 2 additions & 2 deletions docs/image-creation.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ Run the following command to download the Ubuntu Server cloud images:
hack/scripts/download_cloudimages.sh
```

This downloads the Ubuntu Server Cloud Image files and and processes them. The downloaded files and processed files will be available in `out/images` by default. There are a number of flags that can be used for custimization:
This downloads the Ubuntu Server Cloud Image files and and processes them. The downloaded files and processed files will be available in `out/images` by default. There are a number of flags that can be used for customization:

| Flag | Description |
| --------------- | ---------------------------------------------------------------- |
| -o/--output | Specifies the output folder to use. Defaults to `./out`. |
| -v/--version | Specifies the ubuntu version to download. Defaults to `bionic`. |
| -s/--image-size | Specifies the size of the root fs to create. Defaluts to `10G`. |
| -s/--image-size | Specifies the size of the root fs to create. Defaults to `10G`. |

The processed files (i.e. root filesystem, uncompressed kernel, initrd) can be used directly with Firecracker without flintlock.

Expand Down
46 changes: 46 additions & 0 deletions docs/releasing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Releasing Flintlock

> These instructions will change when we start supporting previous versions whilst using main for future versions.

## Determine release version

The projects follows [semantic versioning](https://semver.org/#semantic-versioning-200) and so the release version must adhere to this specification. Depending on the changes in the release you will need to decide the next appropriate version number.

Its advised that you pull the tags and view the latest release (i.e. tag):

```bash
git pull --tags

git describe --tags --abbrev=0
```

## Create tag

* Checkout upstream main
* Create a tag with the version number:

```bash
RELEASE_VERSION=v0.1.0-alpha.1
yitsushi marked this conversation as resolved.
Show resolved Hide resolved
git tag -s "${RELEASE_VERSION}" -m "${RELEASE_VERSION}"
```

* Push the tag (to upstream if working from a fork)

``` bash
git push origin "${RELEASE_VERSION}"
```

* Check the [release](https://github.com/weaveworks/flintlock/actions/workflows/release.yml) GitHub Actions workflow completes successfully.

## Edit & Publish GitHub Release

* Got to the draft release in GitHub.
* Make any edits to generated release notes
* If there are any breaking changes then manually add a note at the beginning of the release notes informing the user what they need to be aware of/do.
* Sometimes you may want to combine changes into 1 line
* If this is a pre-release tick `This is a pre-release`
* Publish the draft release and when asked say yes to creating a discussion.

## Announce release

When the release is available announce it in the #liquid-metal slack channel.