Environnement

L’environnement est classé 1. Un environnement correspond à un déploiement Resource Manager.

CycleCloud peut désormais gérer les déploiements azure Resource Manager avec des modèles ARM. Ces environnements peuvent être référencés à partir d’objets de modèle CycleCloud.

Alors que l’environnement est classé 1, un objet de cluster est requis dans le fichier de modèle de cluster.

Exemple

[environment vnet]
  ManagedLifecycle=true
  TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json
  ParameterValues.backendIpAddress1 = 10.0.1.4
  VariableOverrides.virtualNetworkName = azure-vnet

[environment appgateway]
  TemplateURL = https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-application-gateway-waf/azuredeploy.json
  ParameterValues.virtualNetworkName = ${vnet.Parameters.virtualNetworkName}

[environment existing]
  Azure.ResourceGroup = existingrg
  ManagedLifecycle = false

[cluster my-cluster]

Il $ s’agit d’une référence à un nom de paramètre. Il ${} s’agit d’une autre façon de référencer un nom de paramètre et d’autoriser la référence à un environnement.

Ces exemples lancent le modèle ARM existant à az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json en tant que déploiement ARM, et fournissent la ressource et les sorties en tant que données imbriquées dans la vnet variable.

Référence d’attribut

Attribut Type Définition
Informations d'identification String Nom du compte de fournisseur de cloud
Region String Emplacement Azure, par exemple westus2
TemplateURL String URL valide pour l’emplacement du modèle ARM sur le web. Utilisez un seul attribut Template*.
TemplateContents String Lire dans le modèle json sous forme de chaîne avec @parametername référence. Utilisez un seul attribut Template*.
TemplatePath String Pour une utilisation avec Locker. Ajoute le chemin d’accès au coffre pour l’emplacement du modèle arm. Utilisez un seul attribut Template*.
Casier String Pour une utilisation avec TemplatePath. Prend en charge l’extraction d’un modèle arm à partir de locker.
Parametervalues. Paramètre ARM ParameterValues.my-parameter où my-parameter est un paramètre. Les paramètres dans les modèles ARM prennent en charge la chaîne, la liste, les entiers, la valeur booléenne.
VariableOverrides. ARM Variable VariableOverrides.my-variable où my-variable est un nom de variable dans le modèle ARM. Les variables dans les modèles ARM prennent en charge la chaîne, la liste, les entiers, la valeur booléenne.
ParameterizeVariables Boolean Utiliser avec VariableValues. Exposer des variables de modèle ARM dans le menu de l’interface utilisateur du cluster et le modèle de cluster.
VariableValues. ARM Variable variable VariableValues.my. Alternative à VariableOverrides. Utiliser avec ParameterizeVariables.
Azure.ResourceGroup String Nom du groupe de ressources Azure pour le déploiement.
ManagedLifecycle Boolean Pour une utilisation avec un déploiement existant. La valeur par défaut est true.
Nom String Nom du groupe de ressources pré-sortant.
Étiquettes. String Permet tags.my-tag = my-tag-value d’ajouter des balises au groupe de ressources qui possèdent le déploiement en plus des balises affectées par CycleCloud par défaut.

Pour les déploiements préexistants, le nom de l’objet d’environnement fait référence au nom de déploiement ARM.

Utilisation des ressources et des sorties de l’environnement

[environment vnet]
  ManagedLifecycle=true
  TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json

[cluster my-cluster]
    [[node proxy]]
        IsReturnProxy = True
        SubnetId = ${vnet.resources.'azure-vnet/ProxySubnet'.id}

Après le modèle de déploiement ARM, les environnements créent des ressources et exposent ces ressources aux autres objets de modèle de cluster à utiliser.

À l’aide de la ${} notation, vous pouvez ensuite faire référence aux ressources ARM créées dans leur schéma natif.

Attribut Définition
Sorties. Utilisez comme ${environment-name.Outputs.my-output} dans le modèle où my-output est le nom d’une sortie dans le modèle ARM.
Ressources. Utilisez comme ${environment-name.Resources.my-resource-name.key1.key2} dans le modèle où my-resource-name est le nom d’une ressource dans le modèle ARM et key1, key2 sont des clés associées dans l’objet de ressource.

Référence aux ressources imbriquées

Les environnements gérés par CycleCloud sont représentés par une structure de données imbriquée. Il est souvent utile de référencer des données au sein de cette structure.

[environment db]
TemplateContents = @raw-db-json
ParameterValues.DBName = @DBNameParameter

[cluster my-cluster]
  [[node my-node]]

     SubnetId = ${network.resources.'vnet/ComputeSubnet'.id}

     [[[configuration database]]]
        connection_string = ${db.Outputs.JDBCConnectionString}
        database_id = ${db.resources[ClusterName].id}

Les index des variables imbriquées peuvent dépendre du type de ressource ARM en cours de création. env.resources.my-resource-name.id, env.resources['my-resource-name'].idenv.resources[MyResourceParam] sont tous des formats valides pour les références aux variables imbriquées.