#kubernetes-helm
#kubernetes-helm
Вопрос:
Я пытаюсь удалить выпуски старше 10 дней, но некоторые пространства имен не следует трогать (например, мониторинг) В helm2 я сделал это с помощью awk, но в helm3 они изменили тип даты, поэтому он не работает. Есть ли какой-либо способ сделать это?
Комментарии:
1. пытались ли вы выполнить свою задачу, и это не сработало?
2. я попытался использовать jq. Это тоже не работает.
Ответ №1:
Позвольте мне показать вам, как я решил аналогичную проблему. В нашем потоке у нас есть автоматическое развертывание выпусков helm для каждой ветви функций, и мы решили внедрить автоматический процесс очистки для удаления старых выпусков функций в процессе разработки.
Текущая реализация требует jq в качестве зависимости.
#!/usr/bin/env bash
set -e
echo "Staring delete-old-helm-release.sh ..."
helm_release_name=${1:-$HELM_RELEASE_NAME}
k8s_namespace=${2:-$KUBERNETES_NAMESPACE}
# Get helm release date, take updated field and remove UTC from string
helm_release_updated=$(helm list --filter "${helm_release_name}" -n "${k8s_namespace}" -o json
| jq --raw-output ".[0].updated"
| sed s/"UTC"//
)
if [[ "$helm_release_name" == null ]]; then
echo "Helm release: ${helm_release_name} in namespace: ${k8s_namespace} not found"
echo "Exit from delete-old-helm-release.sh ..."
exit 1
fi
# Convert date string to timestamp, get current timestamp and calculate time delta
helm_release_date_timestamp=$(date --utc --date="${helm_release_updated}" " %s")
current_date_timestamp=$(date --utc " %s")
time_difference=$((current_date_timestamp - helm_release_date_timestamp))
# 86400 means 24 hours (60*60*24) in seconds
if [[ (( $time_difference -gt 86400 )) ]]; then
echo "Detected old release: ${helm_release_name} in namespace: ${k8s_namespace}"
echo "Difference is more than 24hr: $((time_difference/60/60))hr"
echo "Deliting it ..."
helm delete "${helm_release_name}" -n "${k8s_namespace}" --purge
echo "Done"
else
echo "Detected fresh release"
echo "Current time difference is less than 24hr: $((time_difference/60/60))hr"
echo "Skipping ..."
fi
exit 0
Он протестирован с helm 3.2.4, и я думаю, что он должен работать со всеми helm 3.x.x, пока они не изменили формат даты.
Кстати, пожалуйста, обновите описание вашей проблемы, чтобы оно было более понятным и имело больший приоритет в поисковых системах 🙂
Пожалуйста, дайте мне знать, помогает ли это, удачи, Олег
Комментарии:
1. Спасибо, чувак. Вы мне очень помогли