dapp 0.22.2 → 0.22.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|