lmscli

Lmscli is a python CLI tool to interact that allows you to interact with Bakfleet

Installation

In order to use lmscli, install uv. This tool will manage dependencies automatically.

Setup

Next, export the following variables

export BAKFLEET_PAT=<pat-here>

lmscli needs a biscuit to authenticate against Bakfleet, but keeping biscuits stored is not very safe. What the team came up with was a personal access token, or PAT, that can be exchanged for a biscuit in runtime.

To get the PAT please follow these steps:

  • Visit staging-spire if you are accessing dev and spire if you are accessing prod

  • Click the most recent release in β€œAssets” and download SPIRE-CLI for your platform

  • Once you have downloaded it, decompress it

  • Login to SPIRE using staging-spire auth login or spire auth login

  • Generate a PAT using staging-spire user create-pat or spire user create-pat(if you don’t already have one)

  • Retrieve PAT with staging-spire user get-pat or spire user get-pat (if you already have one)

NOTE: if you don’t have the user command contact IT Support.

Once you got the PAT, you are now able to provide a value for BAKFLEET_PAT:

export BAKFLEET_PAT="<email-address-used-to-login-to-spire>:<pat-printed-above>"

Running commands

uvx lmscli

lets you access bakfleet options see usage for more details of the commands

Instances

Commands to manage instances

usage: uvx lmscli instances [-h] {list,get} ...

positional arguments:
  {list,get}  Sub commands
    list      list instances
    get       get specific instance

options:
  -h, --help  show this help message and exit

Subscriptions

Commands to manage subscriptions

usage: uvx lmscli subscriptions [-h] {list,get} ...

positional arguments:
  {list,get}  Sub commands
    list      list subscriptions
    get       get specific subscription

options:
  -h, --help  show this help message and exit

Deployments

Commands to manage deployments

usage: uvx lmscli deployments [-h] {list,get,create} ...

positional arguments:
  {list,get,create}  Sub commands
    list             list deployments
    get              get specific deployment
    create           create a new deployment

options:
  -h, --help         show this help message and exit

Note: The creation of a deployment requires just a release with optional parameters for each of the other inputs as shown below

usage: uvx lmscli deployments create [-h] [--description DESCRIPTION] [--organization ORGANIZATION]
                                      [--subscription SUBSCRIPTION] [--selector SELECTOR]
                                      release

positional arguments:
  release               release

options:
  -h, --help            show this help message and exit
  --description DESCRIPTION
                        release description
  --organization ORGANIZATION
                        organization
  --subscription SUBSCRIPTION
                        subscription
  --selector SELECTOR   selector

Organizations

Commands to manage organizations

usage: uvx lmscli organizations [-h] {list,get} ...

positional arguments:
  {list,get}  Sub commands
    list      list organizations
    get       get specific organization

options:
  -h, --help         show this help message and exit

Releases

Commands to manage releases

usage: uvx lmscli releases [-h] {list,get,create,delete} ...

positional arguments:
  {list,get,create,delete}
                        Sub commands
    list                list releases
    get                 get specific release
    create              create a new release
    delete              delete a release

options:
  -h, --help            show this help message and exit

Note: The releases list supports more filtering as shownn below

usage: uvx lmscli releases list [-h] [--state {development,disabled,released,testing,unknown}]

options:
  -h, --help            show this help message and exit
  --verbose, -v         display all the information about all filtered releases
  --state {development,disabled,released,testing,unknown}
                        filter by state
  --json                output in json format
  --before BEFORE       give a version (in the form x or x.x or x.x.x) to filter only versions before a given version
  --after AFTER         give a version (in the form x or x.x or x.x.x) to filter only versions after a given version

When filtering for releases before/after or between