package
0.0.0-20240701071450-45e2431495c8
Repository: https://github.com/docker/go-plugins-helpers.git
Documentation: pkg.go.dev
# README
Docker IPAM extension API
Go handler to create external IPAM extensions for Docker.
Usage
This library is designed to be integrated in your program.
- Implement the
ipam.Driver
interface. - Initialize a
ipam.Handler
with your implementation. - Call either
ServeTCP
orServeUnix
from theipam.Handler
.
Example using TCP sockets:
import "github.com/docker/go-plugins-helpers/ipam"
d := MyIPAMDriver{}
h := ipam.NewHandler(d)
h.ServeTCP("test_ipam", ":8080")
Example using Unix sockets:
import "github.com/docker/go-plugins-helpers/ipam"
d := MyIPAMDriver{}
h := ipam.NewHandler(d)
h.ServeUnix("root", "test_ipam")
# Functions
NewErrorResponse creates an ErrorResponse with the provided message.
NewHandler initializes the request handler with a driver implementation.
# Structs
AddressSpacesResponse returns the default local and global address space names for this IPAM.
CapabilitiesResponse returns whether or not this IPAM required pre-made MAC.
ErrorResponse is a formatted error message that libnetwork can understand.
Handler forwards requests and responses between the docker daemon and the plugin.
ReleaseAddressRequest is sent in order to release an address from the pool.
ReleasePoolRequest is sent when releasing a previously registered address pool.
RequestAddressRequest is sent when requesting an address from IPAM.
RequestAddressResponse is formed with allocated address by IPAM.
RequestPoolRequest is sent by the daemon when a pool needs to be created.
RequestPoolResponse returns a registered address pool with the IPAM driver.
# Interfaces
Ipam represent the interface a driver must fulfill.