Comments 3
Если уже взяли баш и yq, то проще было использовать kustomize, было бы более читаемо. А так кажется совсем магия присходит и без бутылки не разобраться. Шаблонизация хельм + yq + sed, что там на выходе получится совсем непонятно. В итоге про весь зоопрарк будет понимать 1-2 человека, читаемость нулевая…
А ролауты спокойно можно контролировать и kubectl
как и прохождение миграций и даже логи в ci показывать
Я не осуждаю, но кажется вы всё усложнили. И в декларативной копипасте проще разбираться, чем в вашем велосипеде.
А ролауты спокойно можно контролировать и kubectl
if ! kubectl -n ${ENV} rollout status --timeout=120s deployments.apps app-name; then
kubectl -n ${ENV} rollout undo deployments.apps app-name
fi
как и прохождение миграций и даже логи в ci показывать
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. В чартах описаны основные узлы приложения, а в терраформе дополнительные компоненты кубера и описание облачной инфры.
Sign up to leave a comment.
Автоматизированное развертывание в Kubernetes с помощью Helm и дополнительной шаблонизации