web-dev-qa-db-fra.com

Déployer les graphiques Helm par ordre de dépendances

Je déploie plusieurs sous-graphiques de barre dans Kubernetes Cluster via Helm et tiller. Comment puis-je m'assurer qu'un graphique particulier installe complètement ses conteneurs avant de commencer à installer d'autres graphiques et leurs conteneurs?

J'ai regardé dans requirements.yaml et hooks, aucun d'eux ne peut être la solution que je recherche.

ParentDir/
    Chart.yaml
    requirements.yaml
    values.yaml
    charts/
    |
    |
    —- App1
        Chart.yaml
        values.yaml
        templates/
    —- App2
        Chart.yaml
        values.yaml
        templates/
    .
    .
    .
    —- AppN
        Chart.yaml
        values.yaml
        templates/

J'ai plusieurs sous-graphiques et je veux m'assurer que les conteneurs d'App1 sont prêts et prêts avant que Helm n'installe d'autres graphiques et ses conteneurs.

5
Amay

Vous devriez regarder dans helmfile et diviser votre pile en un helmfile par application. Étant donné que les fichiers helm à l'intérieur d'un dossier sont appliqués dans un ordre alphabétique, vous pouvez garantir l'ordre via les conventions de dénomination des fichiers.

Structure du fichier:

helmfile.d/
  00-app-1.yaml
  01-app-2.yaml
  02-app-n.yaml

Exécutez-le avec cette commande: helmfile -f path/to/directory

1
Lukas Eichler

Je suis tombé sur le même problème ces derniers temps. J'avais un RabbitMQ, en tant que package Helm, et deux packages Helm supplémentaires que j'ai construits localement.

Je voulais rassembler les trois dans un seul package Helm, mais je n'ai trouvé aucun moyen de commander l'installation des graphiques Helm, car par exemple, les deux autres packages ont besoin des informations d'identification RabbitMQ.

J'ai trouvé que l'utilisation de crochets apporte plus de complexité que nécessaire à la solution et j'ai préféré simplement les installer séparément, dans l'ordre que je veux, tandis que je peux effectuer des modifications manuelles entre les étapes.

Voici un article qui traite de ce sujet et pourrait vous intéresser.

Maintenant, il pourrait y avoir un moyen de bien ordonner les dépendances si vous êtes prêt à essayer Helmsman . Je ne peux pas porter de jugement à ce sujet, car je viens de le découvrir, mais à partir de son README sous Fonctionnalités:

Définissez l'ordre de gestion des versions: vous pouvez définir les priorités auxquelles les versions sont gérées par le barreur (utile pour les dépendances).

Ici est la documentation pertinente.

0
Anas Tiour

je ne pense pas qu'il y ait quoi que ce soit du côté du graphique de barre, mais vous pouvez probablement résoudre ce problème en utilisant les conteneurs init.

si dans vos graphiques il y a une base de données et utilisée par l'application et se planter, vous pouvez utiliser le conteneur init pour vérifier pour terminer le cycle de vie du pod.

Pour en savoir plus, vous pouvez vous référer à ceci: https://github.com/helm/helm/issues/171

0
Harsh Manvar