Hier erfahren Sie, wie die CLI-Erweiterung für Azure Operator Service Manager (AOSM) Containerimages in ACR-Quellinstanzen basierend auf der Konfiguration von Helm-Charts erkennt.
In diesem Dokument wird erläutert, wie die Azure CLI-AOSM-Erweiterung Images in Helm-Charts erkennt, aus einer Containerregistrierung pullt und in einen AOSM-Artefaktspeicher hochlädt. Die Azure CLI-AOSM-Erweiterung unterstützt sowohl Azure Container Registry (ACR) als auch alle Containerregistrierungen, die die Docker-API unterstützen.
Imageermittlung
Die Eingabedatei der Azure CLI-AOSM-Erweiterung für die Version der Netzwerkfunktionsdefinition (Network Function Definition Version, NFDV), die von az aosm nfd generate-config --definition-type cnf
generiert wird, enthält einen Parameter, der die Quellregistrierungen (und optional Namespaces) angibt, die von der AOSM-Befehlszeilenschnittstelle während des Onboardings von Containerimages abgefragt werden.
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": [],
"image_sources"
ist ein Array von Zeichenfolgen. Jede Zeichenfolge ist ein Verweis auf eine Containerregistrierung und optional ein Namespace in dieser Registrierung.
Die Azure CLI-AOSM-Erweiterung führt folgende Aktionen aus:
- Parsen der von
helm template
generierten Kubernetes-Definitionsdateien, um die Containerimageverweise zu ermitteln - Suchen nach Containerimageverweisen in den Registrierungen und Namespaces, die im Array „image_sources“ enthalten sind
- Kopieren der Images aus den Quellregistrierungen in den AOSM-Artefaktspeicher
Wichtig
Die AOSM-CLI erfordert, dass die Images in Ihrer Quellregistrierung mit der Namespacestruktur übereinstimmen, die auch in Ihrem Helm-Chart festgelegt ist. So muss beispielsweise ein Image, das in einem Helm-Chart als core/contoso-a:1.0.0
enthalten ist, in der Quellregistrierung an einem Pfad verfügbar sein, der mit core/contoso-a:1.0.0
endet. Alle zusätzlichen Präfixe müssen im Parameter "image_sources"
in der Datei cnf-input.jsonc
enthalten sein, die vom Befehl az aosm nfd generate-config --definition-type cnf
generiert wird.
Arbeitsbeispiel
In diesem Beispiel wird eine fiktive containerisierte Netzwerkfunktion (CNF) beschrieben. Diese CNF basiert auf drei Images, die die zentrale CNF-Funktion und ein Testimage bereitstellen, das zum Ausführen von Testabfragen für die CNF bereitgestellt werden kann. Die Quellregistrierung für die Images ist eine ACR-Instanz namens myregistry
. In diesem Beispiel führen sie das Onboarding für alle vier Images durch.
Das Feld „image_sources“ in der NFDV-Eingabedatei wird wie folgt festgelegt:
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": ["myregistry.azurecr.io"],
Die Ausgabe von helm template
für die Helm-Charts für diese CNF gibt vier Imagezeilen in der Kubernetes-Bereitstellungsdefinition aus:
image: repository/release/contoso-a:1.0.0
image: repository/release/contoso-b:1.0.0
image: repository/release/contoso-c:1.0.0
image: repository/test-release/contoso-test:1.0.0
Die Azure CLI-AOSM-Erweiterung übernimmt die obigen Imagezeilen und entfernt repository
. (AOSM überschreibt das Repository mit der neuen Registrierung, die den AOSM-Artefaktspeicher unterstützt.) Anschließend sucht die Azure CLI-AOSM-Erweiterung unter myregistry.azurecr.io/release/contoso-a:1.0.0
, myregistry.azurecr.io/release/contoso-b:1.0.0
, myregistry.azurecr.io/release/contoso-c:1.0.0
und myregistry.azurecr.io/test-release/contoso-test:1.0.0
nach den Images. Die Images müssen in diesen Pfaden verfügbar sein.
Namespaces
Die Azure CLI-AOSM-Erweiterung unterstützt auch Imagenamespaces in Quellcontainerregistrierungen. Beispielsweise kann das Image contoso-test
in test/test-release/contoso-test:1.0.0
in der Quellregistrierung hochgeladen werden. In diesem Fall muss das zusätzliche Präfix test
im Parameter "image_sources"
in der NFDV-Eingabedatei konfiguriert werden.
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": ["myregistry.azurecr.io", "myregistry.azurecr.io/test"],
Die Azure CLI-AOSM-Erweiterung sucht unter myregistry.azurecr.io
nach den Images. Dort entdeckt sie contoso-a
, contoso-b
und contoso-c
. Anschließend wird in myregistry.azurecr.io/test
gesucht. Dort wird contoso-test
entdeckt.