Skip to content

XNetworkManager

Experimental

This API is experimental and may change without notice.

An Azure Virtual Network Manager, the subscription-scoped service that owns IPAM pools and central network configuration.

API

Group azure.platform.example.org
Kind XNetworkManager
Plural xnetworkmanagers
Scope Namespaced
Versions v1alpha1 (referenceable)
Source compositions/azure/networkmanager/xrd.yaml

Spec

Field Type Required Default Description
name immutable string yes — Logical name of the Network Manager.
subscriptionId immutable string yes — Azure subscription containing the Network Manager.
resourceGroupRef object yes — Reference to the resource group hosting the Network Manager.
    resourceGroupRef.name string yes — Logical name of the XResourceGroup.
location string no swedencentral Azure region for the Network Manager.
tags (nullable) map[string]string no null Optional tags to apply to the Network Manager.

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

Create one network manager per subscription. It must exist before an XNetworkManagerIPAMPool can allocate address space. The Azure resource is named vnm-<spec.name>.

apiVersion: azure.platform.example.org/v1alpha1
kind: XNetworkManager
metadata:
  name: crd-dev
spec:
  name: crd-dev
  subscriptionId: 297651e0-733c-45f9-b295-ad80c68785f1
  resourceGroupRef:
    name: crd-dev

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 Network Manager.

Common problems

The XR never becomes Ready and the provider logs mention an unknown subscription.

Cause. spec.subscriptionId points at a subscription the service principal cannot see.

Fix. Use the subscription ID the bootstrap script registered providers against; spec.subscriptionId is immutable, so recreate the XR.

The Manager managed resource is never created.

Cause. The managers.network.azure.m.upbound.io MRD is not activated.

Fix. Add it to activation-policies/azure/managed-resource-activation-policy.yaml.

Reference