bosh-gen 0.16.2 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +13 -5
  2. data/.rspec +3 -0
  3. data/.travis.yml +16 -0
  4. data/ChangeLog.md +110 -89
  5. data/Gemfile +7 -1
  6. data/Guardfile +4 -8
  7. data/README.md +52 -22
  8. data/Rakefile +10 -0
  9. data/bosh-gen.gemspec +7 -5
  10. data/lib/bosh/gen/cli.rb +20 -28
  11. data/lib/bosh/gen/generators/job_generator.rb +9 -10
  12. data/lib/bosh/gen/generators/job_generator/templates/jobs/%job_name%_simple/templates/bin/%job_name%_ctl.tt +5 -5
  13. data/lib/bosh/gen/generators/new_release_generator.rb +63 -68
  14. data/lib/bosh/gen/generators/new_release_generator/templates/jobs/%project_name_hyphenated%/templates/bin/%job_name%_ctl.tt +5 -5
  15. data/lib/bosh/gen/generators/new_release_generator/templates/jobs/%project_name_hyphenated%/templates/data/properties.sh.erb +6 -0
  16. data/lib/bosh/gen/generators/new_release_generator/templates/templates/infrastructure-aws-ec2.yml.tt +7 -5
  17. data/lib/bosh/gen/generators/new_release_generator/templates/templates/infrastructure-warden.yml.tt +3 -4
  18. data/lib/bosh/gen/generators/new_release_generator/templates/templates/jobs.yml.tt +3 -0
  19. data/lib/bosh/gen/generators/new_release_generator/templates/templates/make_manifest.tt +18 -2
  20. data/lib/bosh/gen/generators/new_release_generator/templates/templates/stub.yml.tt +2 -1
  21. data/lib/bosh/gen/settings.rb +61 -0
  22. data/lib/bosh/gen/version.rb +1 -1
  23. data/spec/fixtures/deployment_manifests/2_jobs_1_ip_8196_disk_with_numeric.yml +64 -0
  24. data/spec/fixtures/releases/s3test-boshrelease/.gitignore +18 -0
  25. data/spec/fixtures/releases/s3test-boshrelease/README.md +51 -0
  26. data/spec/fixtures/releases/s3test-boshrelease/Rakefile +15 -0
  27. data/spec/fixtures/releases/s3test-boshrelease/config/blobs.yml +1 -0
  28. data/spec/fixtures/releases/s3test-boshrelease/config/final.yml +5 -0
  29. data/spec/fixtures/releases/s3test-boshrelease/jobs/.gitkeep +0 -0
  30. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/monit +5 -0
  31. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/spec +13 -0
  32. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/bin/monit_debugger +13 -0
  33. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/bin/s3test_ctl +36 -0
  34. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/config/.gitkeep +0 -0
  35. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/config/s3test.conf.erb +5 -0
  36. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/data/properties.sh.erb +10 -0
  37. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/helpers/ctl_setup.sh +81 -0
  38. data/spec/fixtures/releases/s3test-boshrelease/jobs/s3test/templates/helpers/ctl_utils.sh +156 -0
  39. data/spec/fixtures/releases/s3test-boshrelease/packages/.gitkeep +0 -0
  40. data/spec/fixtures/releases/s3test-boshrelease/src/.gitkeep +0 -0
  41. data/spec/fixtures/releases/s3test-boshrelease/templates/deployment.yml +35 -0
  42. data/spec/fixtures/releases/s3test-boshrelease/templates/infrastructure-aws-ec2.yml +40 -0
  43. data/spec/fixtures/releases/s3test-boshrelease/templates/infrastructure-warden.yml +107 -0
  44. data/spec/fixtures/releases/s3test-boshrelease/templates/jobs.yml +30 -0
  45. data/spec/fixtures/releases/s3test-boshrelease/templates/make_manifest +54 -0
  46. data/spec/fixtures/releases/s3test-boshrelease/templates/stub.yml +13 -0
  47. data/spec/generators/deployment_manifest_generator_spec.rb +19 -14
  48. data/spec/generators/{jobs/webapp_job_generator_spec.rb → job_generator_spec.rb} +8 -13
  49. data/spec/generators/new_release_generator_spec.rb +70 -0
  50. data/spec/models/bosh_config_spec.rb +3 -3
  51. data/spec/models/deployment_manifest_spec.rb +16 -6
  52. data/spec/models/release_detection_spec.rb +6 -6
  53. data/spec/spec_helper.rb +27 -7
  54. data/spec/support/fog.rb +3 -0
  55. data/spec/{generators → support}/generator_spec_helper.rb +47 -6
  56. metadata +105 -36
  57. data/spec/models/extract_spec.rb +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2b8bef11d778d849e2b0dd3d258fbaa16460951b
4
- data.tar.gz: ea6ed1e3c9b929f6c79b48fec68c8c21ec172d9d
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NmY5YjI3MTFiNTQ5YWVlNzZiODVjNTkzMjc5ZTUyOWI3YjcwOGZiNA==
5
+ data.tar.gz: !binary |-
6
+ N2UxN2QxZTQ2MjNhMTY0YjNlMWRhZjRjYTg0ZWJmMjE5ZmQxYmZiYw==
5
7
  SHA512:
6
- metadata.gz: 94390d7d2e4b1a648fc9d6e8d0395c4b360e1a5412c8bd77f181eae625a91abb15ee33597b82c09468253f62d8d76b5955841e25a8cc8d363ac87e2d431fd842
7
- data.tar.gz: 1ad80fce083b510811135c95e1a6446ba9074c1cc9ec093ae33bd901a3fd9f1333b8d258427e96c86ccb762bc217b36098912a539599f37c240a1a268d681861
8
+ metadata.gz: !binary |-
9
+ MWMwN2NmNTc5OTYwYTYwMjMxODdkODMwNTRlOGE1NjhjYmNkMjViZTJhZDQx
10
+ NjUxOWVlNzZhMDAyMWMyOTFjNGFjN2Q4YmExNGVlZmQzNGQwMmE1MjY1OGFi
11
+ Njg4YTE5ODAxMWNlNGE2ZDEwZmQ2ZTA4ZmI4YWNkNWVjNDhlMzk=
12
+ data.tar.gz: !binary |-
13
+ YjBmODA3NzM3MzVhYmI4MTg3ZDYyMzQ3ZWUyMzZjODMwNGRmNGEyMjRmMzNj
14
+ NmRmNGZlODk2Zjk4Njc3OTllMzJjYjY1NTAyMjEyYjAyNmM1ZjZiMzM5NjU3
15
+ OGJhNDE3OGM2MmM2NDc5YzcyYTFiODY1YTQ4MWUwZWQ0NzM5NTg=
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format progress
2
+ --color
3
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ language: ruby
2
+ script: bundle exec rake spec
3
+ rvm:
4
+ - ruby-1.9.3
5
+ # - rbx-19mode
6
+ - ruby-2.0.0
7
+ - ruby-2.1.0
8
+ notifications:
9
+ email:
10
+ recipients:
11
+ - drnicwilliams@gmail.com
12
+ on_success: change
13
+ on_failure: always
14
+ env:
15
+ global:
16
+ - secure: ""
data/ChangeLog.md CHANGED
@@ -1,57 +1,68 @@
1
- # Change Log
1
+ Change Log
2
+ ==========
2
3
 
3
- ## v0.16.0
4
+ v0.17.0
5
+ -------
4
6
 
5
- * `new` creates an initial job of the same name.
6
- * default to running job process as vcap:vcap [v0.16.1]
7
- * Default $INCLUDE_PATH & $LD_LIBRARY_PATH to '' if not set [v0.16.1]
8
- * Fix make_manifest for aws-ec2 [v0.16.2]
9
- * Remove references to OpenStack until we have spiff templates generated [v0.16.2]
7
+ - `new --s3` - no more read-only credentials; no more encryption keys
8
+
9
+ v0.16.0
10
+ -------
11
+
12
+ - `new` creates an initial job of the same name.
13
+ - default to running job process as vcap:vcap [v0.16.1]
14
+ - Default $INCLUDE_PATH & $LD_LIBRARY_PATH to '' if not set [v0.16.1]
15
+ - Fix make_manifest for aws-ec2 [v0.16.2]
16
+ - Remove references to OpenStack until we have spiff templates generated [v0.16.2]
10
17
 
11
18
  The initial job is configured to have the xyz.leader_address property, and an example conf file that shows how to use it.
12
19
 
13
- ## v0.15.0
20
+ v0.15.0
21
+ -------
14
22
 
15
- * Create packages from existing Aptitude .deb packages with `package --apt`
16
- * Assume project & job names have hyphens in templates
17
- * Templates default to latest stemcell [Aristoteles Neto]
23
+ - Create packages from existing Aptitude .deb packages with `package --apt`
24
+ - Assume project & job names have hyphens in templates
25
+ - Templates default to latest stemcell [Aristoteles Neto]
18
26
 
19
- ## v0.14.0
27
+ v0.14.0
28
+ -------
20
29
 
21
- * templates/make_manifest & example spiff templates generated
22
- * no more static example bosh-lite.yml templates
30
+ - templates/make_manifest & example spiff templates generated
31
+ - no more static example bosh-lite.yml templates
23
32
 
24
- ## v0.13.0
33
+ v0.13.0
34
+ -------
25
35
 
26
- * bosh-lite example manifests generated for new releases
27
- * created folder always has -boshrelease suffix [v0.13.1]
28
- * use public https in generated readme [v0.13.2]
29
- * bosh-lite-solo.yml is a template [v0.13.3]
36
+ - bosh-lite example manifests generated for new releases
37
+ - created folder always has -boshrelease suffix [v0.13.1]
38
+ - use public https in generated readme [v0.13.2]
39
+ - bosh-lite-solo.yml is a template [v0.13.3]
30
40
 
31
- ## v0.12.0
41
+ v0.12.0
42
+ -------
32
43
 
33
- * Supports bosh_cli 1.5.0.pre gems
34
- * dev.yml uses same release name as final.yml for blob reuse
35
- * sets reuse_compilation_vms: true now
36
- * generated project README focuses on final releases [v0.12.1]
37
- * Default bucket name is project folder name [v0.12.1]
44
+ - Supports bosh_cli 1.5.0.pre gems
45
+ - dev.yml uses same release name as final.yml for blob reuse
46
+ - sets reuse_compilation_vms: true now
47
+ - generated project README focuses on final releases [v0.12.1]
48
+ - Default bucket name is project folder name [v0.12.1]
38
49
 
39
- ## v0.11.0
50
+ v0.11.0
51
+ -------
40
52
 
41
53
  Added:
42
54
 
43
- * New blobstore provider: OpenStack Swift [thanks Ferran!]
44
- * `package` --src/-s specifies already internal sources/blobs; example: --src 'myapp/**/*'
45
- * `job` includes an empty `templates/config` to suggest where config templates should go
55
+ - New blobstore provider: OpenStack Swift [thanks Ferran!]
56
+ - `package` --src/-s specifies already internal sources/blobs; example: --src 'myapp/**/*'
57
+ - `job` includes an empty `templates/config` to suggest where config templates should go
46
58
 
47
59
  Improved:
48
60
 
49
- * `new` - --s3 flag looks for `~/.bosh_s3_credentials` file for default AWS S3 credentials
61
+ - `new` - --s3 flag looks for `~/.bosh_s3_credentials` file for default AWS S3 credentials
50
62
 
51
- For common defaults on s3 blobstore credentials, create an
52
- `~/.bosh_s3_credentials` file that looks like:
63
+ For common defaults on s3 blobstore credentials, create an`~/.bosh_s3_credentials` file that looks like:
53
64
 
54
- ``` yaml
65
+ ```yaml
55
66
  readonly_access_key: XXX
56
67
  readonly_secret_access_key: XXX
57
68
  readwrite_access_key: XXX
@@ -60,45 +71,48 @@ readwrite_secret_access_key: XXX
60
71
 
61
72
  Other changes:
62
73
 
63
- * Using 1.0 release candidate for bosh_cli
64
- * `micro` - fix accidental gitignore of prepare/prepare_spec
65
- * `new` - `bosh-gen new project-boshrelease`; name is "project", initial dev name is "project-dev"
66
- * `manifest` - default stemcell is bosh-stemcell-0.6.4
67
- * `manifest` - creates `#{name}.yml` instead of `#{name}/manifest.yml`
68
- * `job` - example file not in a subfolder anymore
74
+ - Using 1.0 release candidate for bosh_cli
75
+ - `micro` - fix accidental gitignore of prepare/prepare_spec
76
+ - `new` - `bosh-gen new project-boshrelease`; name is "project", initial dev name is "project-dev"
77
+ - `manifest` - default stemcell is bosh-stemcell-0.6.4
78
+ - `manifest` - creates `#{name}.yml` instead of `#{name}/manifest.yml`
79
+ - `job` - example file not in a subfolder anymore
69
80
 
70
- ## v0.10.0
81
+ v0.10.0
82
+ -------
71
83
 
72
84
  Added:
73
85
 
74
- * `micro` - create a "micro" job that packages all/some jobs into a single VM
86
+ - `micro` - create a "micro" job that packages all/some jobs into a single VM
75
87
 
76
88
  Improved:
77
89
 
78
- * `new` - read/write credentials now in private.yml; more useful default README
90
+ - `new` - read/write credentials now in private.yml; more useful default README
79
91
 
80
- ## v0.9.0
92
+ v0.9.0
93
+ ------
81
94
 
82
95
  Major news
83
96
 
84
- * `job` - more powerful initial scripts; templates nested in folders; scripts are much cleaner to read; scripts in bin/ & helpers/ do not have ERb; only data/properties.sh.erb & config/ are for ERb.
97
+ - `job` - more powerful initial scripts; templates nested in folders; scripts are much cleaner to read; scripts in bin/ & helpers/ do not have ERb; only data/properties.sh.erb & config/ are for ERb.
85
98
 
86
99
  Other changes:
87
100
 
88
- * `package` - detects .zip files (in addition to .tar.gz) and includes useful default unpacking script in `packaging`; describe available env vars in `packaging` script
89
- * `manifest` - auto-detects current BOSH UUID
90
- * `extract-pkg` - now a single argument - the path of the source package folder
91
- * `extract-job` - now a single argument - the path of the source job folder
101
+ - `package` - detects .zip files (in addition to .tar.gz) and includes useful default unpacking script in `packaging`; describe available env vars in `packaging` script
102
+ - `manifest` - auto-detects current BOSH UUID
103
+ - `extract-pkg` - now a single argument - the path of the source package folder
104
+ - `extract-job` - now a single argument - the path of the source job folder
92
105
 
93
- ## v0.8.0
106
+ v0.8.0
107
+ ------
94
108
 
95
109
  Changed:
96
110
 
97
- * `package` - the `packaging` script include default tar/configure/make sequence for all tarballs
111
+ - `package` - the `packaging` script include default tar/configure/make sequence for all tarballs
98
112
 
99
113
  For example, `bosh-gen package nginx -f ..../blobs/nginx/`, the resulting `packaging` is:
100
114
 
101
- ``` bash
115
+ ```bash
102
116
  set -e # exit immediately if a simple command exits with a non-zero status
103
117
  set -u # report the usage of uninitialized variables
104
118
 
@@ -115,94 +129,101 @@ make install
115
129
 
116
130
  Changed:
117
131
 
118
- * `extract-job` & `extract-pkg` - copies files mentioned in specs
119
- * `package` - large files go into blobs/ folder
132
+ - `extract-job` & `extract-pkg` - copies files mentioned in specs
133
+ - `package` - large files go into blobs/ folder
120
134
 
121
135
  ### v0.8.2
122
136
 
123
137
  Bug fixes:
124
138
 
125
- * `extract-pkg` - missing #source_file helper
139
+ - `extract-pkg` - missing #source_file helper
126
140
 
127
- ## v0.7.0
141
+ v0.7.0
142
+ ------
128
143
 
129
144
  Added:
130
145
 
131
- * `extract-pkg` - extract a package and its dependencies from a target release
146
+ - `extract-pkg` - extract a package and its dependencies from a target release
132
147
 
133
148
  Changed/Renamed:
134
149
 
135
- * `extract` -> `extract-job`
136
- * `new` -> `.gitignore` includes `.vagrant`, to support `bosh-solo`
137
- * `manifest` -> update to soon-to-be-released stemcell 0.6.2
150
+ - `extract` -> `extract-job`
151
+ - `new` -> `.gitignore` includes `.vagrant`, to support `bosh-solo`
152
+ - `manifest` -> update to soon-to-be-released stemcell 0.6.2
138
153
 
139
- ## v0.6.0
154
+ v0.6.0
155
+ ------
140
156
 
141
157
  Added:
142
158
 
143
- * `extract` - extract a job and its dependent packages to the current release
159
+ - `extract` - extract a job and its dependent packages to the current release
144
160
 
145
161
  ### v0.6.1
146
162
 
147
- * `new` - ignore .blobs folder in releases
148
- * `manifest` - persistent_disk is an integer; added to common job too
163
+ - `new` - ignore .blobs folder in releases
164
+ - `manifest` - persistent_disk is an integer; added to common job too
149
165
 
150
166
  ### v0.6.2
151
167
 
152
- * `manifest` - provided IP addresses are distributed across jobs until it runs out
153
- * `manifest` - fix to allocation of persistent disk
168
+ - `manifest` - provided IP addresses are distributed across jobs until it runs out
169
+ - `manifest` - fix to allocation of persistent disk
154
170
 
155
- ## v0.5.0
171
+ v0.5.0
172
+ ------
156
173
 
157
- * `job` - takes a COMMAND argument
158
- * `source --blob/-b` - file stored in blobs/ folder instead of src/
159
- * `source` - packaging script includes standard configure/make/make install if .tar.gz or .tgz
174
+ - `job` - takes a COMMAND argument
175
+ - `source --blob/-b` - file stored in blobs/ folder instead of src/
176
+ - `source` - packaging script includes standard configure/make/make install if .tar.gz or .tgz
160
177
 
161
- ## v0.4
178
+ v0.4
179
+ ----
162
180
 
163
- * `job` - added --ruby flag to include a ruby/rack-specifc ctl script
164
- * releases include a rake task to document what properties are required
165
- * `manifest` - has a --disk/-d flag to assign a persistent disk to all VMs (common pool)
166
- * `job` - export some variables in ctl scripts so they are available to application
167
- * `job` - ctl script has logs/tail/clearlogs commands
181
+ - `job` - added --ruby flag to include a ruby/rack-specifc ctl script
182
+ - releases include a rake task to document what properties are required
183
+ - `manifest` - has a --disk/-d flag to assign a persistent disk to all VMs (common pool)
184
+ - `job` - export some variables in ctl scripts so they are available to application
185
+ - `job` - ctl script has logs/tail/clearlogs commands
168
186
 
169
- ## v0.3
187
+ v0.3
188
+ ----
170
189
 
171
190
  Added:
172
191
 
173
- * `template` - add a template/file to a job
174
- * `source` - download and add a source file/tarball to a package
192
+ - `template` - add a template/file to a job
193
+ - `source` - download and add a source file/tarball to a package
175
194
 
176
195
  ### v0.3.1 (never released)
177
196
 
178
197
  Added:
179
198
 
180
- * `manifest` - generate a deployment manifest for a release
199
+ - `manifest` - generate a deployment manifest for a release
181
200
 
182
201
  Fixed:
183
202
 
184
- * `job` - creates a monit script and a stub control script
203
+ - `job` - creates a monit script and a stub control script
185
204
 
186
205
  ### v0.3.2
187
206
 
188
- * `job` - ctl file has TODO to remind about PID file
189
- * `job` - use the provided release path to detect jobs
207
+ - `job` - ctl file has TODO to remind about PID file
208
+ - `job` - use the provided release path to detect jobs
190
209
 
191
210
  ### v0.3.3
192
211
 
193
- * `manifest` - introspect the release project for release + job information
212
+ - `manifest` - introspect the release project for release + job information
194
213
 
195
214
  ### v0.3.4
196
215
 
197
- * `manifest` - Force us-east-1e to ensure all VMs and volumes are always in the same AZ
216
+ - `manifest` - Force us-east-1e to ensure all VMs and volumes are always in the same AZ
198
217
 
199
- ## v0.2
218
+ v0.2
219
+ ----
200
220
 
201
221
  Added:
202
222
 
203
- * `package` - create package scaffold, including source files
204
- * `job` - create job scaffold
223
+ - `package` - create package scaffold, including source files
224
+ - `job` - create job scaffold
205
225
 
206
- ## v0.1
226
+ v0.1
227
+ ----
207
228
 
208
- * `new` - create new release
229
+ - `new` - create new release
data/Gemfile CHANGED
@@ -3,5 +3,11 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in bosh-gen.gemspec
4
4
  gemspec
5
5
 
6
+ if File.directory?("../cyoi")
7
+ gem "cyoi", path: "../cyoi"
8
+ end
9
+
6
10
  gem 'bosh_cli', '~> 1.1750'
7
- gem 'bosh_common', '~> 1.1750'
11
+ gem 'bosh_common', '~> 1.1750'
12
+
13
+ gem 'guard-rspec'
data/Guardfile CHANGED
@@ -1,9 +1,5 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'minitest' do
5
- # with Minitest::Spec
6
- watch(%r|^spec/(.*)_spec\.rb|)
7
- watch(%r|^lib/bosh/gen/(.*)([^/]+)\.rb|) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
8
- watch(%r|^spec/spec_helper\.rb|) { "spec" }
1
+ guard 'rspec', spec_paths: ["spec"] do
2
+ watch(%r{^spec/(.+_spec)\.rb$})
3
+ watch(%r{^lib/bosh/gen/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
9
5
  end
data/README.md CHANGED
@@ -1,30 +1,57 @@
1
- # BOSH Generators
1
+ BOSH Generators
2
+ ===============
2
3
 
3
4
  Generators for creating BOSH releases.
4
5
 
5
- ## Installation
6
+ New in 0.17: Creates blobstore/bucket when creating new release.
7
+
8
+ Installation
9
+ ------------
6
10
 
7
11
  This application requires Ruby 1.9 or 2.0 and is installed via RubyGems:
8
12
 
9
13
  $ gem install bosh-gen
10
14
 
11
- ## Usage
15
+ Usage
16
+ -----
12
17
 
13
18
  ```
14
- $ bosh-gen new my-new-project --s3
15
- $ bosh-gen new my-new-project --atmos
16
- $ bosh-gen new my-new-project --swift
17
- $ bosh-gen new my-new-project # local blobstore with a warning
19
+ $ bosh-gen new my-project
20
+ create
21
+ Auto-detected infrastructure API credentials at ~/.fog (override with $FOG)
22
+ 1. AWS (community)
23
+ 2. Alternate credentials
24
+ Choose an auto-detected infrastructure: 2
25
+
26
+ create README.md
27
+ create Rakefile
28
+ create jobs
29
+ create jobs/my-project/templates/bin/my_project_ctl
30
+ ...
31
+ create config/blobs.yml
32
+ create config/dev.yml
33
+ create config/private.yml
34
+ create config/final.yml
35
+ create .gitignore
36
+ run git init from "."
37
+
38
+ Next, change to BOSH release location:
39
+ cd ./my-project-boshrelease
40
+
41
+ Finally...
42
+ Attempting to create blobstore my-project-boshrelease... done
18
43
 
19
- $ cd my-new-project
44
+ Confirming: Using blobstore my-project-boshrelease
20
45
  ```
21
46
 
22
- **NEXT:** Edit `config/final.yml` with your S3, ATMOS or Swift credentials
47
+ Your project is now in the folder mentioned above:
23
48
 
24
49
  ```
25
- $ bosh create release
50
+ $ cd ./my-project-boshrelease
51
+ ```
26
52
 
27
- $ wget -P /tmp http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
53
+ ```
54
+ $ wget -P /tmp http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
28
55
  $ bosh-gen package ruby -f /tmp/ruby-1.9.3-p194.tar.gz
29
56
 
30
57
  $ bosh-gen job some-ruby-job -d ruby
@@ -53,7 +80,8 @@ $ bosh-gen template some-ruby-job config/some-config.ini
53
80
  force jobs/some-ruby-job/spec
54
81
  ```
55
82
 
56
- ## Quickly creating packages
83
+ Quickly creating packages
84
+ -------------------------
57
85
 
58
86
  There is a slow way to create a package, and there are three faster ways. Slow vs fast is not a debated about best vs worse. But sometimes you're in a hurry.
59
87
 
@@ -112,12 +140,13 @@ source /var/vcap/packages/apache2/profile.sh
112
140
 
113
141
  This is the last option, and it is not the best option. Many Debian packages will also start processes that have default configuration that is not correct for your use case. It may be fast to get the Debian packages; but additional work may be required by your jobs to stop and unhook the processes that are automatically started upon installation.
114
142
 
115
- ## Tutorial
143
+ Tutorial
144
+ --------
116
145
 
117
- To see how the various commands work together, let's create a new bosh release for [Cassandra](http://cassandra.apache.org/ "The Apache Cassandra Project").
146
+ To see how the various commands work together, let's create a new bosh release for [Cassandra](http://cassandra.apache.org/).
118
147
 
119
148
  ```
120
- $ bosh-gen new cassandra --s3
149
+ $ bosh-gen new cassandra
121
150
  $ cd cassandra
122
151
  $ bosh-gen extract-pkg ../cf-release/packages/dea_jvm7
123
152
  create packages/dea_jvm7
@@ -163,12 +192,12 @@ Look at all that goodness!
163
192
 
164
193
  A quick summary of these files:
165
194
 
166
- * The `monit` script uses `bin/monit_debugger` to help you debug any glitches in starting/stopping processes.
167
- * `ctl_setup.sh` setups up lots of common folders and env vars.
168
- * `ctl_utils.sh` comes from cf-release's common/utils.sh with some extra helper functions
169
- * `data/properties.sh.erb` is where you extract any `<%= properties.cassandra... %>` values from the deployment manifest.
170
- * `bin/cassandra_ctl` no longer needs to be an unreadable ERb template! Use the env variables you create in `data/properties.sh.erb` and normal bash if statements instead of ERb `<% if ... %>` templates.
171
- * `examples/...` is a folder for documenting example, valid deployment manifest properties for the release.
195
+ - The `monit` script uses `bin/monit_debugger` to help you debug any glitches in starting/stopping processes.
196
+ - `ctl_setup.sh` setups up lots of common folders and env vars.
197
+ - `ctl_utils.sh` comes from cf-release's common/utils.sh with some extra helper functions
198
+ - `data/properties.sh.erb` is where you extract any `<%= properties.cassandra... %>` values from the deployment manifest.
199
+ - `bin/cassandra_ctl` no longer needs to be an unreadable ERb template! Use the env variables you create in `data/properties.sh.erb` and normal bash if statements instead of ERb `<% if ... %>` templates.
200
+ - `examples/...` is a folder for documenting example, valid deployment manifest properties for the release.
172
201
 
173
202
  In `bin/cassandra_ctl` you now change "TODO" to `cassandra` and the rest of the tutorial is left to you, dear cassandra lover.
174
203
 
@@ -181,7 +210,8 @@ bosh upload release
181
210
 
182
211
  When you create a final release, you will first need to setup your AWS credentials in `config/final.yml`
183
212
 
184
- ## Contributing
213
+ Contributing
214
+ ------------
185
215
 
186
216
  1. Fork it
187
217
  2. Create your feature branch (`git checkout -b my-new-feature`)