es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
Tags:  ,

Answer

  1. Avatar for 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:

    #@data/values
    ---
    vlans:
    - vlan-id: 10
      vlan-name: vlan10
    - vlan-id: 20
      vlan-name: vlan20
    - vlan-id: 30
      vlan-name: vlan30
    

    Luego, podemos aplicar esta superposición a la plantilla original utilizando el comando ytt de la siguiente manera:

    $ ytt -f template.yaml -f overlay.yaml > transformed.yaml
    

    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.

Comments are closed.