kite 0.0.3 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90bb5e8944368e0fe0576c0c954ccc1a80c72e0d
4
- data.tar.gz: 174dfc7e5123c6ee0eadef4ff11db6dfce68fd07
3
+ metadata.gz: 35907f92cd177fd33f70eb0bc63657862c640bc7
4
+ data.tar.gz: 06e20e23873eafdc2c5f9def0d1877a8bbfbb243
5
5
  SHA512:
6
- metadata.gz: 70e301d6a0bcdbf445a29542e7c4142c0cada31588b8d1191dc15828a5c30d27064816c87066ca1046c725b36b14f9a698888569e28c44e9609087a5211bc08d
7
- data.tar.gz: 81638c0f37000c26497ea98b8a8fe0e7f67f497b9b098b57f2e1d8536e0ae84638176f660b0e656d6bb5eb12dbc29160bb025d383dd39f1bd6727ef18b59d639
6
+ metadata.gz: e39367feaa741376f65874369ff4ba2e1a2fd25ea412fcee9e32b47ee153506ca04eb309b45fc33439f0cfa7cf97e16895424a933ae578875e13ea50439d80cb
7
+ data.tar.gz: a710b0698232d8110005af89d5cec87d9ecc5b87088227118bd9c7507bfa72033a528a5dddb0d38d91c52ff7007d0cb135e326ea69aec3d446433c168249cff5
data/bin/kite CHANGED
@@ -4,4 +4,4 @@ require "thor"
4
4
  $: << File.join(File.dirname(__FILE__), "../lib")
5
5
  require 'kite'
6
6
 
7
- Kite::Commands.start
7
+ Kite::Core.start
data/lib/kite.rb CHANGED
@@ -1,7 +1,10 @@
1
- require "erb"
2
- require "yaml"
3
- require "thor"
1
+ require 'erb'
2
+ require 'yaml'
3
+ require 'thor'
4
4
 
5
- require "kite/version"
6
- require "kite/helpers"
7
- require "kite/commands"
5
+ require 'kite/version'
6
+ require 'kite/helpers'
7
+
8
+ require 'kite/base'
9
+ require 'kite/core'
10
+ require 'kite/cloud'
data/lib/kite/base.rb ADDED
@@ -0,0 +1,5 @@
1
+ class Kite::Base < Thor
2
+
3
+ include Thor::Actions
4
+
5
+ end
data/lib/kite/cloud.rb ADDED
@@ -0,0 +1,24 @@
1
+ class Kite::Cloud
2
+
3
+ def initialize(core, cloud_name)
4
+ @core = core
5
+ @name = cloud_name
6
+ @core.destination_root = nil
7
+ end
8
+
9
+ def name
10
+ @name
11
+ end
12
+
13
+ def core
14
+ @core
15
+ end
16
+
17
+ def prepare
18
+ core.directory('skel', name)
19
+ core.inside(name) do
20
+ core.chmod('bin/kite', 0755)
21
+ end
22
+ end
23
+
24
+ end
data/lib/kite/core.rb ADDED
@@ -0,0 +1,56 @@
1
+ module Kite
2
+ class Core < Base
3
+
4
+ include Kite::Helpers
5
+
6
+ def self.source_root
7
+ File.expand_path(File.join(File.dirname(__FILE__), "../../tpl"))
8
+ end
9
+
10
+ method_option :cloud, type: :string, desc: "Cloud provider", enum: %w{aws gcp}
11
+ desc "new CLOUD_PATH", "Generate Cloud infrastructure skeleton from configuration"
12
+ def new(cloud_name)
13
+ target = Kite::Cloud.new(self, cloud_name)
14
+ target.prepare
15
+ end
16
+
17
+ method_option :cloud, type: :string, desc: "Cloud provider", enum: %w{aws gcp}, required: true
18
+ desc "generate", "Generate Cloud IaC from configuration"
19
+ def generate()
20
+ say "Generating Cloud #{ options[:cloud] } IaC", :green
21
+ @values = YAML.load(File.read('config/cloud.yml'))
22
+
23
+ case options[:cloud]
24
+ when "aws"
25
+ copy_file("aws/bin/make_cloud_config.sh", "bin/make_cloud_config.sh")
26
+ copy_file("aws/bin/make_manifest_bosh-init.sh", "bin/make_manifest_bosh-init.sh")
27
+ copy_file("aws/bin/make_manifest_concourse-cluster.sh", "bin/make_manifest_concourse-cluster.sh")
28
+
29
+ copy_file("aws/terraform/aws-concourse.tf", "terraform/aws-concourse.tf")
30
+ copy_file("aws/terraform/aws-vault.tf", "terraform/aws-vault.tf")
31
+ copy_file("aws/terraform/bosh-aws-base.tf", "terraform/bosh-aws-base.tf")
32
+ copy_file("aws/terraform/outputs.tf", "terraform/outputs.tf")
33
+ copy_file("aws/terraform/variables.tf", "terraform/variables.tf")
34
+ copy_file("aws/terraform/variables.tf", "terraform/variables.tf")
35
+
36
+ template("aws/env.example.erb", ".env")
37
+ copy_file("aws/README.md", "README.md")
38
+ copy_file("aws/bootstrap.sh", "bootstrap.sh")
39
+
40
+ when "gcp"
41
+ template("gcp/manifest.yml.erb", "manifest.yml")
42
+ template("gcp/cloud-config.yml.erb", "cloud-config.yml")
43
+ copy_file("gcp/concourse.yml.erb", "concourse.yml")
44
+ copy_file("gcp/README.md", "README.md")
45
+ directory("gcp/scripts", "scripts")
46
+ copy_file("gcp/INSTALL.md", "INSTALL.md")
47
+ template("gcp/env.example.erb", ".env")
48
+ copy_file("gcp/main.tf", "main.tf")
49
+ copy_file("gcp/concourse.tf", "concourse.tf")
50
+ else
51
+ say "Cloud provider not specified"
52
+
53
+ end
54
+ end
55
+ end
56
+ end
data/lib/kite/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kite
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'kite', '~> <%= Kite::VERSION %>'
4
+
5
+ # Use AWS
6
+ # gem 'aws-sdk', '~> 2'
7
+
8
+ # Use GCP
9
+ # gem 'google-cloud'
10
+
11
+ # Use Jekyll
12
+ # gem 'jekyll'
@@ -0,0 +1 @@
1
+ # <%=@cloud_name %>
data/tpl/skel/bin/kite ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ require "thor"
3
+
4
+ $: << File.join(File.dirname(__FILE__), "../lib")
5
+ require 'kite'
6
+
7
+ Kite::Core.start
@@ -0,0 +1,34 @@
1
+ aws:
2
+ access_key_id: "XXXXXXXXXXXXXX"
3
+ secret_access_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
4
+ region: "us-east-1"
5
+ az: "us-east-1a"
6
+ bosh_password: "bosh_password"
7
+ keypair_name: "bosh"
8
+ private_key_path: "~/Downloads/bosh.pem"
9
+ db_password: "database_password"
10
+ ci_dns_zone_id: "XXXXXXXXXXXXX"
11
+ ci_hostname: "ci.example.com"
12
+ concourse_url: "http://ci.example.com"
13
+ concourse_auth_username: "concourse"
14
+ concourse_auth_password: "concourse"
15
+
16
+ gcp:
17
+ project_id: gcp-project
18
+ region: europe-west1
19
+ zone: europe-west1-b
20
+ service_account: bosh
21
+ ssh_key_path: ~/.ssh/bosh
22
+
23
+ bosh:
24
+ bosh_password: "bosh_password"
25
+ keypair_name: "bosh"
26
+ private_key_path: "~/Downloads/bosh.pem"
27
+ db_password: "database_password"
28
+
29
+ concourse:
30
+ hostname: "ci.domain.io"
31
+ dns_zone: "your_dns_zone_id"
32
+ url: "http://ci.example.com"
33
+ auth_username: "concourse"
34
+ auth_password: "concourse"
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Louis Bellet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-24 00:00:00.000000000 Z
11
+ date: 2017-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -87,7 +87,9 @@ files:
87
87
  - bin/kite-console
88
88
  - kite.gemspec
89
89
  - lib/kite.rb
90
- - lib/kite/commands.rb
90
+ - lib/kite/base.rb
91
+ - lib/kite/cloud.rb
92
+ - lib/kite/core.rb
91
93
  - lib/kite/helpers.rb
92
94
  - lib/kite/version.rb
93
95
  - tpl/aws/README.md
@@ -117,6 +119,15 @@ files:
117
119
  - tpl/gcp/scripts/05_delete_infrastructure.sh
118
120
  - tpl/gcp/scripts/bootstrap.sh
119
121
  - tpl/gcp/scripts/delete.sh
122
+ - tpl/skel/Gemfile.tt
123
+ - tpl/skel/README.md.tt
124
+ - tpl/skel/bin/kite
125
+ - tpl/skel/config/cloud.yml
126
+ - tpl/skel/docs/index.md.tt
127
+ - tpl/skel/docs/quickstart.md.tt
128
+ - tpl/skel/lib/tasks/.keep
129
+ - tpl/skel/log/.keep
130
+ - tpl/skel/tmp/.keep
120
131
  homepage: http://www.heliostech.fr
121
132
  licenses: []
122
133
  metadata: {}
data/lib/kite/commands.rb DELETED
@@ -1,46 +0,0 @@
1
- class Kite::Commands < Thor
2
- include Thor::Actions
3
- include Kite::Helpers
4
-
5
- def self.source_root
6
- File.expand_path(File.join(File.dirname(__FILE__), "../.."))
7
- end
8
-
9
- method_option :values, type: :string, default: "defaults.yml", required: true
10
- method_option :cloud, type: :string, desc: "Cloud supplier", enum: %w{aws gcp}, required: true
11
- desc "new CLOUDNAME", "Generate Cloud IaC from configuration"
12
- def new(cloud_name)
13
- say "Generating Cloud #{ cloud_name } IaC", :green
14
- @values = YAML.load(File.read(options[:values]))
15
-
16
- case options[:cloud]
17
- when "aws"
18
- copy_file("tpl/aws/bin/make_cloud_config.sh", "#{cloud_name}/bin/make_cloud_config.sh")
19
- copy_file("tpl/aws/bin/make_manifest_bosh-init.sh", "#{cloud_name}/bin/make_manifest_bosh-init.sh")
20
- copy_file("tpl/aws/bin/make_manifest_concourse-cluster.sh", "#{cloud_name}/bin/make_manifest_concourse-cluster.sh")
21
-
22
- copy_file("tpl/aws/terraform/aws-concourse.tf", "#{cloud_name}/terraform/aws-concourse.tf")
23
- copy_file("tpl/aws/terraform/aws-vault.tf", "#{cloud_name}/terraform/aws-vault.tf")
24
- copy_file("tpl/aws/terraform/bosh-aws-base.tf", "#{cloud_name}/terraform/bosh-aws-base.tf")
25
- copy_file("tpl/aws/terraform/outputs.tf", "#{cloud_name}/terraform/outputs.tf")
26
- template("tpl/aws/terraform/terraform.tfvars.erb", "#{cloud_name}/terraform/terraform.tfvars")
27
- copy_file("tpl/aws/terraform/variables.tf", "#{cloud_name}/terraform/variables.tf")
28
- copy_file("tpl/aws/terraform/variables.tf", "#{cloud_name}/terraform/variables.tf")
29
-
30
- template("tpl/aws/env.example.erb", "#{cloud_name}/.env")
31
- copy_file("tpl/aws/README.md", "#{cloud_name}/README.md")
32
- copy_file("tpl/aws/bootstrap.sh", "#{cloud_name}/bootstrap.sh")
33
-
34
- when "gcp"
35
- template("tpl/gcp/manifest.yml.erb", "#{cloud_name}/manifest.yml")
36
- template("tpl/gcp/cloud-config.yml.erb", "#{cloud_name}/cloud-config.yml")
37
- copy_file("tpl/gcp/concourse.yml.erb", "#{cloud_name}/concourse.yml")
38
- copy_file("tpl/gcp/README.md", "#{cloud_name}/README.md")
39
- directory("tpl/gcp/scripts", "#{cloud_name}/scripts")
40
- copy_file("tpl/gcp/INSTALL.md", "#{cloud_name}/INSTALL.md")
41
- template("tpl/gcp/env.example.erb", "#{cloud_name}/.env")
42
- copy_file("tpl/gcp/main.tf", "#{cloud_name}/main.tf")
43
- copy_file("tpl/gcp/concourse.tf", "#{cloud_name}/concourse.tf")
44
- end
45
- end
46
- end