Personalizzare i nomi e le etichette dei volumi
Con Trident, è possibile assegnare nomi e etichette significativi ai volumi creati. Questo ti aiuta a identificare e mappare facilmente i volumi alle rispettive risorse Kubernetes (PVC). È inoltre possibile definire modelli di backend per la creazione di nomi di volumi personalizzati ed etichette personalizzate; i volumi creati, importati o clonati aderiranno ai modelli.
Prima di iniziare
Nomi di volumi ed etichette personalizzabili supportano:
-
Operazioni di creazione, importazione e cloning del volume.
-
Nel caso del
ontap-nas-economydriver, solo il nome del volume Qtree è conforme al modello di nome. -
Nel caso del
ontap-san-economydriver, solo il nome LUN è conforme al modello di nome.
Limitazioni
-
I nomi dei volumi personalizzati sono compatibili solo con i driver ONTAP locali.
-
Le etichette personalizzate sono supportate solo per
ontap-san,ontap-nas, Eontap-nas-flexgroupconducenti. -
I nomi di volume personalizzati non si applicano ai volumi esistenti.
Comportamenti chiave dei nomi di volume personalizzabili
-
Se si verifica un errore a causa di una sintassi non valida in un modello di nome, la creazione del backend non riesce. Tuttavia, se l'applicazione modello non riesce, il volume verrà denominato in base alla convenzione di denominazione esistente.
-
Il prefisso di archiviazione non è applicabile quando un volume viene nominato utilizzando un modello di nome dalla configurazione backend. Qualsiasi valore di prefisso desiderato può essere aggiunto direttamente al modello.
Esempi di configurazione backend con modello di nome ed etichette
I modelli con nomi personalizzati possono essere definiti a livello di root e/o 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 }}"
}
}
]
}
Esempi di modelli di nome
Esempio 1:
"nameTemplate": "{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ .config.BackendName }}"
Esempio 2:
"nameTemplate": "pool_{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ slice .volume.RequestName 1 5 }}""
Punti da considerare
-
Nel caso di importazioni di volumi, le etichette vengono aggiornate solo se il volume esistente presenta etichette in un formato specifico. Ad esempio:
{"provisioning":{"Cluster":"ClusterA", "PVC": "pvcname"}}. -
Nel caso di importazioni di volumi gestiti, il nome del volume segue il modello di nome definito al livello principale nella definizione di backend.
-
Trident non supporta l'uso di un operatore di sezione con il prefisso di memorizzazione.
-
Se i modelli non generano nomi di volume univoci, Trident aggiungerà alcuni caratteri casuali per creare nomi di volume univoci.
-
Se il nome personalizzato per un volume economico NAS supera i 64 caratteri di lunghezza, Trident denominerà i volumi in base alla convenzione di denominazione esistente. Per tutti gli altri driver ONTAP, se il nome del volume supera il limite del nome, il processo di creazione del volume non riesce.