Quantum CLI Reference

See what we're up to: Runway is here! 🚀

quantum-cli #

A cli tool for Planetary Quantum

Usage #

quantum-cli [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]

Global Options #

  • –host: The quantum console (default “https://console.planetary-quantum.com”) [$QUANTUM_HOST, $PORTAINER_HOST]
  • –user, -u: The quantum user [$QUANTUM_USER, $PORTAINER_USER]
  • –password, -p: The quantum password [$QUANTUM_PASSWORD, $PORTAINER_PASSWORD]
  • –help, -h: show help
  • –version, -v: print the version

Files #

  • ~/.config/quantum/env: optional file to set default env vars, e.g.:

      QUANTUM_USER=someone
      QUANTUM_PASSWORD=somepassword
    
  • ~/.cache/quantum/jwt.json: login token cache

  • .quantum: YAML config file for stack update/create, inside the project directory. Full syntax described in quantum-cli validate --help

Commands #

validate #

Validate .quantum and Docker compose files

  • –project: Location of the project (default: current directory)

The .quantum file that’s validated here is in effect during ‘stack create’ and ‘stack update’.It’s a YAML file that in its most basic form can be used to specify the stack/compose file:

---
version: "1.0"
compose: a-different-stack-file.yml

It’s also possible to specify different “environments” (see the –environment flag in stack create/update):

 ---
 version: "1.0"
 compose: default-stack-file.yml
 environments:
   - name: staging
     compose: staging-stack-file.yml
   - name: production
     compose: production-stack-file.yml

Additionally, it can be used to trigger image build and publishing steps before deploying the stack:

 ---
 version: "1.0"
 build: docker build -t myregistry.example.com/my-image:latest .
 publish: docker push myregistry.example.com/my-image:latest
 compose: default-stack-file.yml

The ‘publish’ and ‘build’ steps can also optionally get overridden per environment:

 ---
 version: "1.0"
 compose: default-stack-file.yml
 build: make build-image
 environments:
    # implicitly, this also has the "build" step defined above
    - name: local
      compose: local-stack-file.yml
    # this uses its own build step
    - name: staging
      build: make build-staging-image
      publish: make push-staging-image
      compose: staging-stack-file.yml
    - name: prod
      publish: make push-prod-image
      compose: prod-stack-file.yml

endpoints #

Look up endpoints

Aliases: endpoint, e, ep

endpoints list, ls #

List endpoints

stacks #

Commands about stacks

Aliases: stack, s

stacks create, deploy #

Create a new stack. See also stack update --create.

  • –endpoint: The endpoint/cluster to use [$QUANTUM_ENDPOINT, $PORTAINER_ENDPOINT]
  • –stack: The name of the stack [$QUANTUM_STACK]
  • –project: Location of the project (default: current directory)
  • –environment: The environment to be used from your .quantum file
  • –wait: Wait until the stack is successfully deployed
  • –no-validate: Don’t run validate before deploying (not recommended)
  • –no-pre-pull: Don’t try to pull images before deploying (not recommended)

Uses the .quantum file, if it exists. See quantum-cli validate --help for details.

stacks list, ls #

List stacks

  • –endpoint: The endpoint/cluster to use [$QUANTUM_ENDPOINT, $PORTAINER_ENDPOINT]

stacks update #

Update a stack

  • –endpoint: The endpoint/cluster to use [$QUANTUM_ENDPOINT, $PORTAINER_ENDPOINT]
  • –stack: The name of the stack [$QUANTUM_STACK]
  • –project: Location of the project (default: current directory)
  • –environment: The environment to be used from your .quantum file
  • –create: Create the stack if it doesn’t exist, instead of reporting an error
  • –wait: Wait until the stack is successfully deployed
  • –no-validate: Don’t run validate before deploying (not recommended)
  • –no-pre-pull: Don’t try to pull images before deploying (not recommended)

Uses the .quantum file, if it exists. See quantum-cli validate --help for details.

stacks remove, rm #

Remove a stack

  • –endpoint: The endpoint/cluster to use [$QUANTUM_ENDPOINT, $PORTAINER_ENDPOINT]
  • –stack: The name of the stack [$QUANTUM_STACK]
  • –force: Don’t ask for confirmation

exec, shell, ssh #

Open a shell on a container, or run other commands

  • –endpoint: The endpoint/cluster to use [$QUANTUM_ENDPOINT, $PORTAINER_ENDPOINT]
  • –stack: The name of the stack [$QUANTUM_STACK]
  • –service: The name of the service [$QUANTUM_SERVICE]
  • –slot: Slot when using –stack/–service to select the container (default “-1”)
  • –container: ID of the container
  • –command, -c: The command to run (default “sh”)
  • –command-user: The user to run the command as

Basic usage: quantum-cli exec –endpoint my-node –stack my-stack –service my-service See also: quantum-cli ps

ps #

List tasks of an endpoint or stack or service

  • –endpoint: The endpoint/cluster to use [$QUANTUM_ENDPOINT, $PORTAINER_ENDPOINT]
  • –stack: The name of the stack [$QUANTUM_STACK]
  • –service: The name of the service [$QUANTUM_SERVICE]
  • –all: Show all tasks, including non-running ones

selfupdate, self-update #

Update quantum-cli to the latest version

migration, migrate #

Migrate a stack including volumes + configs from one endpoint to another

  • –source-endpoint: The source endpoint to migrate from [$QUANTUM_MIGRATION_ENDPOINT_SOURCE]
  • –stack: The name of the stack [$QUANTUM_STACK]
  • –target-endpoint: The endpoint to migrate to [$QUANTUM_MIGRATION_ENDPOINT_TARGET]
  • –target-stack: The full name of the target stack to clone/migrate to [$QUANTUM_MIGRATION_TARGET_STACK]
  • –node: For multi-node endpoints, please supply a node [$QUANTUM_MIGRATION_NODE]
  • –up: Start the target stack when deploying, the default is to copy everything scaled down
  • –force: Don’t ask for confirmation

help, h #

Shows a list of commands or help for one command