web-dev-qa-db-fra.com

Installation de la barre dans un certain ordre

J'essaie de créer un graphique de barre avec les ressources suivantes:

  1. Secret
  2. ConfigMap
  3. Un service
  4. Emploi
  5. Déploiement

Celles-ci sont également dans l'ordre dans lequel j'aimerais qu'elles soient déployées. J'ai mis un crochet dans le déploiement pour qu'il soit post-installation, mais Helm ne le voit pas comme une ressource et je dois le gérer manuellement.

Le Job a besoin des informations contenues dans Secret et ConfigMap, sinon je ferais cela comme un crochet de pré-installation. Mais je ne peux pas faire de tout un crochet ou rien ne sera géré dans ma version.

Quelqu'un a-t-il une solution ou une idée pour pouvoir gérer toutes les ressources dans la version Helm ET s'assurer que le Job se termine avant le début du déploiement?

Ma seule pensée en ce moment est que deux font deux graphiques: un avec 1-4 et le second avec 5 qui dépendrait du premier.

11
waterprincess

Helm collecte toutes les ressources dans un graphique donné et ses dépendances, les regroupe par type de ressource, puis les installe dans l'ordre suivant (voir ici - Helm 2.10):

  1. Espace de noms
  2. ResourceQuota
  3. LimitRange
  4. PodSecurityPolicy
  5. Secret
  6. ConfigMap
  7. StorageClass
  8. PersistentVolume
  9. PersistentVolumeClaim
  10. ServiceAccount
  11. CustomResourceDefinition
  12. ClusterRole
  13. ClusterRoleBinding
  14. Rôle
  15. Liaison de rôle
  16. Un service
  17. DaemonSet
  18. Cosse
  19. ReplicationController
  20. ReplicaSet
  21. Déploiement
  22. StatefulSet
  23. Emploi
  24. Cron
  25. Entrée
  26. APIService

Lors de la désinstallation d'une version, la commande est inversée (voir ici ).

Suivant cette logique, dans votre cas, lorsque votre ressource Job est créée, le secret et le ConfigMap seront déjà appliqués, mais Helm n'attendra pas la fin du Job avant d'appliquer le déploiement. Si vous divisez votre graphique en deux parties (1-4, 5) et que vous les installez séquentiellement, le problème de déploiement pourrait toujours être appliqué avant la fin du travail. Ce que je suggérerais, c'est de diviser votre graphique en deux parties (1-3, 4-5), dans lesquelles le Job a un crochet de pré-installation, qui garantirait qu'il se termine avant que votre déploiement ne soit appliqué.

31
yanivoliver