
Não consegui encontrar nada na documentação sobre ter várias inclusões na mesma chave, mas quando tentei, acabei com apenas as últimas chaves de inclusão na chave raiz.
Por exemplo:
/srv/pilar/top.sls
base:
'*':
- ports
gato /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
O resultado salt '*' pillar.items
desprovido de outras chaves é assim:
ports:
----------
service1:
10000
service2:
10001
O resultado desejado ficaria assim:
ports:
web1:
8000
web2:
8001
service1:
10000
service2:
10001
Responder1
Aqui está o esquema que descobri que funciona para mim.
Tudo se resume a ter um arquivo intermediário K que inclui todos os subarquivos S 1...n ; portanto, quando incluo o arquivo K, especifico seu key
argumento, tendo todos os subarquivos na chave especificada.
/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/pilar/top.sls
base:
'*':
- ports
Isso resultará em uma chave de pilar ports
parecida com esta:
ports:
web1: 8000
web2: 8001
service1: 10000
service2: 10001
ATUALIZAR
Corrigi dois pontos inadequados conforme sugerido por marco.