minfra-cli 2.1.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -5
- data/lib/minfra/cli/commands/kube.rb +1 -4
- data/lib/minfra/cli/commands/project.rb +0 -2
- data/lib/minfra/cli/commands/stack.rb +1 -1
- data/lib/minfra/cli/hiera_looker.rb +5 -0
- data/lib/minfra/cli/version.rb +1 -1
- data/lib/minfra/cli.rb +0 -1
- data/lib/orchparty/kubernetes_application.rb +15 -2
- data/minfra-cli.gemspec +1 -0
- metadata +16 -3
- data/lib/minfra/cli/document.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec0639d81eca018b238482b84cc895bdb32ee7a1b5bb3d1d6696f1b042f61e23
|
4
|
+
data.tar.gz: b84403ebad45d5c4d12d2107c5c6c11e9f0ccfdaaa30a814144e9e2204e863d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c0da44b29f119c3cab74943f00e1371ce313fab2ecf05fc6f9e34eb5d64b90399cb985b2b48065904af01d905669ac4437ae0a627277b4a21bf53dab253b27e
|
7
|
+
data.tar.gz: 3459bae4cda6ec35edb67b31885bfe894faf4b973d13f53c17df1a055728667fb5c33ea45cce4aa95a28f601c0dea25e7000eb072258cc7fc9fcd1f0da722a63
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,19 @@
|
|
1
|
+
# 3.0.0
|
2
|
+
* change: debug output on template errors
|
3
|
+
Incompatibility
|
4
|
+
* change: used_vars are turned into true yaml types when creating the value file
|
5
|
+
# 2.2.0
|
6
|
+
* fixing: should not modify l('env.roles')
|
7
|
+
* cleanup: removing template testing --debug flag, causing noise
|
8
|
+
* cleanup: removing Documentation hooks
|
9
|
+
* fixing: hiera lookup retrying on gpg memory error exceptions
|
10
|
+
* adding: gpgme dependency
|
1
11
|
# 2.1.0
|
2
|
-
*
|
3
|
-
* fixing setup dev
|
4
|
-
* colored errors
|
5
|
-
* wrapping hiera lookup errors of gpg
|
6
|
-
* adding HIERA_DEBUG_LOOKUPS=true
|
12
|
+
* adding: :all hook
|
13
|
+
* fixing: setup dev
|
14
|
+
* adding: colored errors and warnings
|
15
|
+
* change: wrapping hiera lookup errors of gpg
|
16
|
+
* adding: HIERA_DEBUG_LOOKUPS=true
|
7
17
|
# 2.0.1
|
8
18
|
Refactorings
|
9
19
|
* installing into Kernel only when 'exec' not at 'init' time
|
@@ -101,7 +101,7 @@ module Minfra
|
|
101
101
|
run(%(docker network rm #{kind_name}), exit_on_error: false)
|
102
102
|
end
|
103
103
|
|
104
|
-
def deploy(stack_name,
|
104
|
+
def deploy(stack_name, _reason_message)
|
105
105
|
# TBD: options is global, avoid it!
|
106
106
|
|
107
107
|
test = options[:test]
|
@@ -145,8 +145,6 @@ module Minfra
|
|
145
145
|
|
146
146
|
exit_error('Deployment aborted!') if !(@config.dev? || options[:force] == true) && !Ask.boolean('Are the changes ok?')
|
147
147
|
|
148
|
-
message = "deploying stack #{stack.name}: #{reason_message}."
|
149
|
-
Minfra::Cli::Document.document(@config, "started #{message}")
|
150
148
|
orch = Orchparty::App.new(cluster_name: cluster,
|
151
149
|
application_name: stack.name,
|
152
150
|
force_variable_definition: false,
|
@@ -154,7 +152,6 @@ module Minfra
|
|
154
152
|
status_dir: stack.release_path,
|
155
153
|
options:)
|
156
154
|
orch.send(method)
|
157
|
-
Minfra::Cli::Document.document(@config, "finished #{message}")
|
158
155
|
end
|
159
156
|
|
160
157
|
def rollback(stack_name, env, deployment, cluster)
|
@@ -47,9 +47,7 @@ module Minfra
|
|
47
47
|
ARGV.delete('test')
|
48
48
|
|
49
49
|
if File.exist?('./bin/run_tests')
|
50
|
-
# config = Config.load('staging')
|
51
50
|
project = ProjectInfo.load(Pathname.pwd)
|
52
|
-
# Minfra::Cli::Document.document(config, "Using project specific ./bin/run_tests in #{project.name}")
|
53
51
|
debug "Using project specific ./bin/run_tests in #{project.name}"
|
54
52
|
system('./bin/run_tests', out: $stdout, err: :out)
|
55
53
|
else
|
@@ -35,7 +35,7 @@ module Minfra
|
|
35
35
|
def deploy(stack_name, message = '')
|
36
36
|
stacks = l('env.roles') || l('env.stacks') || []
|
37
37
|
default_stacks = minfra_config.project.default_stacks || []
|
38
|
-
stacks = stacks
|
38
|
+
stacks = stacks + default_stacks
|
39
39
|
if stacks.include?(stack_name) || options[:force] || options[:test]
|
40
40
|
kube.deploy(stack_name, message)
|
41
41
|
else
|
@@ -39,6 +39,7 @@ module Minfra
|
|
39
39
|
else
|
40
40
|
:deep
|
41
41
|
end
|
42
|
+
retry_attempts = 0
|
42
43
|
begin
|
43
44
|
result = @hiera.lookup(fst_value, default, @scope, nil, lookup_type)
|
44
45
|
rescue GPGME::Error::NoSecretKey
|
@@ -50,6 +51,10 @@ module Minfra
|
|
50
51
|
rescue GPGME::Error
|
51
52
|
error("Having decrypt problems for hiera key: #{value}, #{$ERROR_INFO.message}")
|
52
53
|
raise Errors::ExitError
|
54
|
+
rescue Errno::ENOMEM # see https://github.com/ueno/ruby-gpgme/issues/147
|
55
|
+
retry_attempts += 1
|
56
|
+
sleep 1
|
57
|
+
retry if retry_attempts < 5
|
53
58
|
end
|
54
59
|
result = result.dig(*values) if !values.empty? && result.is_a?(Hash) # we return nil or the scalar value and only drill down on hashes
|
55
60
|
result = default if result.nil?
|
data/lib/minfra/cli/version.rb
CHANGED
data/lib/minfra/cli.rb
CHANGED
@@ -18,7 +18,6 @@ require_relative 'cli/hook'
|
|
18
18
|
require_relative 'cli/common'
|
19
19
|
require_relative 'cli/command'
|
20
20
|
require_relative 'cli/ask'
|
21
|
-
require_relative 'cli/document'
|
22
21
|
require_relative 'cli/runner'
|
23
22
|
require_relative 'cli/helm_runner'
|
24
23
|
require_relative 'cli/kubectl_runner'
|
@@ -188,7 +188,7 @@ module Orchparty
|
|
188
188
|
|
189
189
|
def print_install
|
190
190
|
build_chart do |chart_path|
|
191
|
-
cmd = "helm template --namespace #{namespace} --
|
191
|
+
cmd = "helm template --namespace #{namespace} --kube-context #{cluster_name} --output-dir #{chart_path.join(
|
192
192
|
'..', 'helm_expanded'
|
193
193
|
)} #{service.name} #{chart_path}"
|
194
194
|
@out_io.puts `$cmd`
|
@@ -196,6 +196,7 @@ module Orchparty
|
|
196
196
|
|
197
197
|
debug('Helm: template check: OK')
|
198
198
|
else
|
199
|
+
system("#{cmd} --debug")
|
199
200
|
error('Helm: template check: FAIL')
|
200
201
|
end
|
201
202
|
end
|
@@ -246,7 +247,19 @@ module Orchparty
|
|
246
247
|
output_chart_path: output_chart_path
|
247
248
|
)
|
248
249
|
used_vars.each do |variable, value|
|
249
|
-
|
250
|
+
if value.is_a?(Numeric) && value >= 1000000 # this is bad as conversion is done only in some cases
|
251
|
+
value = value.to_s # see https://github.com/helm/helm/issues/3001
|
252
|
+
end
|
253
|
+
yml = { variable => value}.to_yaml[4..-1]
|
254
|
+
yml = case
|
255
|
+
when yml.match(/!ruby\/object/)
|
256
|
+
{ variable => value.to_s}.to_yaml[4..-1]
|
257
|
+
when yml.match(/!ruby\/array:Hashie::Array/)
|
258
|
+
{ variable => value.to_a}.to_yaml[4..-1]
|
259
|
+
else
|
260
|
+
yml
|
261
|
+
end
|
262
|
+
helm_values.write(yml)
|
250
263
|
end
|
251
264
|
end
|
252
265
|
end
|
data/minfra-cli.gemspec
CHANGED
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:
|
4
|
+
version: 3.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: 2024-
|
11
|
+
date: 2024-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -142,6 +142,20 @@ dependencies:
|
|
142
142
|
- - '='
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: 0.7.4
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: gpgme
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 2.0.0
|
152
|
+
type: :runtime
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 2.0.0
|
145
159
|
description: A cli framework for k8s based development and deployment.
|
146
160
|
email:
|
147
161
|
- peter.schrammel@gmx.de
|
@@ -187,7 +201,6 @@ files:
|
|
187
201
|
- lib/minfra/cli/common.rb
|
188
202
|
- lib/minfra/cli/config.rb
|
189
203
|
- lib/minfra/cli/core_ext.rb
|
190
|
-
- lib/minfra/cli/document.rb
|
191
204
|
- lib/minfra/cli/env.rb
|
192
205
|
- lib/minfra/cli/errors.rb
|
193
206
|
- lib/minfra/cli/helm_runner.rb
|
data/lib/minfra/cli/document.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Minfra
|
4
|
-
module Cli
|
5
|
-
class Document
|
6
|
-
def self.document(config, message)
|
7
|
-
new(config).document(message)
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize(config)
|
11
|
-
@config = config
|
12
|
-
end
|
13
|
-
|
14
|
-
def document(_message)
|
15
|
-
return true if @config.dev?
|
16
|
-
|
17
|
-
puts 'TBD: calling documentation hooks'
|
18
|
-
true
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|