bosh-cloudfoundry 0.7.0.alpha.3 → 0.7.0.alpha.4

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.
Files changed (31) hide show
  1. data/ChangeLog.md +1 -0
  2. data/bosh-cloudfoundry.gemspec +2 -1
  3. data/lib/bosh/cli/commands/cf.rb +35 -130
  4. data/lib/bosh/cloudfoundry.rb +5 -2
  5. data/lib/bosh/cloudfoundry/deployment_attributes.rb +35 -30
  6. data/lib/bosh/cloudfoundry/deployment_file.rb +192 -0
  7. data/lib/bosh/cloudfoundry/release_version.rb +67 -0
  8. data/lib/bosh/cloudfoundry/release_version_cpi.rb +55 -0
  9. data/lib/bosh/cloudfoundry/release_version_cpi_size.rb +49 -0
  10. data/spec/assets/v132/aws/large.yml +393 -0
  11. data/spec/assets/v132/aws/medium.yml +350 -0
  12. data/spec/deployment_file_spec.rb +92 -0
  13. data/spec/plugin_spec.rb +32 -47
  14. data/spec/release_version_cpi_size_spec.rb +13 -0
  15. data/spec/release_version_cpi_spec.rb +17 -0
  16. data/spec/release_version_spec.rb +38 -0
  17. data/spec/spec_helper.rb +2 -0
  18. data/templates/v132/aws/large/deployment_file.yml.erb +431 -0
  19. data/templates/v132/aws/{dev → large}/spec +0 -0
  20. data/templates/v132/{openstack/dev → aws/medium}/deployment_file.yml.erb +35 -23
  21. data/templates/v132/{openstack/dev → aws/medium}/spec +0 -0
  22. data/templates/v132/aws/small/README.md +5 -0
  23. data/templates/v132/aws/spec +6 -0
  24. data/templates/v132/openstack/large/deployment_file.yml.erb +431 -0
  25. data/templates/v132/openstack/large/spec +6 -0
  26. data/templates/v132/{aws/dev → openstack/medium}/deployment_file.yml.erb +35 -23
  27. data/templates/v132/openstack/medium/spec +6 -0
  28. data/templates/v132/openstack/spec +6 -0
  29. metadata +46 -10
  30. data/lib/bosh/cloudfoundry/release_versioned_template.rb +0 -48
  31. data/spec/release_versioned_template_spec.rb +0 -12
@@ -0,0 +1,6 @@
1
+ ---
2
+ resources:
3
+ - small
4
+ - medium
5
+ - large
6
+ - xlarge
@@ -12,7 +12,7 @@
12
12
  # cf:
13
13
  # dns: mycloud.com
14
14
  # ip_addresses: ['1.2.3.4']
15
- # core_size: medium
15
+ # deployment_size: medium
16
16
  # security_group: cf
17
17
  # persistent_disk: 4096
18
18
  #
@@ -24,11 +24,13 @@
24
24
  #
25
25
  # $ bosh diff deployment_file.yml.erb
26
26
  #
27
+ no_ssl = true
28
+ protocol = no_ssl ? "http" : "https"
27
29
  name = find("name")
28
30
  dns = find("properties.cf.dns")
29
31
  ip_addresses = find("properties.cf.ip_addresses")
30
32
  security_group = find("properties.cf.security_group")
31
- core_size = find("properties.cf.core_size")
33
+ deployment_size = find("properties.cf.deployment_size")
32
34
  persistent_disk = find("properties.cf.persistent_disk")
33
35
  common_password = find("properties.cf.common_password")
34
36
  -%>
@@ -84,6 +86,7 @@ resource_pools:
84
86
 
85
87
  jobs:
86
88
  - name: core
89
+ release: cf-release
87
90
  template:
88
91
  - syslog_aggregator
89
92
  - nats
@@ -103,7 +106,9 @@ jobs:
103
106
  properties:
104
107
  db: databases
105
108
 
109
+ # need a separate job for uaa due to https://github.com/cloudfoundry/cf-release/issues/104
106
110
  - name: uaa
111
+ release: cf-release
107
112
  template:
108
113
  - uaa
109
114
  instances: 1
@@ -113,6 +118,7 @@ jobs:
113
118
  default: [dns, gateway]
114
119
 
115
120
  - name: api
121
+ release: cf-release
116
122
  template:
117
123
  - cloud_controller_ng
118
124
  - gorouter
@@ -132,6 +138,7 @@ jobs:
132
138
  db: databases
133
139
 
134
140
  - name: dea
141
+ release: cf-release
135
142
  template:
136
143
  - dea_next
137
144
  instances: 1
@@ -145,7 +152,7 @@ properties:
145
152
  name: <%= name %>
146
153
  dns: <%= dns %>
147
154
  ip_addresses: <%= ip_addresses.inspect %>
148
- core_size: <%= core_size %>
155
+ deployment_size: <%= deployment_size %>
149
156
  security_group: <%= security_group %>
150
157
  persistent_disk: <%= persistent_disk %>
151
158
  common_password: <%= common_password %>
@@ -194,7 +201,7 @@ properties:
194
201
  serialization_data_server:
195
202
  port: 8080
196
203
  logging_level: debug
197
- upload_token: 8f7COGvThwlmulIzAgOHxMXurBrG364k
204
+ upload_token: <%= common_password %>
198
205
  upload_timeout: 10
199
206
 
200
207
  collector:
@@ -206,7 +213,7 @@ properties:
206
213
  nfs_server:
207
214
  address: 0.core.default.<%= name %>.microbosh
208
215
  #network: "*.<%= name %>.microbosh"
209
- #idmapd_domain: iad1
216
+ #idmapd_domain: <%= dns %>
210
217
 
211
218
  debian_nfs_server:
212
219
  no_root_squash: true
@@ -263,9 +270,9 @@ properties:
263
270
  cc: &cc
264
271
  logging_level: debug
265
272
  external_host: ccng
266
- srv_api_uri: http://api.<%= dns %>
273
+ srv_api_uri: <%= protocol %>://api.<%= dns %>
267
274
  cc_partition: default
268
- db_encryption_key: "b963127302433579"
275
+ db_encryption_key: <%= common_password %>
269
276
  bootstrap_admin_email: admin@<%= dns %>
270
277
  bulk_api_password: <%= common_password %>
271
278
  uaa_resource_id: cloud_controller
@@ -273,6 +280,7 @@ properties:
273
280
  staging_upload_password: <%= common_password %>
274
281
  resource_pool:
275
282
  resource_directory_key: cc-resources
283
+ # Local provider when using NFS
276
284
  fog_connection:
277
285
  provider: Local
278
286
  local_root: /var/vcap/shared
@@ -284,16 +292,16 @@ properties:
284
292
  ccng: *cc
285
293
 
286
294
  login:
287
- protocol: http
295
+ protocol: <%= protocol %>
288
296
  links:
289
- home: http://console.<%= dns %>
290
- passwd: http://console.<%= dns %>/password_resets/new
291
- signup: http://console.<%= dns %>/register
297
+ home: <%= protocol %>://console.<%= dns %>
298
+ passwd: <%= protocol %>://console.<%= dns %>/password_resets/new
299
+ signup: <%= protocol %>://console.<%= dns %>/register
292
300
 
293
301
  uaa:
294
- url: http://uaa.<%= dns %>
302
+ url: <%= protocol %>://uaa.<%= dns %>
295
303
  spring_profiles: postgresql
296
- no_ssl: true
304
+ no_ssl: <%= no_ssl %>
297
305
  catalina_opts: -Xmx768m -XX:MaxPermSize=256m
298
306
  resource_id: account_manager
299
307
  jwt:
@@ -330,7 +338,6 @@ properties:
330
338
  client:
331
339
  autoapprove:
332
340
  - cf
333
- - vmc
334
341
  - my
335
342
  - micro
336
343
  - support-signon
@@ -342,32 +349,37 @@ properties:
342
349
  authorities: oauth.login
343
350
  secret: <%= common_password %>
344
351
  authorized-grant-types: authorization_code,client_credentials,refresh_token
345
- redirect-uri: http://login.<%= dns %>
352
+ redirect-uri: <%= protocol %>://login.<%= dns %>
346
353
  support-services:
347
354
  scope: scim.write,scim.read,openid,cloud_controller.read,cloud_controller.write
348
- secret: ssosecretsso
355
+ secret: <%= common_password %>
349
356
  authorized-grant-types: authorization_code,client_credentials
350
- redirect-uri: http://support-signon.<%= dns %>
357
+ redirect-uri: <%= protocol %>://support-signon.<%= dns %>
351
358
  authorities: portal.users.read
352
359
  access-token-validity: 1209600
353
360
  refresh-token-validity: 1209600
354
- vmc:
361
+ oauth2service:
362
+ secret: <%= common_password %>
363
+ scope: openid,cloud_controller.read,cloud_controller.write
364
+ authorities: uaa.resource,oauth.service,clients.read,clients.write,clients.secret
365
+ authorized-grant-types: client_credentials,implicit
366
+ redirect-uri: <%= protocol %>://rewritten-later.cloudfoundry.com/whatever
355
367
  override: true
356
- authorized-grant-types: password,implicit
357
- authorities: uaa.none
358
- scope: cloud_controller.read,cloud_controller.write,openid,password.write,cloud_controller.admin,scim.read,scim.write
368
+ autoapprove: true
359
369
  cf:
360
370
  override: true
361
371
  authorized-grant-types: password,implicit,refresh_token
362
372
  authorities: uaa.none
363
373
  scope: cloud_controller.read,cloud_controller.write,openid,password.write,cloud_controller.admin,scim.read,scim.write
374
+ access-token-validity: 7200
375
+ refresh-token-validity: 1209600
364
376
  servicesmgmt:
365
377
  override: true
366
- secret: serivcesmgmtsecret
378
+ secret: <%= common_password %>
367
379
  scope: openid,cloud_controller.read,cloud_controller.write
368
380
  authorities: uaa.resource,oauth.service,clients.read,clients.write,clients.secret
369
381
  authorized-grant-types: authorization_code,client_credentials,password,implicit
370
- redirect-uri: http://servicesmgmt.yourdomain.com/auth/cloudfoundry/callback
382
+ redirect-uri: <%= protocol %>://servicesmgmt.mycloud.com/auth/cloudfoundry/callback
371
383
  autoapprove: true
372
384
  scim:
373
385
  users:
@@ -0,0 +1,6 @@
1
+ ---
2
+ resources:
3
+ - small
4
+ - medium
5
+ - large
6
+ - xlarge
@@ -0,0 +1,6 @@
1
+ ---
2
+ deployment_sizes:
3
+ - medium
4
+ - large
5
+
6
+ default_deployment_size: medium
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh-cloudfoundry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.alpha.3
4
+ version: 0.7.0.alpha.4
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-10 00:00:00.000000000 Z
12
+ date: 2013-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bosh_cli
@@ -75,6 +75,22 @@ dependencies:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
77
  version: 2.13.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: fakeweb
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
78
94
  description: Create & manage Cloud Foundry deployments
79
95
  email:
80
96
  - drnicwilliams@gmail.com
@@ -387,15 +403,30 @@ files:
387
403
  - lib/bosh/cli/commands/cf.rb
388
404
  - lib/bosh/cloudfoundry.rb
389
405
  - lib/bosh/cloudfoundry/deployment_attributes.rb
390
- - lib/bosh/cloudfoundry/release_versioned_template.rb
406
+ - lib/bosh/cloudfoundry/deployment_file.rb
407
+ - lib/bosh/cloudfoundry/release_version.rb
408
+ - lib/bosh/cloudfoundry/release_version_cpi.rb
409
+ - lib/bosh/cloudfoundry/release_version_cpi_size.rb
410
+ - spec/assets/v132/aws/large.yml
411
+ - spec/assets/v132/aws/medium.yml
412
+ - spec/deployment_file_spec.rb
391
413
  - spec/plugin_spec.rb
392
- - spec/release_versioned_template_spec.rb
414
+ - spec/release_version_cpi_size_spec.rb
415
+ - spec/release_version_cpi_spec.rb
416
+ - spec/release_version_spec.rb
393
417
  - spec/spec_helper.rb
394
418
  - templates/README.md
395
- - templates/v132/aws/dev/deployment_file.yml.erb
396
- - templates/v132/aws/dev/spec
397
- - templates/v132/openstack/dev/deployment_file.yml.erb
398
- - templates/v132/openstack/dev/spec
419
+ - templates/v132/aws/large/deployment_file.yml.erb
420
+ - templates/v132/aws/large/spec
421
+ - templates/v132/aws/medium/deployment_file.yml.erb
422
+ - templates/v132/aws/medium/spec
423
+ - templates/v132/aws/small/README.md
424
+ - templates/v132/aws/spec
425
+ - templates/v132/openstack/large/deployment_file.yml.erb
426
+ - templates/v132/openstack/large/spec
427
+ - templates/v132/openstack/medium/deployment_file.yml.erb
428
+ - templates/v132/openstack/medium/spec
429
+ - templates/v132/openstack/spec
399
430
  homepage: ''
400
431
  licenses:
401
432
  - MIT
@@ -411,7 +442,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
411
442
  version: '0'
412
443
  segments:
413
444
  - 0
414
- hash: -1493789515290037622
445
+ hash: 273282452716595843
415
446
  required_rubygems_version: !ruby/object:Gem::Requirement
416
447
  none: false
417
448
  requirements:
@@ -425,6 +456,11 @@ signing_key:
425
456
  specification_version: 3
426
457
  summary: Create & manage Cloud Foundry deployments using bosh in AWS & OpenStack
427
458
  test_files:
459
+ - spec/assets/v132/aws/large.yml
460
+ - spec/assets/v132/aws/medium.yml
461
+ - spec/deployment_file_spec.rb
428
462
  - spec/plugin_spec.rb
429
- - spec/release_versioned_template_spec.rb
463
+ - spec/release_version_cpi_size_spec.rb
464
+ - spec/release_version_cpi_spec.rb
465
+ - spec/release_version_spec.rb
430
466
  - spec/spec_helper.rb
@@ -1,48 +0,0 @@
1
- module Bosh::Cloudfoundry
2
- # This project should support all known versions of Cloud Foundry back to v132.
3
- # v132 was the first release of Cloud Foundry v2.
4
- # The project also supports the different CPIs that are supported by bosh.
5
- # The project also supports different basic sizings/compositions (small dev deployments
6
- # or large, high-availability production deployments). Each sizing might scale out differently.
7
- #
8
- # To achieve these goals it includes templates for each combination of CPI & sizing & release version.
9
- #
10
- # This class calculates which deployment template to use for the current deployment.
11
- class ReleaseVersionedTemplate
12
- attr_reader :cpi_label
13
- attr_reader :deployment_size_name
14
-
15
- def initialize(release_version_number, cpi_label, deployment_size_name)
16
- @release_version_number = release_version_number
17
- @cpi_label = cpi_label
18
- @deployment_size_name = deployment_size_name
19
- raise "release_version_number must be an integer" unless release_version_number.is_a?(Fixnum)
20
- end
21
-
22
- def deployment_attributes_class
23
- Bosh::Cloudfoundry::DeploymentAttributes
24
- end
25
-
26
- def template_file_path
27
- File.join(template_base_path, minimum_release_version_number, cpi_label, deployment_size_name, "deployment_file.yml.erb")
28
- end
29
-
30
- def spec_file_path
31
- File.join(template_base_path, minimum_release_version_number, cpi_label, deployment_size_name, "spec")
32
- end
33
-
34
- def spec
35
- YAML.load_file(spec_file_path)
36
- end
37
-
38
- # TODO implement a real algorithm when there is a 2nd release & 2nd set of templates
39
- def minimum_release_version_number
40
- "v132"
41
- end
42
-
43
- private
44
- def template_base_path
45
- File.expand_path("../../../../templates", __FILE__)
46
- end
47
- end
48
- end
@@ -1,12 +0,0 @@
1
- require "bosh/cloudfoundry/release_versioned_template"
2
-
3
- describe Bosh::Cloudfoundry::ReleaseVersionedTemplate do
4
- subject { Bosh::Cloudfoundry::ReleaseVersionedTemplate.new(132, "aws", "dev") }
5
- it "path to template" do
6
- subject.template_file_path.should =~ %r{v132/aws/dev/deployment_file.yml.erb$}
7
- end
8
-
9
- it "path to template spec" do
10
- subject.spec_file_path.should =~ %r{v132/aws/dev/spec$}
11
- end
12
- end