Unique Ray Cluster
We use Ansible to prepare the cluster.
- You must have ssh access to the cluster.
- Must have ansible and potentially 1password-cli installed on your machine.
-
Create a
ansible/values.yaml
file with the appropriate values for your cluster. -
Create a
ansible/inventories/ray_cluster/hosts.yaml
file with the appropriate values for your cluster. -
Run the playbook from the
ansible
directory with:
ansible-playbook playbooks/provisioning.yaml --extra-vars "@values.yaml"
The provisioning playbook has several tags that you can use to run specific tasks:
cluster
: Upgrade the apt-packages, setup and harden SSH, provision management user.kubernetes
: Provision the Kubernetes cluster with k3s.charts
: Provision the Helm charts. You can define a list of roles to install in thevalues.yaml
file.apps
: Setup ArgoCD applications so they can be deployed on the cluster via ArgoCD.
To run a specific task, use the --tags
option:
ansible-playbook playbooks/provisioning.yaml --extra-vars "@values.yaml" --tags "cluster,ssh,kubernetes,charts,apps"
All application resources are deployed via ArgoCD. The ansible role apps
will create an ArgoCD application for each app defined in the values.yaml
file.
Some apps, that contain multiple services, use a ArgoCD ApplicationSet to deploy each service and required resource (e.g. the 10-document-chat
app).
Individual services are packaged into Helm charts and deployed via ArgoCD. The Helm charts are stored in the helm
directory and are packaged and pushed to the OCI registry with the helm/publish.sh
script.
This repository is intended primarily for research, development, testing, and the collection and dissemination of knowledge.
The Ray Research project by UNIQUE is source-disclosed, rather than open source, in order to encourage collaboration and innovation, as well as to provide transparency and insight into the internal mechanisms of UNIQUE.
Please note that this software is licensed under the UNIQUE Custom Proprietary License 1.0. For detailed terms and conditions, refer to the LICENSE file.