Skip to main content

Interactive tool generating ray configuration for IBM platforms

Project description

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 with 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] [--endpoint ENDPOINT] [-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
output-path A randomly generated path to a folder 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 <cluster_folder>/scripts/:

  • up.sh, down.sh, stop.sh and submit.sh correspond to Ray's counterpart commands.
  • 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.
  • 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_config

api_key = '<IAM_API_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_config

api_key = <IAM_API_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 part2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ibm-ray-config-1.0.0b26.tar.gz (36.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ibm_ray_config-1.0.0b26-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file ibm-ray-config-1.0.0b26.tar.gz.

File metadata

  • Download URL: ibm-ray-config-1.0.0b26.tar.gz
  • Upload date:
  • Size: 36.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ibm-ray-config-1.0.0b26.tar.gz
Algorithm Hash digest
SHA256 023e06c12c6bc73246a90138d0d3a77e202d3213ee75972a9b1a0916b790434b
MD5 1ff807e5dc76552f75b98dda8fb36e2c
BLAKE2b-256 6df34d82f5c34745864ff84c62b890ea298fe3c40f7ddd24f5dc9d45bd63964e

See more details on using hashes here.

File details

Details for the file ibm_ray_config-1.0.0b26-py3-none-any.whl.

File metadata

File hashes

Hashes for ibm_ray_config-1.0.0b26-py3-none-any.whl
Algorithm Hash digest
SHA256 7ddba9233a84cbc484e4b0a77a4feac0e1f7a3a69ba7dbdc0578fb93cb744bdc
MD5 91184c8ad5347b14d96ea3e7c3aeb201
BLAKE2b-256 1e0afa1bde9e15dfd379a3ad619ccbdb98d04c9ee88a1838cbf669318e0d7537

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page