vagrant-orchestrate 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/Cimpress-MCP/vagrant-orchestrate.svg?branch=master)](https://travis-ci.org/Cimpress-MCP/vagrant-orchestrate)
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/vagrant-orchestrate.svg)](http://badge.fury.io/rb/vagrant-orchestrate)
|
3
|
+
|
1
4
|
# Vagrant Orchestrate
|
2
5
|
|
6
|
+
![](http://i.imgur.com/71yAw5v.gif)
|
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
|