Deploy locks
Add a deploy lock for commands that are unsafe to run concurrently.
The lock is taken by creating a `mrsk_lock` directory on the primary
host. Details of who took the lock are added to a details file in that
directory.
Additional CLI commands have been added to manual release and acquire
the lock and to check its status.
```
Commands:
mrsk lock acquire -m, --message=MESSAGE # Acquire the deploy lock
mrsk lock help [COMMAND] # Describe subcommands or one specific subcommand
mrsk lock release # Release the deploy lock
mrsk lock status # Report lock status
Options:
-v, [--verbose], [--no-verbose] # Detailed logging
-q, [--quiet], [--no-quiet] # Minimal logging
[--version=VERSION] # Run commands against a specific app version
-p, [--primary], [--no-primary] # Run commands only on primary host instead of all
-h, [--hosts=HOSTS] # Run commands on these hosts instead of all (separate by comma)
-r, [--roles=ROLES] # Run commands on these roles instead of all (separate by comma)
-c, [--config-file=CONFIG_FILE] # Path to config file
# Default: config/deploy.yml
-d, [--destination=DESTINATION] # Specify destination to be used for config file (staging -> deploy.staging.yml)
-B, [--skip-broadcast], [--no-skip-broadcast] # Skip audit broadcasts
```
If we add support for running multiple deployments on a single server
we'll need to extend the locking to lock per deployment.
This commit is contained in:
28
README.md
28
README.md
@@ -440,11 +440,11 @@ traefik:
|
||||
|
||||
### Configure docker options for traefik
|
||||
|
||||
We allow users to pass additional docker options to the trafik container like
|
||||
We allow users to pass additional docker options to the trafik container like
|
||||
|
||||
```yaml
|
||||
traefik:
|
||||
options:
|
||||
options:
|
||||
publish:
|
||||
- 8080:8080
|
||||
volumes:
|
||||
@@ -692,6 +692,30 @@ Note that by default old containers are pruned after 3 days when you run `mrsk d
|
||||
|
||||
If you wish to remove the entire application, including Traefik, containers, images, and registry session, you can run `mrsk remove`. This will leave the servers clean.
|
||||
|
||||
## Locking
|
||||
|
||||
Commands that are unsafe to run concurrently will take a deploy lock while they run. The lock is the `mrsk_lock` directory on the primary server.
|
||||
|
||||
You can check the lock status with:
|
||||
|
||||
```
|
||||
mrsk lock status
|
||||
|
||||
Locked by: AN Other at 2023-03-24 09:49:03 UTC
|
||||
Version: 77f45c0686811c68989d6576748475a60bf53fc2
|
||||
Message: Automatic deploy lock
|
||||
```
|
||||
|
||||
You can also manually acquire and release the lock
|
||||
|
||||
```
|
||||
mrsk lock acquire -m "Doing maintanence"
|
||||
```
|
||||
|
||||
```
|
||||
mrsk lock release
|
||||
```
|
||||
|
||||
## Stage of development
|
||||
|
||||
This is beta software. Commands may still move around. But we're live in production at [37signals](https://37signals.com).
|
||||
|
||||
Reference in New Issue
Block a user