Resolve pillar for another Salt minion from module code

1 view
Skip to first unread message

Sébastien Santoro (Dereckson)

unread,
12:53 PM (5 hours ago) 12:53 PM
to salt-tower
Hello,

We currently use salt-tower to provide a configuration per server
for the web parts of our infrastructure (our Docker PaaS and a PHP webserver),
for the Nasqueron open-source project.

Before salt-tower, we had a pillar like this:

```
docker_containers:
  <Docker engine name>:
    <service>:
      <instance>:
```

With salt-tower, we flattened that structure and we now have directly:

```
docker_containers:
    <service>:
      <instance>:
```

The docker_containers dictionary is a merge of several .sls per service or group of services:

```
base:
- paas/docker/{{ minion_id }}/*.sls
```

Now I've a custom Salt module to select data in that docker_containers
dictionary.

A cool method get_upstreams() resolved every URL and port for Docker containers
exposing a web service in TCP, so we could something like:
proxy_pass {{ upstreams["api_foo"] }}

That method was prepared before salt-tower deployment, and can't be used
with current pillar data, as our API front-end won't see the relevant Docker pillar.

Is there a way from custom Python code (as we're at module level) to easily
trigger a pillar resolution in salt-tower for a specific node?

If something is unclear in that explanation, what we try to achieve
is available publicly here: https://devcentral.nasqueron.org/D2084

Thanks for any insights.

--
Sébastien Santoro
Nasqueron


Reply all
Reply to author
Forward
0 new messages