Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if ! kubectl -n ${ENV} rollout status --timeout=120s deployments.apps app-name; then
kubectl -n ${ENV} rollout undo deployments.apps app-name
fi
kubectl -n "${ENV}" wait --for=condition=complete --timeout=300s job/migrations
if [[ $? -ne 0 ]]; then
echo "ERROR migrations"
CONTROLLER_UID=$(kubectl -n "${ENV}" get job/migrations -o jsonpath='{.spec.selector.matchLabels.controller-uid}')
POD_ERR_LIST=$(kubectl -n "${ENV}" get pods -l controller-uid=${CONTROLLER_UID} --sort-by='.metadata.creationTimestamp' -o jsonpath='{.items[*].metadata.name}')
for pod in $(echo "${POD_ERR_LIST}"); do
echo -e '\e[0;31m' "pod_name: ${pod}" '\e[0m'
kubectl -n "${ENV}" logs "${pod}"
done
exit 1
fi
А мы похожее запили на терраформе + helm. В чартах описаны основные узлы приложения, а в терраформе дополнительные компоненты кубера и описание облачной инфры.
Автоматизированное развертывание в Kubernetes с помощью Helm и дополнительной шаблонизации