Project

General

Profile

Feature #27067

IPAM Integration with External IPAM provider phpIPAM

Added by Chris Smith about 1 year ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Smart Proxy
Target version:
-
Difficulty:
easy
Triaged:
No
Bugzilla link:

Description

This Feature / PR is a Foreman patch to support of the use of External IPAM, with opensource IPAM provider phpIPAM(https://phpipam.net).

The primary use case is to provide the next available IPv4 address from phpIPAM, for a given phpIPAM subnet.

The functionality that Foreman will use for External IPAM is encompassed in the below plugins(which are both new).

foreman_ipam(v0.0.3)
Git: https://github.com/grizzthedj/foreman_ipam
Gem: https://rubygems.org/gems/foreman_ipam

smart_proxy_ipam(v0.0.4)
Git: https://github.com/grizzthedj/smart_proxy_ipam
Gem: https://rubygems.org/gems/smart_proxy_ipam

The `foreman_ipam` plugin provides a very basic dashboard to display sections and subnets from phpIPAM, and the `smart_proxy_ipam` plugin communicates with the phpIPAM API.

Features and functionality

  • Simple IPAM Dashboard page(Infrastructure => IPAM Dashboard) to view sections and subnets for phpIPAM. More features will be added here based on internal user feedback and from the community.
  • When creating a phpIPAM subnet(IPAM type = External IPAM) in Foreman, subnet/mask must exist in phpIPAM, or error will be thrown
  • When creating a new host in Foreman, auto suggested IP's from phpIPAM will be persisted back to phpIPAM on Host submit.
  • When updating the IP address on a NIC that uses a phpIPAM subnet, the old IP will be deleted from phpIPAM, and new one will be added.
  • Deleting a host in Foreman will delete all NIC ip's that used a phpIPAM subnet
  • Deleting a NIC from a host will also delete the IP from phpIPAM
  • Deleting a subnet in Foreman will NOT delete the associated subnet in phpIPAM. This could easily be added later if it makes sense to the community, however initial thoughts are to not delete it.

NOTE: When creating a host in Foreman and adding multiple nics/interfaces, the same IP will be suggested from phpIPAM since it is not actually reserved in phpIPAM until you submit the host. The workaround for multiple nics is to use the suggested ip for the first interface(e.g. 10.0.0.1), then manually increment the IP for the second interface(e.g. 10.0.0.2). Errors will be thrown however if IP's are already taken.

Associated revisions

Revision 65aecc5d (diff)
Added by Chris Smith 5 months ago

Fixes #27067 - Patch for External IPAM plugin implementation

History

#1 Updated by The Foreman Bot about 1 year ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/6847 added

#2 Updated by The Foreman Bot 10 months ago

  • Pull request https://github.com/theforeman/foreman/pull/7113 added

#3 Updated by The Foreman Bot 5 months ago

  • Fixed in Releases 2.1.0 added

#4 Updated by Chris Smith 5 months ago

  • Status changed from Ready For Testing to Closed

Also available in: Atom PDF