Se você estiver em um sistema com data GNU (como um sistema Linux), você pode usar o awk para analisar a saída de helm ls
, depois usar a data GNU para calcular os segundos desde a época e determinar se a implantação correspondente tiver idade suficiente:
helm ls | awk -v now=$(date +%s) -f delete-old-deployments.awk
Onde o conteúdo de delete-old-deployments.awk
é:
BEGIN {
# age cutoff, in seconds
cutoff=4 * 60 * 60
}
NR > 1 {
split($0, elements, / */)
"date -d '" elements[3] "' +%s" | getline elesecs
if ((now - elesecs) > cutoff && elements[4] == "DEPLOYED") {
system("helm delete '"elements[1]"'")
}
}
Com base no que posso encontrar no código fonte do helm ls , a saída é uma tabela separada por espaços em branco de várias cadeias de caracteres. Como tal, pedi ao awk para dividir cada linha (depois de pular o cabeçalho) com base em 2 ou mais espaços (há três espaços no terceiro parâmetro para a função split (); dois, seguidos por zero ou mais espaços ).
O terceiro campo após a divisão é a string de data, que passamos para a data GNU, pedindo para converter isso em segundos desde a época. Se a diferença entre "now" e "then" for maior que o cutoff, então chamamos o comando helm delete
no nome correspondente.