mirror of
https://github.com/saltstack-formulas/salt-formula.git
synced 2025-02-26 02:18:32 +01:00
Rework salt-cloud directories and files creation
Since the set of directories is known, just iterate of its well known names directly. Make sure files are dumped after `file.recurse` to avoid deletion/creation cycles when applying highstate. Also apply permissions on cloud.providers.d after all creations steps are done.
This commit is contained in:
parent
dce9bea40b
commit
4b29379725
@ -1,9 +1,5 @@
|
|||||||
{% from "salt/map.jinja" import salt_settings with context %}
|
{% from "salt/map.jinja" import salt_settings with context %}
|
||||||
|
|
||||||
{% set cloudmaps = salt['pillar.get']('salt:cloud:maps', {}) -%}
|
|
||||||
{% set cloudprofiles = salt['pillar.get']('salt:cloud:profiles', {}) -%}
|
|
||||||
{% set cloudproviders = salt['pillar.get']('salt:cloud:providers', {}) -%}
|
|
||||||
|
|
||||||
{%- if salt_settings.use_pip %}
|
{%- if salt_settings.use_pip %}
|
||||||
python-pip:
|
python-pip:
|
||||||
pkg.installed
|
pkg.installed
|
||||||
@ -52,34 +48,26 @@ cloud-cert-{{ cert }}-pem:
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{%- for dir, templ_path in salt_settings.cloud.template_sources.items() %}
|
{% for cloud_section in ["maps", "profiles", "providers"] %}
|
||||||
salt-cloud-{{ dir }}:
|
salt-cloud-{{ cloud_section }}:
|
||||||
file.recurse:
|
file.recurse:
|
||||||
- name: {{ salt_settings.config_path }}/cloud.{{ dir }}.d
|
- name: {{ salt_settings.config_path }}/cloud.{{ cloud_section }}.d
|
||||||
- source: {{ templ_path }}
|
- source: {{ salt_settings.cloud.template_sources[cloud_section] }}
|
||||||
- template: jinja
|
- template: jinja
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
{%- endfor %}
|
|
||||||
|
|
||||||
{% for key, value in cloudmaps.items() %}
|
{% for filename in salt['pillar.get']("salt:cloud:" ~ cloud_section, {}).keys() %}
|
||||||
/etc/salt/cloud.maps.d/{{ key }}:
|
/etc/salt/cloud.{{ cloud_section }}.d/{{ filename }}:
|
||||||
file.managed:
|
file.serialize:
|
||||||
- contents: |
|
- dataset_pillar: salt:cloud:{{ cloud_section }}:{{ filename }}
|
||||||
{{ value|yaml(False) | indent(8) }}
|
- formatter: yaml
|
||||||
|
- require:
|
||||||
|
- file: salt-cloud-{{ cloud_section }}
|
||||||
|
{%- if cloud_section == "providers" %}
|
||||||
|
- require_in:
|
||||||
|
- file: salt-cloud-providers-permissions
|
||||||
|
{%- endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for key, value in cloudprofiles.items() %}
|
|
||||||
/etc/salt/cloud.profiles.d/{{ key }}:
|
|
||||||
file.managed:
|
|
||||||
- contents: |
|
|
||||||
{{ value|yaml(False) | indent(8) }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% for key, value in cloudproviders.items() %}
|
|
||||||
/etc/salt/cloud.providers.d/{{ key }}:
|
|
||||||
file.managed:
|
|
||||||
- contents: |
|
|
||||||
{{ value|yaml(False) | indent(8) }}
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
salt-cloud-providers-permissions:
|
salt-cloud-providers-permissions:
|
||||||
@ -98,3 +86,5 @@ salt-cloud-providers-permissions:
|
|||||||
- user
|
- user
|
||||||
- group
|
- group
|
||||||
- mode
|
- mode
|
||||||
|
- require:
|
||||||
|
- file: salt-cloud-providers
|
||||||
|
Loading…
x
Reference in New Issue
Block a user