Package: ibm-ray-config
Ray VPC allocator / Configuration Generator For IBM VPCibm-ray-configis 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.SetupThe tool has been mostly tested with Ubuntu 20.04/22.04 and Fedora 35/37, but should work on most Linux systems.Requirements:ssh-keygenutility installed:sudo apt install openssh-clientInstallibm-ray-configfrom pip repositorypip install ibm-ray-configUsageSet 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 viaibm-ray-config --helpFlags Detailed DescriptionKeyDefaultMandatoryAdditional infoiam-api-keyyesIBM Cloud API key. To generate a new API Key, adhere to the followingguideoutput-pathcurrent working directory ($PWD)noA custom location for the program's outputsversionnoReturns ibm-ray-config's package versionregionnoGeographical location for deployment and scope for available resources by the IBM-VPC service. Region are listedhere.compute_iam_endpointhttps://iam.cloud.ibm.comnoAlternative IAM endpoint url for the cloud provider, e.g.https://iam.test.cloud.ibm.comOperate the clusterTo interact with the cluster, execute the scripts in<cluster_folder>/scripts/:up.sh,down.sh,stop.shandsubmit.shcorrespond to Ray's counterpartcommands.down-vpc.shwill delete all resources created by Ray andibm-ray-configconnect.shwill open a secure connection to your cluster, whiledisconnect.shwill terminate it.ray.shcan be used to run all other of Ray'scommands.tunnel.shestablish 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 thessh_private_keyfield to contain the absolute path to the associated ssh private key.Using ibm-ray-config Config Tool ProgrammaticallyDisclaimer: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_keyandregion.
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 UsageAttention: to run multiple clusters under the same VPC, make sure their cluster names (cluster_namein the config file) are unique.To deploy a Ray cluster with the configuration created, please use theibm-vpc-ray-connector. Follow the instructions via the provided link to test your configuration files.Execution Example