Вопреки вашему комментарию, name
и match
находятся на одном уровне, потому что у них одинаковый отступ. name
никоим образом не вложен в match
(и не route
).
Однако элементы списка вложены в match
, поскольку YAML понимает -
как части отступа, поэтому элементы списка считаются с большим отступом, чем match
, и поэтому вкладываются в него.
Касательно вашей ошибки:
name: "svc1-routes"
- uri:
В этой части ключу сопоставления name
присваивается скалярное значение svc1-routes
. Каждый ключ сопоставления может иметь только одно значение. На следующей строке начинается последовательность, которая находится на более глубоком уровне отступа (как объяснено выше), но YAML не может никуда ее поместить, потому что ключ name
уже имеет значение. Вот почему он выдает ошибку.
Вы можете свободно переключать ключи сопоставления вместе с их вложенными значениями, например:
route:
- destination:
host: myservice1
port:
number: 80
name: "svc1-routes"
match:
- uri:
prefix: "/mysvc1/"
Это будет загружено в ту же структуру, что и в YAML spe c.