Skip to content
This repository has been archived by the owner on Jun 29, 2022. It is now read-only.

Commit

Permalink
release-process: Add CHECKLIST.md
Browse files Browse the repository at this point in the history
closes: #999
Signed-off-by: knrt10 <[email protected]>
  • Loading branch information
knrt10 committed Nov 5, 2020
1 parent d306223 commit 6c3d592
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 0 deletions.
84 changes: 84 additions & 0 deletions docs/release-process/CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
## Check list

This section shows what things you need to do before creating a release. This is a manual process as CI does not test everything.

The following example assumes we’re going from version 0.1.0 (`v0.1.0`) to
0.2.0 (`v0.2.0`).

- Checkout to old release tag
- e.g. `git checkout v0.1.0`

- Build `lokoctl` binary from the last release
- e.g. `make build`
- Copy `lokoctl` binary to your assets directory.

- Deploy `lokomotive` with old release
- e.g. `./lokoctl cluster apply`
- Deploy a single cluster(controller node) first.

- Configure env variable `$KUBECONFIG` as per your assets directory location.

- Make sure all nodes healthy and all Pod are running.
- e.g. `kubectl get po -A && kubectl get no`

- Delete the old `lokoctl` binary.

- Checkout to latest `master` branch. Make sure you have the latest code fetched and rebased.
- e.g. `git checkout master && git fetch origin && git rebase origin/master`
- Build lokoctl binary from latest master `make build`

- Copy `lokoctl` binary to your assets directory and re-apply the cluster
- e.g. `./lokoctl cluster apply`

- Make sure all nodes healthy and all Pod are running.
- e.g. `kubectl get po -A && kubectl get no`

### Components test

This sections checks if components work as desired.

- Check all certificates are valid
- e.g. `kubectl get certificates -A`
- Certificates for all your components are valid.

- Check external IP is assigned to contour service. This will verify that MetalLB is assigning IP to service of type `LoadBalancer`.
- `kubectl get svc -n projectcontour`

- Check routes are added to AWS for your components. If you have used route53 DNS provider, you can check them [here](https://console.aws.amazon.com/route53/v2/home#Dashboard). Make sure to check the correct hosted zone.

- Check Gangway Ingress Host URL that you have configured works fine.

- Check httpbin Ingress Host URL that you have configured works fine.

- Do some **blackbox testing** by sending HTTP requests through MetalLB + Contour + cert-manager.

- Check metrics for your cluster by going to Prometheus Ingress Host URL.

- Check velero component works fine, by testing it for a namespace.
- Run the following commands:
```sh
# Create test namespace.
kubectl create ns test

# Create a serviceaccount.
kubectl create sa test

# Create velero backup.
velero backup create serviceaccount-backup --include-namespaces test

# Delete namespace test.
kubectl delete ns test

# Restore namespace using velero.
velero restore create --from-backup serviceaccount-backup

# Check serviceaccount test exist.
kubectl get sa test

```

- Check web-ui Ingress Host URL that you have configured works fine.

**IMPORTANT**: Follow the whole process again with multi-cluster (controller node).

If everything works fine, continue with the release process.
2 changes: 2 additions & 0 deletions docs/release-process/RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ for details on how to identify what the next version should be.
- `git clean -ffdx && make all` should work.
- CI should be green.

- Follow manual [checklist](CHECKLIST.md) before making a release and ensure everything works fine.

- Update the [release notes](../../CHANGELOG.md). Try to capture most of the salient
changes since the last release, but don't go into unnecessary detail (better
to link/reference the documentation wherever possible).
Expand Down

0 comments on commit 6c3d592

Please sign in to comment.