Teilen über


Informationen zur Parameteroffenlegung mit der CLI-Erweiterung für Azure Operator Service Manager (AOSM)

In diesem Dokument wird erläutert, wie die Azure CLI-Erweiterung für Azure Operator Service Manager (AOSM) Helm-Werte und -Parameter in ARM-Vorlagen in ein Konfigurationsmodell übersetzt, das einem Operator zur Verfügung gestellt wird.

Hintergrund

Mit AOSM kann der Herausgeber einer Version der Netzwerkfunktionsdefinition (Network Function Definition Version, NFDV) auswählen, welche Parameter beim Bereitstellen der Netzwerkfunktion (NF) konfigurierbar sind. Mit AOSM kann der Entwickler einer Version des Netzwerkdienstentwurfs (Network Service Design Version, NSDV) außerdem auswählen, welche Parameter beim Bereitstellen des Standortnetzwerkdiensts (Site Network Service, SNS) konfigurierbar sind.

Die Auswahl, welche Parameter verfügbar gemacht werden, wird in einem oder mehreren Schemas codiert. Der Herausgeber definiert das Schema in einer Eigenschaft der NFDV (deployParameters-Eigenschaft). Der Entwickler definiert das Schema in einer separaten Azure-Ressource – im Konfigurationsgruppenschema (Configuration Group Schema, CGS). Das CGS und die NSDV müssen eine Reihe von Parametern und Werten an die NFDV übergeben, die mit dem Schema in der NFDV übereinstimmen.

Die Azure CLI-AOSM-Erweiterung enthält Unterstützung für die automatische Generierung der NFDV-Eigenschaft deployParameters, des CGS und der Zuordnungen, die sicherstellen, dass alle Parameter zur Bereitstellungszeit ordnungsgemäß an die NF übergeben werden.

Eingabedateikonfiguration

Der Befehl az aosm nfd generate-config der Azure CLI-AOSM-Erweiterung generiert eine Eingabedatei. Die Eingabedatei variiert je nach --definition-type-Parameter. Alle Varianten enthalten den folgenden Parameter:

  // If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults.
  // If not set or set to false, only required parameters without defaults will be exposed.
  "expose_all_parameters": false,

Dieser Parameter steuert das Verhalten der Parameteroffenlegung in der AOSM-CLI-Erweiterung.

Warnung

Durch das Verfügbarmachen aller Parameter machen Sie auch all Ihre Standardwerte verfügbar. Stellen Sie sicher, dass Ihre Standardwerte keine vertraulichen Informationen enthalten.

Standardverhalten

expose_all_parameters ist standardmäßig immer auf false festgelegt. Die AOSM-CLI führt folgende Aktionen aus:

  • Parsen der Helm-Werte der containerisierten Netzwerkfunktion (CNF) oder der ARM-Vorlagenparameter (Azure Resource Manager) der virtualisierten Netzwerkfunktion (Virtualized Network Function, VNF)
  • Generieren eines deployParameters-Schemas in der NFDV, das alle erforderlichen Parameter enthält, die keinen Standardwert aufweisen

Dieser Auszug einer VNF-ARM-Vorlage definiert beispielsweise zwei Parameter. Einer ist erforderlich und einer optional.

  "parameters": {
    "required": {
      "type": "string",
      "metadata": {
        "description": "A required parameter."
      }
    },
    "optional": {
      "type": "string",
      "defaultValue": "optional"
      "metadata": {
        "description": "An optional parameter."
      }
    },
  }

Die AOSM-CLI erstellt eine NFDV, die den required-Parameter in der deployParameters-Eigenschaft verfügbar macht. Der optional-Parameter wird nicht verfügbar gemacht. Zur Bereitstellungszeit wird die VNF bereitgestellt. Dabei ist optional auf den Standardwert optional festgelegt. Der Benutzer, der die Bereitstellung auslöst, muss einen Wert für required angeben.

Das Verhalten ist für CNFs ähnlich. Die AOSM-CLI ermöglicht es dem Benutzer, die Datei values.yaml bereitzustellen, die die Standarddatei values.yaml im Helm-Chart überschreibt. Diese Außerkraftsetzungsdatei values.yaml kann Parameter mit Werten oder ohne Werte enthalten. Der folgende Auszug einer Außerkraftsetzungsdatei vom Typ values.yaml zeigt einen Parameter mit einem Wert und einen Parameter ohne Wert.

optional: "optional"
required:

Die AOSM-CLI erstellt eine NFDV, die den required-Parameter in der deployParameters-Eigenschaft verfügbar macht. Der optional-Parameter wird nicht verfügbar gemacht. Zur Bereitstellungszeit wird die CNF bereitgestellt. Dabei ist optional auf den Standardwert optional festgelegt. Der Benutzer, der die Bereitstellung auslöst, muss einen Wert für required angeben.

Wichtig

Die AOSM-CLI überprüft, ob die Standarddatei values.yaml im Helm-Chart mit dem Chart konsistent ist, indem helm template ausgeführt wird. Die CLI löst einen Fehler aus, wenn dieser helm template-Befehl fehlschlägt.

Verfügbarmachen aller Parameter

Die Azure CLI-AOSM-Erweiterung unterstützt die Konfiguration aller Parameter. Die erforderliche Konfiguration in der von az aosm nfd generate-config generierten Eingabedatei ist wie folgt:

  // If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults.
  // If not set or set to false, only required parameters without defaults will be exposed.
  "expose_all_parameters": true,

Die AOSM-CLI-Erweiterung führt folgende Aktionen aus, wenn expose_all_parameters auf true festgelegt ist:

  • Parsen der Helm-Werte der containerisierten Netzwerkfunktion (CNF) oder der ARM-Vorlagenparameter (Azure Resource Manager) der virtualisierten Netzwerkfunktion (Virtualized Network Function, VNF)
  • Generieren eines deployParameters-Schemas in der NFDV, das alle geparsten Parameter enthält
  • Konfigurieren aller Standardwerte in der ARM-Vorlage oder aller Werte, die in den Helm-Werten konfiguriert sind, als Standardwerte im NFDV-Schema deployParameters

CGS-Erstellung

In allen Fällen werden alle Parameter, die vom Befehl az aosm nfd build verfügbar gemacht werden, während des az aosm nsd build-Befehls zum CGS hinzugefügt. Die AOSM-CLI-Erweiterung fügt dem CGS auch einige zusätzliche Parameter hinzu, die nicht aus den ARM-Vorlagen oder Helm-Werten geparst werden, z. B. customLocationId und managedIdentityId. Diese Parameter sind für die Bereitstellung des Standortnetzwerkdiensts in der Zielumgebung erforderlich.

Nächste Schritte