bosh_cli_plugin_redis 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog.md CHANGED
@@ -8,11 +8,13 @@ Converted into a bosh plugin. Prefix "bosh" to the sub-commands below:
8
8
  prepare redis
9
9
  Prepare bosh for deploying one or more Redis services
10
10
 
11
- create redis [--name] [--size] [--security_group]
11
+ create redis [--name redis-<timestamp>] [--size small] [--disk 4096]
12
+ [--security-group default]
12
13
  Create a Redis service deployed upon target bosh
13
- --name Unique name for service (within bosh & cloud foundry)
14
- --size Size of provisioned VMs
15
- --security_group Security group to assign to provisioned VMs
14
+ --name redis-<timestamp> Unique bosh deployment name
15
+ --size small Size of provisioned VMs
16
+ --disk 4096 Size of persistent disk (Mb)
17
+ --security-group default Security group to assign to provisioned VMs
16
18
 
17
19
  show redis uri
18
20
  Show the redis URI for connection via bosh DNS
@@ -25,6 +27,7 @@ Note: the `cf bind-redis-env-var` command has been removed as it is a) specific
25
27
  Other features/fixes:
26
28
 
27
29
  * Validates the resource size with available sizes in the template [v0.2.1]
30
+ * `bosh create redis --disk 10000` to disk persistent disk size (Mb) [v0.2.2]
28
31
 
29
32
  ## v0.1 - redis-cf-plugin
30
33
 
data/README.md CHANGED
@@ -55,11 +55,17 @@ Uploading new redis release to bosh...
55
55
  To create/provision a new redis service you run the following command. By default, it will select the smallest known instance size.
56
56
 
57
57
  ```
58
- $ bosh create redis myapp-redis
59
- $ bosh create redis myapp-redis --size small
60
- $ bosh create redis myapp-redis --size medium
61
- $ bosh create redis myapp-redis --size large
62
- $ bosh create redis myapp-redis --size xlarge
58
+ $ bosh create redis
59
+ $ bosh create redis --size small
60
+ $ bosh create redis --size medium
61
+ $ bosh create redis --size large
62
+ $ bosh create redis --size xlarge
63
+ ```
64
+
65
+ By default the redis server is assigned a 4096 Mb persistent volume/disk. To change this value use `--disk`:
66
+
67
+ ```
68
+ $ bosh create redis myapp-redis --disk 8192
63
69
  ```
64
70
 
65
71
  NOTE: By default, the `default` security group is used. It must have port `6379` open.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "bosh_cli_plugin_redis"
5
- spec.version = "0.2.1"
5
+ spec.version = "0.2.2"
6
6
  spec.authors = ["Dr Nic Williams"]
7
7
  spec.email = ["drnicwilliams@gmail.com"]
8
8
  spec.description = %q{Create dedicated Redis servers using Bosh}
@@ -14,3 +14,5 @@ properties:
14
14
  redis:
15
15
  resource: medium
16
16
  security_group: redis-server
17
+ redis_persistent_disk: 4096
18
+
@@ -22,6 +22,7 @@ redis_sg = find("properties.redis.security_group")
22
22
  redis_port = 6379
23
23
  redis_password = random_string 12, :redis
24
24
  redis_resource = find("properties.redis.resource")
25
+ redis_persistent_disk = find("properties.redis.persistent_disk")
25
26
  -%>
26
27
  name: <%= find("name") %>
27
28
  director_uuid: <%= find("director_uuid") %>
@@ -98,10 +99,12 @@ jobs:
98
99
  default:
99
100
  - dns
100
101
  - gateway
102
+ persistent_disk: <%= redis_persistent_disk %>
101
103
 
102
104
  properties:
103
105
  redis:
104
106
  resource: <%= redis_resource %>
105
107
  security_group: <%= redis_sg %>
108
+ persistent_disk: <%= redis_persistent_disk %>
106
109
  port: <%= redis_port %>
107
110
  password: <%= redis_password %>
@@ -10,4 +10,5 @@ properties:
10
10
  description: Resource/flavor of instance to use
11
11
  - name: redis.security_group
12
12
  description: Security group for instance(s). Must have TCP ports 22 & 6379 open.
13
- default: default
13
+ - name: redis.persistent_disk
14
+ description: Size of persistent disk for servers
@@ -14,3 +14,4 @@ properties:
14
14
  redis:
15
15
  resource: medium
16
16
  security_group: redis-server
17
+ redis_persistent_disk: 4096
@@ -22,6 +22,7 @@ redis_sg = find("properties.redis.security_group")
22
22
  redis_port = 6379
23
23
  redis_password = random_string 12, :redis
24
24
  redis_resource = find("properties.redis.resource")
25
+ redis_persistent_disk = find("properties.redis.persistent_disk")
25
26
  -%>
26
27
  name: <%= find("name") %>
27
28
  director_uuid: <%= find("director_uuid") %>
@@ -98,10 +99,12 @@ jobs:
98
99
  default:
99
100
  - dns
100
101
  - gateway
102
+ persistent_disk: <%= redis_persistent_disk %>
101
103
 
102
104
  properties:
103
105
  redis:
104
106
  resource: <%= redis_resource %>
105
107
  security_group: <%= redis_sg %>
108
+ persistent_disk: <%= redis_persistent_disk %>
106
109
  port: <%= redis_port %>
107
110
  password: <%= redis_password %>
@@ -10,4 +10,5 @@ properties:
10
10
  description: Resource/flavor of instance to use
11
11
  - name: redis.security_group
12
12
  description: Security group for instance(s). Must have TCP ports 22 & 6379 open.
13
- default: default
13
+ - name: redis.persistent_disk
14
+ description: Size of persistent disk for servers
@@ -53,24 +53,27 @@ module Bosh::Cli::Command
53
53
  desc "Create a Redis service deployed upon target bosh"
54
54
  option "--name redis-<timestamp>", String, "Unique bosh deployment name"
55
55
  option "--size small", String, "Size of provisioned VMs"
56
+ option "--disk 4096", Integer, "Size of persistent disk (Mb)"
56
57
  option "--security-group default", String, "Security group to assign to provisioned VMs"
57
58
  def create_redis
58
59
  auth_required
59
60
 
60
61
  service_name = options[:name] || default_name
61
62
  resource_size = options[:size] || default_size
63
+ persistent_disk = options[:disk] || default_persistent_disk
62
64
  security_group = options[:security_group] || default_security_group
63
65
  redis_port = 6379
64
66
 
65
67
  bosh_status # preload
66
68
  nl
67
- say "CPI: #{bosh_cpi}"
69
+ say "CPI: #{bosh_cpi.make_green}"
68
70
  say "Deployment name: #{service_name.make_green}"
69
71
  say "Resource size: #{validated_resource_size_colored(resource_size)}"
72
+ say "Persistent disk: #{persistent_disk.to_s.make_green}"
70
73
  say "Security group: #{security_group.make_green}"
71
74
  nl
72
75
 
73
- step("Validating resource size", "Resource size must be in #{available_resource_sizes.join(', ')}", :fatal) do
76
+ step("Validating resource size", "Resource size must be in #{available_resource_sizes.join(', ')}", :non_fatal) do
74
77
  available_resource_sizes.include?(resource_size)
75
78
  end
76
79
 
@@ -81,6 +84,8 @@ module Bosh::Cli::Command
81
84
  cancel_deployment
82
85
  end
83
86
 
87
+ raise Bosh::Cli::ValidationHalted unless errors.empty?
88
+
84
89
  template_file = template_file("single_vm.yml.erb")
85
90
 
86
91
  # Create an initial deployment file; upon which the CPI-specific template will be applied below
@@ -154,6 +159,10 @@ module Bosh::Cli::Command
154
159
  "small"
155
160
  end
156
161
 
162
+ def default_persistent_disk
163
+ 4096
164
+ end
165
+
157
166
  def default_security_group
158
167
  "default"
159
168
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh_cli_plugin_redis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -104,7 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
104
  version: '0'
105
105
  segments:
106
106
  - 0
107
- hash: -3254480115549192426
107
+ hash: -4483315635940311713
108
108
  required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  none: false
110
110
  requirements:
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  version: '0'
114
114
  segments:
115
115
  - 0
116
- hash: -3254480115549192426
116
+ hash: -4483315635940311713
117
117
  requirements: []
118
118
  rubyforge_project:
119
119
  rubygems_version: 1.8.25