dapp 0.22.2 → 0.22.3
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/lib/dapp/cli/command/base.rb +15 -4
- data/lib/dapp/dapp.rb +2 -1
- data/lib/dapp/dimg/cli/command/base.rb +0 -15
- data/lib/dapp/kube/cli/command/kube/deploy.rb +16 -6
- data/lib/dapp/kube/cli/command/kube/lint.rb +9 -5
- data/lib/dapp/kube/cli/command/kube/render.rb +10 -5
- data/lib/dapp/kube/kubernetes/client.rb +21 -30
- data/lib/dapp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47259cb4752b216b1a7a7c5e9bb0ed9226f6f101974bb633739516a5e631599a
|
4
|
+
data.tar.gz: 6e4e53aac766610d3ce419514ec1e5e88a48185b21ab516169dd0ddf2d8c7a32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2c7dbffefb9f2a4d364b11ce2f0b78067c356e297fa0de4b314756029157f2d2d78fc0b8e465b9f3796b94632cd0d3fdb9e499892b42d20b8e35ae6e4b5cef1
|
7
|
+
data.tar.gz: c675f0a8769b304eb8bb458b212346b25df8ffe5245f5544dc9a103d0cf37651174f7eabcd6266a840a866fce8a45a16e40058ac31769c92658d34b3988e6016
|
@@ -68,10 +68,16 @@ module Dapp
|
|
68
68
|
dapp = ::Dapp::Dapp.new(options: options)
|
69
69
|
|
70
70
|
log_dapp_running_time(dapp, ignore: !log_running_time) do
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
71
|
+
begin
|
72
|
+
before_dapp_run_command(dapp)
|
73
|
+
|
74
|
+
if block_given?
|
75
|
+
yield dapp
|
76
|
+
elsif !run_method.nil?
|
77
|
+
dapp.public_send(run_method)
|
78
|
+
end
|
79
|
+
ensure
|
80
|
+
dapp.terminate
|
75
81
|
end
|
76
82
|
end
|
77
83
|
end
|
@@ -91,6 +97,11 @@ module Dapp
|
|
91
97
|
raise
|
92
98
|
end
|
93
99
|
|
100
|
+
def before_dapp_run_command(dapp, &blk)
|
101
|
+
yield if block_given?
|
102
|
+
dapp.try_host_docker_login
|
103
|
+
end
|
104
|
+
|
94
105
|
def cli_options(**kwargs)
|
95
106
|
dirs = [config[:build_dir], config[:run_dir], config[:deploy_dir]]
|
96
107
|
if dirs.compact.size > 1
|
data/lib/dapp/dapp.rb
CHANGED
@@ -6,21 +6,6 @@ module Dapp::Dimg::CLI
|
|
6
6
|
run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments))
|
7
7
|
end
|
8
8
|
|
9
|
-
def run_dapp_command(run_method, options: {}, log_running_time: true)
|
10
|
-
super(nil, options: options, log_running_time: log_running_time) do |dapp|
|
11
|
-
begin
|
12
|
-
dapp.host_docker_login
|
13
|
-
if block_given?
|
14
|
-
yield dapp
|
15
|
-
elsif !run_method.nil?
|
16
|
-
dapp.public_send(run_method)
|
17
|
-
end
|
18
|
-
ensure
|
19
|
-
dapp.terminate
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
9
|
def run_method
|
25
10
|
class_to_lowercase
|
26
11
|
end
|
@@ -69,6 +69,12 @@ BANNER
|
|
69
69
|
description: 'Default timeout to wait for resources to become ready, 300 seconds by default.',
|
70
70
|
proc: proc {|v| Integer(v)}
|
71
71
|
|
72
|
+
option :registry_username,
|
73
|
+
long: '--registry-username USERNAME'
|
74
|
+
|
75
|
+
option :registry_password,
|
76
|
+
long: '--registry-password PASSWORD'
|
77
|
+
|
72
78
|
option :without_registry,
|
73
79
|
long: "--without-registry",
|
74
80
|
default: false,
|
@@ -77,22 +83,26 @@ BANNER
|
|
77
83
|
|
78
84
|
def run(argv = ARGV)
|
79
85
|
self.class.parse_options(self, argv)
|
86
|
+
run_dapp_command(run_method, options: cli_options)
|
87
|
+
end
|
80
88
|
|
81
|
-
|
82
|
-
|
89
|
+
def before_dapp_run_command(dapp, &blk)
|
90
|
+
super(dapp) do
|
91
|
+
yield if block_given?
|
83
92
|
|
84
|
-
|
93
|
+
# Опция repo определяется в данном хуке, чтобы установить
|
94
|
+
# значение по умолчанию из объекта dapp: dapp.name
|
85
95
|
repo = if not cli_arguments[0].nil?
|
86
96
|
self.class.required_argument(self, 'repo')
|
87
97
|
else
|
88
98
|
dapp.name
|
89
99
|
end
|
90
|
-
|
91
100
|
dapp.options[:repo] = repo
|
92
101
|
|
93
|
-
dapp.
|
94
|
-
end
|
102
|
+
dapp.options[:tag] = [*dapp.options.delete(:tag), *dapp.options.delete(:image_version)]
|
103
|
+
end # super
|
95
104
|
end
|
105
|
+
|
96
106
|
end
|
97
107
|
end
|
98
108
|
end
|
@@ -56,18 +56,22 @@ BANNER
|
|
56
56
|
|
57
57
|
def run(argv = ARGV)
|
58
58
|
self.class.parse_options(self, argv)
|
59
|
+
run_dapp_command(run_method, options: cli_options, log_running_time: false)
|
60
|
+
end
|
61
|
+
|
62
|
+
def before_dapp_run_command(dapp, &blk)
|
63
|
+
super(dapp) do
|
64
|
+
yield if block_given?
|
59
65
|
|
60
|
-
|
66
|
+
# Опция repo определяется в данном хуке, чтобы установить
|
67
|
+
# значение по умолчанию из объекта dapp: dapp.name
|
61
68
|
repo = if not cli_arguments[0].nil?
|
62
69
|
self.class.required_argument(self, 'repo')
|
63
70
|
else
|
64
71
|
dapp.name
|
65
72
|
end
|
66
|
-
|
67
73
|
dapp.options[:repo] = repo
|
68
|
-
|
69
|
-
dapp.public_send(run_method)
|
70
|
-
end
|
74
|
+
end # super
|
71
75
|
end
|
72
76
|
|
73
77
|
end
|
@@ -65,19 +65,24 @@ BANNER
|
|
65
65
|
|
66
66
|
def run(argv = ARGV)
|
67
67
|
self.class.parse_options(self, argv)
|
68
|
+
run_dapp_command(run_method, options: cli_options, log_running_time: false)
|
69
|
+
end
|
70
|
+
|
71
|
+
def before_dapp_run_command(dapp, &blk)
|
72
|
+
super(dapp) do
|
73
|
+
yield if block_given?
|
68
74
|
|
69
|
-
|
75
|
+
# Опция repo определяется в данном хуке, чтобы установить
|
76
|
+
# значение по умолчанию из объекта dapp: dapp.name
|
70
77
|
repo = if not cli_arguments[0].nil?
|
71
78
|
self.class.required_argument(self, 'repo')
|
72
79
|
else
|
73
80
|
dapp.name
|
74
81
|
end
|
75
|
-
|
76
82
|
dapp.options[:repo] = repo
|
77
|
-
|
78
|
-
dapp.public_send(run_method)
|
79
|
-
end
|
83
|
+
end # super
|
80
84
|
end
|
85
|
+
|
81
86
|
end
|
82
87
|
end
|
83
88
|
end
|
@@ -128,7 +128,7 @@ module Dapp
|
|
128
128
|
protected
|
129
129
|
|
130
130
|
# query_parameters — соответствует 'Query Parameters' в документации kubernetes
|
131
|
-
# excon_parameters — соответствует
|
131
|
+
# excon_parameters — соответствует connection-опциям Excon
|
132
132
|
# body — hash для http-body, соответствует 'Body Parameters' в документации kubernetes, опционален
|
133
133
|
def request!(method, path, body: nil, excon_parameters: {}, response_body_parameters: {}, **query_parameters)
|
134
134
|
with_connection(excon_parameters: excon_parameters) do |conn|
|
@@ -173,36 +173,15 @@ module Dapp
|
|
173
173
|
end
|
174
174
|
|
175
175
|
def with_connection(excon_parameters: {}, &blk)
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
if ssl_ca_file = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority', nil)
|
183
|
-
ssl_cert_store.add_file ssl_ca_file
|
184
|
-
elsif ssl_ca_data = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority-data', nil)
|
185
|
-
ssl_cert_store.add_cert OpenSSL::X509::Certificate.new(Base64.decode64(ssl_ca_data))
|
186
|
-
end
|
187
|
-
|
188
|
-
Excon.defaults[:ssl_ca_file] = nil
|
189
|
-
Excon.defaults[:ssl_cert_store] = ssl_cert_store
|
190
|
-
Excon.defaults[:middlewares] << Excon::Middleware::RedirectFollower
|
191
|
-
|
192
|
-
connection = begin
|
193
|
-
Excon.new(kube_cluster_config['cluster']['server'], **kube_server_options(excon_parameters)).tap(&:get)
|
194
|
-
rescue Excon::Error::Socket => err
|
195
|
-
raise Error::ConnectionRefused,
|
196
|
-
code: :kube_server_connection_refused,
|
197
|
-
data: { kube_cluster_config: kube_cluster_config, kube_user_config: kube_user_config, error: err.message }
|
198
|
-
end
|
199
|
-
|
200
|
-
return yield connection
|
201
|
-
ensure
|
202
|
-
Excon.defaults[:ssl_ca_file] = old_ssl_ca_file
|
203
|
-
Excon.defaults[:ssl_cert_store] = old_ssl_cert_store
|
204
|
-
Excon.defaults[:middlewares] = old_middlewares
|
176
|
+
connection = begin
|
177
|
+
Excon.new(kube_cluster_config['cluster']['server'], **kube_server_options(excon_parameters)).tap(&:get)
|
178
|
+
rescue Excon::Error::Socket => err
|
179
|
+
raise Error::ConnectionRefused,
|
180
|
+
code: :kube_server_connection_refused,
|
181
|
+
data: { kube_cluster_config: kube_cluster_config, kube_user_config: kube_user_config, error: err.message }
|
205
182
|
end
|
183
|
+
|
184
|
+
return yield connection
|
206
185
|
end
|
207
186
|
|
208
187
|
def kube_server_options(excon_parameters = {})
|
@@ -219,6 +198,18 @@ module Dapp
|
|
219
198
|
client_key_data = kube_config.fetch('users', [{}]).first.fetch('user', {}).fetch('client-key-data', nil)
|
220
199
|
opts[:client_key_data] = Base64.decode64(client_key_data) if client_key_data
|
221
200
|
|
201
|
+
ssl_cert_store = OpenSSL::X509::Store.new
|
202
|
+
if ssl_ca_file = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority', nil)
|
203
|
+
ssl_cert_store.add_file ssl_ca_file
|
204
|
+
elsif ssl_ca_data = kube_config.fetch('clusters', [{}]).first.fetch('cluster', {}).fetch('certificate-authority-data', nil)
|
205
|
+
ssl_cert_store.add_cert OpenSSL::X509::Certificate.new(Base64.decode64(ssl_ca_data))
|
206
|
+
end
|
207
|
+
opts[:ssl_cert_store] = ssl_cert_store
|
208
|
+
|
209
|
+
opts[:ssl_ca_file] = nil
|
210
|
+
|
211
|
+
opts[:middlewares] = [*Excon.defaults[:middlewares], Excon::Middleware::RedirectFollower]
|
212
|
+
|
222
213
|
opts.merge!(excon_parameters)
|
223
214
|
end
|
224
215
|
end
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.
|
4
|
+
version: 0.22.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|