Как удалить релиз Helm старше 1 месяца - PullRequest
0 голосов
/ 04 августа 2020

Я знаю, что могу перечислить все выпуски руля, используя helm ls --tiller-namespace <tiller-namespace>

Какую команду я могу использовать для удаления выпуска руля старше 1 месяца?

1 Ответ

1 голос
/ 08 августа 2020

Вы можете использовать приведенный ниже сценарий оболочки, который принимает весь список выпусков и последний раз развертывается за секунды, используя служебную команду 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.

...