Refactor ipset format, add backward compatibility
See https://github.com/saltstack-formulas/firewalld-formula/pull/21#pullrequestreview-146958098
This commit is contained in:
parent
7bc3a9cdd4
commit
d3928d1be0
@ -1,8 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=yaml
|
||||
firewalld:
|
||||
enabled: true
|
||||
package: firewalld
|
||||
ipsetpackage: ipset
|
||||
backendpackage: nftables
|
||||
service: firewalld
|
||||
config: /etc/firewalld.conf
|
||||
|
||||
ipset:
|
||||
manage: true
|
||||
pkg: ipset
|
||||
|
||||
backend:
|
||||
manage: true
|
||||
pkg: nftables
|
||||
|
||||
ipsets: {}
|
||||
|
@ -4,10 +4,41 @@
|
||||
#
|
||||
{% from "firewalld/map.jinja" import firewalld with context %}
|
||||
|
||||
{%- if salt['pillar.get']('firewalld:ipset') %}
|
||||
# Backward compatibility setting and deprecation notices
|
||||
{% set ipset_manage = false %}
|
||||
{% set ipset_pkg = 'ipset' %}
|
||||
{% set ipset_sets = firewalld.ipsets %}
|
||||
|
||||
{% if firewalld.ipset is mapping %}
|
||||
{% set ipset_manage = firewalld.ipset.manage %}
|
||||
{% set ipset_pkg = firewalld.ipset.pkg %}
|
||||
{% else %}
|
||||
### Manage setting (old firewalld:ipset)
|
||||
firewalld-ipset-deprecated:
|
||||
test.show_notification:
|
||||
- text: |
|
||||
'firewalld:ipset' format has changed and setting it as boolean is deprecated.
|
||||
Set 'firewalld:ipset:manage' instead.
|
||||
See firewalld/pillar.example for more information
|
||||
|
||||
{% set ipset_manage = firewalld.ipset %}
|
||||
{% endif %}
|
||||
|
||||
### Package setting (old firewalld:ipsetpackage)
|
||||
{% if firewalld.ipsetpackage is defined %}
|
||||
firewalld-ipsetpackage-deprecated:
|
||||
test.show_notification:
|
||||
- text: |
|
||||
'firewalld:ipsetpackage' is deprecated. Use 'firewalld:ipset:pkg' instead
|
||||
See firewalld/pillar.example for more information
|
||||
|
||||
{% set ipset_pkg = firewalld.ipsetpackage %}
|
||||
{% endif %}
|
||||
|
||||
{%- if ipset_manage %}
|
||||
package_ipset:
|
||||
pkg.installed:
|
||||
- name: {{ firewalld.ipsetpackage }}
|
||||
- name: {{ ipset_pkg }}
|
||||
|
||||
directory_firewalld_ipsets:
|
||||
file.directory: # make sure this is a directory
|
||||
@ -26,8 +57,8 @@ directory_firewalld_ipsets:
|
||||
#
|
||||
# This defines a ipset configuration, see firewalld.ipset (5) man page.
|
||||
#
|
||||
{% for k, v in salt['pillar.get']('firewalld:ipsets', {}).items() %}
|
||||
{% set z_name = v.name|default(k) %}
|
||||
{% for k, v in ipset_sets.items() %}
|
||||
{% set z_name = v.name|default(k) %}
|
||||
|
||||
/etc/firewalld/ipsets/{{ z_name }}.xml:
|
||||
file.managed:
|
||||
@ -48,5 +79,5 @@ directory_firewalld_ipsets:
|
||||
name: {{ z_name }}
|
||||
ipset: {{ v }}
|
||||
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{%- endif %}
|
||||
|
@ -1,7 +1,10 @@
|
||||
# FirewallD pillar examples:
|
||||
firewalld:
|
||||
enabled: True
|
||||
ipset: True
|
||||
ipset:
|
||||
manage: True
|
||||
pkg: ipset
|
||||
|
||||
installbackend: False
|
||||
default_zone: public
|
||||
|
||||
@ -51,7 +54,6 @@ firewalld:
|
||||
entries:
|
||||
- 10.0.0.1
|
||||
|
||||
|
||||
zones:
|
||||
public:
|
||||
short: Public
|
||||
|
Loading…
Reference in New Issue
Block a user