仅当 Kubernetes 命名空间为空时才删除它?

Jay*_*Jay 6 kubernetes kubernetes-helm

我使用 Helm 将应用程序的多个“组件”部署到单个命名空间中,并使用 Jenkins 触发创建和销毁作业。我似乎无法使用 Helm 来删除命名空间,因此我希望仅使用 Kubernetes 命令。

但是,如果我使用它,似乎kubectl delete namespace会强制破坏名称空间及其所有资源。

我只想在名称空间为空时才销毁它。有命令可以做到这一点吗?

小智 1

请参阅删除空命名空间运算符,它可以完全满足您的需求。

为什么?因为迭代命名空间中的资源来确定它是否为空并不容易。毕竟,有“默认资源”,例如默认服务帐户,以及可能来自您的工具/操作员的其他内容。

因此这些资源应该被排除在迭代之外。这样 Bash 脚本就变得太复杂了。有一天我决定用 Python 来实现它。