Replies: 14 comments
-
I did not know of Do the
Salt tower plugs into the public salt APIs for external pillars and renderers. It has a good test suite that covers all features and some edge cases. Tests run using salt top level functions, therefore integration and loading via pip package is tested too. It does not use any external dependencies. I do use salt tower for private projects as well as at work but it is not product. All I can do is releasing it as free source and provide best effort support and work on it when I have time. |
Beta Was this translation helpful? Give feedback.
-
thanks for answer, do you have some feature plans how to extend salt-tower? |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
You can take a look at the tests too, they show a lot examples of different things that can be used, e.g. def test_context_minion_id(env):
env.setup({
'tower.sls':
'''
base:
- template.sls
''',
'template.sls':
'''
minion_id: {{ minion_id }}
'''
})
assert env.ext_pillar() == {'minion_id': 'test_master'} |
Beta Was this translation helpful? Give feedback.
-
i'm use something like this |
Beta Was this translation helpful? Give feedback.
-
how to deal with absent files? for example i have
but for example files in nodes/z1_unistack_org/mn01/*.sls not exists |
Beta Was this translation helpful? Give feedback.
-
or it simply skipped? |
Beta Was this translation helpful? Give feedback.
-
can you say why {%- for role in roles %} not works if pillar nodes/{{ environment }}/{{ hostname }}.sls contains roles array in needed path ? so i need something like render all that possible and after that rerender using included variables |
Beta Was this translation helpful? Give feedback.
-
in pillarstack i'm run ext_pillar twice, as i understand in case of salt-tower this is not needed |
Beta Was this translation helpful? Give feedback.
-
When using jinja, this is always needed. With jinja, the file is compiled, before any file can be loaded. When But with tower the problem can be solved with very few changes:
These kind of issues cannot be solved easily because jinja and YAML are no programming language. |
Beta Was this translation helpful? Give feedback.
-
If you have a limited list of roles you can do it this way too:
This uses salt compound matchers. Because they are interpreted by tower and not jinja, they are run after the common and minion specific files have been loaded. This way you also can use pillar values to expand the path, e.g. |
Beta Was this translation helpful? Give feedback.
-
good suggestions. as i understand i need to assign in each file variables? |
Beta Was this translation helpful? Give feedback.
-
You can include them into the pillar in a common file e.g.:
You could not use all these as pillar keys, e.g. in
|
Beta Was this translation helpful? Give feedback.
-
I hope this helped you. I have setup an additional group and mailling list that might be better suited for longer discussions. |
Beta Was this translation helpful? Give feedback.
-
thanks for such project, i'm fan of pillarstack (i'm slightly rewrite it for my needs and also fixup top.sls file to have equal directory structure (i have /projects /systems (debian, fedora and so), environment, nodes and inside it some dirs for roles like dns-server mail-server and so).
Main drawback that this can't work in default salt setup, most of the people that see my use-case says, that i'm need to use reclass.
What you can say about reclass? Does it possible to replicate with it something like pillarstack and salt-tower?
Also do you plan maintain this project and how long? (this is long term question, because if you drop it other may not pick up it...)
Beta Was this translation helpful? Give feedback.
All reactions