Planning and Prerequisites⚓︎
xRouter runs on a Kubernetes cluster with connectivity to the IPX (or directly to the roaming
partners) on one side and to the public xCores on the other. This page lists what the cluster
needs, what to obtain from Expeto and xControl, and the interconnect data to gather before writing
the values.yaml.
Cluster requirements⚓︎
| Requirement | Detail |
|---|---|
| Kubernetes | Version 1.29 or later, with kubectl (or oc) access that can create namespaces, CustomResourceDefinitions and cluster-scoped RBAC. |
| Helm | 3.17 or later: upgrades of release 3.3.22 and later adopt the Prometheus Operator's CustomResourceDefinitions with --take-ownership. |
| Nodes | Three or more worker nodes for redundancy, sized per the sizing guide; user-plane nodes need the interfaces the IPX and downstream segments arrive on. |
| Kernel | SCTP support on every node that may run the HSS: Diameter and M3UA towards the IPX run over SCTP. The netcfg node-configuration operator loads the module and sets the network buffer sizes from the chart's nodeNetworkConfig; keep global.manualNodeConfig at false unless the platform team tunes nodes itself. |
| netcfg operator | Bundled with the chart and enabled by default. It is a cluster singleton shared by xControl, xCore and xRouter: on a cluster where another Expeto release already runs it, install with netcfg.enabled=false; the chart's nodeNetworkConfig is then applied by that operator. |
| DNS and cert-manager | A cluster DNS and cert-manager. cert-manager issues the internal certificates the functions use. |
| Storage | A default StorageClass providing ReadWriteOnce volumes for MariaDB Galera and Redis. |
| Service exposure | Either NodePorts, with the API server's --service-node-port-range widened to 1024-38413 so the Diameter (3868), MAP (2905), SMPP (2775), GTP-C (2123) and GTP-U (2152) ports can be published on the nodes, or Multus attachments and MetalLB LoadBalancer addresses on the IPX-facing segment. |
| Multus CNI | Recommended for production: the user plane and the HSS attach directly to the interconnect VLANs with fixed addresses. The chart can install Multus and whereabouts where the platform has none. |
| MetalLB with FRR-K8s | Required for BGP route exchange with the IPX and the downstream xCores, and for LoadBalancer addresses on bare-metal clusters. Not for managed clouds, which bring their own load balancers. |
| Outbound access | Nodes pull images from docker.expeto.io; the Helm client pulls charts from repo.expeto.io. The Agent reaches xControl over HTTPS. |
The xCore platform notes describe how MicroK8s, OpenShift, Tanzu and EKS meet the Multus, SCTP and node-tuning requirements; they apply to xRouter unchanged.
What to obtain⚓︎
| Item | Source | Used as |
|---|---|---|
| Registry credentials | Expeto Support. One username and password for the Helm repository and the container registry. | imageCredentials.* |
| Customer, Site and System identifiers | xControl. Create a Site of type xRouter under the Customer and at least one System under it. | agent.connections.customerId, .siteId, .systemId |
| Site API token | xControl, on the Site's API Tokens tab; see Connect the first Site. | agent.connections.apiToken |
| xControl URL | Your xControl installation, or Expeto's hosted service. | agent.connections.serverUri, .brokerUri |
Interconnect data⚓︎
Agree the following with the roaming partners, the IPX carrier and the network team. It maps directly onto the HSS and networking values described on the HSS configuration page.
| Item | Needed for |
|---|---|
| Home PLMNs with their Diameter realms | Subscriber identity; one realm per PLMN in the form epc.mnc<MNC>.mcc<MCC>.3gppnetwork.org. |
| Diameter identity | The HSS host name and realm the partners' Diameter Routing Agents expect. |
| Diameter transport | SCTP or TCP, listen addresses (primary and secondary for multi-homing), port. |
| Diameter peers | For each DRA the HSS connects to or accepts: address, port, realm, host, protocol. |
| Diameter routing rules | Which peer hosts serve which realms. |
| MAP and SS7 | SCCP variant (ITU or ANSI), the HSS's HLR point code and global title, the SMS centre's point code and global title, and for each STP link: point codes, network indicator, routing contexts, addresses and ports, SCCP address patterns. |
| Global title routing | Prefixes and the STPs they route to. |
| SMPP | System IDs and passwords of the SMPP clients, routing rules by destination address. |
| PLMN and UE addressing | MCC and MNC of the home network, the default UE address range and DNS servers, and the address ranges to advertise over BGP north (IPX) and south (xCores). |
| Interfaces | Which node interfaces and VLANs carry the IPX-facing and xCore-facing segments, and the addresses for the user plane on each. |
Namespace⚓︎
Install xRouter into its own namespace; if xCore shares the cluster, keep the two in separate
namespaces, and let only one of the two releases run the netcfg operator. The examples use
xrouter as namespace and release name.