minfra-cli 0.2.1 → 1.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -2
- data/bin/run_tests +1 -1
- data/exe/minfra +3 -1
- data/lib/minfra/cli/commands/kube.rb +14 -8
- data/lib/minfra/cli/config.rb +7 -9
- data/lib/minfra/cli/version.rb +1 -1
- data/lib/minfra/cli.rb +66 -11
- data/lib/orchparty/dsl_parser_kubernetes.rb +18 -1
- data/lib/orchparty/kubernetes_application.rb +8 -12
- data/lib/orchparty.rb +71 -45
- data/minfra-cli.gemspec +3 -0
- metadata +45 -6
- data/.rspec +0 -2
- data/Gemfile +0 -59
- data/Gemfile.lock +0 -171
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a6dedf2d900fb64c7e8b58684942c15e67199910499d8a9afc9c20459deda7d
|
4
|
+
data.tar.gz: c7f6d2b107c53169ac51830e7962c2b433f5a533d624c0ea18b23eba9eb159e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e17628bc18b689e5033226b6cdc262dc0738423663110dcdd8ab5747c17fddcb04f486ae885b767f7b356ec10aa996a2382694ab897eaf4d945e89a4a5d91e31
|
7
|
+
data.tar.gz: 60b5b1f9055d47386232d8ce7b980f8818e1a028b51673ff9a820c92970457fc587c9b427fa5d439973cfdd5e8dbc766065eb50cf3e25052eda9fc47ef9fdd54
|
data/CHANGELOG.md
CHANGED
data/bin/run_tests
CHANGED
@@ -61,7 +61,7 @@ volumes << "..:/code" unless ENV["BUILD_ID"]
|
|
61
61
|
|
62
62
|
# Run docker pull on cache
|
63
63
|
if @cache_tag
|
64
|
-
run("docker pull
|
64
|
+
run("docker pull TBD/#{@project_name}:#{@cache_tag}")
|
65
65
|
end
|
66
66
|
|
67
67
|
erb = ERB.new(File.open("#{__dir__}/../spec/docker-compose.yml").read, 0, '>')
|
data/exe/minfra
CHANGED
@@ -87,13 +87,13 @@ module Minfra
|
|
87
87
|
|
88
88
|
method = options["install"] ? "install" : "upgrade"
|
89
89
|
File.open(stack.compose_path(blank: true),"w") do |f|
|
90
|
-
Orchparty.
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
90
|
+
Orchparty::App.new(cluster_name: cluster,
|
91
|
+
application_name: stack.name,
|
92
|
+
force_variable_definition: false,
|
93
|
+
file_name: stack.stack_rb_path.to_s,
|
94
|
+
options: options
|
95
|
+
).
|
96
|
+
print( method: method, out_io: f)
|
97
97
|
end
|
98
98
|
#run_cmd(generate_cmd, :bash)
|
99
99
|
bash_cmd = ["cd #{stack.release_path}"]
|
@@ -128,7 +128,13 @@ module Minfra
|
|
128
128
|
|
129
129
|
message = "deploying stack #{stack.name}: #{reason_message}."
|
130
130
|
Minfra::Cli::Document.document(@config,"started #{message}")
|
131
|
-
Orchparty.
|
131
|
+
orch=Orchparty::App.new(cluster_name: cluster,
|
132
|
+
application_name: stack.name,
|
133
|
+
force_variable_definition: false,
|
134
|
+
file_name: stack.stack_rb_path.to_s,
|
135
|
+
options: options
|
136
|
+
)
|
137
|
+
orch.send(method)
|
132
138
|
Minfra::Cli::Document.document(@config,"finished #{message}")
|
133
139
|
end
|
134
140
|
end
|
data/lib/minfra/cli/config.rb
CHANGED
@@ -44,10 +44,12 @@ module Minfra
|
|
44
44
|
@kube_path=@me_path.join('kube')
|
45
45
|
@kube_config_path=@kube_path.join('config')
|
46
46
|
@kind_config_path=@me_path.join("kind.yaml.erb")
|
47
|
-
|
48
|
-
|
49
|
-
@
|
50
|
-
|
47
|
+
|
48
|
+
# @project_minfrarc_path = @base_path.join("config",'minfrarc.rb')
|
49
|
+
# require @project_minfrarc_path if @project_minfrarc_path.exist?
|
50
|
+
# @me_minfrarc_path = @me_path.join('minfrarc.rb')
|
51
|
+
# require @me_minfrarc_path if @me_minfrarc_path.exist?
|
52
|
+
|
51
53
|
if config_path.exist?
|
52
54
|
@config = Hashie::Mash.new(JSON.parse(Minfra::Cli::Templater.render(File.read(config_path),{})))
|
53
55
|
else
|
@@ -61,11 +63,7 @@ module Minfra
|
|
61
63
|
debug( "loading config env: #{orch_env} #{@orch_env}" )
|
62
64
|
return self if defined?(@orch_env)
|
63
65
|
@orch_env = orch_env
|
64
|
-
@orch_env_config
|
65
|
-
@project= @project.
|
66
|
-
deep_merge(@project.environments[@orch_env]).
|
67
|
-
deep_merge(@config).
|
68
|
-
deep_merge(@orch_env_config)
|
66
|
+
@orch_env_config=Hashie::Mash.new
|
69
67
|
@orch_env_config['env']=@orch_env
|
70
68
|
self
|
71
69
|
end
|
data/lib/minfra/cli/version.rb
CHANGED
data/lib/minfra/cli.rb
CHANGED
@@ -3,6 +3,7 @@ require 'open3'
|
|
3
3
|
require 'json'
|
4
4
|
require 'ostruct'
|
5
5
|
require 'orchparty'
|
6
|
+
require 'hiera'
|
6
7
|
|
7
8
|
require_relative 'cli/logging'
|
8
9
|
require_relative 'cli/config'
|
@@ -19,17 +20,81 @@ require_relative 'cli/plugins'
|
|
19
20
|
require 'active_support'
|
20
21
|
require 'active_support/core_ext'
|
21
22
|
|
23
|
+
require "#{ENV['MINFRA_PATH']}/config/preload.rb" if File.exist?("#{ENV['MINFRA_PATH']}/config/preload.rb")
|
22
24
|
|
23
25
|
module Minfra
|
24
26
|
module Cli
|
25
27
|
extend Minfra::Cli::Logging
|
26
28
|
|
29
|
+
|
30
|
+
def self.init(argv)
|
31
|
+
@argv = argv
|
32
|
+
# we'll set the context very early!
|
33
|
+
|
34
|
+
if idx=@argv.index("-e")
|
35
|
+
@config = Config.load(@argv[idx+1])
|
36
|
+
@argv.delete_at(idx)
|
37
|
+
@argv.delete_at(idx)
|
38
|
+
else
|
39
|
+
@config = Config.load('dev')
|
40
|
+
end
|
41
|
+
|
42
|
+
hiera_init
|
43
|
+
|
44
|
+
Minfra::Cli::Plugins.load
|
45
|
+
Minfra::Cli.scan
|
46
|
+
require_relative 'cli/main_command'
|
47
|
+
Minfra::Cli.resolve
|
48
|
+
|
49
|
+
project_minfrarc_path = @config.base_path.join("config",'minfrarc.rb')
|
50
|
+
require project_minfrarc_path if project_minfrarc_path.exist?
|
51
|
+
me_minfrarc_path = @config.me_path.join('minfrarc.rb')
|
52
|
+
require @me_minfrarc_path if me_minfrarc_path.exist?
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.run
|
57
|
+
Minfra::Cli::Main.start(@argv)
|
58
|
+
end
|
59
|
+
|
27
60
|
def self.root_path
|
28
61
|
Pathname.new(File.expand_path(File.join(__FILE__, '../../../')))
|
29
62
|
end
|
30
63
|
|
64
|
+
def self.hiera_init
|
65
|
+
@hiera_root = Pathname.new("#{ENV["MINFRA_PATH"]}/hiera")
|
66
|
+
hiera = Hiera.new(:config => @hiera_root.join('hiera.yaml').to_s)
|
67
|
+
Hiera.logger=:noop
|
68
|
+
env= @config.orch_env
|
69
|
+
raise("unknown environment #{env}, I expact a file at hiera/hieradata/environments/#{env}.eyaml") unless @hiera_root.join("hieradata/environments/#{env}.eyaml").exist?
|
70
|
+
|
71
|
+
|
72
|
+
scope={ "hieraroot" => @hiera_root.to_s, "env" => env}
|
73
|
+
special_lookups=hiera.lookup("lookup_options", {}, scope, nil, :priority)
|
74
|
+
|
75
|
+
node_scope=hiera.lookup("env", {}, scope, nil, :deeper)
|
76
|
+
scope=scope.merge(node_scope)
|
77
|
+
cache={}
|
78
|
+
|
79
|
+
Kernel.define_method(:l) do |value,default=nil|
|
80
|
+
return cache[value] if cache.has_key?(value)
|
81
|
+
|
82
|
+
if special_lookups[value]
|
83
|
+
lookup_type={ merge_behavior: special_lookups[value]["merge"].to_sym }
|
84
|
+
else
|
85
|
+
lookup_type=:native #priority
|
86
|
+
end
|
87
|
+
|
88
|
+
result=hiera.lookup(value, default, scope, nil, lookup_type)
|
89
|
+
result=Hashie::Mash.new(result) if result.kind_of?(Hash)
|
90
|
+
cache[value] = result
|
91
|
+
result
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
|
31
96
|
def self.config
|
32
|
-
@config
|
97
|
+
@config
|
33
98
|
end
|
34
99
|
def self.scan
|
35
100
|
root_path.join("lib/minfra/cli/commands").each_child do |command_path|
|
@@ -70,13 +135,3 @@ module Minfra
|
|
70
135
|
end
|
71
136
|
end
|
72
137
|
end
|
73
|
-
|
74
|
-
Minfra::Cli::Plugins.load
|
75
|
-
Minfra::Cli.scan
|
76
|
-
require_relative 'cli/main_command'
|
77
|
-
|
78
|
-
require "#{ENV['MINFRA_PATH']}/config/preload.rb" if File.exist?("#{ENV['MINFRA_PATH']}/config/preload.rb")
|
79
|
-
|
80
|
-
Minfra::Cli.resolve
|
81
|
-
|
82
|
-
|
@@ -188,6 +188,7 @@ module Orchparty
|
|
188
188
|
self
|
189
189
|
end
|
190
190
|
|
191
|
+
|
191
192
|
def wait(&block)
|
192
193
|
name = SecureRandom.hex
|
193
194
|
result = ServiceBuilder.build(name, "wait", block)
|
@@ -214,7 +215,6 @@ module Orchparty
|
|
214
215
|
end
|
215
216
|
|
216
217
|
def service(name, &block)
|
217
|
-
|
218
218
|
chart_name = @application.name
|
219
219
|
unless @application.services[chart_name]
|
220
220
|
@application.services[chart_name] = AST.chart(name: chart_name, _type: "chart" )
|
@@ -332,6 +332,14 @@ module Orchparty
|
|
332
332
|
def initialize(name, type)
|
333
333
|
super AST.service(name: name, _type: type)
|
334
334
|
end
|
335
|
+
|
336
|
+
# 1. rememebring the secrets in environment_secrets (so these environments can be created differentyly
|
337
|
+
# 2. create Secret sections
|
338
|
+
def environment_secrets(&block)
|
339
|
+
result = HashBuilder.build(block)
|
340
|
+
@node.environment_secrets = result
|
341
|
+
self
|
342
|
+
end
|
335
343
|
end
|
336
344
|
|
337
345
|
class ServiceMixinBuilder < CommonBuilder
|
@@ -356,6 +364,15 @@ module Orchparty
|
|
356
364
|
@node._services << name
|
357
365
|
self
|
358
366
|
end
|
367
|
+
|
368
|
+
def secrets(name, &block)
|
369
|
+
result = ServiceBuilder.build(name, "chart-secret", block)
|
370
|
+
@application.services[name] = result
|
371
|
+
@application._service_order << name
|
372
|
+
@node._services << name
|
373
|
+
self
|
374
|
+
end
|
375
|
+
|
359
376
|
end
|
360
377
|
end
|
361
378
|
end
|
@@ -32,6 +32,7 @@ module Orchparty
|
|
32
32
|
if(file_path.end_with?(".erb"))
|
33
33
|
helm.application = OpenStruct.new(cluster_name: cluster_name, namespace: namespace)
|
34
34
|
template = Erubis::Eruby.new(File.read(file_path))
|
35
|
+
template.filename = file_path
|
35
36
|
yaml = template.result(helm.get_binding)
|
36
37
|
file = Tempfile.new("kube-deploy.yaml")
|
37
38
|
file.write(yaml)
|
@@ -117,14 +118,6 @@ module Orchparty
|
|
117
118
|
@out_io.puts upgrade_cmd(label)
|
118
119
|
end
|
119
120
|
|
120
|
-
def upgrade(label)
|
121
|
-
@out_io.puts system(upgrade_cmd(label))
|
122
|
-
end
|
123
|
-
|
124
|
-
def install(label)
|
125
|
-
@out_io.puts system(install_cmd(label))
|
126
|
-
end
|
127
|
-
|
128
121
|
def upgrade_cmd(label)
|
129
122
|
"kubectl --namespace #{namespace} --context #{cluster_name} label --overwrite #{label[:resource]} #{label[:name]} #{label["value"]}"
|
130
123
|
end
|
@@ -165,7 +158,7 @@ module Orchparty
|
|
165
158
|
|
166
159
|
def build_chart(chart)
|
167
160
|
params = chart._services.map {|s| app_config.services[s.to_sym] }.map{|s| [s.name, s]}.to_h
|
168
|
-
Dir.mktmpdir do |dir|
|
161
|
+
Dir.mktmpdir("#{chart.name}-") do |dir|
|
169
162
|
run(templates_path: File.expand_path(chart.template, self.dir_path), params: params, output_chart_path: dir, chart: chart)
|
170
163
|
yield dir
|
171
164
|
end
|
@@ -184,7 +177,6 @@ module Orchparty
|
|
184
177
|
output_chart_path: output_chart_path,
|
185
178
|
chart_name: chart.name,
|
186
179
|
)
|
187
|
-
|
188
180
|
params.each do |app_name, subparams|
|
189
181
|
subparams[:chart] = chart
|
190
182
|
generate_documents_from_erbs(
|
@@ -203,12 +195,13 @@ module Orchparty
|
|
203
195
|
end
|
204
196
|
|
205
197
|
kind = params.fetch(:kind)
|
206
|
-
|
207
198
|
Dir[File.join(templates_path, kind, '*.erb')].each do |template_path|
|
199
|
+
puts "Rendering Template: #{template_path}"
|
208
200
|
template_name = File.basename(template_path, '.erb')
|
209
201
|
output_path = File.join(output_chart_path, 'templates', "#{app_name}-#{template_name}")
|
210
202
|
|
211
203
|
template = Erubis::Eruby.new(File.read(template_path))
|
204
|
+
template.filename = template_path
|
212
205
|
params.app_name = app_name
|
213
206
|
params.templates_path = templates_path
|
214
207
|
begin
|
@@ -216,7 +209,7 @@ module Orchparty
|
|
216
209
|
rescue Exception
|
217
210
|
puts "#{template_path} has a problem: #{$!.inspect}"
|
218
211
|
raise
|
219
|
-
end
|
212
|
+
end
|
220
213
|
File.write(output_path, document)
|
221
214
|
end
|
222
215
|
end
|
@@ -226,6 +219,7 @@ module Orchparty
|
|
226
219
|
output_path = File.join(output_chart_path, 'Chart.yaml')
|
227
220
|
|
228
221
|
template = Erubis::Eruby.new(File.read(template_path))
|
222
|
+
template.filename = template_path
|
229
223
|
params = Hashie::Mash.new(chart_name: chart_name)
|
230
224
|
document = template.result(CleanBinding.new.get_binding(params))
|
231
225
|
File.write(output_path, document)
|
@@ -249,6 +243,7 @@ module Orchparty
|
|
249
243
|
|
250
244
|
def upgrade(chart)
|
251
245
|
build_chart(chart) do |chart_path|
|
246
|
+
system("cp -a #{chart_path} /tmp/latest-chart")
|
252
247
|
@out_io.puts system("helm upgrade --namespace #{namespace} --kube-context #{cluster_name} #{chart.name} #{chart_path}")
|
253
248
|
end
|
254
249
|
end
|
@@ -299,6 +294,7 @@ class KubernetesApplication
|
|
299
294
|
services = combine_charts(app_config)
|
300
295
|
services.each do |name|
|
301
296
|
service = app_config[:services][name]
|
297
|
+
puts "Service: #{name}(#{service._type}) #{method}"
|
302
298
|
"::Orchparty::Services::#{service._type.classify}".constantize.new(cluster_name: cluster_name, namespace: namespace, file_path: file_path, app_config: app_config, out_io: @out_io).send(method, service)
|
303
299
|
end
|
304
300
|
end
|
data/lib/orchparty.rb
CHANGED
@@ -1,59 +1,85 @@
|
|
1
|
-
|
2
|
-
require "orchparty/version"
|
3
|
-
require "orchparty/ast"
|
4
|
-
require "orchparty/context"
|
5
|
-
require "orchparty/transformations"
|
6
|
-
require "orchparty/dsl_parser"
|
7
|
-
require "orchparty/dsl_parser_kubernetes"
|
8
|
-
require "orchparty/plugin"
|
9
|
-
require "orchparty/kubernetes_application"
|
10
|
-
require "hash"
|
1
|
+
# frozen_string_literal: true
|
11
2
|
|
12
|
-
|
3
|
+
require 'deep_merge'
|
4
|
+
require 'orchparty/version'
|
5
|
+
require 'orchparty/ast'
|
6
|
+
require 'orchparty/context'
|
7
|
+
require 'orchparty/transformations'
|
8
|
+
require 'orchparty/dsl_parser'
|
9
|
+
require 'orchparty/dsl_parser_kubernetes'
|
10
|
+
require 'orchparty/plugin'
|
11
|
+
require 'orchparty/kubernetes_application'
|
12
|
+
require 'hash'
|
13
13
|
|
14
|
-
|
15
|
-
Gem::Specification.map {|f| f.matches_for_glob("orchparty/plugins/*.rb") }.flatten.map{|file_name| File.basename(file_name, ".*").to_sym }.each do |plugin_name|
|
16
|
-
plugin(plugin_name)
|
17
|
-
end
|
18
|
-
end
|
14
|
+
module Orchparty
|
19
15
|
|
20
16
|
def self.options
|
21
|
-
@@options
|
17
|
+
@@options
|
22
18
|
end
|
23
|
-
def self.
|
24
|
-
|
19
|
+
def self.options=(opt)
|
20
|
+
@@options=opt
|
25
21
|
end
|
22
|
+
|
23
|
+
class App
|
24
|
+
attr_reader :options
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
def initialize(cluster_name:, application_name:, force_variable_definition:, file_name:, options: {})
|
27
|
+
@cluster_name = cluster_name
|
28
|
+
@application_name = application_name
|
29
|
+
@force_variable_definiton = force_variable_definition
|
30
|
+
@file_name = file_name
|
31
|
+
@options = options
|
32
|
+
Orchparty.options=options
|
33
|
+
|
34
|
+
load_plugins
|
35
|
+
end
|
30
36
|
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
def plugins
|
38
|
+
Orchparty::Plugin.plugins
|
39
|
+
end
|
34
40
|
|
35
|
-
|
36
|
-
|
37
|
-
|
41
|
+
def print(method:, out_io:)
|
42
|
+
app(out_io: out_io).print(method)
|
43
|
+
end
|
38
44
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
app = KubernetesApplication.new(app_config: app_config, namespace: application_name, cluster_name: cluster_name, file_name: file_name)
|
43
|
-
app.install
|
44
|
-
end
|
45
|
+
def install
|
46
|
+
app.install
|
47
|
+
end
|
45
48
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
def upgrade
|
50
|
+
app.upgrade
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def app(out_io: STDOUT)
|
56
|
+
parsed = Orchparty::Kubernetes::DSLParser.new(@file_name).parse
|
57
|
+
app_config = Transformations.transform_kubernetes(parsed, force_variable_definition: @force_variable_definition).applications[@application_name]
|
58
|
+
KubernetesApplication.new(app_config: app_config, namespace: @application_name, cluster_name: @cluster_name, file_name: @file_name, out_io: out_io)
|
59
|
+
end
|
60
|
+
|
61
|
+
def generate(plugin_name, options, plugin_options)
|
62
|
+
plugins[plugin_name].generate(ast(options), plugin_options)
|
63
|
+
end
|
52
64
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
65
|
+
def ast(filename:, application:, force_variable_definition: nil)
|
66
|
+
Transformations.transform(Orchparty::DSLParser.new(filename).parse,
|
67
|
+
force_variable_definition: force_variable_definition).applications[application]
|
68
|
+
end
|
69
|
+
|
70
|
+
def load_plugins
|
71
|
+
Gem::Specification.map do |f|
|
72
|
+
f.matches_for_glob('orchparty/plugins/*.rb')
|
73
|
+
end.flatten.map do |file_name|
|
74
|
+
File.basename(file_name,
|
75
|
+
'.*').to_sym
|
76
|
+
end.each do |plugin_name|
|
77
|
+
plugin(plugin_name)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def plugin(name)
|
82
|
+
Orchparty::Plugin.load_plugin(name)
|
83
|
+
end
|
58
84
|
end
|
59
85
|
end
|
data/minfra-cli.gemspec
CHANGED
@@ -33,4 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_runtime_dependency "hashie", "~>3.5"
|
34
34
|
spec.add_runtime_dependency "activesupport", "~> 6.1"
|
35
35
|
spec.add_runtime_dependency "erubis", "~> 2.7"
|
36
|
+
spec.add_runtime_dependency "hiera", "3.9.0"
|
37
|
+
spec.add_runtime_dependency "hiera-eyaml", "3.3.0"
|
38
|
+
spec.add_runtime_dependency "hiera-eyaml-gpg", "0.7.4"
|
36
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minfra-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Schrammel
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -100,6 +100,48 @@ dependencies:
|
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '2.7'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: hiera
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - '='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 3.9.0
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - '='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 3.9.0
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: hiera-eyaml
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - '='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 3.3.0
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - '='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 3.3.0
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: hiera-eyaml-gpg
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - '='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 0.7.4
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 0.7.4
|
103
145
|
description: A cli framework for k8s based development and deployment.
|
104
146
|
email:
|
105
147
|
- peter.schrammel@gmx.de
|
@@ -110,11 +152,8 @@ extra_rdoc_files: []
|
|
110
152
|
files:
|
111
153
|
- ".dockerignore"
|
112
154
|
- ".gitignore"
|
113
|
-
- ".rspec"
|
114
155
|
- CHANGELOG.md
|
115
156
|
- Dockerfile
|
116
|
-
- Gemfile
|
117
|
-
- Gemfile.lock
|
118
157
|
- bin/build
|
119
158
|
- bin/console
|
120
159
|
- bin/container_exec
|
@@ -191,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
230
|
- !ruby/object:Gem::Version
|
192
231
|
version: '0'
|
193
232
|
requirements: []
|
194
|
-
rubygems_version: 3.
|
233
|
+
rubygems_version: 3.1.6
|
195
234
|
signing_key:
|
196
235
|
specification_version: 4
|
197
236
|
summary: A cli framework for k8s based development and deployment.
|
data/.rspec
DELETED
data/Gemfile
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
source 'https://rubygems.org'
|
3
|
-
|
4
|
-
#gemspec
|
5
|
-
gem "thor"
|
6
|
-
gem "table_print", "1.5.6"
|
7
|
-
gem "rest-client", "~>2.0"
|
8
|
-
gem "hashie", "~>3.5"
|
9
|
-
gem "bootsnap"
|
10
|
-
gem "gli", "~> 2.16.0"
|
11
|
-
gem "activesupport"
|
12
|
-
gem "erubis"
|
13
|
-
|
14
|
-
gem 'byebug', require: true # convenience
|
15
|
-
gem 'graphiti'
|
16
|
-
gem 'faraday'
|
17
|
-
|
18
|
-
|
19
|
-
group :test do
|
20
|
-
gem 'rspec'
|
21
|
-
gem 'rubocop'
|
22
|
-
gem 'timecop'
|
23
|
-
end
|
24
|
-
|
25
|
-
group :development, :test do
|
26
|
-
gem 'guard-rspec', require: false
|
27
|
-
gem 'pry'
|
28
|
-
gem 'pry-doc'
|
29
|
-
end
|
30
|
-
|
31
|
-
if false && ENV["MINFRA_WITH_PLUGINS"]=="true" # this is only set when we run the exe (not on bundle install...)
|
32
|
-
require 'ostruct'
|
33
|
-
require 'json'
|
34
|
-
require 'byebug'
|
35
|
-
|
36
|
-
[Pathname.new(ENV["MINFRA_PATH"]).join("config","minfra_plugins.json"),
|
37
|
-
Pathname.new(ENV["MINFRA_PATH"]).join("me","minfra_plugins.json")].each do |file|
|
38
|
-
|
39
|
-
next unless File.exist?(file)
|
40
|
-
|
41
|
-
plugins=JSON.parse(File.read(file))
|
42
|
-
plugins["plugins"].each do |spec|
|
43
|
-
opts=spec["opts"] || {}
|
44
|
-
opts.merge(require: false)
|
45
|
-
if opts["path"]
|
46
|
-
gem spec["name"], spec["version"], opts
|
47
|
-
else
|
48
|
-
begin
|
49
|
-
Gem::Specification.find_by_name(spec["name"]) unless ENV["MINFRA_SETUP"]
|
50
|
-
gem spec["name"], spec["version"], opts
|
51
|
-
rescue Gem::MissingSpecError
|
52
|
-
STDERR.puts("Can't load plugin: #{spec["name"]}, #{spec["version"]}; run 'minfra plugin setup'")
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
|
data/Gemfile.lock
DELETED
@@ -1,171 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: https://rubygems.org/
|
3
|
-
specs:
|
4
|
-
activesupport (6.1.0)
|
5
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
6
|
-
i18n (>= 1.6, < 2)
|
7
|
-
minitest (>= 5.1)
|
8
|
-
tzinfo (~> 2.0)
|
9
|
-
zeitwerk (~> 2.3)
|
10
|
-
ast (2.4.0)
|
11
|
-
bootsnap (1.4.6)
|
12
|
-
msgpack (~> 1.0)
|
13
|
-
byebug (11.1.3)
|
14
|
-
coderay (1.1.3)
|
15
|
-
concurrent-ruby (1.1.7)
|
16
|
-
diff-lcs (1.3)
|
17
|
-
domain_name (0.5.20190701)
|
18
|
-
unf (>= 0.0.5, < 1.0.0)
|
19
|
-
dry-configurable (0.13.0)
|
20
|
-
concurrent-ruby (~> 1.0)
|
21
|
-
dry-core (~> 0.6)
|
22
|
-
dry-container (0.9.0)
|
23
|
-
concurrent-ruby (~> 1.0)
|
24
|
-
dry-configurable (~> 0.13, >= 0.13.0)
|
25
|
-
dry-core (0.7.1)
|
26
|
-
concurrent-ruby (~> 1.0)
|
27
|
-
dry-inflector (0.2.1)
|
28
|
-
dry-logic (1.2.0)
|
29
|
-
concurrent-ruby (~> 1.0)
|
30
|
-
dry-core (~> 0.5, >= 0.5)
|
31
|
-
dry-types (1.5.1)
|
32
|
-
concurrent-ruby (~> 1.0)
|
33
|
-
dry-container (~> 0.3)
|
34
|
-
dry-core (~> 0.5, >= 0.5)
|
35
|
-
dry-inflector (~> 0.1, >= 0.1.2)
|
36
|
-
dry-logic (~> 1.0, >= 1.0.2)
|
37
|
-
erubis (2.7.0)
|
38
|
-
faraday (2.0.1)
|
39
|
-
faraday-net_http (~> 2.0)
|
40
|
-
ruby2_keywords (>= 0.0.4)
|
41
|
-
faraday-net_http (2.0.1)
|
42
|
-
ffi (1.14.2)
|
43
|
-
formatador (0.2.5)
|
44
|
-
gli (2.16.1)
|
45
|
-
graphiti (1.3.5)
|
46
|
-
activesupport (>= 4.1)
|
47
|
-
concurrent-ruby (~> 1.0)
|
48
|
-
dry-types (>= 0.15.0, < 2.0)
|
49
|
-
graphiti_errors (~> 1.1.0)
|
50
|
-
jsonapi-renderer (~> 0.2, >= 0.2.2)
|
51
|
-
jsonapi-serializable (~> 0.3.0)
|
52
|
-
graphiti_errors (1.1.2)
|
53
|
-
jsonapi-serializable (~> 0.1)
|
54
|
-
guard (2.16.2)
|
55
|
-
formatador (>= 0.2.4)
|
56
|
-
listen (>= 2.7, < 4.0)
|
57
|
-
lumberjack (>= 1.0.12, < 2.0)
|
58
|
-
nenv (~> 0.1)
|
59
|
-
notiffany (~> 0.0)
|
60
|
-
pry (>= 0.9.12)
|
61
|
-
shellany (~> 0.0)
|
62
|
-
thor (>= 0.18.1)
|
63
|
-
guard-compat (1.2.1)
|
64
|
-
guard-rspec (4.7.3)
|
65
|
-
guard (~> 2.1)
|
66
|
-
guard-compat (~> 1.1)
|
67
|
-
rspec (>= 2.99.0, < 4.0)
|
68
|
-
hashie (3.5.7)
|
69
|
-
http-accept (1.7.0)
|
70
|
-
http-cookie (1.0.3)
|
71
|
-
domain_name (~> 0.5)
|
72
|
-
i18n (1.8.5)
|
73
|
-
concurrent-ruby (~> 1.0)
|
74
|
-
jaro_winkler (1.5.4)
|
75
|
-
jsonapi-renderer (0.2.2)
|
76
|
-
jsonapi-serializable (0.3.1)
|
77
|
-
jsonapi-renderer (~> 0.2.0)
|
78
|
-
listen (3.3.3)
|
79
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
80
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
81
|
-
lumberjack (1.2.8)
|
82
|
-
method_source (1.0.0)
|
83
|
-
mime-types (3.3.1)
|
84
|
-
mime-types-data (~> 3.2015)
|
85
|
-
mime-types-data (3.2020.0425)
|
86
|
-
minitest (5.14.2)
|
87
|
-
msgpack (1.3.3)
|
88
|
-
nenv (0.3.0)
|
89
|
-
netrc (0.11.0)
|
90
|
-
notiffany (0.1.3)
|
91
|
-
nenv (~> 0.1)
|
92
|
-
shellany (~> 0.0)
|
93
|
-
parallel (1.19.1)
|
94
|
-
parser (2.7.1.2)
|
95
|
-
ast (~> 2.4.0)
|
96
|
-
pry (0.13.1)
|
97
|
-
coderay (~> 1.1)
|
98
|
-
method_source (~> 1.0)
|
99
|
-
pry-doc (1.1.0)
|
100
|
-
pry (~> 0.11)
|
101
|
-
yard (~> 0.9.11)
|
102
|
-
rainbow (3.0.0)
|
103
|
-
rb-fsevent (0.10.4)
|
104
|
-
rb-inotify (0.10.1)
|
105
|
-
ffi (~> 1.0)
|
106
|
-
rest-client (2.1.0)
|
107
|
-
http-accept (>= 1.7.0, < 2.0)
|
108
|
-
http-cookie (>= 1.0.2, < 2.0)
|
109
|
-
mime-types (>= 1.16, < 4.0)
|
110
|
-
netrc (~> 0.8)
|
111
|
-
rexml (3.2.4)
|
112
|
-
rspec (3.9.0)
|
113
|
-
rspec-core (~> 3.9.0)
|
114
|
-
rspec-expectations (~> 3.9.0)
|
115
|
-
rspec-mocks (~> 3.9.0)
|
116
|
-
rspec-core (3.9.2)
|
117
|
-
rspec-support (~> 3.9.3)
|
118
|
-
rspec-expectations (3.9.2)
|
119
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
120
|
-
rspec-support (~> 3.9.0)
|
121
|
-
rspec-mocks (3.9.1)
|
122
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
123
|
-
rspec-support (~> 3.9.0)
|
124
|
-
rspec-support (3.9.3)
|
125
|
-
rubocop (0.82.0)
|
126
|
-
jaro_winkler (~> 1.5.1)
|
127
|
-
parallel (~> 1.10)
|
128
|
-
parser (>= 2.7.0.1)
|
129
|
-
rainbow (>= 2.2.2, < 4.0)
|
130
|
-
rexml
|
131
|
-
ruby-progressbar (~> 1.7)
|
132
|
-
unicode-display_width (>= 1.4.0, < 2.0)
|
133
|
-
ruby-progressbar (1.10.1)
|
134
|
-
ruby2_keywords (0.0.5)
|
135
|
-
shellany (0.0.1)
|
136
|
-
table_print (1.5.6)
|
137
|
-
thor (1.0.1)
|
138
|
-
timecop (0.9.1)
|
139
|
-
tzinfo (2.0.4)
|
140
|
-
concurrent-ruby (~> 1.0)
|
141
|
-
unf (0.1.4)
|
142
|
-
unf_ext
|
143
|
-
unf_ext (0.0.7.7)
|
144
|
-
unicode-display_width (1.7.0)
|
145
|
-
yard (0.9.25)
|
146
|
-
zeitwerk (2.4.2)
|
147
|
-
|
148
|
-
PLATFORMS
|
149
|
-
ruby
|
150
|
-
|
151
|
-
DEPENDENCIES
|
152
|
-
activesupport
|
153
|
-
bootsnap
|
154
|
-
byebug
|
155
|
-
erubis
|
156
|
-
faraday
|
157
|
-
gli (~> 2.16.0)
|
158
|
-
graphiti
|
159
|
-
guard-rspec
|
160
|
-
hashie (~> 3.5)
|
161
|
-
pry
|
162
|
-
pry-doc
|
163
|
-
rest-client (~> 2.0)
|
164
|
-
rspec
|
165
|
-
rubocop
|
166
|
-
table_print (= 1.5.6)
|
167
|
-
thor
|
168
|
-
timecop
|
169
|
-
|
170
|
-
BUNDLED WITH
|
171
|
-
2.1.4
|