kontena-cli 1.0.0.pre1 → 1.0.0.pre2
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/VERSION +1 -1
- data/kontena-cli.gemspec +1 -0
- data/lib/kontena/callbacks/master/deploy/50_authenticate_after_deploy.rb +6 -1
- data/lib/kontena/cli/apps/list_command.rb +2 -2
- data/lib/kontena/cli/apps/scale_command.rb +1 -1
- data/lib/kontena/cli/apps/service_generator.rb +1 -2
- data/lib/kontena/cli/apps/yaml/custom_validators/extends_validator.rb +3 -4
- data/lib/kontena/cli/config.rb +1 -0
- data/lib/kontena/cli/services/list_command.rb +2 -2
- data/lib/kontena/cli/services/monitor_command.rb +1 -1
- data/lib/kontena/cli/services/services_helper.rb +1 -1
- data/lib/kontena/cli/stack_command.rb +12 -5
- data/lib/kontena/cli/stacks/common.rb +13 -12
- data/lib/kontena/cli/stacks/list_command.rb +5 -6
- data/lib/kontena/cli/stacks/monitor_command.rb +1 -1
- data/lib/kontena/cli/stacks/pull_command.rb +12 -0
- data/lib/kontena/cli/stacks/push_command.rb +17 -0
- data/lib/kontena/cli/stacks/search_command.rb +17 -0
- data/lib/kontena/cli/stacks/service_generator.rb +1 -2
- data/lib/kontena/cli/stacks/show_command.rb +1 -1
- data/lib/kontena/cli/stacks/yaml/opto/prompt_resolver.rb +76 -0
- data/lib/kontena/cli/stacks/yaml/opto/vault_resolver.rb +10 -0
- data/lib/kontena/cli/stacks/yaml/opto/vault_setter.rb +12 -0
- data/lib/kontena/cli/stacks/yaml/reader.rb +143 -47
- data/lib/kontena/cli/stacks/yaml/service_extender.rb +26 -35
- data/lib/kontena/cli/stacks/yaml/validations.rb +2 -0
- data/lib/kontena/cli/vault/read_command.rb +3 -0
- data/lib/kontena/cli/vault/update_command.rb +1 -1
- data/lib/kontena/cli/vault/write_command.rb +3 -1
- data/lib/kontena/stacks_cache.rb +86 -0
- data/lib/kontena/stacks_client.rb +37 -0
- data/lib/kontena_cli.rb +1 -0
- data/spec/fixtures/stack-invalid.yml +5 -0
- data/spec/fixtures/stack-with-prompted-variables.yml +66 -0
- data/spec/fixtures/stack-with-variables.yml +37 -0
- data/spec/kontena/cli/app/deploy_command_spec.rb +2 -2
- data/spec/kontena/cli/stacks/list_command_spec.rb +2 -4
- data/spec/kontena/cli/stacks/yaml/reader_spec.rb +8 -10
- data/spec/kontena/cli/stacks/yaml/service_extender_spec.rb +4 -2
- metadata +28 -2
@@ -29,7 +29,6 @@ describe Kontena::Cli::Stacks::YAML::Reader do
|
|
29
29
|
'services' => {
|
30
30
|
'wordpress' => {
|
31
31
|
'image' => 'wordpress:4.1',
|
32
|
-
'extends' => {"file"=>"docker-compose_v2.yml", "service"=>"wordpress"},
|
33
32
|
'ports' => ['80:80'],
|
34
33
|
'depends_on' => ['mysql'],
|
35
34
|
'stateful' => true,
|
@@ -40,7 +39,6 @@ describe Kontena::Cli::Stacks::YAML::Reader do
|
|
40
39
|
},
|
41
40
|
'mysql' => {
|
42
41
|
'image' => 'mysql:5.6',
|
43
|
-
'extends' => {"file"=>"docker-compose_v2.yml", "service"=>"mysql"},
|
44
42
|
'stateful' => true,
|
45
43
|
'environment' => ['MYSQL_ROOT_PASSWORD=test_secret'],
|
46
44
|
'secrets' => []
|
@@ -71,7 +69,7 @@ describe Kontena::Cli::Stacks::YAML::Reader do
|
|
71
69
|
allow(ENV).to receive(:key?).and_return(true)
|
72
70
|
allow(ENV).to receive(:[]).with('TAG').and_return('4.1')
|
73
71
|
allow(ENV).to receive(:[]).with('STACK').and_return('test')
|
74
|
-
allow(ENV).to receive(:[]).with('
|
72
|
+
allow(ENV).to receive(:[]).with('GRID').and_return('test-grid')
|
75
73
|
allow(ENV).to receive(:[]).with('MYSQL_IMAGE').and_return('mariadb:latest')
|
76
74
|
end
|
77
75
|
|
@@ -95,23 +93,23 @@ describe Kontena::Cli::Stacks::YAML::Reader do
|
|
95
93
|
allow(File).to receive(:read)
|
96
94
|
.with(absolute_yaml_path)
|
97
95
|
.and_return(fixture('stack-with-variables.yml'))
|
98
|
-
allow(ENV).to receive(:
|
96
|
+
allow(ENV).to receive(:[])
|
99
97
|
.with('MYSQL_IMAGE')
|
100
|
-
.and_return(
|
98
|
+
.and_return(nil)
|
101
99
|
|
102
100
|
expect {
|
103
101
|
subject
|
104
|
-
}.to output(
|
105
|
-
').to_stdout
|
102
|
+
}.to output("Value for MYSQL_IMAGE is not set. Substituting with an empty string.\n").to_stdout
|
106
103
|
end
|
107
104
|
end
|
108
105
|
|
109
106
|
it 'replaces $$VAR variables to $VAR format' do
|
110
107
|
allow(ENV).to receive(:key?).and_return(true)
|
108
|
+
allow(ENV).to receive(:[]).with('TEST_ENV_VAR').and_return('foo')
|
111
109
|
allow(ENV).to receive(:[]).with('TAG').and_return('4.1')
|
112
110
|
allow(ENV).to receive(:[]).with('MYSQL_IMAGE').and_return('mariadb:latest')
|
113
111
|
allow(ENV).to receive(:[]).with('STACK').and_return('test')
|
114
|
-
allow(ENV).to receive(:[]).with('
|
112
|
+
allow(ENV).to receive(:[]).with('GRID').and_return('test-grid')
|
115
113
|
allow(File).to receive(:read)
|
116
114
|
.with(absolute_yaml_path)
|
117
115
|
.and_return(fixture('stack-with-variables.yml'))
|
@@ -148,7 +146,7 @@ describe Kontena::Cli::Stacks::YAML::Reader do
|
|
148
146
|
describe '#execute' do
|
149
147
|
before(:each) do
|
150
148
|
allow(ENV).to receive(:[]).with('STACK').and_return('test')
|
151
|
-
allow(ENV).to receive(:[]).with('
|
149
|
+
allow(ENV).to receive(:[]).with('GRID').and_return('test-grid')
|
152
150
|
end
|
153
151
|
|
154
152
|
context 'when extending services' do
|
@@ -272,7 +270,7 @@ describe Kontena::Cli::Stacks::YAML::Reader do
|
|
272
270
|
it 'returns validation errors' do
|
273
271
|
allow(File).to receive(:read)
|
274
272
|
.with(absolute_yaml_path('kontena_v3.yml'))
|
275
|
-
.and_return(fixture('
|
273
|
+
.and_return(fixture('stack-invalid.yml'))
|
276
274
|
outcome = subject.execute
|
277
275
|
expect(outcome[:errors].size).to eq(1)
|
278
276
|
end
|
@@ -15,7 +15,7 @@ describe Kontena::Cli::Stacks::YAML::ServiceExtender do
|
|
15
15
|
}
|
16
16
|
end
|
17
17
|
|
18
|
-
describe '#
|
18
|
+
describe '#extend_from' do
|
19
19
|
it 'merges options' do
|
20
20
|
result = described_class.new(options).extend_from(parent_options)
|
21
21
|
expected_result = {
|
@@ -47,7 +47,9 @@ describe Kontena::Cli::Stacks::YAML::ServiceExtender do
|
|
47
47
|
from = { 'environment' => ['FOO=bar'] }
|
48
48
|
to = { 'environment' => ['BAR=baz'] }
|
49
49
|
result = described_class.new(to).extend_from(from)
|
50
|
-
expect(result['environment']
|
50
|
+
expect(result['environment'].include?('BAR=baz')).to be_truthy
|
51
|
+
expect(result['environment'].include?('FOO=bar')).to be_truthy
|
52
|
+
expect(result['environment'].size).to eq 2
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kontena-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kontena, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 2.1.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: opto
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '1.5'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1.5'
|
139
153
|
description: Kontena command line tool
|
140
154
|
email:
|
141
155
|
- info@kontena.io
|
@@ -356,7 +370,10 @@ files:
|
|
356
370
|
- lib/kontena/cli/stacks/list_command.rb
|
357
371
|
- lib/kontena/cli/stacks/logs_command.rb
|
358
372
|
- lib/kontena/cli/stacks/monitor_command.rb
|
373
|
+
- lib/kontena/cli/stacks/pull_command.rb
|
374
|
+
- lib/kontena/cli/stacks/push_command.rb
|
359
375
|
- lib/kontena/cli/stacks/remove_command.rb
|
376
|
+
- lib/kontena/cli/stacks/search_command.rb
|
360
377
|
- lib/kontena/cli/stacks/service_generator.rb
|
361
378
|
- lib/kontena/cli/stacks/service_generator_v2.rb
|
362
379
|
- lib/kontena/cli/stacks/show_command.rb
|
@@ -366,6 +383,9 @@ files:
|
|
366
383
|
- lib/kontena/cli/stacks/yaml/custom_validators/extends_validator.rb
|
367
384
|
- lib/kontena/cli/stacks/yaml/custom_validators/hooks_validator.rb
|
368
385
|
- lib/kontena/cli/stacks/yaml/custom_validators/secrets_validator.rb
|
386
|
+
- lib/kontena/cli/stacks/yaml/opto/prompt_resolver.rb
|
387
|
+
- lib/kontena/cli/stacks/yaml/opto/vault_resolver.rb
|
388
|
+
- lib/kontena/cli/stacks/yaml/opto/vault_setter.rb
|
369
389
|
- lib/kontena/cli/stacks/yaml/reader.rb
|
370
390
|
- lib/kontena/cli/stacks/yaml/service_extender.rb
|
371
391
|
- lib/kontena/cli/stacks/yaml/validations.rb
|
@@ -397,6 +417,8 @@ files:
|
|
397
417
|
- lib/kontena/presets/kontena_auth_provider.yml
|
398
418
|
- lib/kontena/scripts/completer
|
399
419
|
- lib/kontena/scripts/init
|
420
|
+
- lib/kontena/stacks_cache.rb
|
421
|
+
- lib/kontena/stacks_client.rb
|
400
422
|
- lib/kontena/util.rb
|
401
423
|
- lib/kontena_cli.rb
|
402
424
|
- spec/fixtures/app.json
|
@@ -418,7 +440,9 @@ files:
|
|
418
440
|
- spec/fixtures/kontena_v3.yml
|
419
441
|
- spec/fixtures/mysql.yml
|
420
442
|
- spec/fixtures/stack-internal-extend.yml
|
443
|
+
- spec/fixtures/stack-invalid.yml
|
421
444
|
- spec/fixtures/stack-with-env-file.yml
|
445
|
+
- spec/fixtures/stack-with-prompted-variables.yml
|
422
446
|
- spec/fixtures/stack-with-variables.yml
|
423
447
|
- spec/fixtures/wordpress-scaled.yml
|
424
448
|
- spec/fixtures/wordpress.yml
|
@@ -530,7 +554,9 @@ test_files:
|
|
530
554
|
- spec/fixtures/kontena_v3.yml
|
531
555
|
- spec/fixtures/mysql.yml
|
532
556
|
- spec/fixtures/stack-internal-extend.yml
|
557
|
+
- spec/fixtures/stack-invalid.yml
|
533
558
|
- spec/fixtures/stack-with-env-file.yml
|
559
|
+
- spec/fixtures/stack-with-prompted-variables.yml
|
534
560
|
- spec/fixtures/stack-with-variables.yml
|
535
561
|
- spec/fixtures/wordpress-scaled.yml
|
536
562
|
- spec/fixtures/wordpress.yml
|