docs.coopcloud.tech/docs/abra/cheat-sheet.md

2.6 KiB
Raw Blame History

title
Cheat sheet

Abra cheat sheet

!!! info not all flags are listed here.

!!! warning Definitely set up autocomplete or you'll be sad

`abra autocomplete bash/zsh/fizsh`

create and deploy a new app:

  • abra app new $RECIPE flags: -s/--server, -D/--domain, -S/--secrets, -p/--pass
  • abra app config $APPNAME
  • abra app secret generate $APPNAME -a flags: -p/--pass, -a/--all
  • abra app deploy $APPNAME flags: -f/--force, -C/--chaos

undeploy and remove an app

  • back up any data you don't want to lose
  • abra app undeploy $APPNAME
  • abra app rm --volumes $APPNAME flags: -f/--force, -V/--volumes

add/remove server

  • abra server add $SERVER $USERNAME $SSH_PORT flags: -p/--provision, -l/--local
  • abra server remove $SERVER flags: -s/--server

upgrade abra

  • abra upgrade flags: --rc

upgrade a recipe

  • abra recipe upgrade $RECIPE flags: -x,y,z/--major,minor,patch
  • abra recipe sync $RECIPE flags: -x,y,z
  • abra recipe release $RECIPE [$VERSION] flags: -p/--publish, -r/--dry-run, -x,y,z

make a change to a recipe

  • edit the files in ~/.abra/recipe/$RECIPENAME
  • deploy the changed version to your test instance
  • determine how serious your change is (semver.org for reference)
  • abra recipe release $RECIPE [$VERSION]

Advanced Listing using jq

Several abra commands can output JSON formatted tables, and can thus be queried and filtered with the tool jq. We can also format these outputs with t 11:51 v into a pretty table.

Currently, abra recipe ls, abra server ls, and abra app ls support the -m machine readable output flag which outputs JSON.

Filter recipes by "category"

abra recipe ls -m | jq '[.[] | select(.category == "Utilities") ]' | tv

As you can see we, we're selecting all recipes where category is "Utilities".

Filter apps by state deployed

!!! info abra app ls -S queries each server in your added server list, where as without the -S it only lists from your local copy of the sever files (thus providing no information about actual state of the apps)

!!! info abra app ls lists apps grouped into a server object, with statistics about the server. In jq we can select the entire apps list with .[].apps[].

abra app ls -m -S |jq '[.[].apps[] | select(.status == "deployed") | del(.upgrade)]' |tv

The del(.upgrade) filter filters out available versions for the recipe in question for that row. It could be useful to leave in if you want a list of deployed apps that need an upgrade.