Skip to content

Commit

Permalink
Adding Datafusion Ray tests on an Kind cluster using the Helm chart (a…
Browse files Browse the repository at this point in the history
…pache#35)

* Adding Datafusion Ray tests on an Kind cluster using the Helm chart

* Using hardcoded hashes for actions

* Pinning dependencies for main

* Cheating about the semver regexp

* Restored previous version of the action

* Empty commit

* Updated to latest version of free disk space
  • Loading branch information
edmondop authored Oct 22, 2024
1 parent 810592c commit 74ec45c
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 1 deletion.
64 changes: 63 additions & 1 deletion .github/workflows/k8s.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ on:
push:
pull_request:

env:
RAY_HELM_VERSION: 1.1.0
PYTHON_VERSION: 3.9
IMAGE_REPOSITORY: ghcr.io/apache/datafusion-ray

jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -32,14 +37,15 @@ jobs:
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/apache/datafusion-ray
${{ env.IMAGE_REPOSITORY }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

Expand All @@ -59,3 +65,59 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
push: ${{ startsWith(github.ref, 'refs/tags/') }}
load: true

- name: Kind Cluster
uses: helm/[email protected]
with:
config: ./k8s/kind-config.yaml

- name: Free Disk Space (Ubuntu)
uses: jlumbroso/[email protected]
with:
# this might remove tools that are actually needed,
# when set to "true" but frees about 6 GB
tool-cache: true
docker-images: false

- name: Extract short SHA
run: |
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
echo "IMAGE_TAG=sha-${SHORT_SHA}" >> "$GITHUB_ENV"
echo "Extracted short SHA tag: sha-${SHORT_SHA}"
- name: Load Docker image into Kind cluster
run: |
kind load docker-image ${{ env.IMAGE_REPOSITORY }}:${{ env.IMAGE_TAG }} -n chart-testing
- name: Install Helm
uses: azure/[email protected]
with:
version: "3.16.0"

- name: Deploy helm chart
run: |
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
helm install kuberay-operator kuberay/kuberay-operator --version ${{ env.RAY_HELM_VERSION }}
helm install raycluster kuberay/ray-cluster --version ${{ env.RAY_HELM_VERSION }} \
--set image.repository=${{ env.IMAGE_REPOSITORY }} \
--set image.tag=${{ env.IMAGE_TAG }} \
--set imagePullPolicy=Always
echo "Deployed Ray cluster with image repository: ${{ env.IMAGE_REPOSITORY }} and tag: ${{ env.IMAGE_TAG }}"
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-in.txt
- name: Submit an example ray Job
run: |
kubectl port-forward service/raycluster-kuberay-head-svc 8265:8265 &
export RAY_ADDRESS="http://127.0.0.1:8265"
pip install "ray[default]"
ray job submit --working-dir ./examples/ -- python3 tips.py
19 changes: 19 additions & 0 deletions k8s/kind-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraMounts:
- hostPath: /tmp/kind-node-disk
containerPath: /var/lib/containerd
- role: worker
extraMounts:
- hostPath: /tmp/kind-node-disk1
containerPath: /var/lib/containerd
- role: worker
extraMounts:
- hostPath: /tmp/kind-node-disk2
containerPath: /var/lib/containerd
- role: worker
extraMounts:
- hostPath: /tmp/kind-node-disk3
containerPath: /var/lib/containerd

0 comments on commit 74ec45c

Please sign in to comment.