-
Notifications
You must be signed in to change notification settings - Fork 64
Description
Summary
Split proxmox_firewall into four sub-modules and introduce three new module to manage new firewall options (cluster-level node-level and vm/lxc-level)
Context
Currently, the module proxmox_firewall manages "lot of things", which makes it difficult to maintain and, in my opinion, impractical for users.
I propose to split it into smaller module and focusing on one feature at a time.
Current the module handle (each one will be new dedicated module):
- Security Group
- Rules
- Alias
- IP Sets
The module doesn't handle (each one will be new dedicated module):
- Firewall options on node-level and VM/container-level
- Firewall options on cluster-level (Feat/add new module proxmox cluster firewall #297)
I think we can work on these modules without removing "proxmox_firewall," but gradually indicate in the module documentation the recommendation to use a dedicated module, then deprecate the "proxmox_firewall" module.
I don't think all modules should comes on a same time, they can be added one by one, without impacting users.
Bellow modules that I have in mind that could fit well. For each module I can draft module documention if this can helps use define module interface.
As mentionned this is a proposal, a starting point for thinking about the path we want to take for managing firewall features. Please feel free to share your thoughts.
Related issues (just for tracking):
Firewall modules proposal
proxmox_firewall_rules
Description: Manages cluster-level, node-level or VM/container-level firewall rules
API:
/api2/json/cluster/firewall/rules/api2/json/nodes/{node}/firewall/rules/api2/json/nodes/{node}/lxc/{vmid}/firewall/rules/api2/json/nodes/{node}/qemu/{vmid}/firewall/rules
proxmox_cluster_firewall_security_group
Description: Manages security group defined at cluster level
API:
/api2/json/cluster/firewall/groups/
proxmox_firewall_options
Description: Manages firewall options on VM/container-level
API:
/api2/json/nodes/{node}/qemu/{vmid}/firewall/options/api2/json/nodes/{node}/lxc/{vmid}/firewall/options
proxmox_node_firewall_options
Description: Manages firewall options on node-level
API:
/api2/json/nodes/{node}/firewall/options
proxmox_firewall_ipset
Description: Manage IPSET at cluster-level, VM/container-level
API:
/api2/json/cluster/firewall/ipset/api2/json/nodes/{node}/qemu/{vmid}/firewall/ipset/api2/json/nodes/{node}/lxc/{vmid}/firewall/ipset
proxmox_firewall_alias
Description: Manage IP addresses association of networks with a name
API:
/api2/json/cluster/firewall/aliases/api2/json/nodes/{node}/qemu/{vmid}/firewall/aliases/api2/json/nodes/{node}/lxc/{vmid}/firewall/aliases