按一定顺序安装头盔

时间:2018-08-21 22:45:23

标签: kubernetes kubernetes-helm

我正在尝试使用以下资源创建头盔图表:

  1. 秘密
  2. ConfigMap
  3. 服务
  4. 工作
  5. 部署

这些也是按照我希望它们部署的顺序进行的。我在“部署”中添加了一个钩子,以便在安装后进行安装,但是Helm并不将其视为资源,因此必须手动进行管理。

Job需要Secret和ConfigMap中的信息,否则我将使它成为预安装挂钩。但是我无法将所有事情都弄上钩,否则在我的发行版中将无法处理任何事情。

是否有人有解决方案或想法能够管理Helm版本中的所有资源,并确保作业在部署开始之前完成?

我现在唯一的想法就是两个图表两个:一个是1-4,第二个是5,这取决于第一个。

1 个答案:

答案 0 :(得分:17)

Helm收集给定图表及其依赖项中的所有资源,按资源类型对其进行分组,然后按以下顺序安装它们(请参阅here-Helm 2.10):

  1. 命名空间
  2. 资源配额
  3. LimitRange
  4. PodSecurityPolicy
  5. 秘密
  6. ConfigMap
  7. StorageClass
  8. PersistentVolume
  9. PersistentVolumeClaim
  10. ServiceAccount
  11. CustomResourceDefinition
  12. ClusterRole
  13. ClusterRoleBinding
  14. 角色
  15. 角色绑定
  16. 服务
  17. DaemonSet
  18. Pod
  19. ReplicationController
  20. ReplicaSet
  21. 部署
  22. StatefulSet
  23. 工作
  24. CronJob
  25. 入口
  26. APIService

在卸载发行版期间,顺序相反(请参阅here)。

按照这种逻辑,在您创建Job资源的情况下,Secret和ConfigMap都将已经应用,但是Helm在应用Deployment之前不会等待Job完成。 如果将图表分为两部分(1-4、5)并按顺序安装它们,那么在作业完成之前,仍然可能会应用部署问题。 我建议将图表分为两个部分(1-3、4-5),其中作业具有预安装挂钩,可以确保在应用部署之前完成该工作。