
Я не смог найти в документации ничего о наличии нескольких включений в одном и том же ключе, но когда я попробовал это сделать, у меня в корневом ключе оказался только последний ключ включения.
Например:
/srv/pillar/top.sls
base:
'*':
- ports
cat /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
решение1
Вот схема, которую я нашел и которая работает для меня.
Все сводится к наличию промежуточного файла K, который включает все подфайлы S 1...n , поэтому, когда я включаю файл 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
ОБНОВЛЯТЬ
Я исправил неуместные двоеточия, как предложил Марко.