|
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. |
Anbieter-Test-Suite
Dieser Abschnitt enthält Informationen darüber, wie Sie die vorhandene E2E-Suite nutzen können, um CAPI-Anbieter mit Turtles zu integrieren und zu überprüfen, ob die Bereitstellung und der Import von Clustern wie erwartet funktionieren. Die Validierung führt die folgenden Aktionen aus:
-
Erstellen Sie einen Management-Cluster in der gewünschten Umgebung.
-
Installieren Sie Rancher und Turtles mit allen Voraussetzungen.
-
Installieren Sie Gitea.
-
Führen Sie die Suite aus, die ein Git-Repo erstellt, die Cluster-Vorlage mit Fleet anwendet und überprüft, ob der Cluster erstellt und erfolgreich in Rancher importiert wurde.
Die Test-Suite kann zur Zertifizierung von Anbietern verwendet werden, die nicht in der Zertifizierungstabelle aufgeführt sind, wie in Anbieterzertifizierung im Detail beschrieben.
Wie man es benutzt
Die Hauptreferenz für die Wiederverwendung der Test-Suite ist dieses Repository, das ein Beispiel enthält, wie man einen bestimmten CAPI-Anbieter mit SUSE® Rancher Prime Cluster API integriert und eine Reihe von Überprüfungen basierend auf einem GitOps-Workflow anwendet.
Vor der Ausführung
Die End-to-End-Testumgebung, die in Turtles verwendet wird, bietet eine Reihe von Konfigurationsalternativen, abhängig von der Art des Tests, den Sie durchführen, und den Arten von Überprüfungen, die Sie durchführen. Wenn Sie mit der Test-Suite beginnen, empfehlen wir Ihnen, Ihre Konfiguration so einfach wie möglich zu halten und die Anzahl der Anpassungen zu begrenzen, damit Sie den Prozess und die Konfigurationsdetails verstehen können. Sie können Ihre Reise im Anbietertest beginnen, indem Sie das Beispiel-Repository klonen:
git clone https://github.com/rancher-sandbox/turtles-integration-suite-example.git
Die einfachste Testausführung, die Sie durchführen können, erstellt eine lokale Umgebung, die keinen internetfähigen Endpunkt verwendet. Dies beschränkt die Überprüfungen nur auf lokale Downstream-Cluster (effektiv CAPI-Cluster, die über CAPD bereitgestellt werden), aber es reicht aus, um die Beispielintegration auszuführen. Sie können diese lokale Version einfach ausführen, indem Sie angeben, dass Sie beabsichtigen, sie lokal auszuführen.
MANAGEMENT_CLUSTER_ENVIRONMENT="isolated-kind" make test
Wenn Sie die Integration mit anderen Infrastruktur-Anbietern (z. B. Anbietern für Cloud-Anbieter) überprüfen, müssen Sie Ihre Rancher-Instanz über einen Endpunkt für die Downstream-Cluster verfügbar machen, die sich nicht mehr in Ihrer lokalen Umgebung befinden. Die MANAGEMENT_CLUSTER_ENVIRONMENT Variable, die wir zuvor verwendet haben, unterstützt die folgenden Werte:
MANAGEMENT_CLUSTER_ENVIRONMENT: "kind" # supported options are eks, isolated-kind, kind
isolated-kind, was der Wert ist, den wir für lokale Tests verwendet haben, und kind wird äquivalente lokale Umgebungen bereitstellen. Der Unterschied besteht darin, dass kind auch einen öffentlich zugänglichen Endpunkt über ngrok konfiguriert. Sie können einen kostenlosen (begrenzten) ngrok Endpunkt erhalten und ihn für die Ausführung von Tests verwenden. Bevor Sie make test ausführen, müssen Sie auch die folgenden Umgebungsvariablen festlegen:
NGROK_API_KEY: "" NGROK_AUTHTOKEN: ""
Mit dieser Konfiguration wird während der Erstellung der Umgebung die Rancher-Instanz so konfiguriert, dass sie über Ihren ngrok Endpunkt zugänglich ist, und Downstream-Cluster können mit ihr kommunizieren.
Der Abschnitt Andere Optionen enthält weitere Informationen darüber, was Sie vor der Ausführung konfigurieren können.
Grundlegender Arbeitsablauf
In den vorherigen Abschnitten haben wir die Hauptaktionen vorgestellt, die in der Beispiel-Testintegration durchgeführt werden:
Erstellen Sie einen Management-Cluster in der gewünschten Umgebung.
-
Dies ist keine spezifische Anforderung für Turtles, da beim Arbeiten mit CAPI ein Management-Cluster vorhanden sein muss, der verwendet wird, um Ressourcen zu erstellen, die Downstream-Cluster darstellen. Dies ist der Hauptteil der Testumgebung und je nach den Umgebungsvariablen, die an die Test-Suite übergeben werden, kann sie entweder lokal (unter Verwendung von
kind) oder in der Cloud (eks) gehostet werden.
Installieren Sie Rancher und Turtles mit allen Voraussetzungen.
-
Turtles ist eine Rancher-Erweiterung und benötigt daher eine Rancher-Installation, um bereitgestellt zu werden. Der Rancher-Manager wird im Management-Cluster ausgeführt, den wir im ersten Schritt erstellt haben, und das Turtles-Chart wird installiert, wenn Rancher verfügbar ist. Wenn eine internetgerichtete Konfiguration verwendet wird, wird ein Ingress-Controller Rancher von einem externen Netzwerk aus erreichbar machen (z. B. Cluster, die in der Cloud bereitgestellt werden).
Führen Sie die Suite aus, die ein Git-Repo erstellt, die Cluster-Vorlage mit Fleet anwendet und überprüft, ob der Cluster erstellt und erfolgreich in Rancher importiert wurde.
-
Die Haupt-Test-Suite, die auch als Beispiel verwendet wird, basiert auf einem GitOps-Workflow und verwendet Fleet als GitOps-Orchestrierungstool. Basierend auf den bereitgestellten Cluster-Vorlagen (Sie können die überprüfen, die mit der Beispielintegration hier geliefert werden), werden die in den YAML-Dateien definierten CAPI-Cluster erstellt. Sobald diese Cluster verfügbar sind, werden sie so konfiguriert, dass sie in Rancher mit Turtles importiert werden, und es wird überprüft, dass die Downstream-Cluster über Rancher zugänglich sind. Es wird auch überprüft, ob die Löschung an Downstream-Clustern durchgeführt werden kann und dass sie nicht mehr in Rancher verfügbar sind.
Weitere Optionen
Sie können einen Blick auf die config.yaml Datei im turtles-integration-suite-example Repository werfen, die eine Liste von Umgebungsvariablen enthält, die während der Bereitstellung der Testumgebung und der Testausführung verwendet werden. Die folgende ist eine gekürzte Version der oben genannten YAML-Datei:
...
variables:
CLUSTERCTL_BINARY_PATH: ""
USE_EXISTING_CLUSTER: "false"
SKIP_RESOURCE_CLEANUP: "false"
ARTIFACTS_FOLDER: "_artifacts"
MANAGEMENT_CLUSTER_ENVIRONMENT: "kind" # supported options are eks, isolated-kind, kind
RANCHER_VERSION: "v2.14.0"
KUBERNETES_VERSION: "v1.31.4"
KUBERNETES_MANAGEMENT_VERSION: "v1.31.4"
KUBERNETES_MANAGEMENT_AWS_REGION: "eu-west-2"
RKE2_VERSION: "v1.31.4+rke2r1"
TURTLES_PATH: "turtles/rancher-turtles"
TURTLES_REPO_NAME: "turtles"
TURTLES_URL: https://rancher.github.io/turtles
TURTLES_VERSION: "v0.26.0"
RANCHER_HOSTNAME: "localhost"
RANCHER_FEATURES: ""
RANCHER_PATH: "rancher-latest/rancher"
RANCHER_REPO_NAME: "rancher-latest"
RANCHER_URL: "https://releases.rancher.com/server-charts/latest"
CERT_MANAGER_URL: "https://charts.jetstack.io"
CERT_MANAGER_REPO_NAME: "jetstack"
CERT_MANAGER_PATH: "jetstack/cert-manager"
...
...
...
HELM_BINARY_PATH: "helm"
HELM_EXTRA_VALUES_FOLDER: "/tmp"
# Additional setup for establishing rancher ingress
NGROK_REPO_NAME: "ngrok"
NGROK_URL: "https://ngrok.github.io/kubernetes-ingress-controller"
NGROK_PATH: "ngrok/kubernetes-ingress-controller"
NGROK_API_KEY: ""
NGROK_AUTHTOKEN: ""
GITEA_REPO_NAME: "gitea-charts"
GITEA_REPO_URL: "https://dl.gitea.com/charts/"
GITEA_CHART_NAME: "gitea"
GITEA_CHART_VERSION: "10.6.0"
...
|
Sie können im Turtles-Repository nachsehen, um alle Suiten und Parameter zu finden, die Sie zur Anpassung der Testausführung verwenden können. Wir empfehlen, dies nur zu tun, wenn Sie mit der Bereitstellung/Konfiguration der Testumgebung vertraut sind und spezifische Integrationsanforderungen haben. |