Skip to content

feat(runtimes): make MPI launcher depend on worker readiness #1936

feat(runtimes): make MPI launcher depend on worker readiness

feat(runtimes): make MPI launcher depend on worker readiness #1936

Workflow file for this run

# Copyright The Kubeflow Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Unit and E2E Test - Helm
on:
- pull_request
- push
permissions:
contents: read
jobs:
test:
runs-on: cncf-ubuntu-16-64-x86
steps:
- name: Checkout code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Setup Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version-file: go.mod
- name: Run Helm Unit Tests
run: make helm-unittest
- name: Install Helm
run: make helm
# Setup Kind (skip Kustomize deploy)
- name: Setup Kind Cluster
run: make test-e2e-setup-cluster INSTALL_METHOD=helm
- name: Run Go E2E Tests
run: make test-e2e || (kubectl logs -n kubeflow-system -l app.kubernetes.io/name=trainer && exit 1)
# Verify that `helm uninstall` succeeds, including the pre-delete cleanup
# hook that removes the built-in runtimes, and that no chart resources are
# left behind. Only tested here on a single Kubernetes version.
- name: Verify Helm Uninstall
run: |
# The flux runtime is applied outside of runtime installer job, so we need to manually delete it.
kubectl delete clustertrainingruntime flux-distributed --ignore-not-found --timeout 3m
# --wait blocks on the pre-delete cleanup Job; a failing hook fails this step.
helm uninstall trainer --namespace kubeflow-system --wait
echo "Checking that no chart resources remain after uninstall..."
namespaced=$(kubectl get deployment,service,serviceaccount,configmap,secret,role,rolebinding \
-n kubeflow-system -l app.kubernetes.io/instance=trainer -o name || true)
clustered=$(kubectl get clusterrole,clusterrolebinding,validatingwebhookconfiguration,mutatingwebhookconfiguration \
-l app.kubernetes.io/instance=trainer -o name || true)
if [ -n "${namespaced}${clustered}" ]; then
echo "ERROR: resources still present after helm uninstall:"
printf '%s\n%s\n' "${namespaced}" "${clustered}"
exit 1
fi
echo "Verified: helm uninstall removed all chart resources"