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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4224f87e9e115273ab68701933de59e1f158defa41dce87eb654e99995194e17
4
- data.tar.gz: 4d3a42708f78a4f735077e384a22cc1c61dfb3bd53212ceac3cd6e8f2c3a58a2
3
+ metadata.gz: 3a6dedf2d900fb64c7e8b58684942c15e67199910499d8a9afc9c20459deda7d
4
+ data.tar.gz: c7f6d2b107c53169ac51830e7962c2b433f5a533d624c0ea18b23eba9eb159e1
5
5
  SHA512:
6
- metadata.gz: aa77c060c478f6af724543a962c4ac95f20a224ef8b60d614de57ce65a4de81e6b3b31b992781008db931bd3be670566e2cff6fbfd83b3a847e74c775c24ad77
7
- data.tar.gz: 176fbdbdcc45afea7143417a7cb66a3796e95a48028ee2a4cb6890e3e5b80cce3322a915afa87938ab53d4a8f64cae57df0409eace476a1161485ed318404709
6
+ metadata.gz: e17628bc18b689e5033226b6cdc262dc0738423663110dcdd8ab5747c17fddcb04f486ae885b767f7b356ec10aa996a2382694ab897eaf4d945e89a4a5d91e31
7
+ data.tar.gz: 60b5b1f9055d47386232d8ce7b980f8818e1a028b51673ff9a820c92970457fc587c9b427fa5d439973cfdd5e8dbc766065eb50cf3e25052eda9fc47ef9fdd54
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
- # 0.2.1
2
- * fixing preload
1
+ # 1.0.0
2
+ * adding hiera as dependecy
3
+ * removing self developped inheritance of data
4
+
5
+ # 0.2.2 Secrets support in charts
3
6
 
4
7
  # 0.1.0 Initial
5
8
  * opensourcing a base state, still WIP!
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 858049876441.dkr.ecr.eu-west-1.amazonaws.com/#{@project_name}:#{@cache_tag}")
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
@@ -2,5 +2,7 @@
2
2
 
3
3
  $LOAD_PATH << File.expand_path('../lib', __dir__)
4
4
  require 'minfra/cli'
5
- Minfra::Cli::Main.start(ARGV)
5
+
6
+ Minfra::Cli.init(ARGV)
7
+ Minfra::Cli.run
6
8
 
@@ -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.print(cluster_name: cluster,
91
- application_name: stack.name,
92
- force_variable_definition: false,
93
- file_name: stack.stack_rb_path.to_s,
94
- method: method,
95
- options: options,
96
- out_io: f)
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.send(method, cluster_name: cluster, application_name: stack.name, force_variable_definition: false, file_name: stack.stack_rb_path.to_s, options: options)
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
@@ -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
- @project_minfrarc_path = @base_path.join("config",'minfrarc.rb')
48
- require @project_minfrarc_path if @project_minfrarc_path.exist?
49
- @me_minfrarc_path = @me_path.join('minfrarc.rb')
50
- require @me_minfrarc_path if @me_minfrarc_path.exist?
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 = @config.environments[@orch_env] || raise(EnvironmentNotFoundError.new("Configuration for orchestration environment '#{@orch_env}' not found. Available orechstration environments: #{@config.environments.keys.inspect}"))
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
@@ -1,5 +1,5 @@
1
1
  module Minfra
2
2
  module Cli
3
- VERSION = '0.2.1'.freeze
3
+ VERSION = '1.0.0'.freeze
4
4
  end
5
5
  end
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 ||= Config.new
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
- require "deep_merge"
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
- module Orchparty
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
- def self.load_all_available_plugins
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.plugins
24
- Orchparty::Plugin.plugins
19
+ def self.options=(opt)
20
+ @@options=opt
25
21
  end
22
+
23
+ class App
24
+ attr_reader :options
26
25
 
27
- def self.plugin(name)
28
- Orchparty::Plugin.load_plugin(name)
29
- end
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
- def self.ast(filename: , application:, force_variable_definition: nil )
32
- Transformations.transform(Orchparty::DSLParser.new(filename).parse, force_variable_definition: force_variable_definition).applications[application]
33
- end
37
+ def plugins
38
+ Orchparty::Plugin.plugins
39
+ end
34
40
 
35
- def self.generate(plugin_name, options, plugin_options)
36
- plugins[plugin_name].generate(ast(options), plugin_options)
37
- end
41
+ def print(method:, out_io:)
42
+ app(out_io: out_io).print(method)
43
+ end
38
44
 
39
- def self.install(cluster_name: , application_name: , force_variable_definition:, file_name:, options: )
40
- @@options= options
41
- app_config = Transformations.transform_kubernetes(Orchparty::Kubernetes::DSLParser.new(file_name).parse, force_variable_definition: force_variable_definition).applications[application_name]
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
- def self.upgrade(cluster_name: , application_name: , force_variable_definition:, file_name:, options: )
47
- @@options = options
48
- app_config = Transformations.transform_kubernetes(Orchparty::Kubernetes::DSLParser.new(file_name).parse, force_variable_definition: force_variable_definition).applications[application_name]
49
- app = KubernetesApplication.new(app_config: app_config, namespace: application_name, cluster_name: cluster_name, file_name: file_name)
50
- app.upgrade
51
- end
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
- def self.print(cluster_name: , application_name: , force_variable_definition:, file_name:, method:, options:, out_io: )
54
- @@options= options
55
- app_config = Transformations.transform_kubernetes(Orchparty::Kubernetes::DSLParser.new(file_name).parse, force_variable_definition: force_variable_definition).applications[application_name]
56
- app = KubernetesApplication.new(app_config: app_config, namespace: application_name, cluster_name: cluster_name, file_name: file_name, out_io: out_io)
57
- app.print(method)
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.2.1
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-06-04 00:00:00.000000000 Z
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.2.5
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
@@ -1,2 +0,0 @@
1
- --format progress
2
- --color
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