Installation Checks⚓︎
The checks that confirm a fresh installation or an upgraded platform is ready for service: every workload running at the release version, the management path to xControl established and synchronized, the radio connected, monitoring receiving the site, and, after an upgrade, the existing configuration and subscribers intact.
| ID | Test | Category | Applies to |
|---|---|---|---|
| EXP-INS-001 | Platform readiness after installation | Operations | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| EXP-INS-002 | Management path and subscriber synchronization | Operations | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| EXP-INS-003 | Radio access node connection | Operations | 4G, 5G · Local radio · Single node, HA cluster, Geo-redundant |
| EXP-INS-004 | Monitoring path | Operations | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| EXP-INS-005 | Upgrade and post-upgrade regression | Operations | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
EXP-INS-001 — Platform readiness after installation⚓︎
| Attribute | Value |
|---|---|
| Status | Accepted |
| Category | Operations |
| Components | xCore, xControl |
| Applies to | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| Duration | About 30 min |
| Included in | Installation and Upgrade Verification |
Objective. Every workload of a newly installed xCore is running at the release version, no container is restarting, every network function reports healthy, and the Site is registered with xControl at that version.
Preconditions
- Platform
- The xCore is installed per the installation guide and the installer reports success.
- You know the release version that was installed and the Kubernetes namespace of the xCore.
- Tooling and access
- Read access to the cluster with
kubectl. - Access to the CLI.
- Log in to xControl with an account that can view the Mobile Asset under test.
- Read access to the cluster with
Procedure
| # | Where | Action | Expected result |
|---|---|---|---|
| 1 | Kubernetes | Run kubectl get nodes. |
Every node is Ready. |
| 2 | Kubernetes | Run kubectl get pods -n <namespace> once the installer reports success. |
Every pod is Running (or Completed for one-time jobs) with all containers ready. Note the RESTARTS count of every pod. |
| 3 | Kubernetes | Run helm list -n <namespace>. |
The release is deployed and its chart version is the release version. |
| 4 | Kubernetes | Run kubectl get pods -n <namespace> -o jsonpath='{range .items[*].spec.containers[*]}{.image}{"\n"}{end}' \| sort -u. |
Every image under the Expeto registry paths is tagged with the release version; third-party images (databases, Kubernetes operators, exporters) carry the versions the release notes list. |
| 5 | CLI | Open the CLI, run cd /debug/nf, then read node. |
Every network function of the deployment is listed with Health reported as healthy. |
| 6 | xControl | Open Sites and select the Site. | The Site is online, Agent Version equals the release version, and Last Seen is within the last five minutes. |
| 7 | Kubernetes | Fifteen minutes after the installer reported success, run kubectl get pods -n <namespace> again. |
No RESTARTS count has increased. |
Pass criteria
- Every pod is ready, and no pod restarts during the fifteen minutes that follow the installer's completion.
- Every Expeto image tag and the chart version equal the release version, and third-party images match the release notes.
- Every network function reports healthy.
- The Site is online in xControl with the release's agent version.
Deployment notes
- Kubernetes-operator managed core: The core is described by a Site resource rather than a Helm release. Replace the
helm liststep withkubectl get site <name> -n <namespace> -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}'and expectTrue, and check that{.status.observedGeneration}equals{.metadata.generation}. The CLI sidecar is namedagent-cli, andread nodelists the SMF only; check the other network functions through their pod status.
Evidence collected: Kubernetes pod and node status; CLI output; xControl screenshot.
EXP-INS-002 — Management path and subscriber synchronization⚓︎
| Attribute | Value |
|---|---|
| Status | Accepted |
| Category | Operations |
| Components | xCore, xControl |
| Applies to | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| Duration | About 30 min |
| Prerequisite procedures | EXP-INS-001 — Platform readiness after installation |
| Included in | Installation and Upgrade Verification |
| Automated by | Platform suite, 5G core: Mobile Asset provisioned through the xControl API appears in UDR and SMF within 120 s |
Objective. The xCore agent holds an outbound connection to xControl, the Site reports online, and the subscriber data held by the xCore matches what xControl has provisioned for it.
Preconditions
- Mobile Asset
- At least one Mobile Asset is provisioned on a System of the Site.
- Tooling and access
- Log in to xControl with an account that holds the ADMIN role.
- Access to the CLI.
- A signalling capture on the xCore's egress interface, filtered to TCP port 443 (capture point 6).
- Procedures executed first
Procedure
| # | Where | Action | Expected result |
|---|---|---|---|
| 1 | — | Execute EXP-INS-001 — Platform readiness after installation as a prerequisite procedure. | As defined in EXP-INS-001. |
| 2 | Capture | Start the capture and restart the agent pod (kubectl delete pod <release>-agent-0 -n <namespace>), then inspect the capture. |
The TLS connection to xControl is initiated by the xCore. No connection is initiated toward the xCore. |
| 3 | xControl | Open Sites, select the Site and watch its status while the agent pod restarts. | The Site returns to online and Last Seen updates within five minutes. |
| 4 | CLI | Run cd /debug/ops, then cmd cache-clear type=SUBSCRIBER_CHECK_ERRORS, then cmd sync-sub-check mode=FULL. Repeat cmd sync-sub-check mode=FULL until it no longer answers that a check is already running. |
The full check completes. |
| 5 | CLI | Run read sync-sub-error. |
The table is empty; no Mobile Asset is missing, mismatched or extra on the Site. |
| 6 | CLI | Run cd /lte, then read hss (or cd /nr, then read udr on a 5G-only Site) and read the total in the table footer. |
The total equals the number of Mobile Assets xControl lists for the Site's Systems. |
Pass criteria
- The agent connection is outbound only.
- The Site is online within five minutes of an agent restart.
- The full synchronization check reports zero discrepancies and the record counts match.
Evidence collected: 3GPP signalling capture (pcap); CLI output; xControl screenshot.
EXP-INS-003 — Radio access node connection⚓︎
| Attribute | Value |
|---|---|
| Status | Accepted |
| Category | Operations |
| Components | xCore, xControl |
| Applies to | 4G, 5G · Local radio · Single node, HA cluster, Geo-redundant |
| Duration | About 20 min |
| Prerequisite procedures | EXP-INS-001 — Platform readiness after installation |
| Included in | Installation and Upgrade Verification |
Objective. The customer's eNodeB or gNodeB establishes its control-plane association with the xCore, the xCore accepts the radio's PLMN and tracking area, and xControl shows the Private Radio as connected.
Preconditions
- Platform
- The radio is configured with the xCore's MME or AMF address, the PLMN and the tracking area code agreed for the Site, and is powered off.
- A Private Radio with the identifier
<PLMN>-<Cell ID>of the radio exists on the Site in xControl with status Enabled.
- Tooling and access
- Log in to xControl with an account that holds the ADMIN role.
- A signalling capture on the xCore interface facing the radio (capture point 1).
- Access to the CLI.
- Procedures executed first
Procedure
| # | Where | Action | Expected result |
|---|---|---|---|
| 1 | — | Execute EXP-INS-001 — Platform readiness after installation as a prerequisite procedure. | As defined in EXP-INS-001. |
| 2 | Radio | Power on the radio and wait for it to complete its start-up. Note the time. | The radio reports its cell as on air. |
| 3 | Capture | Inspect the capture. | An SCTP association is established, followed by S1 Setup Request and S1 Setup Response (4G) or NG Setup Request and NG Setup Response (5G). The response lists the served PLMN; there is no Setup Failure. |
| 4 | xControl | Open Private Radios and select the radio. | The status is Connected within two minutes of the radio reporting on air. |
| 5 | CLI | Run cd /lte, then read enodeb (4G), or cd /nr, then read ran (5G). |
The radio is listed with its identifier, address, PLMN and tracking area. |
Pass criteria
- The setup exchange completes with a Response, not a Failure, and the served PLMN and tracking area are the agreed ones.
- The Private Radio shows Connected within two minutes of the radio reporting on air.
Evidence collected: 3GPP signalling capture (pcap); xControl screenshot; CLI output.
References: 3GPP TS 36.413 §8.7.3 (S1 Setup); 3GPP TS 38.413 §8.7.3 (NG Setup).
EXP-INS-004 — Monitoring path⚓︎
| Attribute | Value |
|---|---|
| Status | Accepted |
| Category | Operations |
| Components | xCore, xView |
| Applies to | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| Duration | About 15 min |
| Prerequisite procedures | EXP-INS-001 — Platform readiness after installation |
| Included in | Installation and Upgrade Verification |
Objective. The new Site's metrics reach xView with the Site's labels, its scrape targets are up, and no critical alert is firing for it.
Preconditions
- Tooling and access
- Access to the xView Prometheus query interface and Grafana.
- Procedures executed first
Procedure
| # | Where | Action | Expected result |
|---|---|---|---|
| 1 | — | Execute EXP-INS-001 — Platform readiness after installation as a prerequisite procedure. | As defined in EXP-INS-001. |
| 2 | Tester | In Prometheus, run up{job="site", site="<site name>"}. |
The result is 1 for every instance of the Site. |
| 3 | Tester | Run xcore_version{site="<site name>"}. |
The series exist and carry the customer, customerId, site and siteId labels of the Site. |
| 4 | Tester | Run ALERTS{alertstate="firing", site="<site name>", severity="critical"}. |
The result is empty. |
| 5 | Tester | Open the Site dashboard in Grafana and select the Site. | The panels show data for the Site. |
Pass criteria
- Every scrape target of the Site is up within ten minutes of the install completing.
- The Site's series carry its Customer and Site labels.
- No critical alert is firing for the Site.
Evidence collected: xControl screenshot.
EXP-INS-005 — Upgrade and post-upgrade regression⚓︎
| Attribute | Value |
|---|---|
| Status | Accepted |
| Category | Operations |
| Components | xCore, xControl |
| Applies to | 4G, 5G · Local radio, Public radio · Single node, HA cluster, Geo-redundant |
| Duration | About 2 h |
| Prerequisite procedures | EXP-INS-001 — Platform readiness after installation EXP-INS-002 — Management path and subscriber synchronization |
Objective. A platform upgrade completes with every workload at the new version, leaves the configuration and the provisioned Mobile Assets intact, restores service to connected devices without manual intervention, and passes the installation and upgrade verification set.
Service impact
This procedure interrupts service. Run it in a maintenance window or in a pre-production environment.
Preconditions
- Platform
- The upgrade package or chart version is available and the upgrade procedure of the installation guide is at hand.
- A maintenance window is agreed; the upgrade interrupts service.
- The results of the installation and upgrade verification set on the current version are at hand as the baseline.
- Mobile Asset
- One Mobile Asset is connected and passing data (execute the UE-initiated attach procedure first if it is not).
- Tooling and access
- Read access to the cluster with
kubectl. - Log in to xControl with an account that holds the ADMIN role.
- Read access to the cluster with
- Procedures executed first
Procedure
| # | Where | Action | Expected result |
|---|---|---|---|
| 1 | xControl | Record the Site status, the number of Systems, Private Radios and Mobile Assets on the Site, and the Agent Version. | The baseline is recorded. |
| 2 | UE | Start a continuous ping from the UE to a host on the enterprise LAN and note the time. | Replies arrive. |
| 3 | Infrastructure | Perform the upgrade as documented in the installation guide. | The upgrade command completes without error. |
| 4 | Kubernetes | Run kubectl get pods -n <namespace> until the rollout is complete. |
Every pod is ready, with images tagged with the new version. |
| 5 | UE | Stop the ping and note when replies stopped and resumed. If the UE dropped its connection, wait for it to reconnect on its own. | Replies resume without any action on the UE or the platform; the service interruption is recorded. |
| 6 | xControl | Open Sites and select the Site. | The Site is online and Agent Version equals the new version. |
| 7 | xControl | Compare the number of Systems, Private Radios and Mobile Assets with the baseline. | The counts are unchanged. |
| 8 | Tester | Execute the installation and upgrade verification set. | Every test passes. |
Pass criteria
- Every workload runs the new version and the Site reports the new agent version.
- Systems, Private Radios and Mobile Assets are unchanged.
- Connected devices regain service without manual intervention, and the measured interruption is recorded in the results sheet.
- The installation and upgrade verification set passes on the upgraded platform.
Postconditions
- Record the measured service interruption in the results sheet.
Deployment notes
- Kubernetes-operator managed core: Fields of the Site definition that require a restart are rejected by the platform's admission check unless the Site is first placed in maintenance mode; the installation guide's upgrade procedure includes that step.
Evidence collected: Kubernetes pod and node status; xControl screenshot; UE connectivity check.