Skip to content

Commit

Permalink
Add the maintenance procedure
Browse files Browse the repository at this point in the history
  • Loading branch information
takahiro-yamada committed Oct 17, 2024
1 parent 5898dee commit 8405942
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions docs/maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Maintenance

## How to update supported Kubernetes

Meows supports the three latest Kubernetes versions.
If a new Kubernetes version is released, please update the followings:

### 1. Update supported kubernetes and dependencies versions

- Kubernetes versions: You can check the versions at <https://hub.docker.com/r/kindest/node/tags>.
- `k8s-version` in [.github/workflows/main.yaml](/.github/workflows/main.yaml)
- "Supported software" in [README.md](/README.md)
- Tools versions:
- Update `CONTROLLER_GEN_VERSION` in [Makefile](/Makefile) to the latest version from <https://github.com/kubernetes-sigs/controller-tools/releases>.
- Update `RUNNER_VERSION` in [Dockerfile](/Dockerfile) to the latest version from <https://github.com/actions/runner/releases>.
- In [kindtest/Makefile](/kindtest/Makefile):
- Update `KINDTEST_K8S_VERSION` to the latest supported version of kubernetes.
- Update `KUSTOMIZE_VERSION` to the latest version from <https://github.com/kubernetes-sigs/kustomize/releases>.
- Update `KIND_VERSION` to the latest version from <https://github.com/kubernetes-sigs/kind/releases>.
- Update `CERT_MANAGER_VERSION` to the latest version from <https://github.com/cert-manager/cert-manager/releases>.
- After saving the changes above, update `ENVTEST_K8S_VERSION` in [Makefile](/Makefile) to the latest patch version among the latest supported kubernetes minor versions listed by running `make setup && tmp/bin/setup-envtest list` at the root of this repository. If the latest minor supported version is `1.30.Z`, find `1.30.Z+` from the output but not `1.31.Z`.
- Other dependencies versions:
- Update `ghcr.io/cybozu/golang` image in [Dockerfile](/Dockerfile) to the latest version from <https://github.com/cybozu/neco-containers/pkgs/container/golang>.
- `go.mod` and `go.sum`:
- Run `go get -u ./...`.

If Kubernetes or controller-runtime API has changed, please update the relevant source code accordingly.

### 2. Update meows by running `make`

You can update meows by running the following `make` commands:

```sh
make setup
make manifests
make build
```

### 3. Fix test code if tests fail

After pushing the change, if the CI fails, fix the tests and push the changes again.

_e.g._, <https://github.com/cybozu-go/meows/pull/185>

### 4. Release the new version

After merging the changes above, follow the procedures written in [Release.md](/RELEASE.md) and release the new version.

_e.g._, <https://github.com/cybozu-go/meows/pull/186>

0 comments on commit 8405942

Please sign in to comment.