Docs Home
Viewing docs for
All deployments

Use vvctl

On this page

Command Mode

vvctl [COMMAND] runs in non-interactive mode. Common command groups include:

  • login and logout: Manage authentication. Non-interactive login honors VV_API_TOKEN or VV_EMAIL and VV_PASSWORD.
  • get, create, delete, start, stop, run, validate, and logs: Perform day-to-day resource management.
  • install and uninstall: Use BYOC agent helpers.
  • config: View or edit users, servers, and contexts.
  • mcp: Start the MCP server for AI assistant integration. See MCP Server.

Use --help on any command or subcommand to see available flags.

Output Formats

Most get commands can format output as json, yaml, or a table. Use the --output (or -o) option to specify a format. The default format is table.

You can pipe json or yaml output to other tools for filtering. For example, to get only the RUNNING deployments from a workspace, run the following command:

BASH
1vvctl get deployments --workspace migpc9aex9vi1v --o yaml | yq eval '.deployments[] | select(.latestJob.status == "RUNNING")'

Workspaces and namespaces

  • Many commands require a workspace; if --workspace is omitted, VV_WORKSPACE is used.
  • Namespaces default to VV_NAMESPACE or fall back to default.

Example: Create a Deployment

You can create a deployment using the vvctl create deployment command. Currently, vvctl supports only JAR and Python deployments.

You can pass all parameters as command-line options:

BASH
1$ vvctl create deployment jar \
2  --name vvctl-jar-deployment \
3  --jar-uri s3i://vvc-tenant-migpc9aex9vi1v-west-1/artifacts/namespaces/default/FlinkQuickStart-1.0-SNAPSHOT-6ba7d69116ac0be045dc7f413346815e.jar \
4  --main-arguments "--input /flink/usrlib/Shakespeare.txt" \
5  --entry-class org.example.WordCountStreaming \
6  --additional-dependencies s3i://vvc-tenant-migpc9aex9vi1v-eu-west-1/artifacts/namespaces/default/Shakespeare.txt

As always, you can get more information with the option --help to see what other options you can use.

Alternatively, you can define the deployment in a YAML file. Given a file named for example jar-deployment.yml:

BASH
1$ cat jar-deployment.yml
2---
3artifact:
4  kind: JAR
5  jarArtifact:
6    additionalDependencies:
7      - s3i://vvc-tenant-migpc9aex9vi1v-eu-west-1/artifacts/namespaces/default/Shakespeare.txt
8    entryClass: org.example.WordCountStreaming
9    jarUri: s3i://vvc-tenant-migpc9aex9vi1v-west-1/artifacts/namespaces/default/FlinkQuickStart-1.0-SNAPSHOT-6ba7d69116ac0be045dc7f413346815e.jar
10    mainArgs: '--input /flink/usrlib/Shakespeare.txt'
11name: vvctl-jar-deployment

You can create the deployment with the flag -f:

BASH
1vvctl create deployment jar -f jar-deployment.yml

Interactive Mode

When you run vvctl without any commands, you enter an interactive mode. This Text-based User Interface (TUI) lets you manage your workspaces and deployments visually.

  • Navigation: Use the arrow keys or h, j, k, and l to move.
  • Selection: Press Space or Enter to select an item.
  • Exit: Press q to quit the application.

The footer shows the available shortcuts for your current view.

vvctl interactive mode

TUI Configuration

The interactive mode reads tui.config.json, tui.config.toml, or tui.config.yaml from your vvctl configuration directory. The file is automatically created on the first run. You can use this file to adjust keybindings, colors, and refresh rates.

Was this helpful?