Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Apps erstellen

Für eine vollständige Anleitung zur Entwicklung von Diagrammen siehe das Handbuch für Diagrammvorlagen-Entwickler in der offiziellen Helm-Dokumentation.

Diagrammtypen

Rancher unterstützt zwei verschiedene Arten von Diagrammen: Helm-Diagramme und Rancher-Diagramme.

Helm-Charts

Native Helm-Diagramme enthalten eine Anwendung sowie andere Software, die erforderlich ist, um sie auszuführen. Beim Bereitstellen von nativen Helm-Diagrammen können Sie die Parameterwerte des Diagramms in einem YAML-Editor angeben.

Rancher-Diagramme

Rancher-Diagramme sind native Helm-Diagramme mit zwei Dateien, die die Benutzererfahrung verbessern: app-readme.md und questions.yaml. Lesen Sie mehr darüber in Zusätzliche Dateien für Rancher-Diagramme.

Rancher-Diagramme fügen vereinfachte Diagrammbeschreibungen und Konfigurationsformulare hinzu, um die Bereitstellung der Anwendung zu erleichtern. Rancher-Benutzer müssen nicht die gesamte Liste der Helm-Variablen durchlesen, um zu verstehen, wie man eine Anwendung startet.

Verzeichnisstruktur der Diagramme

Sie können Helm-Diagramme in einem standardmäßigen, HTTP-basierten Helm-Repository bereitstellen. Für weitere Informationen siehe das Handbuch für Diagramm-Repositorys in der offiziellen Helm-Dokumentation.

Alternativ können Sie Ihre Diagramme in einem Git-Repository organisieren und dieses direkt zum App-Marktplatz hinzufügen.

Die folgende Tabelle zeigt die Verzeichnisstruktur für ein Git-Repository. Das charts-Verzeichnis ist das oberste Verzeichnis unter dem Basisverzeichnis des Repositories. Das Hinzufügen des Repositories zu Rancher macht alle darin enthaltenen Diagramme sichtbar. Die Dateien questions.yaml, README.md und requirements.yml sind spezifisch für Rancher-Diagramme, sind jedoch optional für die Anpassung von Diagrammen.

<Repository-Base>/
 │
 ├── charts/
 │   ├── <Application Name>/      # This directory name will be surfaced in the Rancher UI as the chart name
 │   │   ├── <App Version>/      # Each directory at this level provides different app versions that will be selectable within the chart in the Rancher UI
 │   │   │   ├── Chart.yaml      # Required Helm chart information file.
 │   │   │   ├── questions.yaml      # Form questions displayed within the Rancher UI. Questions display in Configuration Options.*
 │   │   │   ├── README.md         # Optional: Helm Readme file displayed within Rancher UI. This text displays in Detailed Descriptions.
 │   │   │   ├── requirements.yml  # Optional: YAML file listing dependencies for the chart.
 │   │   │   ├── values.yml        # Default configuration values for the chart.
 │   │   │   ├── templates/        # Directory containing templates that, when combined with values.yml, generates Kubernetes YAML.

Zusätzliche Dateien für Rancher-Diagramme

Bevor Sie Ihren eigenen benutzerdefinierten Katalog erstellen, sollten Sie ein grundlegendes Verständnis dafür haben, wie sich ein Rancher-Chart von einem nativen Helm-Chart unterscheidet. Rancher-Diagramme unterscheiden sich leicht von Helm-Diagrammen in ihrer Verzeichnisstruktur. Rancher-Diagramme enthalten zwei Dateien, die Helm-Diagramme nicht enthalten.

  • app-readme.md

    Eine Datei, die beschreibenden Text im Header der Benutzeroberfläche des Charts bereitstellt.

  • questions.yml

    Eine Datei, die Fragen für ein Formular enthält. Diese Formularfragen vereinfachen die Bereitstellung eines Charts. Ohne sie müssen Sie die Bereitstellung mit einer Werte-YAML-Konfiguration konfigurieren, was schwieriger ist. Die folgenden Bilder zeigen den Unterschied zwischen einem Rancher-Chart (das questions.yml enthält) und einem nativen Helm-Chart, das nicht enthält.

questions.yml
Figure 1. Rancher-Diagramm mit questions.yml
values.yaml
Figure 2. Helm-Diagramm ohne questions.yml

Chart.yaml

Annotationen

Rancher unterstützt zusätzliche Annotationen, die Sie zur Chart.yaml-Datei hinzufügen können. Diese Annotationen ermöglichen es Ihnen, Anwendungsabhängigkeiten zu definieren oder zusätzliche Standardwerte für die Benutzeroberfläche zu konfigurieren:

Anmerkung Beschreibung Beispiel

catalog.cattle.io/auto-install

Wenn gesetzt, wird das angegebene Chart in der angegebenen Version installiert, bevor dieses Chart installiert wird.

other-chart-name=1.0.0

catalog.cattle.io/display-name

Ein Anzeigename, der im App-Marktplatz anstelle des Chartnamens angezeigt werden sollte.

Anzeigename des Charts

catalog.cattle.io/namespace

Ein fester Namespace, in dem das Chart bereitgestellt werden soll. Wenn gesetzt, kann dies vom Benutzer nicht geändert werden.

fester Namespace

catalog.cattle.io/release-name

Ein fester Release-Name für die Helm-Installation. Wenn gesetzt, kann dies vom Benutzer nicht geändert werden.

fester-release-name

catalog.cattle.io/requests-cpu

Gesamte Menge an CPU, die im Cluster nicht reserviert sein sollte. Wenn weniger CPU verfügbar ist, wird eine Warnung angezeigt

2000m

catalog.cattle.io/requests-memory

Gesamte Menge an Speicher, die im Cluster nicht reserviert sein sollte. Wenn weniger Speicher verfügbar ist, wird eine Warnung angezeigt

2Gi

catalog.cattle.io/os

Beschränkt das Betriebssystem, auf dem dieses Chart installiert werden kann. Mögliche Werte: linux, windows. Standard: keine Einschränkung

Linux

Schlüsselwörter

Mit der keywords-Option in der Chart.yaml-Datei ist es möglich, eine Liste von Kategorien bereitzustellen, um Ihre Anwendung in der Rancher-Benutzeroberfläche zu sortieren, wie infrastructure, monitoring und mehr.

questions.yml

Innerhalb der questions.yml wird der Großteil des Inhalts um die Fragen an den Endbenutzer kreisen, aber es gibt einige zusätzliche Felder, die in dieser Datei festgelegt werden können.

Min/Max Rancher-Versionen

Für jedes Chart können Sie die minimale und/oder maximale Rancher-Version hinzufügen, die bestimmt, ob dieses Chart von Rancher bereitgestellt werden kann oder nicht.

Obwohl die Rancher-Releases mit einem v beginnen, gibt es keinen Präfix für die Release-Version, wenn Sie diese Option verwenden.

rancher_min_version: 2.3.0
rancher_max_version: 2.3.99

Fragevariablenreferenz

Dieser Verweis enthält Variablen, die Sie in questions.yml unter questions: verwenden können.

Variable Typ required Beschreibung

-Variable

Zeichenfolge

true

Definieren Sie den im values.yml angegebenen Variablennamen, wobei foo.bar für verschachtelte Objekte verwendet wird.

label

Zeichenfolge

true

Definieren Sie das UI-Label.

description

Zeichenfolge

false

Geben Sie die Beschreibung der Variablen an.

type

Zeichenfolge

false

Standardmäßig auf string setzen, wenn nicht angegeben (aktuell unterstützte Typen sind string, multiline, boolean, int, enum, password, storageclass, hostname, pvc, secret und cloudcredential).

required

bool

false

Definieren Sie, ob die Variable erforderlich ist oder nicht (true | false)

default

Zeichenfolge

false

Geben Sie den Standardwert an. Wird nur verwendet, wenn im values.yml kein entsprechender Wert vorhanden ist.

Gruppe

Zeichenfolge

false

Fragen nach Eingabewert gruppieren.

min_length

int

false

Minimale Zeichenlänge.

max_length

int

false

Maximale Zeichenlänge.

min

int

false

Minimale Ganzzahl.

max

int

false

Maximale Ganzzahl.

Optionen

[]string

false

Geben Sie die Optionen an, wenn der Variablentyp enum ist, zum Beispiel: Optionen:
- "ClusterIP"
- "NodePort"
- "LoadBalancer"

valid_chars

Zeichenfolge

false

Regulärer Ausdruck zur Validierung von Eingabezeichen.

invalid_chars

Zeichenfolge

false

Regulärer Ausdruck zur Validierung von ungültigen Eingabezeichen.

Unterfragen

[]subquestion

false

Fügen Sie ein Array von Unterfragen hinzu.

show_if

Zeichenfolge

false

Zeigen Sie die aktuelle Variable an, wenn die bedingte Variable wahr ist. Beispiel show_if: "serviceType=Nodeport"

show_subquestion_if

Zeichenfolge

false

Zeigen Sie Unterfragen an, wenn dies wahr ist oder gleich einer der Optionen ist. Zum Beispiel show_subquestion_if: "true"

subquestions[] darf keine subquestions oder show_subquestions_if Schlüssel enthalten, aber alle anderen Schlüssel in der obigen Tabelle werden unterstützt.