vagrant-orchestrate 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +10 -0
- data/README.md +7 -2
- data/docs/strategy.md +8 -9
- data/lib/vagrant-orchestrate/command/push.rb +3 -3
- data/lib/vagrant-orchestrate/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9057f96a7ecd5de9313d115b4c9dc0e0e43b47bf
|
4
|
+
data.tar.gz: 9155032e7fc9a2366c9e60e4c22c4466399a7e85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbe677786084f036f395bf0e5cb0790560674eaefdfd47ba355a6890e047fb8573d16295360c7d37b7a6c6f1167d9ecbc6c756f5bf405c638cedd430dd7df879
|
7
|
+
data.tar.gz: 677b58e92422f62a2d063fe54e1bbffc8a0d95eb3b057b92eb066b4e2f8b2a53a5c1bb22f2f87087a0dd84eccb5e48d63e887db3a3614d13b4152e39fc1b77df
|
data/.travis.yml
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.0.0
|
4
|
+
deploy:
|
5
|
+
provider: rubygems
|
6
|
+
gem: vagrant-orchestrate
|
7
|
+
on:
|
8
|
+
tags: true
|
9
|
+
api_key:
|
10
|
+
secure: qKr5F4kkezl1Vp+wfPX/8IO/7O6lqVqut6/Op1baALCWTtrSLyJpBND1fWaKVf01NZiJTmNXhCTHAEzZjbGkiqBpSqMdR2g8ISxEgj8hScw46RLmYBzH6RdL503O1j7HHyJNf2cUPQjjzLNriPowYhp92aut4z0bMCxZer7bd8o=
|
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
+
[](https://travis-ci.org/Cimpress-MCP/vagrant-orchestrate)
|
2
|
+
[](http://badge.fury.io/rb/vagrant-orchestrate)
|
3
|
+
|
1
4
|
# Vagrant Orchestrate
|
2
5
|
|
6
|
+

|
7
|
+
|
3
8
|
This is a Vagrant 1.6+ plugin that allows orchestrated deployments
|
4
9
|
to already provisioned (non-elastic) servers on top of the excellent vagrant-managed-servers plugin.
|
5
10
|
It features a powerful templating `init` command and is designed from the
|
@@ -262,8 +267,8 @@ The push command is currently limited by convention to vagrant machines that use
|
|
262
267
|
|
263
268
|
#### Deployment Strategy
|
264
269
|
|
265
|
-
Vagrant Orchestrate supports several deployment [strategies](docs/strategy.md) including parallel, canary and
|
266
|
-
|
270
|
+
Vagrant Orchestrate supports several deployment [strategies](docs/strategy.md) including parallel, canary, and
|
271
|
+
half and half.
|
267
272
|
|
268
273
|
You can push changes to all of your servers in parallel with
|
269
274
|
|
data/docs/strategy.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Deployment Strategies
|
2
2
|
|
3
3
|
Vagrant Orchestrate supports several deployment strategies including parallel and
|
4
|
-
|
4
|
+
half and half. Here we'll cover how to use the various strategies as well as describing
|
5
5
|
situations when each might be useful.
|
6
6
|
|
7
7
|
## Strategies
|
@@ -36,9 +36,8 @@ provision [trigger](https://github.com/emyl/vagrant-triggers) to run a smoke tes
|
|
36
36
|
|
37
37
|
config.orchestrate.strategy = :canary
|
38
38
|
|
39
|
-
###
|
40
|
-
|
41
|
-
strategy deploys to half of the cluster in parallel, then the other half, with
|
39
|
+
### Half and Half
|
40
|
+
Deploys to half of the cluster in parallel, then the other half, with
|
42
41
|
a pause in between. This won't manage any of your load balancing or networking
|
43
42
|
configuration for you, but if your application has a healthcheck that your load
|
44
43
|
balancer respects, it should be easy to turn it off at the start of your provisioning
|
@@ -47,19 +46,19 @@ then this will be the best blend of getting the deployment done quickly and main
|
|
47
46
|
a running application. If the total number of target servers is odd then the smaller
|
48
47
|
number will be deployed to first.
|
49
48
|
|
50
|
-
$ vagrant orchestrate push --strategy
|
49
|
+
$ vagrant orchestrate push --strategy half_half
|
51
50
|
|
52
|
-
config.orchestrate.strategy = :
|
51
|
+
config.orchestrate.strategy = :half_half
|
53
52
|
|
54
|
-
### Canary
|
53
|
+
### Canary Half and Half
|
55
54
|
Combines the two immediately above - deploying to a single
|
56
55
|
server, pausing, then to half of the remaining cluster in parallel, pausing, and then the other half,
|
57
56
|
also in parallel. This is good if you have a large number of servers and want to do a
|
58
57
|
smoke test of a single server before committing to pushing to half of your farm.
|
59
58
|
|
60
|
-
$ vagrant orchestrate push --strategy
|
59
|
+
$ vagrant orchestrate push --strategy canary_half_half
|
61
60
|
|
62
|
-
config.orchestrate.strategy = :
|
61
|
+
config.orchestrate.strategy = :canary_half_half
|
63
62
|
|
64
63
|
## Specifying a strategy
|
65
64
|
|
@@ -63,7 +63,7 @@ module VagrantPlugins
|
|
63
63
|
|
64
64
|
# Handle a couple of them more tricky edges.
|
65
65
|
strategy = :serial if machines.size == 1
|
66
|
-
strategy = :
|
66
|
+
strategy = :half_half if strategy.to_sym == :canary_half_half && machines.size == 2
|
67
67
|
|
68
68
|
case strategy.to_sym
|
69
69
|
when :serial
|
@@ -74,11 +74,11 @@ module VagrantPlugins
|
|
74
74
|
when :canary
|
75
75
|
# A single canary server and then the rest
|
76
76
|
result = deploy(options, machines.take(1), machines.drop(1))
|
77
|
-
when :
|
77
|
+
when :half_half
|
78
78
|
# Split into two (almost) equal groups
|
79
79
|
groups = split(machines)
|
80
80
|
result = deploy(options, groups.first, groups.last)
|
81
|
-
when :
|
81
|
+
when :canary_half_half
|
82
82
|
# A single canary and then two equal groups
|
83
83
|
canary = machines.take(1)
|
84
84
|
groups = split(machines.drop(1))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-orchestrate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christopher Baldauf
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- .gitignore
|
77
77
|
- .rspec
|
78
78
|
- .rubocop.yml
|
79
|
+
- .travis.yml
|
79
80
|
- Gemfile
|
80
81
|
- LICENSE
|
81
82
|
- README.md
|