Have you enabled the pillar in /srv/salt/user_pillar/top.sls?
Example:
In /srv/salt/user_pillar/top.sls I have a stanza:
user:
'target':
- get
In /srv/salt/user_pillar/get.sls, I set the pillar:
host: www.qubes-os.org
Then I have the state and top files, get.sls and get.top:
get file:
cmd.run:
- name: wget {{pillar['host'] }}
base:
target:
- get
qubesctl --skip-dom0 --targets=target state.apply get
First of all I'd like to thank you for your answer unman.
I've tried your example (and after modifying it to be able to run it) I get exact the same error as before.
Here's the setup:
Have you enabled the pillar in /srv/salt/user_pillar/top.sls?
As far as I know, I have only to enable state.top files. But I have a file like you suggest located in /srv/salt/user_pillar/:
In /srv/salt/user_pillar/top.sls I have a stanza:
user:
'target':
- get
Ok!
In /srv/salt/user_pillar/get.sls, I set the pillar:
host: www.qubes-os.org
Ok!
/srv/salt/user_salt/get.sls
get file:
cmd.run:
- name: wget {{pillar['host'] }}
Ok!
/srv/salt/user_salt/get.top
base:
target:
- user_salt.get
This one I had to modify as the get.sls is located in "/srv/salt/user_salt/". Above is already the modified version (user_salt is prefixed). I also enabled this top file by executing:
sudo qubesctl top.enable user_salt.get
Now, let's run this:
qubesctl --skip-dom0 --targets=target state.apply get
When I'm executing this, I get the error logged in /var/log/qubes/mgmt-target.log:
calling 'state.apply'...
2020-09-13 10:08:14,729 output: target:
2020-09-13 10:08:14,730 output: - Rendering SLS 'base:user_salt.get' failed: Jinja variable 'salt.utils.context.NamespacedDictWrapper object' has no attribute 'host'
When I'm executing this (additional parameter --pillar-root=/srv/salt/user_pillar/):
sudo qubesctl --skip-dom0 --targets=target state.apply --pillar-root=/srv/salt/user_pillar/
The result is the same as I described before:
target: ERROR (exception list index out of range)
I also tried to modify the pillar top file to meet the different location:
In /srv/salt/user_pillar/top.sls I have a stanza:
user:
'target':
- user_pillar.get
But this haven't changed the results.
Any further suggestions to investigate are highly appreciated.
Best. P.