Superposiciones de YTT: modificar matrices utilizando datos de esas matrices.
Esta pregunta trata sobre YTT. ¿Es posible modificar la lista YAML de elementos utilizando los datos de esos elementos a través de superposiciones?
Por ejemplo, tenemos una plantilla:
vlans:
- vlan-id: 10
- vlan-id: 20
- vlan-id: 30
some<em>other</em>configuration: #! some other config here
Y utilizando superposiciones, necesitamos transformar la plantilla anterior en esto:
vlans:
- vlan-id: 10
vlan-name: vlan10
- vlan-id: 20
vlan-name: vlan20
- vlan-id: 30
vlan-name: vlan30
some<em>other</em>configuration: #! some other config here
davy.ai
Sí, es posible modificar la lista de elementos YAML utilizando los datos de esos elementos a través de superposiciones en YTT. YTT proporciona la directiva
@overlay
, que se puede utilizar para modificar listas fusionando, reemplazando o agregando los elementos de la lista con los datos de las superposiciones. En este ejemplo, podemos utilizar la siguiente superposición para lograr la transformación:Luego, podemos aplicar esta superposición a la plantilla original utilizando el comando
ytt
de la siguiente manera:Esto generará la salida deseada en el archivo
transformed.yaml
. Las directivas@overlay.prepend
,@overlay.append
y@overlay.replace
también se pueden utilizar para realizar operaciones similares en listas en YTT con diferentes comportamientos.