From f3ed1286fa8425eae933c1fb4e2ebb61938c24d5 Mon Sep 17 00:00:00 2001 From: Christian Kadner Date: Tue, 1 Aug 2023 17:23:11 -0700 Subject: [PATCH] doc: Update docs for release v0.11.0 (#414) - Add tags when pre-pulling images for FVT (`latest`, `v...`) - Pre-pull minio-examples and minio-dev-examples images for FVT - this is one reason for the frequent timeouts in the FVT setup nodes - predictor tests using minio-dev-examples - storage tests for PVC using minio-examples (non -dev-) - Update links to `modelmesh` environment variables - Update install-script and quickstart to clone `main` branch, adding note pointing to the most recent stable release, and re-including the self-signed cert flag (#364) - Update required minimum Kubernetes version to `1.23` (HPA `autoscaling/v2`) - Update modelmesh component-versions to `v0.11.0` - Update release-process docs with additional places where versions need to be replaced --------- Signed-off-by: Christian Kadner (cherry picked from commit e147d288523bc42c110dd41befda6ba9cb1c7cdc) --- .github/workflows/fvt.yml | 5 +++-- controllers/modelmesh/modelmesh.go | 8 ++++---- docs/install/install-script.md | 2 +- docs/production-use/README.md | 2 +- docs/quickstart.md | 18 ++++++++---------- docs/release-process.md | 29 +++++++++++++++++++---------- fvt/README.md | 6 +++--- 7 files changed, 39 insertions(+), 31 deletions(-) diff --git a/.github/workflows/fvt.yml b/.github/workflows/fvt.yml index 9cc4bc53..933594c6 100644 --- a/.github/workflows/fvt.yml +++ b/.github/workflows/fvt.yml @@ -112,10 +112,11 @@ jobs: docker pull seldonio/mlserver:1.3.2 docker pull openvino/model_server:2022.2 # docker pull pytorch/torchserve:0.7.1-cpu - docker pull kserve/modelmesh-runtime-adapter:v0.11.0-rc1 - docker pull kserve/rest-proxy:v0.11.0-rc1 docker pull kserve/modelmesh:v0.11.0-rc1 docker pull kserve/modelmesh-minio-dev-examples:v0.11.0-rc1 + docker pull kserve/modelmesh-minio-examples:v0.11.0-rc1 + docker pull kserve/modelmesh-runtime-adapter:v0.11.0-rc1 + docker pull kserve/rest-proxy:v0.11.0-rc1 - name: Check installation run: | diff --git a/controllers/modelmesh/modelmesh.go b/controllers/modelmesh/modelmesh.go index 701a66d8..2a8dd1b2 100644 --- a/controllers/modelmesh/modelmesh.go +++ b/controllers/modelmesh/modelmesh.go @@ -261,24 +261,24 @@ func (m *Deployment) addMMEnvVars(deployment *appsv1.Deployment) error { } if m.EnableAccessLogging { - // See https://github.com/kserve/modelmesh/blob/v0.10.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L50 + // See https://github.com/kserve/modelmesh/blob/v0.11.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L55 if err := setEnvironmentVar(ModelMeshContainerName, "MM_LOG_EACH_INVOKE", "true", deployment); err != nil { return err } } if m.GrpcMaxMessageSize > 0 { - // See https://github.com/kserve/modelmesh/blob/v0.10.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L34 + // See https://github.com/kserve/modelmesh/blob/v0.11.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L38 if err := setEnvironmentVar(ModelMeshContainerName, "MM_SVC_GRPC_MAX_MSG_SIZE", strconv.Itoa(m.GrpcMaxMessageSize), deployment); err != nil { return err } } - // See https://github.com/kserve/modelmesh/blob/v0.10.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L27 + // See https://github.com/kserve/modelmesh/blob/v0.11.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L31 if err := setEnvironmentVar(ModelMeshContainerName, "MM_KVSTORE_PREFIX", ModelMeshEtcdPrefix, deployment); err != nil { return err } - // See https://github.com/kserve/modelmesh/blob/v0.10.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L63 + // See https://github.com/kserve/modelmesh/blob/v0.11.0/src/main/java/com/ibm/watson/modelmesh/ModelMeshEnvVars.java#L68 if err := setEnvironmentVar(ModelMeshContainerName, "MM_DEFAULT_VMODEL_OWNER", m.DefaultVModelOwner, deployment); err != nil { return err } diff --git a/docs/install/install-script.md b/docs/install/install-script.md index d799dcc7..b0e3e0e4 100644 --- a/docs/install/install-script.md +++ b/docs/install/install-script.md @@ -43,7 +43,7 @@ A secret named `model-serving-etcd` will be created and passed to the controller Install the `v0.11.0-rc1` release of [modelmesh-serving](https://github.com/kserve/modelmesh-serving/releases/v0.11.0-rc1) by first cloning the corresponding release branch: ```shell -RELEASE=release-0.11 +RELEASE="release-0.11" git clone -b $RELEASE --depth 1 --single-branch https://github.com/kserve/modelmesh-serving.git cd modelmesh-serving ``` diff --git a/docs/production-use/README.md b/docs/production-use/README.md index 2b65828b..c0f0f03a 100644 --- a/docs/production-use/README.md +++ b/docs/production-use/README.md @@ -10,5 +10,5 @@ | Platform | Minimum version | | ---------------- | :-------------: | -| Kubernetes | 1.16 | +| Kubernetes | 1.23 | | CPU architecture | x86_64 | diff --git a/docs/quickstart.md b/docs/quickstart.md index 09aba692..4e44aeee 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -2,29 +2,27 @@ To quickly get started using ModelMesh Serving, here is a brief guide. -> **Note**: To install the latest stable release, please follow the [Quick Start Guide for version 0.11](https://github.com/kserve/modelmesh-serving/blob/release-0.11/docs/quickstart.md). - ## Prerequisites -- A Kubernetes cluster v 1.16+ with cluster administrative privileges -- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) and [kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) (v3.2.0+) +- A Kubernetes cluster v1.23+ with cluster administrative privileges +- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) and [kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) (v4.0+) - At least 4 vCPU and 8 GB memory. For more details, please see [here](install/README.md#deployed-components). ## 1. Install ModelMesh Serving -### Get the latest release +### Clone the ModelMesh repository ```shell -RELEASE=release-0.11 +RELEASE="release-0.11" git clone -b $RELEASE --depth 1 --single-branch https://github.com/kserve/modelmesh-serving.git cd modelmesh-serving ``` -### Run install script +### Run the installation script ```shell kubectl create namespace modelmesh-serving -./scripts/install.sh --namespace-scope-mode --namespace modelmesh-serving --quickstart +./scripts/install.sh --namespace-scope-mode --namespace modelmesh-serving --quickstart --enable-self-signed-ca ``` This will install ModelMesh Serving in the `modelmesh-serving` namespace, along with an etcd and MinIO instances. @@ -34,7 +32,7 @@ Eventually after running this script, you should see a `Successfully installed M To see more details about installation, click [here](./install/install-script.md). -### Verify installation +### Verify the installation Check that the pods are running: @@ -270,7 +268,7 @@ This should give you a response like the following: To see more detailed instructions and information, click [here](./predictors/run-inference.md). -## 4. (Optional) Deleting your ModelMesh Serving installation +## 4. (Optional) Delete the ModelMesh Serving installation To delete all ModelMesh Serving resources that were installed, run the following command from the root of the project: diff --git a/docs/release-process.md b/docs/release-process.md index 4822f260..203efebe 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -69,8 +69,8 @@ version numbers. Most IDEs support searching an entire project using `command`-` Some of the steps below need to be performed at least twice: -- at least once for the release candidate(s) (`v0.10.0-rc0`, `v0.10.0-rc1`, ...) and -- once more for the actual release (`v0.10.0`). +- at least once for the release candidate(s) (`v0.11.0-rc0`, `v0.11.0-rc1`, ...) and +- once more for the actual release (`v0.11.0`). While creating a pre-release is not technically required, it is considered good practice. It allows other stakeholders to deploy and test the designated release, @@ -98,8 +98,8 @@ with KServe. - [ ] [kserve/modelmesh-runtime-adapter](https://hub.docker.com/r/kserve/modelmesh-runtime-adapter/tags) - [ ] [kserve/rest-proxy](https://hub.docker.com/r/kserve/rest-proxy/tags) -3. In this `modelmesh-serving` repository, update the container image tags to - the corresponding release versions for: +3. In this `modelmesh-serving` repository, on the `release-*` branch, update the + container image tags to the corresponding release versions for: - `kserve/modelmesh` - `kserve/modelmesh-controller` @@ -109,6 +109,11 @@ with KServe. The version tags should be updated in the following files: + - [ ] `.github/workflows/fvt.yml`: + - [ ] `docker pull kserve/modelmesh:v...` + - [ ] `docker pull kserve/modelmesh-minio-dev-examples:v...` + - [ ] `docker pull kserve/modelmesh-runtime-adapter:v...` + - [ ] `docker pull kserve/rest-proxy:v...` - [ ] `config/default/config-defaults.yaml`: - [ ] `kserve/modelmesh` - [ ] `kserve/rest-proxy` @@ -118,9 +123,11 @@ with KServe. - [ ] `config/manager/kustomization.yaml`: edit the `newTag` - [ ] `docs/component-versions.md`: update the version and component versions - [ ] `docs/install/install-script.md`: update the `RELEASE` variable in the - `Installation` section to the new `release-*` branch name + `Installation` section to the new `release-*` branch name and remove the + note pointing to the (old) `release-*` branch - [ ] `docs/quickstart.md`: update the `RELEASE` variable in the - _"Get the latest release"_ section to the new `release-*` branch name + _"Clone the ModelMesh repository"_ section to the new `release-*` branch + and remove the note of caution in the introduction above - [ ] `scripts/setup_user_namespaces.sh`: change the `modelmesh_release` version You can copy the checklist above into the PR description in the next step. @@ -128,8 +135,10 @@ with KServe. 4. Submit your PR to the `release-*` branch that was created earlier and wait for it to merge. -5. Update the following files in the `main` branch with the same versions as in the - steps above, submit them in a PR to `main`, and wait for that PR to be merged: +5. Update the following files in the `main` branch, replacing all occurrences + pointing to the old `release-*` branch or the previous release version tag + (e.g. `v0.11.0`) with the new release branch name or new version tags. + Submit them in a PR to `main`, and wait for that PR to be merged: - [ ] `docs/component-versions.md` - [ ] `docs/quickstart.md` @@ -176,12 +185,12 @@ with KServe. ``` 4. Create the new release in the GitHub UI from the `release-*` branch (or from the - tag created in the previous step). Enter the release tag value (e.g. `v0.10.0`) in + tag created in the previous step). Enter the release tag value (e.g. `v0.11.0`) in the "Release title" field and upload the generated installation manifests ("Release assets") in the "Attach binaries ..." section. Click the "Generate release notes" button which will generate the release description. - **Note**, if you generated a pre-release (e.g. `v0.10.0-rc0`) then copy the release + **Note**, if you generated a pre-release (e.g. `v0.11.0-rc0`) then copy the release notes from that and remove them from the pre-release description and revise accordingly. https://github.com/kserve/modelmesh-serving/releases/new diff --git a/fvt/README.md b/fvt/README.md index d6a9fe48..7dda590c 100644 --- a/fvt/README.md +++ b/fvt/README.md @@ -14,9 +14,9 @@ Functional Verification Test (FVT) suite for ModelMesh Serving using [Ginkgo](ht - CLIs: - [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) - - [kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) (v3.2.0+) + - [kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) (v4.0.0+) - A Kubernetes or OpenShift cluster: - - Kubernetes version 1.16+ + - Kubernetes version 1.23+ - Cluster-administrative privileges - 12 vCPUs (3-nodes a 4 vCPU, or, 2-nodes a 8 vCPU) - 16 GB memory @@ -25,7 +25,7 @@ For more details on cluster sizing, please see [here](/docs/install/README.md#de ### Install ModelMesh Serving -The FVTs rely on a set of models existing in a configured `localMinIO` storage. The easiest way to get these models is to use a quick-start install with an instance of MinIO running the `kserve/modelmesh-minio-dev-examples` image. +The FVTs rely on a set of models existing in a configured `localMinIO` storage. The easiest way to get these models is to use a quick-start installation with an instance of MinIO running the `kserve/modelmesh-minio-dev-examples` image. If starting with a fresh namespace, install ModelMesh Serving configured for the FVTs with: