dapp 0.13.3 → 0.13.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/dapp +0 -13
- data/config/en/common.yml +4 -2
- data/config/en/net_status.yml +15 -3
- data/lib/dapp.rb +11 -6
- data/lib/dapp/cli.rb +1 -1
- data/lib/dapp/cli/command/base.rb +4 -4
- data/lib/dapp/config/directive/base.rb +4 -2
- data/lib/dapp/core_ext/hash.rb +14 -0
- data/lib/dapp/dapp.rb +32 -6
- data/lib/dapp/dapp/dapp_config.rb +85 -0
- data/lib/dapp/dapp/dappfile.rb +4 -0
- data/lib/dapp/dapp/deps/base.rb +2 -2
- data/lib/dapp/dapp/deps/gitartifact.rb +2 -2
- data/lib/dapp/dapp/logging/base.rb +5 -5
- data/lib/dapp/dapp/logging/process.rb +5 -7
- data/lib/dapp/dapp/shellout/base.rb +16 -17
- data/lib/dapp/deployment/cli/command/deployment.rb +2 -3
- data/lib/dapp/deployment/dapp/command/apply.rb +6 -6
- data/lib/dapp/deployment/dapp/dapp.rb +0 -1
- data/lib/dapp/deployment/kube_app.rb +1 -1
- data/lib/dapp/deployment/kube_base.rb +1 -1
- data/lib/dapp/dimg/build/stage/artifact_base.rb +3 -8
- data/lib/dapp/dimg/build/stage/base.rb +57 -38
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +1 -1
- data/lib/dapp/dimg/build/stage/from.rb +6 -2
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +2 -2
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +1 -5
- data/lib/dapp/dimg/build/stage/ga_base.rb +1 -14
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +7 -31
- data/lib/dapp/dimg/build/stage/ga_related_dependencies_base.rb +21 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +10 -3
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +3 -3
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +3 -3
- data/lib/dapp/dimg/build/stage/mod/group.rb +19 -7
- data/lib/dapp/dimg/build/stage/mod/logging.rb +7 -20
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +1 -1
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +3 -3
- data/lib/dapp/dimg/builder/chef.rb +2 -2
- data/lib/dapp/dimg/builder/chef/cookbook.rb +2 -2
- data/lib/dapp/dimg/cli/command/dimg.rb +1 -1
- data/lib/dapp/dimg/cli/command/dimg/build.rb +15 -8
- data/lib/dapp/dimg/config/directive/artifact_base.rb +13 -4
- data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +1 -1
- data/lib/dapp/dimg/config/directive/dimg/validation.rb +6 -1
- data/lib/dapp/dimg/config/directive/docker/base.rb +1 -2
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +3 -0
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +1 -1
- data/lib/dapp/dimg/config/directive/mount.rb +9 -1
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +13 -15
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +3 -3
- data/lib/dapp/dimg/dapp/command/cleanup.rb +1 -1
- data/lib/dapp/dimg/dapp/command/common.rb +17 -6
- data/lib/dapp/dimg/dapp/command/mrproper.rb +9 -4
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +19 -17
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +1 -1
- data/lib/dapp/dimg/dimg.rb +5 -5
- data/lib/dapp/dimg/dimg/git_artifact.rb +11 -6
- data/lib/dapp/dimg/dimg/path.rb +2 -6
- data/lib/dapp/dimg/git_artifact.rb +118 -66
- data/lib/dapp/dimg/git_repo/base.rb +1 -1
- data/lib/dapp/dimg/git_repo/own.rb +1 -1
- data/lib/dapp/dimg/git_repo/remote.rb +23 -14
- data/lib/dapp/dimg/image/docker.rb +11 -11
- data/lib/dapp/dimg/image/scratch.rb +33 -9
- data/lib/dapp/dimg/image/stage.rb +3 -3
- data/lib/dapp/helper/cli.rb +8 -0
- data/lib/dapp/helper/tar.rb +31 -0
- data/lib/dapp/kube/cli/command/kube.rb +5 -4
- data/lib/dapp/kube/cli/command/kube/deploy.rb +5 -0
- data/lib/dapp/kube/cli/command/kube/minikube_setup.rb +13 -0
- data/lib/dapp/kube/cli/command/kube/{secret_file_encrypt.rb → secret_extract.rb} +3 -3
- data/lib/dapp/kube/cli/command/kube/secret_generate.rb +11 -1
- data/lib/dapp/kube/client.rb +1 -1
- data/lib/dapp/kube/client/error.rb +1 -1
- data/lib/dapp/kube/dapp/command/common.rb +29 -4
- data/lib/dapp/kube/dapp/command/deploy.rb +43 -21
- data/lib/dapp/kube/dapp/command/dismiss.rb +1 -1
- data/lib/dapp/{deployment → kube}/dapp/command/minikube_setup.rb +12 -12
- data/lib/dapp/kube/dapp/command/secret_extract.rb +46 -0
- data/lib/dapp/kube/dapp/command/secret_generate.rb +33 -4
- data/lib/dapp/kube/dapp/dapp.rb +3 -2
- data/lib/dapp/kube/error/kubernetes.rb +7 -0
- data/lib/dapp/kube/secret.rb +1 -1
- data/lib/dapp/version.rb +2 -2
- metadata +11 -7
- data/lib/dapp/deployment/cli/command/deployment/minikube_setup.rb +0 -13
- data/lib/dapp/kube/dapp/command/secret_file_encrypt.rb +0 -22
@@ -11,7 +11,7 @@ module Dapp
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def path
|
14
|
-
@path ||= Rugged::Repository.discover(dimg.home_path.to_s).path
|
14
|
+
@path ||= Pathname(Rugged::Repository.discover(dimg.home_path.to_s).path)
|
15
15
|
rescue Rugged::RepositoryError => _e
|
16
16
|
raise Error::Rugged, code: :local_git_repository_does_not_exist
|
17
17
|
end
|
@@ -2,6 +2,8 @@ module Dapp
|
|
2
2
|
module Dimg
|
3
3
|
module GitRepo
|
4
4
|
class Remote < Base
|
5
|
+
attr_reader :url
|
6
|
+
|
5
7
|
def initialize(dimg, name, url:)
|
6
8
|
super(dimg, name)
|
7
9
|
|
@@ -9,24 +11,21 @@ module Dapp
|
|
9
11
|
|
10
12
|
dimg.dapp.log_secondary_process(dimg.dapp.t(code: 'process.git_artifact_clone', data: { url: url }), short: true) do
|
11
13
|
begin
|
12
|
-
|
14
|
+
if [:https, :ssh].include?(protocol) && !Rugged.features.include?(protocol)
|
15
|
+
raise Error::Rugged, code: :rugged_protocol_not_supported, data: { url: url, protocol: protocol }
|
16
|
+
end
|
17
|
+
|
18
|
+
Rugged::Repository.clone_at(url, path.to_s, bare: true, credentials: _rugged_credentials)
|
13
19
|
rescue Rugged::NetworkError, Rugged::SslError => e
|
14
20
|
raise Error::Rugged, code: :rugged_remote_error, data: { message: e.message, url: url }
|
15
21
|
end
|
16
|
-
end unless
|
22
|
+
end unless path.directory?
|
17
23
|
end
|
18
24
|
|
19
25
|
def _rugged_credentials
|
20
26
|
@_rugged_credentials ||= begin
|
21
|
-
|
22
|
-
|
23
|
-
false
|
24
|
-
rescue URI::InvalidURIError
|
25
|
-
true
|
26
|
-
end
|
27
|
-
|
28
|
-
if ssh_url
|
29
|
-
host_with_user = @url.split(':', 2).first
|
27
|
+
if protocol == :ssh
|
28
|
+
host_with_user = url.split(':', 2).first
|
30
29
|
username = host_with_user.split('@', 2).reverse.last
|
31
30
|
Rugged::Credentials::SshKeyFromAgent.new(username: username)
|
32
31
|
end
|
@@ -34,7 +33,7 @@ module Dapp
|
|
34
33
|
end
|
35
34
|
|
36
35
|
def path
|
37
|
-
dimg.build_path('git_repo_remote', name, Digest::MD5.hexdigest(
|
36
|
+
Pathname(dimg.build_path('git_repo_remote', name, Digest::MD5.hexdigest(url)).to_s)
|
38
37
|
end
|
39
38
|
|
40
39
|
def fetch!(branch = nil)
|
@@ -61,8 +60,6 @@ module Dapp
|
|
61
60
|
|
62
61
|
protected
|
63
62
|
|
64
|
-
attr_reader :url
|
65
|
-
|
66
63
|
def git
|
67
64
|
super(bare: true, credentials: _rugged_credentials)
|
68
65
|
end
|
@@ -72,6 +69,18 @@ module Dapp
|
|
72
69
|
def branch_format(name)
|
73
70
|
"origin/#{name.reverse.chomp('origin/'.reverse).reverse}"
|
74
71
|
end
|
72
|
+
|
73
|
+
def protocol
|
74
|
+
@protocol ||= begin
|
75
|
+
if (scheme = URI.parse(url).scheme).nil?
|
76
|
+
:noname
|
77
|
+
else
|
78
|
+
scheme
|
79
|
+
end
|
80
|
+
rescue URI::InvalidURIError
|
81
|
+
:ssh
|
82
|
+
end
|
83
|
+
end
|
75
84
|
end
|
76
85
|
end
|
77
86
|
end
|
@@ -22,21 +22,21 @@ module Dapp
|
|
22
22
|
|
23
23
|
def untag!
|
24
24
|
raise Error::Build, code: :image_already_untagged, data: { name: name } unless tagged?
|
25
|
-
dapp.shellout!("
|
25
|
+
dapp.shellout!("#{dapp.host_docker_bin} rmi #{name}")
|
26
26
|
cache_reset
|
27
27
|
end
|
28
28
|
|
29
29
|
def push!
|
30
30
|
raise Error::Build, code: :image_not_exist, data: { name: name } unless tagged?
|
31
31
|
dapp.log_secondary_process(dapp.t(code: 'process.image_push', data: { name: name })) do
|
32
|
-
dapp.shellout!("
|
32
|
+
dapp.shellout!("#{dapp.host_docker_bin} push #{name}", verbose: true)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
def pull!
|
37
37
|
return if tagged?
|
38
38
|
dapp.log_secondary_process(dapp.t(code: 'process.image_pull', data: { name: name })) do
|
39
|
-
dapp.shellout!("
|
39
|
+
dapp.shellout!("#{dapp.host_docker_bin} pull #{name}", verbose: true)
|
40
40
|
end
|
41
41
|
cache_reset
|
42
42
|
end
|
@@ -56,7 +56,7 @@ module Dapp
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def self.image_config_option(image_id:, option:)
|
59
|
-
output = ::Dapp::Dapp.shellout!("
|
59
|
+
output = ::Dapp::Dapp.shellout!("#{::Dapp::Dapp.host_docker_bin} inspect --format='{{json .Config.#{option.to_s.capitalize}}}' #{image_id}").stdout.strip
|
60
60
|
output == 'null' ? [] : JSON.parse(output)
|
61
61
|
end
|
62
62
|
|
@@ -87,18 +87,18 @@ module Dapp
|
|
87
87
|
!(/^#{tag_format}$/ =~ name).nil?
|
88
88
|
end
|
89
89
|
|
90
|
-
def tag!(id:, tag:)
|
91
|
-
::Dapp::Dapp.shellout!("
|
90
|
+
def tag!(id:, tag:, verbose: false, quiet: false)
|
91
|
+
::Dapp::Dapp.shellout!("#{::Dapp::Dapp.host_docker_bin} tag #{id} #{tag}", verbose: verbose, quiet: quiet)
|
92
92
|
cache_reset
|
93
93
|
end
|
94
94
|
|
95
|
-
def save!(image_or_images, file_path)
|
95
|
+
def save!(image_or_images, file_path, verbose: false, quiet: false)
|
96
96
|
images = Array(image_or_images).join(' ')
|
97
|
-
::Dapp::Dapp.shellout!("
|
97
|
+
::Dapp::Dapp.shellout!("#{::Dapp::Dapp.host_docker_bin} save -o #{file_path} #{images}", verbose: verbose, quiet: quiet)
|
98
98
|
end
|
99
99
|
|
100
|
-
def load!(file_path)
|
101
|
-
::Dapp::Dapp.shellout!("
|
100
|
+
def load!(file_path, verbose: false, quiet: false)
|
101
|
+
::Dapp::Dapp.shellout!("#{::Dapp::Dapp.host_docker_bin} load -i #{file_path}", verbose: verbose, quiet: quiet)
|
102
102
|
end
|
103
103
|
|
104
104
|
def cache
|
@@ -107,7 +107,7 @@ module Dapp
|
|
107
107
|
|
108
108
|
def cache_reset(name = '')
|
109
109
|
cache.delete(name)
|
110
|
-
::Dapp::Dapp.shellout!("
|
110
|
+
::Dapp::Dapp.shellout!("#{::Dapp::Dapp.host_docker_bin} images --format='{{.Repository}}:{{.Tag}};{{.ID}};{{.CreatedAt}};{{.Size}}' --no-trunc #{name}")
|
111
111
|
.stdout
|
112
112
|
.lines
|
113
113
|
.each do |l|
|
@@ -2,6 +2,8 @@ module Dapp
|
|
2
2
|
module Dimg
|
3
3
|
module Image
|
4
4
|
class Scratch < Stage
|
5
|
+
include Helper::Tar
|
6
|
+
|
5
7
|
def initialize(**_kwargs)
|
6
8
|
super
|
7
9
|
@from_archives = []
|
@@ -12,20 +14,42 @@ module Dapp
|
|
12
14
|
end
|
13
15
|
|
14
16
|
def build!(**_kwargs)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
# build_from_command = if from_archives.empty?
|
19
|
-
# "#{dapp.tar_bin} c --files-from /dev/null"
|
20
|
-
# else
|
21
|
-
# "#{dapp.cat_bin} #{from_archives.join(' ')}"
|
22
|
-
# end
|
23
|
-
# @built_id = dapp.system_shellout!("#{build_from_command} | docker import #{prepared_change} - ").stdout.strip
|
17
|
+
@built_id = dapp.shellout!("docker import #{prepared_change} #{archive}").stdout.strip
|
18
|
+
ensure
|
19
|
+
FileUtils.rm_rf(tmp_path)
|
24
20
|
end
|
25
21
|
|
26
22
|
protected
|
27
23
|
|
28
24
|
attr_accessor :from_archives
|
25
|
+
|
26
|
+
def archive
|
27
|
+
tmp_path('archive.tar').tap do |archive_path|
|
28
|
+
tar_write(archive_path) do |common_tar|
|
29
|
+
from_archives.each do |from_archive|
|
30
|
+
tar_gz_read(from_archive) do |tar|
|
31
|
+
tar.each_entry do |entry|
|
32
|
+
mode = entry.header.mode
|
33
|
+
path = entry.full_name
|
34
|
+
|
35
|
+
if entry.directory?
|
36
|
+
common_tar.mkdir path, mode
|
37
|
+
else
|
38
|
+
common_tar.add_file path, mode do |tf|
|
39
|
+
tf.write entry.read
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def tmp_path(*path)
|
50
|
+
@tmp_path ||= Dir.mktmpdir('dapp-scratch-', dapp.tmp_base_dir)
|
51
|
+
dapp.make_path(@tmp_path, *path).expand_path.tap { |p| p.parent.mkpath }
|
52
|
+
end
|
29
53
|
end # Stage
|
30
54
|
end # Image
|
31
55
|
end # Dimg
|
@@ -25,7 +25,7 @@ module Dapp
|
|
25
25
|
run!
|
26
26
|
@built_id = commit!
|
27
27
|
ensure
|
28
|
-
dapp.shellout("
|
28
|
+
dapp.shellout("#{dapp.host_docker_bin} rm #{container_name}")
|
29
29
|
end
|
30
30
|
|
31
31
|
def built?
|
@@ -70,7 +70,7 @@ module Dapp
|
|
70
70
|
|
71
71
|
def run!
|
72
72
|
raise Error::Build, code: :built_id_not_defined if from.built_id.nil?
|
73
|
-
dapp.shellout!("
|
73
|
+
dapp.shellout!("#{dapp.host_docker_bin} run #{prepared_options} #{from.built_id} -ec '#{prepared_bash_command}'", verbose: true)
|
74
74
|
rescue ::Dapp::Error::Shellout => error
|
75
75
|
dapp.log_warning(desc: { code: :launched_command, data: { command: prepared_commands.join(' && ') }, context: :container })
|
76
76
|
|
@@ -83,7 +83,7 @@ module Dapp
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def commit!
|
86
|
-
dapp.shellout!("
|
86
|
+
dapp.shellout!("#{dapp.host_docker_bin} commit #{prepared_change} #{container_name}").stdout.strip
|
87
87
|
end
|
88
88
|
|
89
89
|
def clone!(name)
|
data/lib/dapp/helper/cli.rb
CHANGED
@@ -69,6 +69,14 @@ module Dapp
|
|
69
69
|
@composite_options ||= {}
|
70
70
|
@composite_options[opt] ||= []
|
71
71
|
end
|
72
|
+
|
73
|
+
def in_validate!(v, list)
|
74
|
+
raise OptionParser::InvalidArgument, "`#{v}` is not included in the list [#{list_msg_format(list)}]" unless list.include?(v)
|
75
|
+
end
|
76
|
+
|
77
|
+
def list_msg_format(list)
|
78
|
+
list.map { |s| "'#{s}'"}.join(', ')
|
79
|
+
end
|
72
80
|
end
|
73
81
|
end # Helper
|
74
82
|
end # Dapp
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Helper
|
3
|
+
module Tar
|
4
|
+
def tar_write(path)
|
5
|
+
File.open(path, File::RDWR | File::CREAT) do |f|
|
6
|
+
Gem::Package::TarWriter.new(f) do |tar|
|
7
|
+
yield tar if block_given?
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def tar_read(path)
|
13
|
+
File.open(path, File::RDONLY) do |f|
|
14
|
+
Gem::Package::TarReader.new(f) do |tar|
|
15
|
+
yield tar if block_given?
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def tar_gz_read(path)
|
21
|
+
File.open(path, File::RDONLY) do |f_gz|
|
22
|
+
Zlib::GzipReader.wrap(f_gz) do |f|
|
23
|
+
Gem::Package::TarReader.new(f) do |tar|
|
24
|
+
yield tar if block_given?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end # Tar
|
30
|
+
end # Helper
|
31
|
+
end # Dapp
|
@@ -1,18 +1,19 @@
|
|
1
1
|
module Dapp::Kube::CLI
|
2
2
|
module Command
|
3
3
|
class Kube < ::Dapp::CLI
|
4
|
-
SUBCOMMANDS = ['secret generate', 'secret key generate', '
|
4
|
+
SUBCOMMANDS = ['secret generate', 'secret key generate', 'deploy', 'dismiss', 'secret extract', 'minikube setup'].freeze
|
5
5
|
|
6
6
|
banner <<BANNER.freeze
|
7
|
-
Usage: dapp kube
|
7
|
+
Usage: dapp kube subcommand [subcommand options]
|
8
8
|
|
9
9
|
Available subcommands: (for details, dapp kube SUB-COMMAND --help)
|
10
10
|
|
11
11
|
dapp kube deploy [options] REPO
|
12
12
|
dapp kube dismiss [options]
|
13
|
-
dapp kube secret generate [options]
|
14
13
|
dapp kube secret key generate [options]
|
15
|
-
dapp kube secret
|
14
|
+
dapp kube secret generate [FILE_PATH] [options]
|
15
|
+
dapp kube secret extract [FILE_PATH] [options]
|
16
|
+
dapp kube minikube setup
|
16
17
|
|
17
18
|
Options:
|
18
19
|
BANNER
|
@@ -30,6 +30,11 @@ BANNER
|
|
30
30
|
default: [],
|
31
31
|
proc: proc { |v| composite_options(:helm_values) << v }
|
32
32
|
|
33
|
+
option :helm_secret_values_options,
|
34
|
+
long: '--secret-values FILE_PATH',
|
35
|
+
default: [],
|
36
|
+
proc: proc { |v| composite_options(:helm_secret_values) << v }
|
37
|
+
|
33
38
|
def run(argv = ARGV)
|
34
39
|
self.class.parse_options(self, argv)
|
35
40
|
repo = self.class.required_argument(self, 'repo')
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module Dapp::Kube::CLI::Command
|
2
2
|
class Kube < ::Dapp::CLI
|
3
|
-
class
|
3
|
+
class SecretExtract < Base
|
4
4
|
banner <<BANNER.freeze
|
5
5
|
Usage:
|
6
6
|
|
7
|
-
dapp kube secret
|
7
|
+
dapp kube secret extract [FILE_PATH] [options]
|
8
8
|
|
9
9
|
Options:
|
10
10
|
BANNER
|
@@ -15,7 +15,7 @@ BANNER
|
|
15
15
|
|
16
16
|
def run(argv = ARGV)
|
17
17
|
self.class.parse_options(self, argv)
|
18
|
-
file_path =
|
18
|
+
file_path = cli_arguments.empty? ? nil : cli_arguments.first
|
19
19
|
::Dapp::Dapp.new(options: cli_options).public_send(run_method, file_path)
|
20
20
|
end
|
21
21
|
end
|
@@ -4,10 +4,20 @@ module Dapp::Kube::CLI::Command
|
|
4
4
|
banner <<BANNER.freeze
|
5
5
|
Usage:
|
6
6
|
|
7
|
-
dapp kube secret generate
|
7
|
+
dapp kube secret generate [FILE_PATH] [options]
|
8
8
|
|
9
9
|
Options:
|
10
10
|
BANNER
|
11
|
+
|
12
|
+
option :output_file_path,
|
13
|
+
short: '-o OUTPUT_FILE_PATH',
|
14
|
+
required: false
|
15
|
+
|
16
|
+
def run(argv = ARGV)
|
17
|
+
self.class.parse_options(self, argv)
|
18
|
+
file_path = cli_arguments.empty? ? nil : cli_arguments.first
|
19
|
+
::Dapp::Dapp.new(options: cli_options).public_send(run_method, file_path)
|
20
|
+
end
|
11
21
|
end
|
12
22
|
end
|
13
23
|
end
|
data/lib/dapp/kube/client.rb
CHANGED
@@ -12,19 +12,44 @@ module Dapp
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def kube_namespace
|
15
|
-
|
15
|
+
kubernetes.namespace
|
16
|
+
end
|
17
|
+
|
18
|
+
def secret_key_should_exist!
|
19
|
+
raise(Error::Command,
|
20
|
+
code: :secret_key_not_found,
|
21
|
+
data: {not_found_in: secret_key_not_found_in.join(', ')}
|
22
|
+
) if secret.nil?
|
16
23
|
end
|
17
24
|
|
18
25
|
def secret
|
19
26
|
@secret ||= begin
|
20
|
-
secret_key = ENV['DAPP_SECRET_KEY']
|
21
|
-
|
27
|
+
unless secret_key = ENV['DAPP_SECRET_KEY']
|
28
|
+
secret_key_not_found_in << '`DAPP_SECRET_KEY`'
|
29
|
+
|
30
|
+
if dappfile_exists?
|
31
|
+
file_path = path('.dapp_secret_key')
|
32
|
+
if file_path.file?
|
33
|
+
secret_key = path('.dapp_secret_key').read.chomp
|
34
|
+
else
|
35
|
+
secret_key_not_found_in << "`#{file_path}`"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
22
40
|
Secret.new(secret_key) if secret_key
|
23
41
|
end
|
24
42
|
end
|
25
43
|
|
44
|
+
def secret_key_not_found_in
|
45
|
+
@secret_key_not_found_in ||= []
|
46
|
+
end
|
47
|
+
|
26
48
|
def kubernetes
|
27
|
-
@kubernetes ||=
|
49
|
+
@kubernetes ||= begin
|
50
|
+
namespace = options[:namespace].nil? ? nil : options[:namespace].tr('_', '-')
|
51
|
+
Client.new(namespace: namespace)
|
52
|
+
end
|
28
53
|
end
|
29
54
|
end
|
30
55
|
end
|