我正在创建一个多租户Kubernetes基础架构。 我用我的应用程序创建了Helm Chart,现在需要在创建新名称空间时自动执行Helm Chart安装。
例如,创建命名空间client1
时,我需要运行helm install myrepo/myapp --name client1
。
如何获取新的命名空间创建事件?还有名称空间的名称?
答案 0 :(得分:0)
您可以一直运行一个脚本,该脚本会在一段时间后每次执行kubectl get namespace
并将当前结果与旧结果进行比较。找到新创建的名称空间后,即可执行helm install myrepo/myapp --name client1
。或者,您可以在集群中运行应用程序。该应用程序所做的基本上是列出集群中的所有名称空间,将当前的名称空间与缓存的内容进行比较,如果找到了新的名称空间,则调用helm客户来安装您的应用程序。有关更多信息,如果您使用的是golang,我建议您使用kubernetes client-go来获取集群中的名称空间列表,并且您可以参考开放资源项目pipeline来掌舵客户端。部分来安装您的应用。