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.
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