Personnaliser les noms et les étiquettes des volumes
Avec Trident, vous pouvez attribuer des noms et des étiquettes significatifs aux volumes que vous créez. Cela vous aide à identifier et à associer facilement les volumes à leurs ressources Kubernetes respectives (PVC). Vous pouvez également définir des modèles au niveau du backend pour créer des noms de volumes et des étiquettes personnalisés ; tous les volumes que vous créez, importez ou clonez respecteront ces modèles.
Avant de commencer
Prise en charge des noms et étiquettes de volume personnalisables :
-
Opérations de création, d'importation et de clonage de volumes.
-
Dans le cas du pilote ontap-nas-economy, seul le nom du volume Qtree est conforme au modèle de nom.
-
Dans le cas du pilote ontap-san-economy, seul le nom du LUN est conforme au modèle de nom.
Limites
-
Les noms de volumes personnalisables sont compatibles uniquement avec les pilotes ONTAP sur site.
-
Les noms de volumes personnalisables ne s'appliquent pas aux volumes existants.
Comportements clés des noms de volumes personnalisables
-
Si une erreur survient en raison d'une syntaxe invalide dans un modèle de nom, la création du backend échoue. Toutefois, si l'application du modèle échoue, le volume sera nommé conformément à la convention d'appellation existante.
-
Le préfixe de stockage n'est pas applicable lorsqu'un volume est nommé à l'aide d'un modèle de nom provenant de la configuration du système dorsal. Toute valeur de préfixe souhaitée peut être directement ajoutée au modèle.
Exemples de configuration backend avec modèle de nom et étiquettes
Des modèles de noms personnalisés peuvent être définis au niveau racine et/ou au niveau du pool.
{
"version": 1,
"storageDriverName": "ontap-nas",
"backendName": "ontap-nfs-backend",
"managementLIF": "<ip address>",
"svm": "svm0",
"username": "<admin>",
"password": "<password>",
"defaults": {
"nameTemplate": "{{.volume.Name}}_{{.labels.cluster}}_{{.volume.Namespace}}_{{.volume.RequestName}}"
},
"labels": {
"cluster": "ClusterA",
"PVC": "{{.volume.Namespace}}_{{.volume.RequestName}}"
}
}
{
"version": 1,
"storageDriverName": "ontap-nas",
"backendName": "ontap-nfs-backend",
"managementLIF": "<ip address>",
"svm": "svm0",
"username": "<admin>",
"password": "<password>",
"useREST": true,
"storage": [
{
"labels": {
"labelname": "label1",
"name": "{{ .volume.Name }}"
},
"defaults": {
"nameTemplate": "pool01_{{ .volume.Name }}_{{ .labels.cluster }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
}
},
{
"labels": {
"cluster": "label2",
"name": "{{ .volume.Name }}"
},
"defaults": {
"nameTemplate": "pool02_{{ .volume.Name }}_{{ .labels.cluster }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
}
}
]
}
Exemples de modèles de noms
Exemple 1 :
"nameTemplate": "{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ .config.BackendName }}"
Exemple 2 :
"nameTemplate": "pool_{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ slice .volume.RequestName 1 5 }}""
Points à considérer
-
Dans le cas des importations de volumes, les étiquettes ne sont mises à jour que si le volume existant possède des étiquettes dans un format spécifique. Par exemple:
{"provisioning":{"Cluster":"ClusterA", "PVC": "pvcname"}}. -
Dans le cas des importations de volumes gérés, le nom du volume suit le modèle de nom défini au niveau racine dans la définition du backend.
-
Trident ne prend pas en charge l'utilisation d'un opérateur de découpage avec le préfixe de stockage.
-
Si les modèles ne produisent pas de noms de volumes uniques, Trident ajoutera quelques caractères aléatoires pour créer des noms de volumes uniques.
-
Si le nom personnalisé d'un volume économique NAS dépasse 64 caractères, Trident nommera les volumes conformément à la convention d'appellation existante. Pour tous les autres pilotes ONTAP , si le nom du volume dépasse la limite de noms, le processus de création du volume échoue.