This guide provides an overview of the different components in the KubeRay project and instructions for developing and testing each component. Most developers will be concerned with the KubeRay Operator; the other components are optional.
We use pre-commit to lint and format code before each commit.
- Install pre-commit
- Run
pre-commit install
to install the pre-commit hooks
The KubeRay Operator is responsible for managing Ray clusters on Kubernetes. To learn more about developing and testing the KubeRay Operator, please refer to the Operator Development Guide.
The KubeRay APIServer is a central component that exposes the KubeRay API for managing Ray clusters. For more information about developing and testing the KubeRay APIServer, please refer to the APIServer Development Guide.
The KubeRay Python client library provides APIs to handle RayCluster from your Python application. For more information about developing and testing the KubeRay Python client, please refer to the Python Client, Python API Client.
KubeRay uses Protocol Buffers (protobuf) and OpenAPI specifications to define the API and data structures. For more information about developing and testing proto files and OpenAPI specifications, please refer to the Proto and OpenAPI Development Guide.
A kubectl plugin that simplifies common workflows when deploying Ray on Kubernetes. If you aren't familiar with Kubernetes, this plugin simplifies running Ray on Kubernetes. For more information about developing and testing the KubeRay Kubectl Plugin, please refer to the Kubectl Plugin Development Guide.
To preview the KubeRay documentation locally, follow these steps:
- Make sure you have Docker installed on your machine.
- Open a terminal and navigate to the root directory of your KubeRay repository.
- Run the following command:
docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material
- Open your web browser and navigate to http://127.0.0.1:8000/kuberay/ to view the documentation.
If you make any changes to the documentation files, the local preview will automatically update to reflect those changes.