Command Line Interface (CLI)

Fluvio Command Line Interface (CLI) is the management tool utilized to provision and monitor Fluvio clusters. The CLI uses profiles to manage multiple Fluvio clusters.

Download and Install 

CLI binaries are available for download in github:

Copy binary to your bin path and make it executable.

To check CLI version, run:

$ fluvio version

Fluvio version : 0.6.0
Git Commit     : e467b7039b38d4400cdda5dfe9fdd0c2559c2f12
OS Details     : Darwin 19.5.0 x86_64
Rustc Version  : 1.46.0-nightly (daecab3 2020-07-10)

CLI Overview 

Fluvio CLI hierarchy has the following pattern: fluvio, module, operation followed by options and flags.

fluvio module operation [FLAGS] [OPTIONS]

Depending on context, options can be mandatory or optional. Mandatory options are shown in the CLI usage line. For example, in fluvio topic create :

fluvio topic create [FLAGS] [OPTIONS] <topic-name>
  • options: ‐‐topic-name is mandatory.

Modules 

Command line help is available at any level by appending -h or ‐‐help to the command. At top level, you can run fluvio with without arguments to get a list of available options.

$ fluvio 
Fluvio Command Line Interface

fluvio <SUBCOMMAND>

FLAGS:
    -h, --help    Prints help information

SUBCOMMANDS:
    consume       Reads messages from a topic/partition
    produce       Writes messages to a topic/partition
    spu           SPU operations
    spu-group     SPU group operations
    custom-spu    Custom SPU operations
    topic         Topic operations
    partition     Partition operations
    profile       Profile operations
    cluster       Cluster operations
    run           Run cluster component
    version       Prints the current fluvio version information
    help          Prints this message or the help of the given subcommand(s)

Top level fluvio CLI is organized by modules:

  • spu
  • topic
  • partitions

However, there are a few exceptions:

  • consume
  • produce

“Consume/Produce” are kept at top level as they frequently used operations and we chose convenience over convention.

Operations 

Operations describe module capabilities. For example, topic module has the ability to create, list, describe, or delete topics:

$ fluvio topic
Topic operations

fluvio topic <SUBCOMMAND>

FLAGS:
    -h, --help    Prints help information

SUBCOMMANDS:
    create      Creates a topic
    delete      Deletes a topic
    describe    Shows details of a topic
    list        Shows all topics
    help        Prints this message or the help of the given subcommand(s)

Other modules, such as spu have different options, hence different capabilities.

Options / Flags 

Options are module attributes, such as: -p, ‐‐partitions, followed by modifiers, whereas flags are attributes without value.

Mandatory options are shown in the syntax definition. All other flags and options are optional.

$ fluvio topic create --help
Create a topic

fluvio topic create [FLAGS] [OPTIONS] <topic-name>

FLAGS:
    -i, --ignore-rack-assignment    Ignore racks while computing replica assignment
    -d, --dry-run                   Validates configuration, does not provision
        --tls                       Enable TLS
        --enable-client-cert        TLS: use client cert
    -h, --help                      Prints help information

OPTIONS:
    -p, --partitions <partitions>           Number of partitions [default: 1]
    -r, --replication <integer>             Replication factor per partition [default: 1]
    -f, --replica-assignment <file.json>    Replica assignment file
    -c, --cluster <host:port>               Address of cluster
        --domain <domain>                   Required if client cert is used
        --client-cert <client-cert>         Path to TLS client certificate
        --client-key <client-key>           Path to TLS client private key
        --ca-cert <ca-cert>                 Path to TLS ca cert, required when client cert is enabled
    -P, --profile <profile>                 

ARGS:
    <topic-name>    Topic name

A small subset of the options , ‐‐sc, and ‐‐profile, are applied to every command. The purpose of these options is to help the CLI identify the location of the services where to send the command.

Fluvio Clusters 

The CLI generates commands for a specific cluster. The cluster is explicit when defined through the an option or implicit when derived from a profile. CLI options has higher precedence than profiles.

For additional information, checkout Fluvio Profiles section.