Skip to content

XNetworkManagerIPAMPool

Experimental

This API is experimental and may change without notice.

An IPAM pool on a network manager, so virtual networks get address space allocated automatically instead of teams picking CIDRs by hand.

API

Group azure.platform.example.org
Kind XNetworkManagerIPAMPool
Plural xnetworkmanageripampools
Scope Namespaced
Versions v1alpha1 (referenceable)
Source compositions/azure/networkmanager-ipam-pool/xrd.yaml

Spec

Field Type Required Default Description
name immutable string yes — Logical name of the IPAM pool.
networkManagerRef immutable object yes — Reference to the parent Network Manager.
    networkManagerRef.name string yes — Logical name of the XNetworkManager.
location string no swedencentral Azure region for the IPAM pool.
addressPrefixes []string yes — CIDR blocks for the root IPAM pool.
tags (nullable) map[string]string no null Optional tags to apply to the IPAM pool.

Fields marked immutable are fixed once the resource is created; changing one is rejected by the API server. An immutable object pins the fields nested under it too. To change one, delete the resource and create it again.

Example

Allocate a generous prefix here; individual virtual networks draw from it by requesting a number of addresses rather than a CIDR. The Azure resource is named ipam-<spec.name>.

apiVersion: azure.platform.example.org/v1alpha1
kind: XNetworkManagerIPAMPool
metadata:
  name: crd-dev
spec:
  name: crd-dev
  networkManagerRef:
    name: crd-dev
  addressPrefixes:
    - 10.42.0.0/16

Taken from teams/crd-dev/network.yaml, which is applied to the cluster by Flux, so it cannot drift from a working manifest.

Status

Populated by Crossplane once the underlying Azure resources exist. Every composite in this repository exposes the provisioned Azure resource ID as status.id.

Field Type Required Default Description
id string no — Azure resource ID of the IPAM pool.

Common problems

The pool is created but virtual networks fail to allocate.

Cause. spec.addressPrefixes is too small for the requested numberOfAllocatedIpAddresses across all networks.

Fix. Add another prefix to the pool, or request fewer addresses.

The XR reports that the parent network manager is missing.

Cause. spec.networkManagerRef.name does not match an XNetworkManager in the same namespace.

Fix. Create the network manager first and wait for it to report status.id.

Reference