Personalizar nomes e rótulos de volume
Com o Trident, você pode atribuir nomes e rótulos significativos aos volumes criados. Isso ajuda a identificar e mapear facilmente volumes para seus respectivos recursos do Kubernetes (PVCs). Você também pode definir modelos no nível de back-end para criar nomes de volume personalizados e rótulos personalizados; todos os volumes que você criar, importar ou clonar aderirão aos modelos.
Antes de começar
Nomes de volume e etiquetas personalizáveis suportam:
-
Operações de criação, importação e clonagem de volume.
-
No caso do driver ONTAP-nas-Economy, apenas o nome do volume Qtree está em conformidade com o modelo de nome.
-
No caso do driver ONTAP-san-Economy, apenas o nome LUN está em conformidade com o modelo de nome.
Limitações
-
Os nomes de volume personalizáveis são compatíveis apenas com drivers locais da ONTAP.
-
Nomes de volume personalizáveis não se aplicam a volumes existentes.
Principais comportamentos de nomes de volume personalizáveis
-
Se ocorrer uma falha devido à sintaxe inválida em um modelo de nome, a criação do backend falhará. No entanto, se o aplicativo modelo falhar, o volume será nomeado de acordo com a convenção de nomenclatura existente.
-
O prefixo de armazenamento não é aplicável quando um volume é nomeado usando um modelo de nome da configuração de back-end. Qualquer valor de prefixo desejado pode ser adicionado diretamente ao modelo.
Exemplos de configuração de backend com modelo de nome e rótulos
Modelos de nome personalizados podem ser definidos no nível raiz e/ou 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 }}" } } ] }
Exemplos de modelo de nome
Exemplo 1:
"nameTemplate": "{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ .config.BackendName }}"
Exemplo 2:
"nameTemplate": "pool_{{ .config.StoragePrefix }}_{{ .volume.Name }}_{{ slice .volume.RequestName 1 5 }}""
Pontos a considerar
-
No caso das importações de volume, as etiquetas são atualizadas apenas se o volume existente tiver etiquetas num formato específico. Por exemplo
{"provisioning":{"Cluster":"ClusterA", "PVC": "pvcname"}}
: . -
No caso de importações de volume gerenciado, o nome do volume segue o modelo de nome definido no nível raiz na definição de back-end.
-
O Trident não suporta a utilização de um operador de corte com o prefixo de armazenamento.
-
Se os modelos não resultarem em nomes de volume exclusivos, o Trident adicionará alguns carateres aleatórios para criar nomes de volume exclusivos.
-
Se o nome personalizado para um volume de economia nas exceder 64 carateres de comprimento, o Trident nomeará os volumes de acordo com a convenção de nomenclatura existente. Para todos os outros drivers ONTAP, se o nome do volume exceder o limite de nome, o processo de criação de volume falhará.