Skip to main content

expanso-cli job

expanso-cli job​

Manage jobs

Synopsis​

Manage jobs in Expanso.

What Is A Job?​

A job is a declarative specification for a data processing pipeline that runs on your edge nodes. Jobs are defined in YAML files containing: • name: Unique identifier for the job • type: Job type (currently only "pipeline" is supported) • config: Pipeline configuration (input, processors, output) • selector: Which nodes should run this job (label-based matching)

JOB vs PIPELINE: Jobs are the orchestration unit - they define WHAT runs and WHERE. Pipelines are the workload type - they define data processing logic. Today, jobs with type="pipeline" are the primary use case.

Job Lifecycle:​

  1. Deploy: Submit job spec to the control plane (validates and stores)
  2. Evaluate: Scheduler finds matching nodes based on selector
  3. Execute: Job runs on selected nodes (long-running, restarts on failure)
  4. Monitor: Track execution status and logs
  5. Update: Deploy new version (scheduler re-evaluates and updates executions)

Pipeline Structure:​

Pipelines process data through three stages: • Input: Where data comes from (files, HTTP, message queues, etc.) • Processors: Transformations, filtering, enrichment (optional) • Output: Where data goes (S3, databases, APIs, stdout, etc.)

Node Selectors:​

Target specific nodes using label-based selectors: selector: match_labels: region: us-west env: production

Common Workflows:​

Deploy a new job​

expanso-cli job deploy log-processor.yaml

List all jobs​

expanso-cli job list

Check job status​

expanso-cli job describe log-processor

See where job is running​

expanso-cli execution list --job log-processor

Update a job (new version triggers re-evaluation)​

expanso-cli job deploy log-processor.yaml

Stop a running job​

expanso-cli job stop log-processor

Options​

-h, --help help for job

Options inherited from parent commands​

--api-key string API key for authentication (e.g., exp_ak_...). Env: EXPANSO_CLI_AUTH_API_KEY (preferred; flag values show in ps output)
-e, --endpoint string API endpoint URL
-k, --insecure Skip TLS certificate verification
-p, --profile string Profile to use for configuration
--timeout string Request timeout duration
-v, --verbose Enable verbose logging

SEE ALSO​