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 ltemoves into the 4G Core command set, andcd ../nrmoves back and into the 5G Core command set. - Auto-complete (Tab): Press
Tabat any time to auto-complete commands, noun names, or see available options. This is highly recommended to explore available parameters. - Help (
helpor?): Typehelpto see descriptions of commands in the current folder. You can also appendhelpto 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
-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
imsi, running it siteWide, or performing a specific type of sync (e.g., UPDATE, RECREATE).