kubernetes-helm - 如何删除超过 1 个月的 helm 版本
问题描述
我知道我可以使用列出所有 helm 发布 helm ls --tiller-namespace <tiller-namespace>
我可以使用什么命令来删除超过 1 个月的 helm 版本?
解决方案
您可以使用下面的 shell 脚本,它获取所有版本列表,并使用helm ls
andjq
实用程序命令在几秒钟内最后一次部署;然后循环遍历发布列表并对其已部署的天数进行一些减法,然后删除超过一个月的发布。按月计算,我刚刚给了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
. 如果您将发布部署在使用除kube-system
.
推荐阅读
- google-apps-script - Google 应用脚本、Gmail 应用 HTML 正文未正确显示并向电子邮件添加签名
- caching - Web 缓存如何减少接收请求对象的延迟?
- python - windows机器上的python版本不匹配
- c++ - 使用 cmake 构建 or-tools 7.1
- python - 通过并行化加速随机数生成
- python - 在 Python 中对矩阵进行切片
- python - 我将credentials.json文件保存在一个文件夹中,其余的python文件都保存在一个文件夹中
- c# - 使用反射从.net中的模型中提取动作输入参数
- arrays - 我想采用逗号分隔的整数并将它们放在一个数组中,该数组在 C 中的数组末尾以问号结尾
- python-3.x - 将变量名动态插入字符串