O pilar SaltStack inclui a mesma chave

O pilar SaltStack inclui a mesma chave

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.itemsdesprovido 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 keyargumento, 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 portsparecida com esta:

ports:
  web1: 8000
  web2: 8001
  service1: 10000
  service2: 10001

ATUALIZAR

Corrigi dois pontos inadequados conforme sugerido por marco.

informação relacionada