While troubleshooting #3131 it was learned that Airflow and Kubeflow use separate bootstrappers and the Airflow bootstrapper does not contain the find_best_kernel() functionality that is present in the Kubeflow bootstrapper. As a result, notebooks that reference a kernel name that is not present in the runtime image will fail since there are no means in place to fall back to another kernel.
While troubleshooting #3131 it was learned that Airflow and Kubeflow use separate bootstrappers and the Airflow bootstrapper does not contain the
find_best_kernel()
functionality that is present in the Kubeflow bootstrapper. As a result, notebooks that reference a kernel name that is not present in the runtime image will fail since there are no means in place to fall back to another kernel.The logic (referenced above) needs to be copied from
kfp/bootstrapper.py
toairflow/bootstrapper.py
.