- the format of a configuration file was changed:
- container parameters were separated from instance parameters
- a configuration file describes a list of instances, not just one
- added an abstraction over cloud providers. Spotty still supports only AWS, but now it's relatively easy to add any other cloud provider. As a result, all specific to AWS commands were moved under the "spotty aws" command.
- added an abstraction over volumes. Spotty still supports only EBS volumes, but now it's possible to
add support for EFS or S3 volumes.
- old configuration files are still supported, but a warning message will be displayed
- deletion policies are being applied through AWS API (corresponding lambda functions were removed from the CloudFormation template). So now deletion policies can be changed in a configuration file after an instance is started.
- changes for the "spotty run" command:
- a tmux window won't be killed once the process is exited. So now the user can see an output of the exited process. The "Ctrl+b, then x" combination of keys closes a tmux window.
- by default, the "spotty run" command won't log outputs from a script. But the user can use the "-l" flag to enable logging.
- added the "-r" flag to restart a tmux session without closing it. But before using it, the running process should be stopped, because a killed "docker exec" command won't kill a spawned process automatically (see the issue [here]( https://github.com/moby/moby/issues/9098)).
- scripts can be parametrized using [Mustache tags](https://mustache.github.io/). The user can specify parameters using the "-p" flag.
- custom commands can be integrated with Spotty using Python entry points
- instances won't write logs to the CloudWatch anymore
- volumes can be restored from a custom snapshot using its name
- added the "dry-run" flag for the "spotty start" command
- added the "debug-mode" flag for the "create-ami" command. In this case, an AMI will not be created and the user will be able to connect to the running instance.
- added the "spotty status" command that shows a current state of the instance
- added the "spotty download" command to download any project files from the instance
- added the "-l" flag for the "spotty ssh" command to list opened tmux sessions
- added the "amiId" parameter to the configuration. It can be useful to share Spotty AMI with users, so they won't need to create it.