Helm — Zależności

Głębokie zanurzenie się w zależnościach wykresów Helm

Zdjęcie autorstwa Ilyi P na Unsplash

W sterze jeden wykres może być zależny od innego wykresu. Na przykład aplikacja WordPress wymaga bazy danych, aby zacząć działać. W sterze możemy wdrożyć WordPress jako część wykresu nadrzędnego i MySQL lub dowolną inną wymaganą aplikację jako zależność wykresu nadrzędnego.

Wykresy Helm przechowują swoje zależności w „wykresach/”. Istnieją dwa różne sposoby dodawania wykresów zależności do wykresów nadrzędnych:

  1. Wyświetlenie listy wszystkich zależności w pliku Chart.yaml i sterze spowoduje pobranie zależności i zapisanie ich w katalogu „ charts/” .
  2. Ręcznie wypełnij wykres zależności w katalogu „ charts/” .

Przed wylistowaniem zależności w pliku Chart.yaml , domyślnie plik Chart.yaml wygląda tak:

# 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

Plik Chart.lockzawiera listę dokładnych wersji bezpośrednich zależności oraz ich zależności i tak dalej.

Zakres wersji

Zamiast definiować dokładną wersję wykresu, możemy zdefiniować zakres wersji. Helm pozwala nam na różne sposoby definiować zakresy wersji.

możemy wyświetlić wszystkie dostępne wersje wykresu za pomocą następującego polecenia:

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

version: 1.2 - 1.4.5które są równoważne>= 1.2 <= 1.4.5

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

● Podstawowe porównania
Do zdefiniowania wersji możemy również użyć podstawowych operatorów porównania.

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

W zależności od potrzeb użytkownika zależność może być włączona lub wyłączona. Jeśli zależność jest wyłączona, to podczas instalacji wykresu odpowiednia zależność zostanie zignorowana.

Istnieje kilka sposobów, aby to osiągnąć. Za pomocą pól warunków lub pól tagów.

●Korzystanie z warunku
Możemy zdefiniować pole warunku podczas definiowania zależności w pliku 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

●Korzystanie ze znaczników
Załóżmy, że w pliku Charts.yaml zdefiniowano wiele zależności . Aby włączyć lub wyłączyć to zgodnie z naszymi potrzebami, musimy zrobić coś podobnego do tego:

# 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

Przede wszystkim zobaczmy, jak możemy zdefiniować tagi w pliku values.yaml rodzica :

# 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

Wyświetlanie zależności

Możemy wypisać wszystkie zależności dla danego wykresu.

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

Jeśli ten artykuł okazał się pomocny, nie zapomnij nacisnąć przycisków Obserwuj i Klaszcz , aby pomóc mi pisać więcej takich artykułów. Dziękuję

Wszystkie artykuły na wykresie Helm -

Helm — W akcji
Helm — Zaawansowane polecenia
Helm — Tworzenie pierwszego wykresu
Helm — Akcje szablonu, funkcje i potoki
Helm — Flow Control
Helm — Zmienne
Helm — Nazwany szablon
Helm — Zależności

Kodowanie na wyższym poziomie

Dziękujemy za bycie częścią naszej społeczności! Zanim pójdziesz:

  • Klaskajcie za relację i śledźcie autora
  • Zobacz więcej treści w publikacji Level Up Coding
  • Śledź nas: Twitter | LinkedIn | Biuletyn Informacyjny

Suggested posts

Wyszukiwanie informacji o nazwach domen

Fragment książki Small, Sharp Software Tools autorstwa Briana P. Hogana

Wyszukiwanie informacji o nazwach domen

Kiedy wysyłasz żądanie do facebook.com, Twój komputer wyszukuje nazwę domeny, aby przetłumaczyć tę nazwę domeny na adres IP, aby komputer mógł nawiązać to połączenie.

Koniec z hasłami — w jaki sposób klucze dostępu zastąpią Twoje hasło

Koniec z hasłami — w jaki sposób klucze dostępu zastąpią Twoje hasło

Aby uniknąć niejasności, zostaną użyte następujące terminy; uwierzytelniający; Telefon komórkowy używany do tworzenia Witryny logowania; Witryna internetowa lub aplikacja, z której korzysta użytkownik, aby dokonać żądania logowania do Usługi; Sprzedawca świadczący daną usługę np

Related posts

Zabójstwo Jordana Neely'ego i problem „patriotycznego” rasizmu

Czy Stany Zjednoczone mogą zrobić zasadniczy krok, by nie utożsamiać zachowania rasistowskiego z byciem dobrym Amerykaninem?

Zabójstwo Jordana Neely'ego i problem „patriotycznego” rasizmu

[Ostrzeżenie: ten esej zawiera zrzuty ekranowe ludzi wychwalających mordercę Jordana Neely'ego.] Funkcjonariusze organów ścigania w końcu - i być może niechętnie - oskarżyli Daniela Penny'ego, człowieka, który dusił Jordana Neely'ego aż do śmierci, o to zabójstwo.

Ponowne przemyślenie mediów: pięć prawd McChesneya i przyszłość komunikacji

W dzisiejszym hiperpołączonym świecie systemy medialne odgrywają kluczową rolę w kształtowaniu opinii publicznej, a co za tym idzie, w demokratycznym procesie decyzyjnym. W swojej dogłębnej analizie ekonomii politycznej komunikacji uczony Robert McChesney kwestionuje konwencjonalną wiedzę i przedstawia to, co nazywa „pięcioma prawdami” o mediach.

Co wpływa na podcast?

Co wpływa na podcast?

W zeszłym tygodniu zauważyłem komunikat prasowy, wysłany za pośrednictwem PressGazette (brytyjski serwis informacyjny). W artykule ogłoszono, że Acast, skandynawska firma hostingowa i reklamowa podcastów, będzie przewodzić konsorcjum „prawdopodobnie najbardziej wpływowych” wydawców podcastów.

Śledź każdego, kto ma tylko numer telefonu | Śledztwo OSINT

Śledź każdego, kto ma tylko numer telefonu | Śledztwo OSINT

Możesz być śledczym OSINT, graczem CTF lub po prostu kimś, kto odbiera połączenia spamowe. Ktoś, kto próbuje zweryfikować numer, który widziałeś w reklamie.