En palabras simples, esta noción se parece a la clase base y derivada.
En la plantilla de clase base, mencionas todos los detalles comunes con '&', lo que significa que se puede usar para expandir la otra sección yaml que necesita estos campos. Ahora, cuando crea otra sección que es un superconjunto de valores de configuración de esta estructura de tipo 'clase base', usa '*' junto con el ancla de clase base (es decir, la que comenzó con '&'). Utiliza '<<:' como noción yaml para colocar realmente la sección 'clase base', que puedes anular más adelante.
vsm:
stub_nsx_mgr: &MGR_CTRL_STUB
username: ADMIN
password: $DEFAULT_PASSWORD
deployment: ovf
build: $PR_BUILD
vmnics:
- network: $MANAGEMENT_NETWORK_0
vc: vc_0
ovf_options:
- --diskMode=$DISKMODE
- --deploymentOption=$DEPLOYMENT_OPTION
$MGR_0:
<<: *MGR_CTRL_STUB
ovf_path_regex: 'appliance.*\.ovf'
ovf_options:
- --diskMode=$DISKMODE
- --deploymentOption=$DEPLOYMENT_OPTION
$CTRL_0:
<<: *MGR_CTRL_STUB
ovf_options:
- --diskMode=$DISKMODE
- --allowExtraConfig
$CTRL_1:
*MGR_CTRL_STUB
Pero, si no desea anular los campos extendidos, puede omitir '<<:'