Skip to content

Releases: alajmo/sake

v0.15.1

25 Sep 10:00
72850d1
Compare
Choose a tag to compare

Fixes

  • Fix resolving identity file in ssh config correctly when ~ is used.
  • Fix public file not found when using ssh config

v0.15.0

10 Jun 20:14
15276ae
Compare
Choose a tag to compare

Features

  • Add support for multiple bastions

Misc

  • Update to go 1.20

v0.14.0

04 Jan 22:30
Compare
Choose a tag to compare

Features

  • Add ability to modify prefix in text and table themes
  • Hide tasks from auto-completion via spec attribute hidden: true
  • Add print option to limit output to stdout|stderr
  • Default to one of following identity files if no identity specified ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_dsa
  • Add ability to modify default timeout for ssh connections

Fixes

  • [BREAKING CHANGE]: No more duplicate tasks, specs, targets, and themes
  • Small fix when user config is specified but not found
  • Fix some small validation issues with batch and batch-p
  • A bunch of smaller fixes

v0.13.0

04 Dec 20:26
f989a69
Compare
Choose a tag to compare

Features

  • Add ability to register variables which are available to the next tasks
  • Add option to ignore errors for indiviual tasks
  • Add flag/spec --list-hosts option to list targetted hosts
  • Support output options csv/json/none
  • Add new task strategies: linear, host_pinned, free
    • linear: execute task for each host before proceeding to the next task (default)
    • host_pinned: executes tasks (serial) for a host before proceeding to the next host
    • free: tasks without waiting for other tasks
  • Add host ordering
    • inventory: The order is as provided by the inventory
    • reverse_inventory: The order is the reverse of the inventory
    • sorted: Hosts are alphabetically sorted by host
    • reverse_sorted: Hosts are sorted by host in reverse alphabetical order
    • random: Hosts are randomly ordered
  • Determine number of hosts to run in parallel
    • batch: specify number of hosts
    • batch_p: specify number of hosts in percentage
    • forks: max number of concurrent processes
  • Add option to display reports at end of tasks by using --report flag or specifying it in spec definition
    • recap: show basic report
    • rc: show return code for each host and task
    • task: show task status for each host and task
    • time: show time report for each host and task
    • all: show all reports
  • Add confirm/step task capability
    • confirm: for the root task
    • step: per task and host

Fixes

  • Fix omitting attribute align when creating a theme
  • Abort tasks prematurely when running in parallel and AnyErrorsFatal set to true
  • Fix server range (previously [2:100] didn't work as strings were compared)
  • Fix empty error for non existing working directory and update how work_dir works

Minor

  • Add option to omit empty columns via flag --omit-empty-columns and spec omit_empty_columns
  • Add option to specify target and spec via flags --target/--spec
  • Add description to targets and specs
  • Add server identity to environment variables
  • Add silent/describe attribute to spec definition
  • Add ssh user flag option

Changes

  • [BREAKING CHANGE]: Deprecated the parallel flag, use batch/batch_p/forks instead
  • [BREAKING CHANGE]: Rename default environment variables from SAKE_SERVER_* to S_*, and remove task default environment variables
  • [BREAKING CHANGE]: Shorthand flag for silent is now Q
  • Switch to default shell when evaluating inventory
  • If no command name is set on nested tasks, assign task-$i instead of task
  • If --limit flag is higher than available hosts, then select all hosts filtered
  • Update flag sorting
  • Rename --omit-empty to --omit-empty-rows
  • Building sake with go 1.19

v0.12.1

16 Oct 06:32
Compare
Choose a tag to compare

Fixes

  • Fix port out of range when using shorthand format for hosts

v0.12.0

09 Oct 21:29
Compare
Choose a tag to compare

Features

  • Add hosts keyword that supports having multiple hosts per server definition
    • Specify as a list
    • Specify as a string containing range (192.168.0.[1:10:2])
    • Use inventory attribute (kubectl get nodes)
  • Add silent flag to supress Running... spinner when running tasks
  • Support connection string instead of 3 fields: user@host:port
  • Support resolving IdentityFile in ssh config (~/.ssh/config)
  • Support resolving Includes in ssh config (~/.ssh/config)
  • Support glob pattern for Hosts (Host *)
  • Add bastion headers to list servers
  • Add flags/target config --limit & --limit-p to limit number of servers task is run on
  • Add filtering servers on host regex
  • Add invert flag on filtering servers
  • Add flag --all-headers for tasks and servers
  • Add sub-commands edit/list/describe [specs|targets]
  • Add 3 new table outputs (table-2, table-3, table-4)
  • [BREAKING CHANGE]: Simplified theme config, now it only accepts manipulation of rows and headers, not specific properties

Fixes

  • Use IdentitiesOnly if user specifies a IdentityFile
  • Default to Name, if description is not set, in auto-completion for tasks
  • Support lowercase ssh config keys (previously they had to be PascalCase)

Deprecated

  • [BREAKING CHANGE]: Removed environment variables SAKE_IDENTITY_FILE and SAKE_PASSWORD, users can use flags instead

v0.11.0

16 Sep 18:47
Compare
Choose a tag to compare

Fixes

  • Fix not being able to parse ssh config if match keyword found #35

Features

  • Support Bastion/jump host #32

v0.10.3

26 Aug 19:30
Compare
Choose a tag to compare

Fixes

  • Fix authentication failures [#30]
  • Previously known_hosts didn't work correctly when specifying port other than 22

Features

  • Resolve hosts from ssh_config
  • Support hashing known_host entries

v0.10.2

30 Jul 21:00
f88a63a
Compare
Choose a tag to compare

Fixes

  • Allow duplicate hosts
  • Fix correct exit code on remote/local task errors [#27]
  • Fix local WorkDir when it's not explicitly set

v0.10.1

26 Jun 07:40
Compare
Choose a tag to compare
  • Small fix for WorkDir being related to calling file when server is local