Apprenez comment l’extension CLI Azure Operator Service Manager (AOSM) découvre les images conteneur dans les ACR sources en fonction de la configuration du graphique Helm
Ce document explique comment l’extension Azure CLI AOSM découvre des images dans des graphiques Helm, les extrait à partir d’un registre de conteneurs et les charge dans un magasin d’artefacts AOSM. L’extension Azure CLI AOSM prend en charge Azure Container Registry (ACR) et tout registre de conteneurs prenant en charge l’API Docker.
Découverte image
Le fichier d’entrée azure CLI AOSM extension Network Function Definition Version (NFDV), généré par az aosm nfd generate-config --definition-type cnf
, contient un paramètre qui spécifie les registres sources (et éventuellement les espaces de noms) les requêtes CLI AOSM pendant l’intégration d’images conteneur.
// 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"
est un tableau de chaînes. Chaque chaîne est une référence à un registre de conteneurs et, éventuellement, un espace de noms dans ce registre.
Extension Az CLI AOSM :
- Analyse les fichiers de définition Kubernetes générés par
helm template
pour découvrir les références d’image conteneur. - Recherche dans les registres et espaces de noms inclus dans le tableau « image_sources » les références d’image conteneur.
- Copie les images des registres sources dans le magasin d’artefacts AOSM.
Important
L’interface CLI AOSM nécessite que les images de votre registre source correspondent à la structure d’espace de noms écrite dans votre graphique Helm. Par exemple, une image incluse dans un graphique Helm comme core/contoso-a:1.0.0
doit être disponible dans le registre source dans un chemin qui se termine par core/contoso-a:1.0.0
. Tout préfixe supplémentaire doit être inclus dans le paramètre "image_sources"
dans le fichier cnf-input.jsonc
généré par la commande az aosm nfd generate-config --definition-type cnf
.
Exemple pratique
Cet exemple décrit une fonction réseau conteneurisée fictive (CNF). Ce CNF est généré de trois images qui fournissent la fonction CNF principale et une image de test qui peut être déployée pour exécuter des requêtes de test sur le CNF. Le registre source des images est un ACR appelé myregistry
. Dans cet exemple, nous intégrons les quatre images.
Le champ « image_sources » dans le fichier d’entrée NFDV est défini comme suit :
// 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"],
La sortie de helm template
par rapport aux graphiques Helm pour ce CNF donne quatre lignes d’image dans la définition de déploiement Kubernetes.
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
L’extension Azure CLI AOSM prend les lignes d’image ci-dessus et supprime le repository
(AOSM remplace le référentiel avec le nouveau registre qui sauvegarde le magasin d’artefacts AOSM). Ensuite, l’extension Azure CLI AOSM recherche les images dans 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
et myregistry.azurecr.io/test-release/contoso-test:1.0.0
. Les images doivent être disponibles dans ces chemins d’accès.
Espacement des noms
L’extension Azure CLI AOSM prend également en charge l’espacement des noms d’images dans les registres de conteneurs sources. Par exemple, l’image contoso-test
peut être chargée sur test/test-release/contoso-test:1.0.0
dans le registre source. Dans ce cas, le préfixe supplémentaire, test
, doit être configuré dans le paramètre "image_sources"
dans le fichier d’entrée NFDV.
// 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"],
L’extension Azure AOSM CLI recherche les images dans myregistry.azurecr.io
, où elle découvre contoso-a
, contoso-b
et contoso-c
. Il recherche ensuite dans myregistry.azurecr.io/test
, où il découvre contoso-test
.