Helm — Dépendances

Une plongée profonde dans les dépendances du graphique Helm

Photo par Ilya P sur Unsplash

Dans helm, une carte peut être dépendante d'une autre carte. Par exemple, une application WordPress nécessite une base de données pour commencer à fonctionner. Dans helm, nous pouvons déployer WordPress dans le cadre du graphique parent et MySQL ou toute autre application requise en tant que dépendance du graphique parent.

Les chartes Helm stockent leurs dépendances dans 'charts/'. Il existe deux manières différentes d'ajouter des graphiques de dépendance aux graphiques parents :

  1. Répertorier toutes les dépendances dans le fichier Chart.yaml et helm téléchargera les dépendances et les stockera dans le répertoire 'charts/' .
  2. Remplissez manuellement le tableau de dépendances dans le répertoire 'charts/' .

Avant de lister les dépendances dans le fichier Chart.yaml , Par défaut , le fichier Chart.yaml ressemble à ceci :

# Chart.yaml
apiVersion: v2
name: webserver
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"

dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"

# Chart.yaml
apiVersion: v2
name: webserver
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"

helm dependency update [CHART] 
>> helm dependency update ~/webserver

Le Chart.lockfichier répertorie les versions exactes des dépendances immédiates et de leurs dépendances, etc.

Gamme de versions

Au lieu de définir une version exacte d'un graphique, nous pouvons définir une plage de versions. Helm nous permet de définir des plages de versions de différentes manières.

nous pouvons afficher toutes les versions disponibles d'un graphique à l'aide de la commande suivante :

 helm search repo [CHART] --versions
>> helm search repo  mysql  --versions

version: 1.2 - 1.4.5qui sont équivalents à>= 1.2 <= 1.4.5

dependencies:
- name: mysql
  version: 9.0.0 - 9.9.9
  repository: "https://charts.bitnami.com/bitnami"

● Comparaisons de base
Nous pouvons également utiliser des opérateurs de comparaison de base pour définir la version.

version: "= 9.4.1" 
 
version: "!= 9.4.1"
version: "> 9.4.1"
version: "< 9.4.1"
version: ">= 9.4.1"
version: "<= 9.4.1"
version: ">= 9.4.1 and < 10.0.0"

^1.2.3  is equivalent to >= 1.2.3, < 2.0.0
^1.2.x  is equivalent to >= 1.2.0, < 2.0.0   # x as a placeholder
^2.3    is equivalent to >= 2.3, < 3
^2.x    is equivalent to >= 2.0.0, < 3       # x as a placeholder
^0      is equivalent to >= 0.0.0, < 1.0.0

~1.3.2  is equivalent to >= 1.3.2, < 1.4.0
~3.4    is equivalent to >= 3.4, < 3.5
~3      is equivalent to >= 3, < 4

Selon les besoins de l'utilisateur, une dépendance peut être activée ou désactivée. Si une dépendance est désactivée, lors de l'installation d'un graphique, la dépendance correspondante sera ignorée.

Il existe plusieurs façons d'y parvenir. En utilisant des champs de condition ou des champs de balises.

●Utilisation de la condition
Nous pouvons définir un champ de condition tout en définissant une dépendance à l'intérieur du fichier parentChart/Charts.yaml .

# parentChart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"
  condition: mysql.enabled

# parentchart/values.yaml
...
...
mysql:
  enabled: false

●Utilisation de balises
Supposons qu'il existe plusieurs dépendances définies dans le fichier Charts.yaml . Pour l'activer ou le désactiver selon nos besoins, nous devons faire quelque chose de similaire à ceci :

# parentchart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: https://charts.bitnami.com/bitnami
  condition: mysql.enabled
- name: mongodb
  version: 13.3.0
  repository: https://charts.bitnami.com/bitnami
  condition: mongodb.enabled

# parentchart/values.yaml
....
....
mysql:
  enabled: true
mongodb
  enabled: false

Tout d'abord, voyons comment définir des balises dans le fichier values.yaml du parent :

# parentchart/values.yaml
...
...
tags:
  enabled: false

# parentchart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: https://charts.bitnami.com/bitnami
- name: mongodb
  version: 13.3.0
  repository: https://charts.bitnami.com/bitnami
  tags: 
    - enabled

Liste des dépendances

Nous pouvons lister toutes les dépendances pour un graphique donné.

helm dependency list  [CHART]
>> helm dependency list  ~/webserver/
--------------------------------------------------------------
NAME    VERSION REPOSITORY                              STATUS 
mysql   9.3.4   https://charts.bitnami.com/bitnami      ok     
mongodb 2.0.3   https://charts.bitnami.com/bitnami      missing

Si vous avez trouvé cet article utile, n'oubliez pas d'appuyer sur les boutons Suivre et Applaudir pour m'aider à écrire d'autres articles comme celui-ci. Merci

Tous les articles sur Helm Chart -

Helm — En action
Helm — Commandes avancées
Helm — Créer votre premier graphique
Helm — Modèle d'actions, de fonctions et de pipelines
Helm — Contrôle de flux
Helm — Variables
Helm — Modèle nommé
Helm — Dépendances

Codage de niveau supérieur

Merci de faire partie de notre communauté ! Avant que tu partes:

  • Applaudissez pour l'histoire et suivez l'auteur
  • Voir plus de contenu dans la publication Level Up Coding
  • Suivez-nous : Twitter | LinkedIn | Bulletin

Suggested posts

Plus de mots de passe - comment les clés d'accès remplaceront votre mot de passe

Plus de mots de passe - comment les clés d'accès remplaceront votre mot de passe

Pour éviter toute ambiguïté, les termes suivants seront utilisés ; Authentificateur ; Le téléphone mobile utilisé pour effectuer la connexion au site Web ; Le site Web ou l'application que l'utilisateur utilise pour effectuer la demande de connexion au service ; Le fournisseur fournissant le service donné, par exemple

VIE SANS LIMITE

Quand tu grandis, on a tendance à te dire que le monde est comme il est et que ta vie est juste de vivre ta vie à l'intérieur du monde, sans jamais risquer ta vie, juste suivre un chemin tracé et mourir à la fin, et essayer de ne pas cogner trop les murs. Mais c'est une vie très limitée.

Related posts

Cette archive de menace: Vol 7 Black Basta

Cette archive de menace: Vol 7 Black Basta

Dans le monde interconnecté d'aujourd'hui, la menace des cyberattaques est plus répandue que jamais. Les cybercriminels et les acteurs des États-nations cherchent constamment à exploiter les vulnérabilités et à voler des données précieuses, ce qui représente un risque important pour les organisations de toutes tailles.

Comment sauver la planète et gagner de l'argent

Comment sauver la planète et gagner de l'argent

Combien de fois avez-vous jeté une bouteille en plastique, un bocal en verre, une canette en aluminium ou un paquet d'énergie verte sans réfléchir à deux fois ? Combien de fois avez-vous souhaité pouvoir obtenir quelque chose en échange de leur recyclage ? Si vous êtes comme la plupart des gens, la réponse est probablement plusieurs fois. Le recyclage est souvent perçu comme un tracas, une corvée ou un devoir qui n'apporte aucun bénéfice immédiat ou tangible.

Le meurtre de Jordan Neely et le problème du racisme « patriotique »

Les États-Unis peuvent-ils prendre la mesure essentielle de ne pas assimiler un comportement raciste au fait d'être un bon Américain ?

Le meurtre de Jordan Neely et le problème du racisme « patriotique »

[Alerte de déclenchement : cet essai comprend des captures d'écran de personnes faisant l'éloge du meurtrier de Jordan Neely.] Les responsables de l'application des lois ont finalement - et peut-être à contrecœur - inculpé Daniel Penny, l'homme qui a étouffé Jordan Neely jusqu'à sa mort, pour cet homicide.

les pronoms font super peur

Ça me frappe tout à coup, comme c'est si souvent le cas C'est à nouveau le milieu du chemin <Non, pas celui du Pacifique, toi marron, celui du carnaval> Chaque gros titre fort… ..