Крюк диаграммы руля может сделать это. Есть ряд моментов, в которых Helm может развертывать набор ресурсов по одному и ждать, пока они будут готовы или завершены.
Для того, что вы описываете, достаточно использовать аннотацию, чтобы отметить задание в качестве предустановочной ловушки:
apiVersion: batch/v1
kind: Job
metadata:
annotations:
"helm.sh/hook": pre-install
Ни один из других ресурсов в диаграмме не будет развернут до успешного выполнения ловушки. Если задание не выполнено, оно заблокирует развертывание любых других ресурсов. Эта pre-install
ловушка запускается только при первой установке, но если вы хотите, чтобы ловушка запускалась при обновлении или откате, существуют соответствующие ловушки, чтобы сделать это.
Есть еще некоторые рабочие процессы, которые трудно express таким образом. Например, если ваша служба включает в себя базу данных и вы хотите, чтобы задание выполняло миграцию или начальные данные, вы не можете действительно развернуть базу данных StatefulSet, затем заблокировать на ловушке Job, а затем развернуть все остальное; Ваше приложение по-прежнему должно терпеть вещи, возможно, не находящиеся в ожидаемом состоянии.