本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

随机模板变量

随机模板变量是元素操作器中的内置。

它们允许在自定义标签模板中包含随机`Int`、`Hex`或`UUID`值。

这些值在`label template variables`渲染过程中动态计算。

随机标签模板仅渲染一次。

包含随机变量的标签模板仅在注册主机的机器库存尚未为该标签提供值时渲染(具有相同键的标签缺失或其值为空)。

因此,渲染包含随机变量的标签模板的三种情况是:

  1. 主机首次注册,且机器库存被重新创建。

  2. 标签模板在主机(重新)上次注册后被添加到机器注册中。

  3. 与标签模板匹配的机器库存标签(相同标签键)已被手动去除或其值已被清空。

变量 说明 from

${Random/UUID}

随机UUID(例如,fd95324a-c26b-4e28-8727-1dcec293a0ec)

1.7.0

${Random/Hex/[1-32]}

指定长度的随机十六进制字符串(最小1,最大32)

1.7.0

${Random/Int/[MAXINT]

随机整数(最小0,最大MAXINT-1)

1.7.0

渲染示例
模板值 渲染值示例

${Random/UUID}

fd95324a-c26b-4e28-8727-1dcec293a0ec

${Random/Hex/12}

acd231f222b8

${Random/Int/10000}

9432

随机模板变量对于生成分配给注册主机的自定义主机名非常有用。

由于主机名必须是唯一的,并通过机器注册 `spec.machineName`字段分配,因此可以使用随机变量确保共享相同自定义前缀和/或后缀的一组主机的唯一性。

有关更多信息,请查看如何/自定义主机名部分。

registration example Random template variables
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
  name: fire-nodes
  namespace: fleet-default
spec:
  machineName: "fire-node-${Random/Hex/12}"
  config:
    cloud-config:
      users:
        - name: root
          passwd: root
    elemental:
      install:
        reboot: true
        device: /dev/sda
        debug: true
  machineInventoryLabels:
    elemental.cattle.io/UUID: "${Random/UUID}"