bosh-gen 0.1.0 → 0.2.0
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.
- data/ChangeLog.md +12 -0
- data/README.md +23 -6
- data/lib/bosh/gen/cli.rb +2 -4
- data/lib/bosh/gen/generators/job_generator.rb +1 -2
- data/lib/bosh/gen/generators/job_generator/templates/{blobs/.gitkeep → .gitkeep} +0 -0
- data/lib/bosh/gen/generators/new_release_generator.rb +6 -5
- data/lib/bosh/gen/generators/package_generator.rb +15 -3
- data/lib/bosh/gen/generators/{job_generator/templates/jobs → package_generator/templates}/.gitkeep +0 -0
- data/lib/bosh/gen/version.rb +1 -1
- metadata +13 -18
- data/lib/bosh/gen/generators/job_generator/templates/packages/.gitkeep +0 -0
- data/lib/bosh/gen/generators/job_generator/templates/src/.gitkeep +0 -0
- data/lib/bosh/gen/generators/package_generator/templates/blobs/.gitkeep +0 -0
- data/lib/bosh/gen/generators/package_generator/templates/jobs/.gitkeep +0 -0
- data/lib/bosh/gen/generators/package_generator/templates/packages/.gitkeep +0 -0
- data/lib/bosh/gen/generators/package_generator/templates/src/.gitkeep +0 -0
data/ChangeLog.md
ADDED
data/README.md
CHANGED
@@ -24,19 +24,36 @@ $ bosh-gen new my-new-project --atmos
|
|
24
24
|
$ bosh-gen new my-new-project # local blobstore with a warning
|
25
25
|
|
26
26
|
$ cd my-new-project
|
27
|
+
```
|
28
|
+
|
29
|
+
**NEXT:** Edit `config/final.yml` with your S3 or ATMOS credentials
|
30
|
+
|
31
|
+
```
|
32
|
+
$ bosh create release
|
33
|
+
|
34
|
+
$ wget -P /tmp http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
|
35
|
+
$ bosh-gen package ruby -f /tmp/ruby-1.9.3-p194.tar.gz
|
36
|
+
|
37
|
+
$ bosh-gen job some-ruby-job -d ruby
|
38
|
+
|
39
|
+
$ git add .
|
40
|
+
$ git commit -m "added a job + 3 packages"
|
41
|
+
|
27
42
|
$ bosh create release
|
28
43
|
```
|
29
44
|
|
30
|
-
|
45
|
+
It is not ideal to include large source files, such as the 10Mb ruby tarball, in your git repository. Rather, use the blobstore for those:
|
31
46
|
|
32
47
|
```
|
33
|
-
$
|
34
|
-
$ bosh
|
35
|
-
$ bosh
|
36
|
-
|
48
|
+
$ rm -rf src/ruby/ruby-1.9.3-p194.tar.gz
|
49
|
+
$ bosh add blob /tmp/ruby-1.9.3-p194.tar.gz ruby
|
50
|
+
$ bosh upload blobs
|
51
|
+
|
52
|
+
$ bosh create release
|
37
53
|
```
|
38
54
|
|
39
|
-
|
55
|
+
|
56
|
+
|
40
57
|
|
41
58
|
## Contributing
|
42
59
|
|
data/lib/bosh/gen/cli.rb
CHANGED
@@ -23,7 +23,7 @@ module Bosh
|
|
23
23
|
|
24
24
|
desc "package NAME", "Create a new package"
|
25
25
|
method_option :dependencies, :aliases => ['-d'], :type => :array, :desc => "List of package dependencies"
|
26
|
-
method_option :files, :aliases => ['-f', '--src'], :type => :array, :desc => "List of
|
26
|
+
method_option :files, :aliases => ['-f', '--src'], :type => :array, :desc => "List of files copy into release"
|
27
27
|
def package(name)
|
28
28
|
dependencies = options[:dependencies] || []
|
29
29
|
files = options[:files] || []
|
@@ -33,12 +33,10 @@ module Bosh
|
|
33
33
|
|
34
34
|
desc "job NAME", "Create a new job"
|
35
35
|
method_option :dependencies, :aliases => ['-d'], :type => :array, :desc => "List of package dependencies"
|
36
|
-
method_option :templates, :aliases => ['-t'], :type => :array, :desc => "List of templates to use"
|
37
36
|
def job(name)
|
38
37
|
dependencies = options[:dependencies] || []
|
39
|
-
template_files = options[:template_files] || []
|
40
38
|
require 'bosh/gen/generators/job_generator'
|
41
|
-
Bosh::Gen::Generators::JobGenerator.start([name, dependencies
|
39
|
+
Bosh::Gen::Generators::JobGenerator.start([name, dependencies])
|
42
40
|
end
|
43
41
|
|
44
42
|
no_tasks do
|
@@ -8,7 +8,6 @@ module Bosh::Gen
|
|
8
8
|
|
9
9
|
argument :name
|
10
10
|
argument :dependencies, :type => :array
|
11
|
-
argument :template_files, :type => :array
|
12
11
|
|
13
12
|
def self.source_root
|
14
13
|
File.join(File.dirname(__FILE__), "job_generator", "templates")
|
@@ -42,7 +41,7 @@ module Bosh::Gen
|
|
42
41
|
end
|
43
42
|
|
44
43
|
def job_specification
|
45
|
-
config = { "name" => name, "packages" => dependencies, "templates" =>
|
44
|
+
config = { "name" => name, "packages" => dependencies, "templates" => {} }
|
46
45
|
create_file job_dir("spec"), YAML.dump(config)
|
47
46
|
end
|
48
47
|
|
File without changes
|
@@ -26,7 +26,7 @@ module Bosh::Gen
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def blobs_yaml
|
29
|
-
create_file "
|
29
|
+
create_file "config/blobs.yml", YAML.dump({})
|
30
30
|
end
|
31
31
|
|
32
32
|
# TODO - support other blobstores
|
@@ -34,28 +34,30 @@ module Bosh::Gen
|
|
34
34
|
config_dev = { "dev_name" => name }
|
35
35
|
create_file "config/dev.yml", YAML.dump(config_dev)
|
36
36
|
|
37
|
+
config_private = { "blobstore_secret" => 'BLOBSTORE_SECRET' }
|
38
|
+
create_file "config/private.yml", YAML.dump(config_private)
|
39
|
+
|
37
40
|
case blobstore_type
|
38
41
|
when :local
|
39
42
|
say_status "warning", "config/final.yml defaulting to local blobstore /tmp/blobstore", :yellow
|
40
|
-
config_private = {}
|
41
43
|
config_final = { "blobstore" => {
|
42
44
|
"provider" => "local",
|
43
45
|
"options" => { "blobstore_path" => '/tmp/blobstore' }
|
44
46
|
}
|
45
47
|
}
|
46
48
|
when :s3
|
47
|
-
config_private = { "blobstore_secret" => '
|
49
|
+
config_private = { "blobstore_secret" => 'BLOBSTORE_SECRET' }
|
48
50
|
config_final = { "blobstore" => {
|
49
51
|
"provider" => "s3",
|
50
52
|
"options" => {
|
51
53
|
"bucket_name" => "BOSH",
|
52
54
|
"access_key_id" => "AWS_ACCESS_KEY",
|
55
|
+
"secret_access_key" => "AWS_SECRET_ACCESS_KEY",
|
53
56
|
"encryption_key" => "PERSONAL_RANDOM_KEY",
|
54
57
|
}
|
55
58
|
}
|
56
59
|
}
|
57
60
|
when :atmos
|
58
|
-
config_private = { "blobstore_secret" => 'ATMOS_SECRET_KEY' }
|
59
61
|
config_final = { "blobstore" => {
|
60
62
|
"provider" => "atmos",
|
61
63
|
"options" => {
|
@@ -67,7 +69,6 @@ module Bosh::Gen
|
|
67
69
|
}
|
68
70
|
end
|
69
71
|
|
70
|
-
create_file "config/private.yml", YAML.dump(config_private)
|
71
72
|
create_file "config/final.yml", YAML.dump(config_final)
|
72
73
|
end
|
73
74
|
|
@@ -51,14 +51,22 @@ module Bosh::Gen
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
+
# Copy the local source files into src/NAME/filename, unless filename
|
55
|
+
# already exists as a blob in blobs/NAME/filename.
|
54
56
|
def copy_src_files
|
55
|
-
files.each do |
|
56
|
-
|
57
|
+
files.each do |file_path|
|
58
|
+
file_name = File.basename(file_path)
|
59
|
+
src_file = src_dir(file_name)
|
60
|
+
if File.exist? blob_dir(file_name)
|
61
|
+
say "Blob '#{file_name}' exists as a blob, skipping..."
|
62
|
+
else
|
63
|
+
copy_file File.expand_path(file_path), src_file
|
64
|
+
end
|
57
65
|
end
|
58
66
|
end
|
59
67
|
|
60
68
|
def package_specification
|
61
|
-
src_files = files.map {|f| "
|
69
|
+
src_files = files.map {|f| "#{name}/#{File.basename(f)}"}
|
62
70
|
config = { "name" => name, "dependencies" => dependencies, "files" => src_files }
|
63
71
|
create_file package_dir("spec"), YAML.dump(config)
|
64
72
|
end
|
@@ -72,6 +80,10 @@ module Bosh::Gen
|
|
72
80
|
"src/#{name}/#{path}"
|
73
81
|
end
|
74
82
|
|
83
|
+
def blob_dir(path)
|
84
|
+
"blobs/#{name}/#{path}"
|
85
|
+
end
|
86
|
+
|
75
87
|
# Run a command in git.
|
76
88
|
#
|
77
89
|
# ==== Examples
|
data/lib/bosh/gen/generators/{job_generator/templates/jobs → package_generator/templates}/.gitkeep
RENAMED
File without changes
|
data/lib/bosh/gen/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh-gen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &70119538265220 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70119538265220
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bosh_cli
|
27
|
-
requirement: &
|
27
|
+
requirement: &70119538264800 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70119538264800
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70119538264380 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70119538264380
|
47
47
|
description: Generators for creating BOSH releases
|
48
48
|
email:
|
49
49
|
- drnicwilliams@gmail.com
|
@@ -53,6 +53,7 @@ extensions: []
|
|
53
53
|
extra_rdoc_files: []
|
54
54
|
files:
|
55
55
|
- .gitignore
|
56
|
+
- ChangeLog.md
|
56
57
|
- Gemfile
|
57
58
|
- LICENSE
|
58
59
|
- README.md
|
@@ -62,20 +63,14 @@ files:
|
|
62
63
|
- lib/bosh/gen.rb
|
63
64
|
- lib/bosh/gen/cli.rb
|
64
65
|
- lib/bosh/gen/generators/job_generator.rb
|
65
|
-
- lib/bosh/gen/generators/job_generator/templates
|
66
|
-
- lib/bosh/gen/generators/job_generator/templates/jobs/.gitkeep
|
67
|
-
- lib/bosh/gen/generators/job_generator/templates/packages/.gitkeep
|
68
|
-
- lib/bosh/gen/generators/job_generator/templates/src/.gitkeep
|
66
|
+
- lib/bosh/gen/generators/job_generator/templates/.gitkeep
|
69
67
|
- lib/bosh/gen/generators/new_release_generator.rb
|
70
68
|
- lib/bosh/gen/generators/new_release_generator/templates/blobs/.gitkeep
|
71
69
|
- lib/bosh/gen/generators/new_release_generator/templates/jobs/.gitkeep
|
72
70
|
- lib/bosh/gen/generators/new_release_generator/templates/packages/.gitkeep
|
73
71
|
- lib/bosh/gen/generators/new_release_generator/templates/src/.gitkeep
|
74
72
|
- lib/bosh/gen/generators/package_generator.rb
|
75
|
-
- lib/bosh/gen/generators/package_generator/templates
|
76
|
-
- lib/bosh/gen/generators/package_generator/templates/jobs/.gitkeep
|
77
|
-
- lib/bosh/gen/generators/package_generator/templates/packages/.gitkeep
|
78
|
-
- lib/bosh/gen/generators/package_generator/templates/src/.gitkeep
|
73
|
+
- lib/bosh/gen/generators/package_generator/templates/.gitkeep
|
79
74
|
- lib/bosh/gen/version.rb
|
80
75
|
homepage: https://github.com/drnic/bosh-gen
|
81
76
|
licenses: []
|
@@ -91,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
86
|
version: '0'
|
92
87
|
segments:
|
93
88
|
- 0
|
94
|
-
hash:
|
89
|
+
hash: 1548629976559305744
|
95
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
91
|
none: false
|
97
92
|
requirements:
|
@@ -100,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
95
|
version: '0'
|
101
96
|
segments:
|
102
97
|
- 0
|
103
|
-
hash:
|
98
|
+
hash: 1548629976559305744
|
104
99
|
requirements: []
|
105
100
|
rubyforge_project:
|
106
101
|
rubygems_version: 1.8.17
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|