Я не смог найти в документации ничего о наличии нескольких включений под одним и тем же ключом, но когда я попробовал это, у меня остались только последние ключи включения под корневым ключом.
Например:
/srv/pillar/top.sls
base:
'*':
- ports
кошка /srv/pillar/ports/init.sls
include:
- ports.frontend:
key: ports
- ports.backend:
key: ports
/srv/pillar/ports/backend.sls
service1: 10000
service2: 10001
/srv/pillar/ports/frontend.sls
web1: 8000
web2: 8001
Результат salt '*' pillar.items
без других ключей выглядит так:
ports:
----------
service1:
10000
service2:
10001
Желаемый результат будет выглядеть так:
ports:
web1:
8000
web2:
8001
service1:
10000
service2:
10001
Вот схема, которую я нашел, работает для меня.
Это сводится к наличию промежуточного файла K, который включает все субфайлы S1 ... п, поэтому, когда я включаю файл K, я указываю его key
аргумент, имея все подфайлы под указанным ключом.
/srv/pillar/ports/backend.sls
service1: 10000
service2: 10001
/srv/pillar/ports/frontend.sls
web1: 8000
web2: 8001
/srv/pillar/ports/all_ports.sls
include:
- ports.frontend
- ports.backend
/srv/pillar/ports/init.sls
include:
- ports.all_ports:
key: ports
/srv/pillar/top.sls
base:
'*':
- ports
В результате получится ключ колонны ports
выглядит так:
ports:
web1: 8000
web2: 8001
service1: 10000
service2: 10001
ОБНОВИТЬ
Я исправил неподходящие двоеточия, как предложил Марко.