CLI for managing resources in InfluxDB v2
This repository decouples the influx
CLI from the OSS influxdb
codebase. Our goals are to:
- Make it easier to keep the CLI up-to-date with InfluxDB Cloud API changes
- Enable faster turn-around on fixes/features that only affect the CLI
- Allow the CLI to be built & released for a wider range of platforms than the server can support
Follow these steps to build the CLI. If you're updating your CLI build, see Updating openapi below.
-
Clone this repo (influx-cli) and change to your influx-cli directory.
git clone git@github.com:influxdata/influx-cli.git cd influx-cli
-
Build the CLI. The
make
andmake influx
commands write the new binary tobin/$(GOOS)/influx
.make
If you change or update your branch, you may also need to update influx-cli/openapi
and regenerate the client code.
influx-cli/openapi
is a Git submodule that contains the underlying API contracts and client used by the CLI.
We use OpenAPITools/openapi-generator
to generate
the HTTP client.
To update, run the following commands in your influx-cli
repo:
-
Update the openapi Git submodule. The following command pulls the latest commits for the branch and all submodules.
git pull --recurse-submodules
-
With Docker running locally, regenerate openapi.
make openapi
-
Rebuild the CLI
make
After building, use influx -h
to see the list of available commands.
The CLI supports generating completions for bash
, zsh
, and powershell
. To enable completions for a
single shell session, run one of these commands:
# For bash:
source <(influx completion bash)
# For zsh:
source <(influx completion zsh)
# For pwsh:
Invoke-Expression ((influx completion powershell) -join "`n`")
To enable completions across sessions, add the appropriate line to your shell's login profile (i.e. ~/.bash_profile
).
Run make test
to run unit tests.