diff --git a/README.md b/README.md index c226dfac21..4ada5c4bbd 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,7 @@ - - - # Machine learning model serving infrastructure
- - -[install](https://cortex.dev/install) • [docs](https://cortex.dev) • [examples](https://github.com/cortexlabs/cortex/tree/0.16/examples) • [we're hiring](https://angel.co/cortex-labs-inc/jobs) • [chat with us](https://gitter.im/cortexlabs/cortex)

- ![Demo](https://d1zqebknpdh033.cloudfront.net/demo/gif/v0.13_2.gif) @@ -32,7 +25,7 @@ ```bash -$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/0.16/get-cli.sh)" +$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/0.17/get-cli.sh)" ``` ### Implement your predictor @@ -152,6 +145,6 @@ Cortex is an open source alternative to serving models with SageMaker or buildin ## Examples -* [Image classification](https://github.com/cortexlabs/cortex/tree/0.16/examples/tensorflow/image-classifier): deploy an Inception model to classify images. -* [Search completion](https://github.com/cortexlabs/cortex/tree/0.16/examples/pytorch/search-completer): deploy Facebook's RoBERTa model to complete search terms. -* [Text generation](https://github.com/cortexlabs/cortex/tree/0.16/examples/pytorch/text-generator): deploy Hugging Face's DistilGPT2 model to generate text. +* [Image classification](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/image-classifier): deploy an Inception model to classify images. +* [Search completion](https://github.com/cortexlabs/cortex/tree/0.17/examples/pytorch/search-completer): deploy Facebook's RoBERTa model to complete search terms. +* [Text generation](https://github.com/cortexlabs/cortex/tree/0.17/examples/pytorch/text-generator): deploy Hugging Face's DistilGPT2 model to generate text. diff --git a/build/build-image.sh b/build/build-image.sh index 1bf4934cfd..9b8a26000c 100755 --- a/build/build-image.sh +++ b/build/build-image.sh @@ -19,7 +19,7 @@ set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. >/dev/null && pwd)" -CORTEX_VERSION=master +CORTEX_VERSION=0.17.0 slim="false" while [[ $# -gt 0 ]]; do diff --git a/build/cli.sh b/build/cli.sh index 18c5c9e3f4..59944a280b 100755 --- a/build/cli.sh +++ b/build/cli.sh @@ -19,7 +19,7 @@ set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. >/dev/null && pwd)" -CORTEX_VERSION=master +CORTEX_VERSION=0.17.0 arg1=${1:-""} upload="false" diff --git a/build/push-image.sh b/build/push-image.sh index 73b7d04c0b..e8b315eec9 100755 --- a/build/push-image.sh +++ b/build/push-image.sh @@ -17,7 +17,7 @@ set -euo pipefail -CORTEX_VERSION=master +CORTEX_VERSION=0.17.0 slim="false" while [[ $# -gt 0 ]]; do diff --git a/docs/cluster-management/config.md b/docs/cluster-management/config.md index a62f637266..92f195d38f 100644 --- a/docs/cluster-management/config.md +++ b/docs/cluster-management/config.md @@ -2,7 +2,7 @@ The Cortex cluster may be configured by providing a configuration file to `cortex cluster up` or `cortex cluster configure` via the `--config` flag (e.g. `cortex cluster up --config cluster.yaml`). Below is the schema for the cluster configuration file, with default values shown (unless otherwise specified): - + ```yaml # cluster.yaml @@ -68,31 +68,31 @@ log_group: cortex tags: # : map of key/value pairs # whether to use spot instances in the cluster (default: false) -# see https://cortex.dev/v/master/cluster-management/spot-instances for additional details on spot configuration +# see https://cortex.dev/v/0.17/cluster-management/spot-instances for additional details on spot configuration spot: false -# see https://cortex.dev/v/master/guides/subdomain-https-setup for instructions on how to set up HTTPS for APIs +# see https://cortex.dev/v/0.17/guides/subdomain-https-setup for instructions on how to set up HTTPS for APIs ssl_certificate_arn: # if empty, APIs will still be accessible via HTTPS (in addition to HTTP), but will not use a trusted certificate ``` The default docker images used for your Predictors are listed in the instructions for [system packages](../deployments/system-packages.md), and can be overridden in your [API configuration](../deployments/api-configuration.md). -The docker images used by the Cortex cluster can also be overriden, although this is not common. They can be configured by adding any of these keys to your cluster configuration file (default values are shown): +The docker images used by the Cortex cluster can also be overridden, although this is not common. They can be configured by adding any of these keys to your cluster configuration file (default values are shown): ```yaml # docker image paths -image_operator: cortexlabs/operator:master -image_manager: cortexlabs/manager:master -image_downloader: cortexlabs/downloader:master -image_request_monitor: cortexlabs/request-monitor:master -image_cluster_autoscaler: cortexlabs/cluster-autoscaler:master -image_metrics_server: cortexlabs/metrics-server:master -image_nvidia: cortexlabs/nvidia:master -image_fluentd: cortexlabs/fluentd:master -image_statsd: cortexlabs/statsd:master -image_istio_proxy: cortexlabs/istio-proxy:master -image_istio_pilot: cortexlabs/istio-pilot:master -image_istio_citadel: cortexlabs/istio-citadel:master -image_istio_galley: cortexlabs/istio-galley:master +image_operator: cortexlabs/operator:0.17.0 +image_manager: cortexlabs/manager:0.17.0 +image_downloader: cortexlabs/downloader:0.17.0 +image_request_monitor: cortexlabs/request-monitor:0.17.0 +image_cluster_autoscaler: cortexlabs/cluster-autoscaler:0.17.0 +image_metrics_server: cortexlabs/metrics-server:0.17.0 +image_nvidia: cortexlabs/nvidia:0.17.0 +image_fluentd: cortexlabs/fluentd:0.17.0 +image_statsd: cortexlabs/statsd:0.17.0 +image_istio_proxy: cortexlabs/istio-proxy:0.17.0 +image_istio_pilot: cortexlabs/istio-pilot:0.17.0 +image_istio_citadel: cortexlabs/istio-citadel:0.17.0 +image_istio_galley: cortexlabs/istio-galley:0.17.0 ``` diff --git a/docs/cluster-management/install.md b/docs/cluster-management/install.md index f2b24415b3..f23667b516 100644 --- a/docs/cluster-management/install.md +++ b/docs/cluster-management/install.md @@ -8,7 +8,7 @@ ```bash -$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/master/get-cli.sh)" +$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/0.17/get-cli.sh)" ``` Continue to [deploy an example](#deploy-an-example) below. @@ -26,7 +26,7 @@ To use GPU nodes, you may need to subscribe to the [EKS-optimized AMI with GPU S ```bash # install the CLI on your machine -$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/master/get-cli.sh)" +$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/0.17/get-cli.sh)" # provision infrastructure on AWS and spin up a cluster $ cortex cluster up @@ -37,7 +37,7 @@ $ cortex cluster up ```bash # clone the Cortex repository -$ git clone -b master https://github.com/cortexlabs/cortex.git +$ git clone -b 0.17 https://github.com/cortexlabs/cortex.git # navigate to the TensorFlow iris classification example $ cd cortex/examples/tensorflow/iris-classifier diff --git a/docs/cluster-management/update.md b/docs/cluster-management/update.md index f15359e571..fe73c3fd61 100644 --- a/docs/cluster-management/update.md +++ b/docs/cluster-management/update.md @@ -22,7 +22,7 @@ cortex cluster configure cortex cluster down # update your CLI -bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/master/get-cli.sh)" +bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/0.17/get-cli.sh)" # confirm version cortex version diff --git a/docs/deployments/deployment.md b/docs/deployments/deployment.md index 9a11f7d0ad..ab099a3cb4 100644 --- a/docs/deployments/deployment.md +++ b/docs/deployments/deployment.md @@ -63,4 +63,4 @@ deleting my-api * [Tutorial](../../examples/sklearn/iris-classifier/README.md) provides a step-by-step walkthough of deploying an iris classifier API * [CLI documentation](../miscellaneous/cli.md) lists all CLI commands -* [Examples](https://github.com/cortexlabs/cortex/tree/master/examples) demonstrate how to deploy models from common ML libraries +* [Examples](https://github.com/cortexlabs/cortex/tree/0.17/examples) demonstrate how to deploy models from common ML libraries diff --git a/docs/deployments/exporting.md b/docs/deployments/exporting.md index 48bae8da58..d8c00e3534 100644 --- a/docs/deployments/exporting.md +++ b/docs/deployments/exporting.md @@ -11,7 +11,7 @@ Here are examples for some common ML libraries: The recommended approach is export your PyTorch model with [torch.save()](https://pytorch.org/docs/stable/torch.html?highlight=save#torch.save). Here is PyTorch's documentation on [saving and loading models](https://pytorch.org/tutorials/beginner/saving_loading_models.html). -[examples/pytorch/iris-classifier](https://github.com/cortexlabs/cortex/blob/master/examples/pytorch/iris-classifier) exports its trained model like this: +[examples/pytorch/iris-classifier](https://github.com/cortexlabs/cortex/blob/0.17/examples/pytorch/iris-classifier) exports its trained model like this: ```python torch.save(model.state_dict(), "weights.pth") @@ -22,7 +22,7 @@ torch.save(model.state_dict(), "weights.pth") It may also be possible to export your PyTorch model into the ONNX format using [torch.onnx.export()](https://pytorch.org/docs/stable/onnx.html#torch.onnx.export). -For example, if [examples/pytorch/iris-classifier](https://github.com/cortexlabs/cortex/blob/master/examples/pytorch/iris-classifier) were to export the model to ONNX, it would look like this: +For example, if [examples/pytorch/iris-classifier](https://github.com/cortexlabs/cortex/blob/0.17/examples/pytorch/iris-classifier) were to export the model to ONNX, it would look like this: ```python placeholder = torch.randn(1, 4) @@ -50,7 +50,7 @@ A TensorFlow `SavedModel` directory should have this structure: ``` -Most of the TensorFlow examples use this approach. Here is the relevant code from [examples/tensorflow/sentiment-analyzer](https://github.com/cortexlabs/cortex/blob/master/examples/tensorflow/sentiment-analyzer): +Most of the TensorFlow examples use this approach. Here is the relevant code from [examples/tensorflow/sentiment-analyzer](https://github.com/cortexlabs/cortex/blob/0.17/examples/tensorflow/sentiment-analyzer): ```python import tensorflow as tf @@ -88,14 +88,14 @@ aws s3 cp bert.zip s3://my-bucket/bert.zip ``` -[examples/tensorflow/iris-classifier](https://github.com/cortexlabs/cortex/blob/master/examples/tensorflow/iris-classifier) also use the `SavedModel` approach, and includes a Python notebook demonstrating how it was exported. +[examples/tensorflow/iris-classifier](https://github.com/cortexlabs/cortex/blob/0.17/examples/tensorflow/iris-classifier) also use the `SavedModel` approach, and includes a Python notebook demonstrating how it was exported. ### Other model formats There are other ways to export Keras or TensorFlow models, and as long as they can be loaded and used to make predictions in Python, they will be supported by Cortex. -For example, the `crnn` API in [examples/tensorflow/license-plate-reader](https://github.com/cortexlabs/cortex/blob/master/examples/tensorflow/license-plate-reader) uses this approach. +For example, the `crnn` API in [examples/tensorflow/license-plate-reader](https://github.com/cortexlabs/cortex/blob/0.17/examples/tensorflow/license-plate-reader) uses this approach. ## Scikit-learn @@ -104,7 +104,7 @@ For example, the `crnn` API in [examples/tensorflow/license-plate-reader](https: Scikit-learn models are typically exported using `pickle`. Here is [Scikit-learn's documentation](https://scikit-learn.org/stable/modules/model_persistence.html). -[examples/sklearn/iris-classifier](https://github.com/cortexlabs/cortex/blob/master/examples/sklearn/iris-classifier) uses this approach. Here is the relevant code: +[examples/sklearn/iris-classifier](https://github.com/cortexlabs/cortex/blob/0.17/examples/sklearn/iris-classifier) uses this approach. Here is the relevant code: ```python pickle.dump(model, open("model.pkl", "wb")) @@ -157,7 +157,7 @@ model.save_model("model.bin") It is also possible to export an XGBoost model to the ONNX format using [onnxmltools](https://github.com/onnx/onnxmltools). -[examples/xgboost/iris-classifier](https://github.com/cortexlabs/cortex/blob/master/examples/xgboost/iris-classifier) uses this approach. Here is the relevant code: +[examples/xgboost/iris-classifier](https://github.com/cortexlabs/cortex/blob/0.17/examples/xgboost/iris-classifier) uses this approach. Here is the relevant code: ```python from onnxmltools.convert import convert_xgboost diff --git a/docs/deployments/predictors.md b/docs/deployments/predictors.md index 07923a7f8a..375de3586b 100644 --- a/docs/deployments/predictors.md +++ b/docs/deployments/predictors.md @@ -74,10 +74,10 @@ The `payload` parameter is parsed according to the `Content-Type` header in the ### Examples -Many of the [examples](https://github.com/cortexlabs/cortex/tree/master/examples) use the Python Predictor, including all of the PyTorch examples. +Many of the [examples](https://github.com/cortexlabs/cortex/tree/0.17/examples) use the Python Predictor, including all of the PyTorch examples. -Here is the Predictor for [examples/pytorch/iris-classifier](https://github.com/cortexlabs/cortex/tree/master/examples/pytorch/iris-classifier): +Here is the Predictor for [examples/pytorch/iris-classifier](https://github.com/cortexlabs/cortex/tree/0.17/examples/pytorch/iris-classifier): ```python import re @@ -155,7 +155,7 @@ xgboost==1.0.2 ``` -The pre-installed system packages are listed in [images/python-predictor-cpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/master/images/python-predictor-cpu/Dockerfile) (for CPU) or [images/python-predictor-gpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/master/images/python-predictor-gpu/Dockerfile) (for GPU). +The pre-installed system packages are listed in [images/python-predictor-cpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/0.17/images/python-predictor-cpu/Dockerfile) (for CPU) or [images/python-predictor-gpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/0.17/images/python-predictor-gpu/Dockerfile) (for GPU). If your application requires additional dependencies, you can install additional [Python packages](python-packages.md) and [system packages](system-packages.md). @@ -190,7 +190,7 @@ class TensorFlowPredictor: ``` -Cortex provides a `tensorflow_client` to your Predictor's constructor. `tensorflow_client` is an instance of [TensorFlowClient](https://github.com/cortexlabs/cortex/tree/master/pkg/workloads/cortex/lib/client/tensorflow.py) that manages a connection to a TensorFlow Serving container to make predictions using your model. It should be saved as an instance variable in your Predictor, and your `predict()` function should call `tensorflow_client.predict()` to make an inference with your exported TensorFlow model. Preprocessing of the JSON payload and postprocessing of predictions can be implemented in your `predict()` function as well. +Cortex provides a `tensorflow_client` to your Predictor's constructor. `tensorflow_client` is an instance of [TensorFlowClient](https://github.com/cortexlabs/cortex/tree/0.17/pkg/workloads/cortex/lib/client/tensorflow.py) that manages a connection to a TensorFlow Serving container to make predictions using your model. It should be saved as an instance variable in your Predictor, and your `predict()` function should call `tensorflow_client.predict()` to make an inference with your exported TensorFlow model. Preprocessing of the JSON payload and postprocessing of predictions can be implemented in your `predict()` function as well. For proper separation of concerns, it is recommended to use the constructor's `config` paramater for information such as configurable model parameters or download links for initialization files. You define `config` in your [API configuration](api-configuration.md), and it is passed through to your Predictor's constructor. @@ -199,10 +199,10 @@ The `payload` parameter is parsed according to the `Content-Type` header in the ### Examples -Most of the examples in [examples/tensorflow](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow) use the TensorFlow Predictor. +Most of the examples in [examples/tensorflow](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow) use the TensorFlow Predictor. -Here is the Predictor for [examples/tensorflow/iris-classifier](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/iris-classifier): +Here is the Predictor for [examples/tensorflow/iris-classifier](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/iris-classifier): ```python labels = ["setosa", "versicolor", "virginica"] @@ -235,7 +235,7 @@ tensorflow==2.1.0 ``` -The pre-installed system packages are listed in [images/tensorflow-predictor/Dockerfile](https://github.com/cortexlabs/cortex/tree/master/images/tensorflow-predictor/Dockerfile). +The pre-installed system packages are listed in [images/tensorflow-predictor/Dockerfile](https://github.com/cortexlabs/cortex/tree/0.17/images/tensorflow-predictor/Dockerfile). If your application requires additional dependencies, you can install additional [Python packages](python-packages.md) and [system packages](system-packages.md). @@ -270,7 +270,7 @@ class ONNXPredictor: ``` -Cortex provides an `onnx_client` to your Predictor's constructor. `onnx_client` is an instance of [ONNXClient](https://github.com/cortexlabs/cortex/tree/master/pkg/workloads/cortex/lib/client/onnx.py) that manages an ONNX Runtime session to make predictions using your model. It should be saved as an instance variable in your Predictor, and your `predict()` function should call `onnx_client.predict()` to make an inference with your exported ONNX model. Preprocessing of the JSON payload and postprocessing of predictions can be implemented in your `predict()` function as well. +Cortex provides an `onnx_client` to your Predictor's constructor. `onnx_client` is an instance of [ONNXClient](https://github.com/cortexlabs/cortex/tree/0.17/pkg/workloads/cortex/lib/client/onnx.py) that manages an ONNX Runtime session to make predictions using your model. It should be saved as an instance variable in your Predictor, and your `predict()` function should call `onnx_client.predict()` to make an inference with your exported ONNX model. Preprocessing of the JSON payload and postprocessing of predictions can be implemented in your `predict()` function as well. For proper separation of concerns, it is recommended to use the constructor's `config` paramater for information such as configurable model parameters or download links for initialization files. You define `config` in your [API configuration](api-configuration.md), and it is passed through to your Predictor's constructor. @@ -279,7 +279,7 @@ The `payload` parameter is parsed according to the `Content-Type` header in the ### Examples -[examples/xgboost/iris-classifier](https://github.com/cortexlabs/cortex/tree/master/examples/xgboost/iris-classifier) uses the ONNX Predictor: +[examples/xgboost/iris-classifier](https://github.com/cortexlabs/cortex/tree/0.17/examples/xgboost/iris-classifier) uses the ONNX Predictor: ```python labels = ["setosa", "versicolor", "virginica"] @@ -316,7 +316,7 @@ requests==2.23.0 ``` -The pre-installed system packages are listed in [images/onnx-predictor-cpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/master/images/onnx-predictor-cpu/Dockerfile) (for CPU) or [images/onnx-predictor-gpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/master/images/onnx-predictor-gpu/Dockerfile) (for GPU). +The pre-installed system packages are listed in [images/onnx-predictor-cpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/0.17/images/onnx-predictor-cpu/Dockerfile) (for CPU) or [images/onnx-predictor-gpu/Dockerfile](https://github.com/cortexlabs/cortex/tree/0.17/images/onnx-predictor-gpu/Dockerfile) (for GPU). If your application requires additional dependencies, you can install additional [Python packages](python-packages.md) and [system packages](system-packages.md). diff --git a/docs/deployments/system-packages.md b/docs/deployments/system-packages.md index 79bc9b2a30..a8d660c068 100644 --- a/docs/deployments/system-packages.md +++ b/docs/deployments/system-packages.md @@ -47,11 +47,11 @@ mkdir my-api && cd my-api && touch Dockerfile Cortex's base Docker images are listed below. Depending on the Cortex Predictor and compute type specified in your API configuration, choose one of these images to use as the base for your Docker image: -* Python Predictor (CPU): `cortexlabs/python-predictor-cpu-slim:master` -* Python Predictor (GPU): `cortexlabs/python-predictor-gpu-slim:master` -* TensorFlow Predictor (CPU and GPU): `cortexlabs/tensorflow-predictor-slim:master` -* ONNX Predictor (CPU): `cortexlabs/onnx-predictor-cpu-slim:master` -* ONNX Predictor (GPU): `cortexlabs/onnx-predictor-gpu-slim:master` +* Python Predictor (CPU): `cortexlabs/python-predictor-cpu-slim:0.17.0` +* Python Predictor (GPU): `cortexlabs/python-predictor-gpu-slim:0.17.0` +* TensorFlow Predictor (CPU and GPU): `cortexlabs/tensorflow-predictor-slim:0.17.0` +* ONNX Predictor (CPU): `cortexlabs/onnx-predictor-cpu-slim:0.17.0` +* ONNX Predictor (GPU): `cortexlabs/onnx-predictor-gpu-slim:0.17.0` Note: the images listed above use the `-slim` suffix; Cortex's default API images are not `-slim`, since they have additional dependencies installed to cover common use cases. If you are building your own Docker image, starting with a `-slim` Predictor image will result in a smaller image size. @@ -61,7 +61,7 @@ The sample Dockerfile below inherits from Cortex's Python CPU serving image and ```dockerfile # Dockerfile -FROM cortexlabs/python-predictor-cpu-slim:master +FROM cortexlabs/python-predictor-cpu-slim:0.17.0 RUN apt-get update \ && apt-get install -y tree \ diff --git a/docs/guides/batch-runner.md b/docs/guides/batch-runner.md index c8a743551d..34cf1e387b 100644 --- a/docs/guides/batch-runner.md +++ b/docs/guides/batch-runner.md @@ -5,7 +5,7 @@ We have plans to support a batch interface to Cortex APIs ([#523](https://github _Note: this is experimental. Also, this behavior can be implemented outside of Cortex, e.g. in your backend server if you have one._ -This example assumes you have deployed an iris-classifier API, e.g. [examples/sklearn/iris-classifier](https://github.com/cortexlabs/cortex/tree/master/examples/sklearn/iris-classifier) or [examples/tensorflow/iris-classifier](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/iris-classifier). +This example assumes you have deployed an iris-classifier API, e.g. [examples/sklearn/iris-classifier](https://github.com/cortexlabs/cortex/tree/0.17/examples/sklearn/iris-classifier) or [examples/tensorflow/iris-classifier](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/iris-classifier). Create a new directory (outside of the iris example directory) with the files listed below, and run `cortex deploy` in that directory to deploy the batch API. Run `python test.py http://***.elb.us-west-2.amazonaws.com/iris-classifier-batch` to submit a batch of requests to the batch api (replace `***` with your actual endpoint). You can still send individual requests to the prediction API (bypassing the batch API) if you'd like. diff --git a/docs/guides/single-node-deployment.md b/docs/guides/single-node-deployment.md index f03da4c8a5..a4c4381986 100644 --- a/docs/guides/single-node-deployment.md +++ b/docs/guides/single-node-deployment.md @@ -107,7 +107,7 @@ Install the Cortex CLI. ```bash -$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/master/get-cli.sh)" +$ bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/0.17/get-cli.sh)" ``` ### Step 13 diff --git a/docs/summary.md b/docs/summary.md index e3e50857ee..30ba05b08e 100644 --- a/docs/summary.md +++ b/docs/summary.md @@ -4,7 +4,7 @@ * [Install](cluster-management/install.md) * [Tutorial](../examples/sklearn/iris-classifier/README.md) * [GitHub](https://github.com/cortexlabs/cortex) -* [Examples](https://github.com/cortexlabs/cortex/tree/master/examples) +* [Examples](https://github.com/cortexlabs/cortex/tree/0.17/examples) * [Chat with us](https://gitter.im/cortexlabs/cortex) * [Email us](mailto:hello@cortex.dev) * [We're hiring](https://angel.co/cortex-labs-inc/jobs) diff --git a/examples/tensorflow/image-classifier/inception.ipynb b/examples/tensorflow/image-classifier/inception.ipynb index caf90de21c..d9265b6c8e 100644 --- a/examples/tensorflow/image-classifier/inception.ipynb +++ b/examples/tensorflow/image-classifier/inception.ipynb @@ -204,7 +204,7 @@ }, "source": [ "\n", - "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/image-classifier) for how to deploy the model as an API." + "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/image-classifier) for how to deploy the model as an API." ] } ] diff --git a/examples/tensorflow/iris-classifier/tensorflow.ipynb b/examples/tensorflow/iris-classifier/tensorflow.ipynb index e7ba89f30d..52a35081d3 100644 --- a/examples/tensorflow/iris-classifier/tensorflow.ipynb +++ b/examples/tensorflow/iris-classifier/tensorflow.ipynb @@ -289,7 +289,7 @@ }, "source": [ "\n", - "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/iris-classifier) for how to deploy the model as an API." + "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/iris-classifier) for how to deploy the model as an API." ] } ] diff --git a/examples/tensorflow/sentiment-analyzer/bert.ipynb b/examples/tensorflow/sentiment-analyzer/bert.ipynb index b3aac37bee..a714092e5d 100644 --- a/examples/tensorflow/sentiment-analyzer/bert.ipynb +++ b/examples/tensorflow/sentiment-analyzer/bert.ipynb @@ -1000,7 +1000,7 @@ }, "source": [ "\n", - "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/sentiment-analyzer) for how to deploy the model as an API." + "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/sentiment-analyzer) for how to deploy the model as an API." ] } ] diff --git a/examples/tensorflow/text-generator/gpt-2.ipynb b/examples/tensorflow/text-generator/gpt-2.ipynb index f63dce2d7a..3c3f66e651 100644 --- a/examples/tensorflow/text-generator/gpt-2.ipynb +++ b/examples/tensorflow/text-generator/gpt-2.ipynb @@ -346,7 +346,7 @@ }, "source": [ "\n", - "We also need to upload `vocab.bpe` and `encoder.json`, so that the [encoder](https://github.com/cortexlabs/cortex/blob/master/examples/tensorflow/text-generator/encoder.py) in the [Predictor](https://github.com/cortexlabs/cortex/blob/master/examples/tensorflow/text-generator/predictor.py) can encode the input text before making a request to the model." + "We also need to upload `vocab.bpe` and `encoder.json`, so that the [encoder](https://github.com/cortexlabs/cortex/blob/0.17/examples/tensorflow/text-generator/encoder.py) in the [Predictor](https://github.com/cortexlabs/cortex/blob/0.17/examples/tensorflow/text-generator/predictor.py) can encode the input text before making a request to the model." ] }, { @@ -376,7 +376,7 @@ }, "source": [ "\n", - "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/text-generator) for how to deploy the model as an API." + "That's it! See the [example on GitHub](https://github.com/cortexlabs/cortex/tree/0.17/examples/tensorflow/text-generator) for how to deploy the model as an API." ] } ] diff --git a/examples/xgboost/iris-classifier/xgboost.ipynb b/examples/xgboost/iris-classifier/xgboost.ipynb index d2714cf95a..e15ae672d4 100644 --- a/examples/xgboost/iris-classifier/xgboost.ipynb +++ b/examples/xgboost/iris-classifier/xgboost.ipynb @@ -237,7 +237,7 @@ }, "source": [ "\n", - "That's it! See the [example](https://github.com/cortexlabs/cortex/tree/master/examples/xgboost/iris-classifier) for how to deploy the model as an API." + "That's it! See the [example](https://github.com/cortexlabs/cortex/tree/0.17/examples/xgboost/iris-classifier) for how to deploy the model as an API." ] } ] diff --git a/get-cli.sh b/get-cli.sh index 664addad9b..830bd9fb1e 100755 --- a/get-cli.sh +++ b/get-cli.sh @@ -16,7 +16,7 @@ set -e -CORTEX_VERSION_BRANCH_STABLE=master +CORTEX_VERSION_BRANCH_STABLE=0.17.0 case "$OSTYPE" in darwin*) parsed_os="darwin" ;; diff --git a/manager/check_cortex_version.sh b/manager/check_cortex_version.sh index 84e50d5440..e7bb737128 100755 --- a/manager/check_cortex_version.sh +++ b/manager/check_cortex_version.sh @@ -16,7 +16,7 @@ set -e -CORTEX_VERSION=master +CORTEX_VERSION=0.17.0 if [ "$CORTEX_VERSION" != "$CORTEX_CLI_VERSION" ]; then echo "error: your CLI version ($CORTEX_CLI_VERSION) doesn't match your Cortex manager image version ($CORTEX_VERSION); please update your CLI by following the instructions at https://www.cortex.dev/install, or update your Cortex manager image by modifying the value for \`image_manager\` in your cluster configuration file (e.g. cluster.yaml) and running \`cortex cluster configure --config cluster.yaml\` (update other image paths in cluster.yaml as well if necessary)" diff --git a/manager/install.sh b/manager/install.sh index dd48eaf1d3..0b0804f786 100755 --- a/manager/install.sh +++ b/manager/install.sh @@ -16,13 +16,12 @@ set -e -export CORTEX_VERSION=master +export CORTEX_VERSION=0.17.0 EKSCTL_TIMEOUT=45m arg1="$1" function ensure_eks() { - # Cluster statuses: https://github.com/aws/aws-sdk-go/blob/master/service/eks/api.go#L2785 set +e cluster_info=$(eksctl get cluster --name=$CORTEX_CLUSTER_NAME --region=$CORTEX_REGION -o json 2> /dev/null) cluster_info_exit_code=$? diff --git a/pkg/consts/consts.go b/pkg/consts/consts.go index 37ff3deeee..0f83d6ab3c 100644 --- a/pkg/consts/consts.go +++ b/pkg/consts/consts.go @@ -24,8 +24,8 @@ import ( ) var ( - CortexVersion = "master" // CORTEX_VERSION - CortexVersionMinor = "master" // CORTEX_VERSION_MINOR + CortexVersion = "0.17.0" // CORTEX_VERSION + CortexVersionMinor = "0.17" // CORTEX_VERSION_MINOR DefaultImagePythonPredictorCPU = defaultDockerImage("python-predictor-cpu") DefaultImagePythonPredictorGPU = defaultDockerImage("python-predictor-gpu") diff --git a/pkg/lib/k8s/errors.go b/pkg/lib/k8s/errors.go index d0941386b7..644ec964da 100644 --- a/pkg/lib/k8s/errors.go +++ b/pkg/lib/k8s/errors.go @@ -71,6 +71,6 @@ func ErrorParseQuantity(qtyStr string) error { return errors.WithStack(&errors.Error{ Kind: ErrParseQuantity, // CORTEX_VERSION_MINOR - Message: qtyStr + ": invalid kubernetes quantity, some valid examples are 1, 200m, 500Mi, 2G (see here for more information: https://cortex.dev/v/master/deployments/compute)", + Message: qtyStr + ": invalid kubernetes quantity, some valid examples are 1, 200m, 500Mi, 2G (see here for more information: https://cortex.dev/v/0.17/deployments/compute)", }) } diff --git a/pkg/workloads/cortex/consts.py b/pkg/workloads/cortex/consts.py index 32deb4d541..3159c279dd 100644 --- a/pkg/workloads/cortex/consts.py +++ b/pkg/workloads/cortex/consts.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -CORTEX_VERSION = "master" +CORTEX_VERSION = "0.17.0"