Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Visão Geral dos Modelos de Rótulos

Elemental permite especificar modelos de rótulos nas seções spec.machineInventoryLabels e spec.machineInventoryAnnotations dos recursos MachineRegistration.

O formato deles é o canônico key:value usado em rótulos e anotações do Kubernetes.

Esses modelos de rótulos são convertidos em rótulos e anotações reais anexados a cada recurso MachineInventory criado durante a fase de integração da máquina.

Os rótulos e anotações resultantes têm o mesmo key formato do modelo de rótulo.

O value associado é gerado:

A funcionalidade de modelagem do Elemental cobre também o campo MachineRegistration spec.machineName, que define o hostname resultante da máquina que está se registrando e o name do recurso MachineInventory associado.

Veja a seção Nome da Máquina para mais detalhes.

Variáveis dos Modelos de Rótulos

A Modelagem de Rótulos do Elemental inclui um conjunto de variáveis predefinidas que podem ser usadas dentro do value dos modelos de rótulos especificados no MachineRegistration.

A sintaxe usada para especificar as variáveis dos modelos de rótulos é:

${ VARFAMILY \/ VARPATH }

onde VARFAMILY define um grupo (família) de variáveis suportadas e VARPATH define o nome da variável real dentro do grupo familiar ao qual pertence.

Atualmente, o Elemental suporta as seguintes famílias de variáveis de modelo:

Todas as famílias de variáveis de template (exceto `Random`) estão habilitadas apenas se o campo MachineRegistration estiver definido como false (padrão).

Quando o campo elemental.registration.no-smbios está definido como true, as máquinas registradoras não enviam nenhum dado necessário para renderizar as variáveis de template, portanto, nenhuma variável estará disponível, exceto as variáveis Aleatórias, que são a única exceção notável.

As variáveis Aleatórias estão sempre disponíveis, pois são incorporadas no lado do operador. Elas também são especiais, pois são calculadas apenas uma vez: veja a seção Variáveis de Template Aleatórias para mais detalhes.

As variáveis de template podem ser misturadas com texto estático para formar os rótulos reais atribuídos a (Inventários de Máquinas).

Exemplos de Renderização
  • Modelo de Rótulo que rastreia o número de kernels de CPU do host registrador (assuma que o host tem 4 kernels):

    • rótulo original: cpu: ${CPU\/TotalCores}-kernels

    • rótulo renderizado: cpu: 4-kernels

  • Rótulo de Template rastreando o UUID SMBIOS do host registrador:

    • rótulo original: sbios-UUID: ${Product\/UUID}

    • rótulo renderizado: sbios-UUID: fd95324a-c26b-4e28-8727-1dcec293a0ec

Sanitização

Uma vez que o valor do modelo de etiqueta tenha sido renderizado de acordo com as variáveis do modelo de etiqueta incluídas variáveis do modelo de etiqueta, o valor resultante é sanitized antes de ser atribuído à etiqueta resultante.

O sanitization impõe que o valor da etiqueta contenha apenas letras (maiúsculas ou não), números e os caracteres hífen (-), ponto (.) e sublinhado (_):

Todos os caracteres não incluídos são substituídos por um hífen.

Qualquer caractere no início e no final do valor da etiqueta deve ser uma letra ou um número. Se não for, ele é descartado.

Dois hífens consecutivos são substituídos por um só.

Exemplo de Renderização
  • Modelo de Rótulo com sanitização de caracteres proibidos:

    • rótulo original: sanitized: this:needs—​sanitizing!

    • rótulo renderizado: sanitized: this-needs-sanitizing

Uso de Modelos de Rótulos

Os Modelos de Rótulos permitem anexar e atualizar automaticamente rótulos e anotações a cada Inventário de Máquinas de host sempre que um host se registra no Elemental Operator.

O registro acontece não apenas durante a fase de integração: cada host se registra novamente a cada 30 minutos (e toda vez que reinicia). Durante o novo registro, os Modelos de Rótulos no MachineRegistration são reavaliados e adicionados/atualizados no Inventário de Máquinas.

Basicamente, existem três casos principais em que os Modelos de Rótulos podem ser úteis:

  • para anexar dados de hardware ao Catálogo Elemental.

  • para adicionar seletores para escolher hosts para Provisionamento de Cluster.

  • para definir um modelo personalizado para os Nomes das Máquinas.

Dados de hardware para o catálogo Elemental

As variáveis dos Modelos de Rótulos podem ser usadas para anexar dados de hardware a cada recurso Inventário de Máquinas (que formam o Catálogo Elemental).

Neste caso, anotações podem ser uma escolha melhor, pois seus valores não são sanitizados.

Seletores para Provisionamento de Cluster

O Label Templates pode ser usado para gerar rótulos utilizados para identificar e selecionar máquinas com propriedades de hardware especiais para formar novos Clusters Kubernetes.

Os rótulos anexados a cada Inventário de Máquinas são elegíveis para seletor para o recurso Modelo Seletor de Inventário de Máquinas (veja a seção provisionamento de Cluster Kubernetes para mais detalhes).

Nomes de Máquinas Personalizados

O nome do host da máquina em integração pode ser especificado usando o campo MachineRegistration spec.machineName.

O valor spec.machineName passa pelos mesmos processos de Label Templates' variables e sanitization reservados para o campo spec.machineInventoryLabels.

Há uma diferença notável entre os campos MachineRegistration spec.machineName e spec.machineInventorylabels: durante o processo de sanitização, o sublinhado (_) é substituído pelos outros caracteres proibidos (ou seja, é substituído por um hífen: -). Isso é necessário, pois o sublinhado não é permitido em nomes de hosts Linux.

Para mais informações sobre como definir o nome do host para hosts Elemental, veja a seção HowTo/Customize hostname.

Exemplo de Renderização
  • Defina um modelo de nome de host como SLE-Micro-[random string of 6 hexadecimal values]:

    • Especificação de MachineRegistration: machineName: SLE-Micro-${Random\/Hex\/6}

    • Nome do Inventário de Máquinas: SLE-Micro-32ad41

Exemplo de Modelos de Rótulos

Exemplo de registro com variáveis de Modelos de Rótulos
Unresolved include directive in modules/pt/pages/label-templates/label-templates.adoc - include::example$quickstart/registration-hardware-dhcphostname.yaml[]