Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/project-codeflare/ibm-ray-config
https://github.com/project-codeflare/ibm-ray-config
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/project-codeflare/ibm-ray-config
- Owner: project-codeflare
- License: apache-2.0
- Created: 2022-10-10T00:14:57.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-07T10:56:01.000Z (over 1 year ago)
- Last Synced: 2024-11-03T02:07:11.491Z (about 2 months ago)
- Language: Python
- Size: 546 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ray VPC allocator / Configuration Generator For IBM VPC
`ibm-ray-config` is a CLI tool that seamlessly allocates and registers VPC resources (such as: subnets, gateways, ips, ssh keys and security groups rules), to generate Ray configuration files and executables for IBM VPC.
## Setup
The tool has been mostly tested with Ubuntu 20.04/22.04 and Fedora 35/37, but should work on most Linux systems.
Requirements: `ssh-keygen` utility installed:
```
sudo apt install openssh-client
```Install `ibm-ray-config` from pip repository
```
pip install ibm-ray-config
```## Usage
### Set up IBM VPC resources and configure a cluster for Ray:
```
ibm-ray-config [--iam-api-key IAM_API_KEY] [--r REGION] [-o OUTPUT_PATH] [--compute-iam-endpoint IAM_ENDPOINT] [--version]
```Get a short description of the available flags via ```ibm-ray-config --help```
#### Flags Detailed Description
|Key|Default|Mandatory|Additional info|
|---|---|---|---|
| iam-api-key | |yes|IBM Cloud API key. To generate a new API Key, adhere to the following [guide](https://www.ibm.com/docs/en/spectrumvirtualizecl/8.1.3?topic=installing-creating-api-key)
|output-path |current working directory ($PWD) | no |A custom location for the program's outputs |
|version | | no |Returns ibm-ray-config's package version|
|region| | no|Geographical location for deployment and scope for available resources by the IBM-VPC service. Region are listed here. |
compute_iam_endpoint|https://iam.cloud.ibm.com|no|Alternative IAM endpoint url for the cloud provider, e.g. https://iam.test.cloud.ibm.com|### Operate the cluster
To interact with the cluster, execute the scripts in `/scripts/`:
- `up.sh`, `down.sh`, `stop.sh` and `submit.sh` correspond to Ray's counterpart [commands](https://docs.ray.io/en/latest/cluster/cli.html?highlight=cli#ray-monitor).
- `down-vpc.sh` will delete all resources created by Ray and `ibm-ray-config`
- `connect.sh` will open a secure connection to your cluster, while `disconnect.sh` will terminate it.
- `ray.sh` can be used to run all other of Ray's [commands](https://docs.ray.io/en/latest/cluster/cli.html?highlight=cli#ray-monitor).
- `tunnel.sh` establish forward additional ports over secure ssh tunnel using, e.g. ray serve ports: `tunnel.sh 8000`.Notice - To use Ray commands without the aforementioned scripts, either run them from the cluster's folder, or edit the `ssh_private_key` field to contain the absolute path to the associated ssh private key.
### Using ibm-ray-config Config Tool Programmatically
#### Disclaimer:
This feature is currently dysfunctional, as it wasn't maintained throughout the previous releases.
We hope to support it in the near future.Attention: though not all fields are mandatory, unspecified resources will be created automatically on the backend.
Mandatory fields are: `iam_api_key` and `region`.
Processor architecture: Intel x86.Unspecified Fields will be replaced with the following values:
- `vpc_id` - If available a random one will be chosen.
Otherwise (if no VPC exists) a new VPC named:ray-default-vpc- will be created and a random floating-ip will be assigned to the subnet's gateway. The process may create a new floating-ip if no unbound ip exists.
- `ssh_key_filename` (path to private ssh-key) - A new one will be created and registered under the specified region.
- `key_id` (ssh-key on the IBM-VPC platform) - If ssh_key_filename instead specified the public key will be generated and registered, otherwise, a new key will be created and registered.
- `image_id` - The VMs image will be Ubuntu 20.04.
- `profile_name` - 'bx2-2x8', which equates to: 2CPUs, 8GiB RAM, 100GB storage.
- `min_workers` - 0.
- `max_workers` - 0.Example:
```
from ibm_ray_config import generate_configapi_key = ''
region = 'eu-de'
generate_config(iam_api_key=api_key, region=region, image_id='r010-5a674db7-95aa-45c5-a2f1-a6aa9d7e93ad', key_id='r010-fe6cb103-60e6-46bc-9cb5-14e415990849', ssh_key_filename='/home/kpavel/.ssh/id_rsa', profile_name='bx2-2x8', vpc_id='r010-af1adda4-e4e5-4060-9aa2-7a0c981aff8e', min_workers=1, max_workers=1)
```Minimal example using mandatory fields:
```
from ibm_ray_config import generate_configapi_key =
region = 'eu-de'
config_file = generate_config(iam_api_key=api_key, region=region)
```### Test and Usage
Attention: to run multiple clusters under the same VPC, make sure their cluster names (`cluster_name` in the config file) are unique.To deploy a Ray cluster with the configuration created, please use the ibm-vpc-ray-connector . Follow the instructions via the provided link to test your configuration files.
## Execution Example
![part1](doc-assets/example1.png?raw=true)
![part2](doc-assets/example2.png?raw=true)