Skip to content

Expeto CLI Guide for Operations⚓︎

The Expeto CLI is a powerful command-line interface designed for IT operations personnel. It provides real-time access to manage and troubleshoot applications and data within xCore, xControl, and xRouter environments. This tool is essential for diagnosing network issues, querying subscriber states, and executing operational commands directly against the core network components.

Accessing the CLI⚓︎

The CLI is accessed by executing an interactive shell within the designated CLI pod running in your Kubernetes cluster.

To start the CLI, use the following kubectl command, replacing <release name> with your deployment's release name (e.g., local):

kubectl exec -it <release name>-agent-0 -c cli -- cli

Once connected, you will be greeted by the expeto_shell> prompt.

Basic Navigation and Help⚓︎

The CLI features a hierarchical, folder-like structure categorized by network types and functions (e.g., lte for 4G Core, nr for 5G Core, debug for operational commands).

  • List Directory (ls): Displays sub-directories, connected instances, and available commands (nouns and verbs) in the current context.
  • Change Directory (cd): Navigates through the command hierarchy. For example, cd lte moves into the 4G Core command set, and cd ../nr moves back and into the 5G Core command set.
  • Auto-complete (Tab): Press Tab at any time to auto-complete commands, noun names, or see available options. This is highly recommended to explore available parameters.
  • Help (help or ?): Type help to see descriptions of commands in the current folder. You can also append help to a specific command to view its usage and options (e.g., cmd sync-sub help).

Command Structure⚓︎

Commands in the Expeto CLI generally follow a Verb + Noun + [Options] pattern.

Verbs (Operations)⚓︎

Verbs define the action to be taken on a resource. The available verbs depend on the noun: * read: Lists available records (e.g., a list of subscribers) or retrieves the detailed state of a specific record. * add: Adds a new record. * update: Modifies an existing record. * delete: Deletes a record. * show: Displays the current operational state of a component. * set: Changes the operational state of a component. * cmd: Executes a specific operational command or action.

Nouns (Resources)⚓︎

Nouns represent the network components or data entities you are interacting with. To see available nouns for your current context, use the ls command. * 4G (LTE) Examples: hss, mme, sgw, pgw, enodeb. * 5G (NR) Examples: amf, smf, upf, udr, udsf.

Common Operations Examples⚓︎

1. Exploring Available Commands⚓︎

Upon logging in, you can see the top-level directories:

expeto_shell>ls
Sub-directories:
-debug
-lte      4G Core
-nr       5G Core

2. Listing Components and Supported Actions⚓︎

Navigate into a specific core (e.g., 5G) and list available resources:

expeto_shell>cd nr
expeto_shell>nr>ls

Instances:
- name: birch-udr1
  description: HttpEndpoint(url=http://local-udr.default.svc.cluster.local:8080)

┌────────────┬────────────┐
│Noun        │Verb(s)     │
├────────────┼────────────┤
│amf         │read, delete│
│associations│read        │
│smf         │delete, read│
│udsf        │read, delete│
│...         │...         │
└────────────┴────────────┘

3. Reading and Paginating Records⚓︎

To view records for a specific component, like the Unstructured Data Storage Function (UDSF):

expeto_shell>nr>read udsf
If there are many records, you can paginate through the results using the -o (offset) option:
expeto_shell>nr>read udsf -o 10

4. Viewing Detailed Record Information⚓︎

To see the full configuration or state of a specific record, append the record ID to the read command:

expeto_shell>nr>read udsf UPF:Controller:enterprise1:slice1:SmfInitHbInfoKey

5. Executing Operational Actions with cmd⚓︎

Operational actions, such as forcing a subscriber synchronization, are found in the debug directory. Always use help to understand the required parameters before executing a cmd.

expeto_shell>nr>cd ../debug/ops/
expeto_shell>debug>ops>cmd sync-sub help
The output will detail the options available, such as targeting a specific imsi, running it siteWide, or performing a specific type of sync (e.g., UPDATE, RECREATE).