@@ -19,6 +19,7 @@ concurrency:
1919
2020env :
2121 CODEFLARE_OPERATOR_IMG : " quay.io/project-codeflare/codeflare-operator:dev"
22+ KUEUE_VERSION : " v0.13.4"
2223
2324jobs :
2425 kubernetes :
5758 - name : Set up specific Python version
5859 uses : actions/setup-python@v5
5960 with :
60- python-version : ' 3.11 '
61+ python-version : ' 3.12 '
6162 cache : ' pip' # caching pip dependencies
6263
6364 - name : Setup NVidia GPU environment for KinD
9394 kubectl create clusterrolebinding sdk-user-list-ingresses --clusterrole=list-ingresses --user=sdk-user
9495 kubectl create clusterrole namespace-creator --verb=get,list,create,delete,patch --resource=namespaces
9596 kubectl create clusterrolebinding sdk-user-namespace-creator --clusterrole=namespace-creator --user=sdk-user
96- kubectl create clusterrole raycluster-creator --verb=get,list,create,delete,patch --resource=rayclusters
97+ kubectl create clusterrole raycluster-creator --verb=get,list,create,delete,patch,watch --resource=rayclusters
9798 kubectl create clusterrolebinding sdk-user-raycluster-creator --clusterrole=raycluster-creator --user=sdk-user
99+ kubectl create clusterrole rayjob-creator --verb=get,list,create,delete,patch,watch,update --resource=rayjobs,rayjobs/status
100+ kubectl create clusterrolebinding sdk-user-rayjob-creator --clusterrole=rayjob-creator --user=sdk-user
98101 kubectl create clusterrole appwrapper-creator --verb=get,list,create,delete,patch --resource=appwrappers
99102 kubectl create clusterrolebinding sdk-user-appwrapper-creator --clusterrole=appwrapper-creator --user=sdk-user
100103 kubectl create clusterrole resourceflavor-creator --verb=get,list,create,delete --resource=resourceflavors
@@ -111,6 +114,10 @@ jobs:
111114 kubectl create clusterrolebinding sdk-user-service-reader --clusterrole=service-reader --user=sdk-user
112115 kubectl create clusterrole port-forward-pods --verb=create --resource=pods/portforward
113116 kubectl create clusterrolebinding sdk-user-port-forward-pods-binding --clusterrole=port-forward-pods --user=sdk-user
117+ kubectl create clusterrole node-reader --verb=get,list --resource=nodes
118+ kubectl create clusterrolebinding sdk-user-node-reader --clusterrole=node-reader --user=sdk-user
119+ kubectl create clusterrole workload-creator --verb=get,list,watch --resource=workloads
120+ kubectl create clusterrolebinding sdk-user-workload-creator --clusterrole=workload-creator --user=sdk-user
114121 kubectl config use-context sdk-user
115122
116123 - name : Run e2e tests
@@ -122,19 +129,40 @@ jobs:
122129 pip install poetry
123130 poetry install --with test,docs
124131 echo "Running e2e tests..."
125- poetry run pytest -v -s ./tests/e2e -m 'kind and nvidia_gpu' > ${CODEFLARE_TEST_OUTPUT_DIR}/pytest_output.log 2>&1
132+ poetry run pytest -v -s ./tests/e2e -m 'kind and nvidia_gpu' > ${CODEFLARE_TEST_OUTPUT_DIR}/e2e-pytest_output.log 2>&1
133+ env :
134+ GRPC_DNS_RESOLVER : " native"
135+
136+ - name : Run RayJob e2e tests
137+ run : |
138+ echo "Running RayJob e2e tests..."
139+ # Set environment variable to prevent default queue assignment for non-Kueue tests
140+ export DISABLE_DEFAULT_KUEUE_QUEUE=true
141+
142+ # Install SDK in editable mode if not already done
143+ pip install -e .
144+
145+ # Run only the tests that are designed for Kueue integration
146+ poetry run pytest -v -s ./tests/e2e/rayjob/-x >> ${CODEFLARE_TEST_OUTPUT_DIR}/rayjob-e2e-pytest_output.log 2>&1
126147 env :
127148 GRPC_DNS_RESOLVER : " native"
128149
129150 - name : Switch to kind-cluster context to print logs
130151 if : always() && steps.deploy.outcome == 'success'
131152 run : kubectl config use-context kind-cluster
132153
133- - name : Print Pytest output log
154+ - name : Print E2E Pytest output log
155+ if : always() && steps.deploy.outcome == 'success'
156+ run : |
157+ echo "Printing Pytest output logs"
158+ cat ${CODEFLARE_TEST_OUTPUT_DIR}/e2e-pytest_output.log
159+
160+
161+ - name : Print RayJob E2E Pytest output log
134162 if : always() && steps.deploy.outcome == 'success'
135163 run : |
136164 echo "Printing Pytest output logs"
137- cat ${CODEFLARE_TEST_OUTPUT_DIR}/pytest_output.log
165+ cat ${CODEFLARE_TEST_OUTPUT_DIR}/rayjob-e2e- pytest_output.log
138166
139167 - name : Print CodeFlare operator logs
140168 if : always() && steps.deploy.outcome == 'success'
@@ -162,3 +190,4 @@ jobs:
162190 retention-days : 10
163191 path : |
164192 ${{ env.CODEFLARE_TEST_OUTPUT_DIR }}/**/*.log
193+ if-no-files-found : warn
0 commit comments