Вы можете использовать приведенный ниже сценарий оболочки, который принимает весь список выпусков и последний раз развертывается за секунды, используя служебную команду helm ls
и jq
; который затем просматривает список выпусков и вычитает количество дней, в течение которых он был развернут, а затем удаляет выпуски старше месяца. По месяцам я только что дал 30 days
.
#!/bin/bash
#Store the release names alone for a specific tiller.
helm_releases=(`helm ls --short --tiller-namespace "kube-system"`)
#Store current date
CURRENT_TIME_Seconds=`date '+%s'`
for RELEASE in ${helm_releases[@]};
do
LAST_DEPLOYED_SECONDS=`helm status $RELEASE --tiller-namespace "kube-system" --output=json | jq -r '.info.last_deployed.seconds'`
SEC_DIFF=`expr $CURRENT_TIME_Seconds - $LAST_DEPLOYED_SECONDS`
DAY_DIFF=`expr $SEC_DIFF / 86400`
if [ "$DAY_DIFF" -gt 30 ]; then
echo "$RELEASE is older than a month. Proceeding to delete it."
helm delete --purge --no-hooks $RELEASE
fi
done
Вы все равно можете определить свой собственный логин поверх этого, вычислив разницу в секундах за месяц. Обратите внимание, что я прямо упомянул --tiller-namespace
. Вы можете использовать это, если ваши выпуски развернуты в пространстве имен, которое использует tiller, отличный от kube-system.