From: Alexandre Derumier <aderumier@odiso.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH pve-network 00/38] add subnet plugin
Date: Sun, 8 Nov 2020 15:19:02 +0100 [thread overview]
Message-ID: <20201108141940.1028443-1-aderumier@odiso.com> (raw)
This patch series add basic subnets managements.
(need pve-cluster V5 patch series)
Subnets will be use for multiple things:
- defined gateway ip on vnets
- enable snat on a subnet
- add cloudnit|dhcp default network configs (gateway, static routes, nameservers,searchdomain,....)
- add ipam management. (ip registrations to external ipam, for vm|ct ip management)
- add dns registration. (reverse dns for subnet, and searchdomain regisration in external dns like powerdns )
- ...
Already implemented:
- gateway option is implemented:
It's currently replace ip management on vnets for layer3 plugins,
through the option "gateway".
If the option gateway is defined, for layer3 plugins (evpn && simple),
the ip will be used for the vnet.
A vnet can have multiple subnets, with multiples ipv4/ipv6.
- ipam
- dns registration
Changelog v2:
- add ipams plugins. Currently netbox && phpipam.
- the subnet && the subnet gateway are registered to ipam
- add/del/find_next_free ip are implemented, so it should be easy to use them in qemu && lxc config.
Changelog v3:
- add an internal ipam plugin
Changelog v4:
- fix pveipam plugin find_free_ip
- detect ipv4/ipv6 in find_free_ip
Changelog v5:
- add vnets add_ip,del_ip,... should be ok for use in lxc/qemuserver
Changelog v6:
- add dns plugins
- internal ipam fixes
- rework vnet-subnet association
- fixes && cleanup
Changelog v7:
- add snat to simple|evpn plugin
- cleanup subnet options
- fix reversedns
Changelog v8:
- move subnet api to /sdn/vnet/<vnet>/subnet
- make ipam non optionnal && use pve ipam as default
- don't allow subnets on vlanaware vnet
- fixes && cleanup
Changelog v9:
- write running config on commit in /etc/pve/sdn/.running-config
and use it as source for config generation,status
Changelog v10:
- move ipams/dns options from subnets to zone
- add hostname/description to ipam db
- cleanup && bugfix
Changelog v11:
- vnets: remove unused hash:diff
- evpn plugin improvements
Alexandre Derumier (38):
vnets: add subnets
add subnets verifications hooks
zones: simple|evpn: add gateway ip from subnets to vnet
zone: add vnet_update_hook
vnets: subnets: use cidr
subnet: fix on_delete_hook
api2: subnet create: convert cidr to subnetid
api2: increase version on apply/reload only
add ipams plugins
add pve internal ipam plugin
vnets: find_free_ip : add ipversion detection
vnets: add add_ip
vnets: add del_ip + rework add_ip/find_free_ip
add dns plugin
Fix vnet gateway for routed setup + /32 pointopoint subnet
ipam : pveplugin : fix find_next_free_ip
add vnet to subnets && remove subnetlist from vnet
zones: evpn|simple: add snat iptables rules
subnet: disable route option for now and add dns domain format
dns: fix reverse dns
subnets: move api to /sdn/vnet/<vnet>/subnets && make vnet option not
optionnal
zones: evpn : fix raise exception
subnet: make ipam not optionnal and use pve ipam as default
don't allow subnets on vlanware vnet
generate sdn/.running-config on apply
api: add running/pending zones/vnets/subnets/controllers
small bugfixes
move dns options from subnets to zone
move ipam option from subnet to zone
subnets/ipam: allow same subnet on different zones
vnets: allow duplicate tags in differents zones
ipam: verify api access on create/update
ipam: add hostname/description to ipam db
update documentation
vnets: remove unused hash:diff
zones: auto find controller
sdn: controllers : add ebgp support
update test documentation
PVE/API2/Network/SDN.pm | 18 +-
PVE/API2/Network/SDN/Controllers.pm | 59 ++++-
PVE/API2/Network/SDN/Dns.pm | 242 ++++++++++++++++++++
PVE/API2/Network/SDN/Ipams.pm | 248 +++++++++++++++++++++
PVE/API2/Network/SDN/Makefile | 2 +-
PVE/API2/Network/SDN/Subnets.pm | 120 ++++++++--
PVE/API2/Network/SDN/Vnets.pm | 80 ++++++-
PVE/API2/Network/SDN/Zones.pm | 101 ++++++++-
PVE/Network/SDN.pm | 102 +++++++--
PVE/Network/SDN/Controllers.pm | 47 ++--
PVE/Network/SDN/Controllers/EvpnPlugin.pm | 21 +-
PVE/Network/SDN/Controllers/Plugin.pm | 1 +
PVE/Network/SDN/Dns.pm | 57 +++++
PVE/Network/SDN/Dns/Makefile | 8 +
PVE/Network/SDN/Dns/Plugin.pm | 118 ++++++++++
PVE/Network/SDN/Dns/PowerdnsPlugin.pm | 255 ++++++++++++++++++++++
PVE/Network/SDN/Ipams.pm | 70 ++++++
PVE/Network/SDN/Ipams/Makefile | 8 +
PVE/Network/SDN/Ipams/NetboxPlugin.pm | 189 ++++++++++++++++
PVE/Network/SDN/Ipams/PVEPlugin.pm | 204 +++++++++++++++++
PVE/Network/SDN/Ipams/PhpIpamPlugin.pm | 217 ++++++++++++++++++
PVE/Network/SDN/Ipams/Plugin.pm | 131 +++++++++++
PVE/Network/SDN/Makefile | 4 +-
PVE/Network/SDN/SubnetPlugin.pm | 124 +++++++----
PVE/Network/SDN/Subnets.pm | 238 +++++++++++++++++++-
PVE/Network/SDN/VnetPlugin.pm | 37 ++--
PVE/Network/SDN/Vnets.pm | 92 +++++++-
PVE/Network/SDN/Zones.pm | 51 +++--
PVE/Network/SDN/Zones/EvpnPlugin.pm | 98 +++++++--
PVE/Network/SDN/Zones/FaucetPlugin.pm | 4 +
PVE/Network/SDN/Zones/Plugin.pm | 16 +-
PVE/Network/SDN/Zones/QinQPlugin.pm | 26 ++-
PVE/Network/SDN/Zones/SimplePlugin.pm | 73 ++++++-
PVE/Network/SDN/Zones/VlanPlugin.pm | 28 ++-
PVE/Network/SDN/Zones/VxlanPlugin.pm | 30 ++-
debian/control | 2 +
test/documentation.txt | 33 ++-
test/generateconfig.pl | 5 +-
38 files changed, 2942 insertions(+), 217 deletions(-)
create mode 100644 PVE/API2/Network/SDN/Dns.pm
create mode 100644 PVE/API2/Network/SDN/Ipams.pm
create mode 100644 PVE/Network/SDN/Dns.pm
create mode 100644 PVE/Network/SDN/Dns/Makefile
create mode 100644 PVE/Network/SDN/Dns/Plugin.pm
create mode 100644 PVE/Network/SDN/Dns/PowerdnsPlugin.pm
create mode 100644 PVE/Network/SDN/Ipams.pm
create mode 100644 PVE/Network/SDN/Ipams/Makefile
create mode 100644 PVE/Network/SDN/Ipams/NetboxPlugin.pm
create mode 100644 PVE/Network/SDN/Ipams/PVEPlugin.pm
create mode 100644 PVE/Network/SDN/Ipams/PhpIpamPlugin.pm
create mode 100644 PVE/Network/SDN/Ipams/Plugin.pm
--
2.20.1
next reply other threads:[~2020-11-08 14:20 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-08 14:19 Alexandre Derumier [this message]
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 01/38] vnets: add subnets Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 02/38] add subnets verifications hooks Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 03/38] zones: simple|evpn: add gateway ip from subnets to vnet Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 04/38] zone: add vnet_update_hook Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 05/38] vnets: subnets: use cidr Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 06/38] subnet: fix on_delete_hook Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 07/38] api2: subnet create: convert cidr to subnetid Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 08/38] api2: increase version on apply/reload only Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 09/38] add ipams plugins Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 10/38] add pve internal ipam plugin Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 11/38] vnets: find_free_ip : add ipversion detection Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 12/38] vnets: add add_ip Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 13/38] vnets: add del_ip + rework add_ip/find_free_ip Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 14/38] add dns plugin Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 15/38] Fix vnet gateway for routed setup + /32 pointopoint subnet Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 16/38] ipam : pveplugin : fix find_next_free_ip Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 17/38] add vnet to subnets && remove subnetlist from vnet Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 18/38] zones: evpn|simple: add snat iptables rules Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 19/38] subnet: disable route option for now and add dns domain format Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 20/38] dns: fix reverse dns Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 21/38] subnets: move api to /sdn/vnet/<vnet>/subnets && make vnet option not optionnal Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 22/38] zones: evpn : fix raise exception Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 23/38] subnet: make ipam not optionnal and use pve ipam as default Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 24/38] don't allow subnets on vlanware vnet Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 25/38] generate sdn/.running-config on apply Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 26/38] api: add running/pending zones/vnets/subnets/controllers Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 27/38] small bugfixes Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 28/38] move dns options from subnets to zone Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 29/38] move ipam option from subnet " Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 30/38] subnets/ipam: allow same subnet on different zones Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 31/38] vnets: allow duplicate tags in differents zones Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 32/38] ipam: verify api access on create/update Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 33/38] ipam: add hostname/description to ipam db Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 34/38] update documentation Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 35/38] vnets: remove unused hash:diff Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 36/38] zones: auto find controller Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 37/38] sdn: controllers : add ebgp support Alexandre Derumier
2020-11-08 14:19 ` [pve-devel] [PATCH pve-network 38/38] update test documentation Alexandre Derumier
2020-11-22 18:17 ` [pve-devel] [PATCH pve-network 00/38] add subnet plugin Thomas Lamprecht
2020-11-23 10:04 ` alexandre derumier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201108141940.1028443-1-aderumier@odiso.com \
--to=aderumier@odiso.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox