kontena-cli 1.0.0.pre1 → 1.0.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/kontena-cli.gemspec +1 -0
  4. data/lib/kontena/callbacks/master/deploy/50_authenticate_after_deploy.rb +6 -1
  5. data/lib/kontena/cli/apps/list_command.rb +2 -2
  6. data/lib/kontena/cli/apps/scale_command.rb +1 -1
  7. data/lib/kontena/cli/apps/service_generator.rb +1 -2
  8. data/lib/kontena/cli/apps/yaml/custom_validators/extends_validator.rb +3 -4
  9. data/lib/kontena/cli/config.rb +1 -0
  10. data/lib/kontena/cli/services/list_command.rb +2 -2
  11. data/lib/kontena/cli/services/monitor_command.rb +1 -1
  12. data/lib/kontena/cli/services/services_helper.rb +1 -1
  13. data/lib/kontena/cli/stack_command.rb +12 -5
  14. data/lib/kontena/cli/stacks/common.rb +13 -12
  15. data/lib/kontena/cli/stacks/list_command.rb +5 -6
  16. data/lib/kontena/cli/stacks/monitor_command.rb +1 -1
  17. data/lib/kontena/cli/stacks/pull_command.rb +12 -0
  18. data/lib/kontena/cli/stacks/push_command.rb +17 -0
  19. data/lib/kontena/cli/stacks/search_command.rb +17 -0
  20. data/lib/kontena/cli/stacks/service_generator.rb +1 -2
  21. data/lib/kontena/cli/stacks/show_command.rb +1 -1
  22. data/lib/kontena/cli/stacks/yaml/opto/prompt_resolver.rb +76 -0
  23. data/lib/kontena/cli/stacks/yaml/opto/vault_resolver.rb +10 -0
  24. data/lib/kontena/cli/stacks/yaml/opto/vault_setter.rb +12 -0
  25. data/lib/kontena/cli/stacks/yaml/reader.rb +143 -47
  26. data/lib/kontena/cli/stacks/yaml/service_extender.rb +26 -35
  27. data/lib/kontena/cli/stacks/yaml/validations.rb +2 -0
  28. data/lib/kontena/cli/vault/read_command.rb +3 -0
  29. data/lib/kontena/cli/vault/update_command.rb +1 -1
  30. data/lib/kontena/cli/vault/write_command.rb +3 -1
  31. data/lib/kontena/stacks_cache.rb +86 -0
  32. data/lib/kontena/stacks_client.rb +37 -0
  33. data/lib/kontena_cli.rb +1 -0
  34. data/spec/fixtures/stack-invalid.yml +5 -0
  35. data/spec/fixtures/stack-with-prompted-variables.yml +66 -0
  36. data/spec/fixtures/stack-with-variables.yml +37 -0
  37. data/spec/kontena/cli/app/deploy_command_spec.rb +2 -2
  38. data/spec/kontena/cli/stacks/list_command_spec.rb +2 -4
  39. data/spec/kontena/cli/stacks/yaml/reader_spec.rb +8 -10
  40. data/spec/kontena/cli/stacks/yaml/service_extender_spec.rb +4 -2
  41. 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('grid').and_return('test-grid')
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(:key?)
96
+ allow(ENV).to receive(:[])
99
97
  .with('MYSQL_IMAGE')
100
- .and_return(false)
98
+ .and_return(nil)
101
99
 
102
100
  expect {
103
101
  subject
104
- }.to output('The MYSQL_IMAGE is not set. Substituting an empty string.
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('grid').and_return('test-grid')
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('grid').and_return('test-grid')
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('kontena-invalid.yml'))
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 '#extend' do
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']).to eq(['BAR=baz', 'FOO=bar'])
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.pre1
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-24 00:00:00.000000000 Z
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