kite 1.0.10 → 1.1.1
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 +4 -4
- data/.gitignore +2 -0
- data/ci/bump.rb +1 -3
- data/lib/kite.rb +1 -0
- data/lib/kite/base.rb +4 -0
- data/lib/kite/configuration.rb +25 -0
- data/lib/kite/core.rb +5 -2
- data/lib/kite/helpers.rb +24 -0
- data/lib/kite/module.rb +41 -48
- data/lib/kite/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4316889b3af724fb89854fb09d9364d9277dc0f89019349c102e4c4a48e026ac
|
4
|
+
data.tar.gz: 2ae90c0b44278e9cfe22e5b8b44cf85ff2a0df04f2aa8c04b6aaefd7988c9949
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 588c4228e6ee3fa02fd8800b3d202aa21ca64c97aa4f72a5f0fb932fa015b72d10f7ddef41869d70049ca64c498bb6730c0b42af097f90df2fe1b23c3dfdcb7b
|
7
|
+
data.tar.gz: dfc062783a611b3bad533912483975fdbc2f3a19dbcc319b12cc09e2eb2c3bbc5a2cbedde7a317514c513b00a918b00c50a2e4393df7cb9b23f158b8cf9fd437
|
data/ci/bump.rb
CHANGED
@@ -199,9 +199,7 @@ bump &&= ENV["TRAVIS_TAG"].to_s.empty?
|
|
199
199
|
bump &&= !tagged_commits_mapping.key?(ENV["TRAVIS_COMMIT"])
|
200
200
|
|
201
201
|
if bump
|
202
|
-
if ENV["TRAVIS_BRANCH"]
|
203
|
-
bump_from_master_branch
|
204
|
-
else
|
202
|
+
if ENV["TRAVIS_BRANCH"] != "master"
|
205
203
|
bump_from_version_specific_branch(ENV["TRAVIS_BRANCH"])
|
206
204
|
end
|
207
205
|
end
|
data/lib/kite.rb
CHANGED
data/lib/kite/base.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Kite
|
2
|
+
class Configuration < Base
|
3
|
+
include Kite::Helpers
|
4
|
+
|
5
|
+
method_option :env, type: :string, desc: "Environment", required: true, default: ENV['KITE_ENV']
|
6
|
+
desc 'get QUERY', 'Returns value for specified QUERY'
|
7
|
+
def get(query)
|
8
|
+
@env = options[:env]
|
9
|
+
@path = cloud_path
|
10
|
+
vars_paths = Dir[@path + "/config/environments/#{@env}/vars.*"]
|
11
|
+
|
12
|
+
vars_paths.each do |vars_path|
|
13
|
+
@res = YAML::load_file(vars_path)
|
14
|
+
query.split('.').each { |k| @res = @res[k] }
|
15
|
+
break unless @res.nil?
|
16
|
+
end
|
17
|
+
|
18
|
+
if @res.nil?
|
19
|
+
raise Kite::Error, "Invalid query: \"#{query}\""
|
20
|
+
else
|
21
|
+
puts @res
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/kite/core.rb
CHANGED
@@ -13,10 +13,13 @@ module Kite
|
|
13
13
|
desc "generate", "Generate IaC from configuration"
|
14
14
|
subcommand "generate", Kite::Generate
|
15
15
|
|
16
|
-
desc
|
16
|
+
desc "module", "Use kite modules with environments"
|
17
17
|
subcommand "module", Kite::Module
|
18
18
|
|
19
|
-
desc
|
19
|
+
desc "configuration", "Get configs of current environment"
|
20
|
+
subcommand "configuration", Kite::Configuration
|
21
|
+
|
22
|
+
desc "terraform", "Run Terraform-related commands with environment variables loaded from module vars"
|
20
23
|
method_option :env, type: :string, desc: "Environment", required: true, default: ENV['KITE_ENV']
|
21
24
|
def terraform(command, *args)
|
22
25
|
Kernel.exit Kite::Terraform.new(self, options).run(command, *args)
|
data/lib/kite/helpers.rb
CHANGED
@@ -4,6 +4,22 @@ module Kite::Helpers
|
|
4
4
|
raise Kite::Error, 'The config/cloud.yml is not filled out!' unless config.find { |key, hash| hash.find { |k, v| v.nil? } }.nil?
|
5
5
|
end
|
6
6
|
|
7
|
+
def cloud_valid?(path)
|
8
|
+
valid = Dir.children(path).include? 'config'
|
9
|
+
valid &&= Dir.children(path + '/config').include? 'cloud.yml'
|
10
|
+
|
11
|
+
valid
|
12
|
+
end
|
13
|
+
|
14
|
+
def cloud_path
|
15
|
+
Dir.pwd.tap do |path|
|
16
|
+
until cloud_valid? path
|
17
|
+
raise Kite::Error, "Invalid path: \"#{Dir.pwd}\"" if path == "/"
|
18
|
+
path = File.dirname(path)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
7
23
|
# Parse config/cloud.yml, returning the output hash
|
8
24
|
def parse_cloud_config(env = nil)
|
9
25
|
cloud_config = YAML.load(File.read('config/cloud.yml'))
|
@@ -17,4 +33,12 @@ module Kite::Helpers
|
|
17
33
|
end
|
18
34
|
return cloud_config
|
19
35
|
end
|
36
|
+
|
37
|
+
def run!(command, config = {})
|
38
|
+
run(command)
|
39
|
+
|
40
|
+
if $?.exitstatus != 0
|
41
|
+
raise Thor::Error.new("command failed: #{ command }")
|
42
|
+
end
|
43
|
+
end
|
20
44
|
end
|
data/lib/kite/module.rb
CHANGED
@@ -3,30 +3,38 @@ module Kite
|
|
3
3
|
include Kite::Helpers
|
4
4
|
|
5
5
|
method_option :env, type: :string, desc: "Environment", required: true, default: ENV['KITE_ENV']
|
6
|
-
method_option :version, type: :string, desc: "Version", required: false
|
6
|
+
method_option :version, type: :string, desc: "Version", aliases: '-v', required: false
|
7
|
+
method_option :method, type: :string, desc: "Module import method", enum: %w{copy submodule}, default: "submodule"
|
7
8
|
desc 'init https://github.com/foo/bar-module', 'Initialize a kite module and render its vars.module.yml'
|
8
9
|
def init(path)
|
9
|
-
@env
|
10
|
-
@
|
11
|
-
@
|
12
|
-
|
13
|
-
@
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
checkout_version
|
10
|
+
@env = options[:env]
|
11
|
+
@module_name = path.gsub(/(.*:|.git)/, '').split('/').last
|
12
|
+
@module_path = "modules/#{ @module_name }"
|
13
|
+
|
14
|
+
if File.exist?(@module_path)
|
15
|
+
overwrite = ask "#{ @module_path } already exists! Overwrite? (y/N)"
|
16
|
+
if overwrite.downcase == 'y'
|
17
|
+
say "Remove existing files"
|
18
|
+
remove_dir(@module_path)
|
19
|
+
else
|
20
|
+
say "Skipping module init"
|
21
|
+
return
|
22
22
|
end
|
23
|
-
|
24
|
-
say "Use git submodule add #{@path} to be able to commit this module as a submodule", :yellow
|
25
23
|
end
|
26
24
|
|
27
|
-
|
25
|
+
case options[:method]
|
26
|
+
when"submodule"
|
27
|
+
clone_module(path, @module_path, options[:version])
|
28
|
+
when "copy"
|
29
|
+
FileUtils.mkdir_p("modules")
|
30
|
+
FileUtils.cp_r(path, @module_path)
|
31
|
+
else
|
32
|
+
raise "Unsupported method #{ method }"
|
33
|
+
end
|
28
34
|
|
29
|
-
|
35
|
+
@cloud = parse_cloud_config(@env)
|
36
|
+
vars_output = render_vars(@module_name, @module_path)
|
37
|
+
say "Rendered successfully #{ vars_output }, please edit this file with correct values", :green
|
30
38
|
end
|
31
39
|
|
32
40
|
method_option :env, type: :string, desc: "Environment", required: true, default: ENV['KITE_ENV']
|
@@ -47,39 +55,24 @@ module Kite
|
|
47
55
|
@env
|
48
56
|
end
|
49
57
|
|
50
|
-
def clone_module
|
58
|
+
def clone_module(uri, path, version)
|
51
59
|
say "Cloning the module"
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
Git.clone(@uri, @path)
|
59
|
-
say "Successfully cloned the fresh #{@name}!", :green
|
60
|
-
else
|
61
|
-
say "Keeping the current module revision"
|
60
|
+
run! "git submodule add #{ uri } #{ path }"
|
61
|
+
run! "git submodule init"
|
62
|
+
run! "git submodule update"
|
63
|
+
unless version.to_s.empty?
|
64
|
+
Dir.chdir(path) do
|
65
|
+
run! "git checkout #{ version }"
|
62
66
|
end
|
63
|
-
|
64
|
-
Git.clone(@uri, @path)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def checkout_version
|
69
|
-
module_git = Git.open(@path)
|
70
|
-
|
71
|
-
say "Switching to #{@version}"
|
72
|
-
if @version =~ /\d+\.\d+\.\d+/ && module_git.tags.any? { |t| t.name == @version }
|
73
|
-
module_git.checkout("tags/#{@version}")
|
74
|
-
elsif module_git.is_remote_branch? @version
|
75
|
-
module_git.checkout("origin/#{@version}")
|
76
|
-
else
|
77
|
-
say "#{@version} tag/branch was not found in the module, keeping the current one", :red
|
67
|
+
run! "git add #{ path }"
|
78
68
|
end
|
69
|
+
say "Successfully init #{ path }!", :green
|
79
70
|
end
|
80
71
|
|
81
|
-
def render_vars
|
82
|
-
|
72
|
+
def render_vars(module_name, module_path)
|
73
|
+
output_file = "config/environments/#{ @env }/vars.#{ module_name }.yml"
|
74
|
+
create_file output_file, YAML.dump(manifest(module_path)['variables'])
|
75
|
+
output_file
|
83
76
|
end
|
84
77
|
|
85
78
|
def render_templates
|
@@ -91,8 +84,8 @@ module Kite
|
|
91
84
|
YAML.load(File.open("config/environments/#{@env}/vars.#{@name}.yml"))
|
92
85
|
end
|
93
86
|
|
94
|
-
def manifest
|
95
|
-
YAML.load(ERB.new(File.read("#{
|
87
|
+
def manifest(module_path)
|
88
|
+
YAML.load(ERB.new(File.read("#{module_path}/manifest.yml.tt")).result(binding))
|
96
89
|
end
|
97
90
|
end
|
98
91
|
|
data/lib/kite/version.rb
CHANGED
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: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Louis Bellet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- lib/kite.rb
|
159
159
|
- lib/kite/base.rb
|
160
160
|
- lib/kite/cloud.rb
|
161
|
+
- lib/kite/configuration.rb
|
161
162
|
- lib/kite/core.rb
|
162
163
|
- lib/kite/error.rb
|
163
164
|
- lib/kite/generate.rb
|
@@ -217,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
218
|
version: '0'
|
218
219
|
requirements: []
|
219
220
|
rubyforge_project:
|
220
|
-
rubygems_version: 2.7.
|
221
|
+
rubygems_version: 2.7.6
|
221
222
|
signing_key:
|
222
223
|
specification_version: 4
|
223
224
|
summary: Command line tool for devops scaffolding.
|