dapp 0.29.2 → 0.30.0

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 (63) hide show
  1. checksums.yaml +5 -5
  2. data/bin/dapp +1 -23
  3. data/config/en/net_status.yml +5 -4
  4. data/lib/dapp.rb +1 -1
  5. data/lib/dapp/dapp/sentry.rb +11 -8
  6. data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +33 -21
  7. data/lib/dapp/dimg/dimg/git_artifact.rb +2 -5
  8. data/lib/dapp/dimg/git_artifact.rb +41 -23
  9. data/lib/dapp/dimg/git_repo/base.rb +19 -39
  10. data/lib/dapp/dimg/git_repo/local.rb +15 -14
  11. data/lib/dapp/dimg/git_repo/remote.rb +32 -19
  12. data/lib/dapp/kube/cli/command/kube/deploy.rb +4 -0
  13. data/lib/dapp/kube/cli/command/kube/dismiss.rb +4 -0
  14. data/lib/dapp/kube/cli/command/kube/lint.rb +4 -0
  15. data/lib/dapp/kube/cli/command/kube/render.rb +4 -0
  16. data/lib/dapp/kube/cli/command/kube/value_get.rb +4 -0
  17. data/lib/dapp/kube/dapp/command/common.rb +21 -18
  18. data/lib/dapp/kube/dapp/command/minikube_setup.rb +6 -2
  19. data/lib/dapp/kube/helm/release.rb +1 -1
  20. data/lib/dapp/kube/helm/values.rb +3 -3
  21. data/lib/dapp/kube/kubernetes/client.rb +21 -90
  22. data/lib/dapp/kube/kubernetes/config.rb +129 -0
  23. data/lib/dapp/version.rb +1 -1
  24. metadata +6 -44
  25. data/lib/dapp/deployment/app.rb +0 -120
  26. data/lib/dapp/deployment/cli/cli.rb +0 -1
  27. data/lib/dapp/deployment/cli/command/base.rb +0 -14
  28. data/lib/dapp/deployment/cli/command/deployment.rb +0 -18
  29. data/lib/dapp/deployment/cli/command/deployment/apply.rb +0 -26
  30. data/lib/dapp/deployment/cli/command/deployment/mrproper.rb +0 -13
  31. data/lib/dapp/deployment/config/config.rb +0 -46
  32. data/lib/dapp/deployment/config/directive/app.rb +0 -28
  33. data/lib/dapp/deployment/config/directive/app/instance_methods.rb +0 -51
  34. data/lib/dapp/deployment/config/directive/base.rb +0 -13
  35. data/lib/dapp/deployment/config/directive/deployment.rb +0 -11
  36. data/lib/dapp/deployment/config/directive/expose.rb +0 -68
  37. data/lib/dapp/deployment/config/directive/group.rb +0 -27
  38. data/lib/dapp/deployment/config/directive/job.rb +0 -28
  39. data/lib/dapp/deployment/config/directive/mod/group.rb +0 -22
  40. data/lib/dapp/deployment/config/directive/mod/jobs.rb +0 -26
  41. data/lib/dapp/deployment/config/directive/namespace.rb +0 -26
  42. data/lib/dapp/deployment/config/directive/namespace/instance_methods.rb +0 -37
  43. data/lib/dapp/deployment/core_ext/hash.rb +0 -19
  44. data/lib/dapp/deployment/dapp/command/apply.rb +0 -71
  45. data/lib/dapp/deployment/dapp/command/common.rb +0 -17
  46. data/lib/dapp/deployment/dapp/command/mrproper.rb +0 -12
  47. data/lib/dapp/deployment/dapp/dapp.rb +0 -15
  48. data/lib/dapp/deployment/dapp/dappfile.rb +0 -23
  49. data/lib/dapp/deployment/deployment.rb +0 -46
  50. data/lib/dapp/deployment/error/app.rb +0 -7
  51. data/lib/dapp/deployment/error/default.rb +0 -7
  52. data/lib/dapp/deployment/error/deployment.rb +0 -7
  53. data/lib/dapp/deployment/error/kubernetes.rb +0 -7
  54. data/lib/dapp/deployment/kube_app.rb +0 -146
  55. data/lib/dapp/deployment/kube_base.rb +0 -97
  56. data/lib/dapp/deployment/kube_deployment.rb +0 -51
  57. data/lib/dapp/deployment/kubernetes.rb +0 -174
  58. data/lib/dapp/deployment/kubernetes/error.rb +0 -20
  59. data/lib/dapp/deployment/mod/jobs.rb +0 -37
  60. data/lib/dapp/deployment/mod/namespace.rb +0 -58
  61. data/lib/dapp/deployment/mod/system_environments.rb +0 -30
  62. data/lib/dapp/deployment/secret.rb +0 -93
  63. data/lib/dapp/kube/error/kubernetes.rb +0 -7
@@ -1,4 +1,4 @@
1
1
  module Dapp
2
- VERSION = "0.29.2"
2
+ VERSION = "0.30.0"
3
3
  BUILD_CACHE_VERSION = 30
4
4
  end
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.29.2
4
+ version: 0.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Stolyarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-08 00:00:00.000000000 Z
11
+ date: 2018-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout
@@ -144,14 +144,14 @@ dependencies:
144
144
  requirements:
145
145
  - - "~>"
146
146
  - !ruby/object:Gem::Version
147
- version: 0.24.0
147
+ version: 0.27.0
148
148
  type: :runtime
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - "~>"
153
153
  - !ruby/object:Gem::Version
154
- version: 0.24.0
154
+ version: 0.27.0
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: murmurhash3
157
157
  requirement: !ruby/object:Gem::Requirement
@@ -497,44 +497,6 @@ files:
497
497
  - lib/dapp/dapp/slug.rb
498
498
  - lib/dapp/dapp/ssh_agent.rb
499
499
  - lib/dapp/deployment.rb
500
- - lib/dapp/deployment/app.rb
501
- - lib/dapp/deployment/cli/cli.rb
502
- - lib/dapp/deployment/cli/command/base.rb
503
- - lib/dapp/deployment/cli/command/deployment.rb
504
- - lib/dapp/deployment/cli/command/deployment/apply.rb
505
- - lib/dapp/deployment/cli/command/deployment/mrproper.rb
506
- - lib/dapp/deployment/config/config.rb
507
- - lib/dapp/deployment/config/directive/app.rb
508
- - lib/dapp/deployment/config/directive/app/instance_methods.rb
509
- - lib/dapp/deployment/config/directive/base.rb
510
- - lib/dapp/deployment/config/directive/deployment.rb
511
- - lib/dapp/deployment/config/directive/expose.rb
512
- - lib/dapp/deployment/config/directive/group.rb
513
- - lib/dapp/deployment/config/directive/job.rb
514
- - lib/dapp/deployment/config/directive/mod/group.rb
515
- - lib/dapp/deployment/config/directive/mod/jobs.rb
516
- - lib/dapp/deployment/config/directive/namespace.rb
517
- - lib/dapp/deployment/config/directive/namespace/instance_methods.rb
518
- - lib/dapp/deployment/core_ext/hash.rb
519
- - lib/dapp/deployment/dapp/command/apply.rb
520
- - lib/dapp/deployment/dapp/command/common.rb
521
- - lib/dapp/deployment/dapp/command/mrproper.rb
522
- - lib/dapp/deployment/dapp/dapp.rb
523
- - lib/dapp/deployment/dapp/dappfile.rb
524
- - lib/dapp/deployment/deployment.rb
525
- - lib/dapp/deployment/error/app.rb
526
- - lib/dapp/deployment/error/default.rb
527
- - lib/dapp/deployment/error/deployment.rb
528
- - lib/dapp/deployment/error/kubernetes.rb
529
- - lib/dapp/deployment/kube_app.rb
530
- - lib/dapp/deployment/kube_base.rb
531
- - lib/dapp/deployment/kube_deployment.rb
532
- - lib/dapp/deployment/kubernetes.rb
533
- - lib/dapp/deployment/kubernetes/error.rb
534
- - lib/dapp/deployment/mod/jobs.rb
535
- - lib/dapp/deployment/mod/namespace.rb
536
- - lib/dapp/deployment/mod/system_environments.rb
537
- - lib/dapp/deployment/secret.rb
538
500
  - lib/dapp/dimg.rb
539
501
  - lib/dapp/dimg/artifact.rb
540
502
  - lib/dapp/dimg/build/stage/after_install_artifact.rb
@@ -731,7 +693,6 @@ files:
731
693
  - lib/dapp/kube/dapp/command/value_get.rb
732
694
  - lib/dapp/kube/dapp/dapp.rb
733
695
  - lib/dapp/kube/error/default.rb
734
- - lib/dapp/kube/error/kubernetes.rb
735
696
  - lib/dapp/kube/helm.rb
736
697
  - lib/dapp/kube/helm/release.rb
737
698
  - lib/dapp/kube/helm/values.rb
@@ -744,6 +705,7 @@ files:
744
705
  - lib/dapp/kube/kubernetes/client/resource/job.rb
745
706
  - lib/dapp/kube/kubernetes/client/resource/pod.rb
746
707
  - lib/dapp/kube/kubernetes/client/resource/replicaset.rb
708
+ - lib/dapp/kube/kubernetes/config.rb
747
709
  - lib/dapp/kube/kubernetes/error.rb
748
710
  - lib/dapp/kube/kubernetes/manager/base.rb
749
711
  - lib/dapp/kube/kubernetes/manager/container.rb
@@ -773,7 +735,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
773
735
  version: 2.5.0
774
736
  requirements: []
775
737
  rubyforge_project:
776
- rubygems_version: 2.7.6
738
+ rubygems_version: 2.5.1
777
739
  signing_key:
778
740
  specification_version: 4
779
741
  summary: Build docker packaged apps using chef or shell
@@ -1,120 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- class App
4
- include Mod::Namespace
5
- include Mod::SystemEnvironments
6
- include Mod::Jobs
7
-
8
- attr_reader :deployment
9
- attr_reader :app_config
10
- alias config app_config
11
-
12
- def initialize(app_config:, deployment:)
13
- @app_config = app_config
14
- @deployment = deployment
15
- end
16
-
17
- def name(*args)
18
- deployment.name(app_config._name, *args)
19
- end
20
-
21
- def kube
22
- @kube ||= KubeApp.new(self)
23
- end
24
-
25
- [:dimg, :expose, :bootstrap, :migrate].each do |directive|
26
- define_method directive do
27
- app_config.public_send("_#{directive}")
28
- end
29
- end
30
-
31
- def to_kube_deployments(repo, image_version)
32
- {}.tap do |hash|
33
- hash[name] = {}.tap do |deployment|
34
- deployment['metadata'] = {}.tap do |metadata|
35
- metadata['name'] = name
36
- metadata['labels'] = kube.labels
37
- end
38
- deployment['spec'] = {}.tap do |spec|
39
- spec['replicas'] = scale
40
- spec['template'] = {}
41
- spec['template']['metadata'] = deployment['metadata']
42
- spec['template']['spec'] = {}.tap do |template_spec|
43
- template_spec['containers'] = [].tap do |containers|
44
- containers << {}.tap do |container|
45
- ports = expose._port.map do |port|
46
- {
47
- 'containerPort' => port._number,
48
- 'name' => ['app', port._number].join('-'),
49
- 'protocol' => port._protocol
50
- }
51
- end
52
- volume_mounts = [{'mountPath' => '/.data', 'name' => "volume-#{self.name}"}]
53
-
54
- container['imagePullPolicy'] = 'Always'
55
- container['image'] = [repo, [dimg, image_version].compact.join('-')].join(':')
56
- container['name'] = dimg_name
57
- container['env'] = environments unless environments.empty?
58
- container['ports'] = ports unless expose._port.empty?
59
- container['volumeMounts'] = volume_mounts
60
- end
61
- end
62
-
63
- template_spec['volumes'] = [
64
- {
65
- 'name' => "volume-#{name}",
66
- 'hostPath' => {'path' => "/var/lib/dapp/deployment/volumes/#{self.deployment.name}/#{self.name}"}
67
- }
68
- ]
69
- end
70
- end
71
- end
72
- end
73
- end
74
-
75
- def to_kube_services
76
- return {} if expose._port.empty?
77
-
78
- {}.tap do |hash|
79
- hash[service_name] = {}.tap do |service|
80
- service['metadata'] = {}.tap do |metadata|
81
- metadata['name'] = service_name
82
- metadata['labels'] = kube.labels
83
- end
84
- service['spec'] = {}.tap do |spec|
85
- spec['selector'] = kube.labels
86
- spec['ports'] = expose._port.map do |port|
87
- {
88
- 'port' => port._number,
89
- 'name' => ['service', port._number].join('-'),
90
- 'protocol' => port._protocol
91
- }.tap do |h|
92
- h['targetPort'] = port._target unless port._target.nil?
93
- end
94
- end
95
- spec['type'] = expose._type
96
- end
97
- end
98
- end
99
- end
100
-
101
- protected
102
-
103
- def dimg_name
104
- name(dimg)
105
- end
106
-
107
- def service_name
108
- name('service')
109
- end
110
-
111
- def namespace
112
- deployment.namespace
113
- end
114
-
115
- def secret
116
- deployment.dapp.secret
117
- end
118
- end
119
- end
120
- end
@@ -1 +0,0 @@
1
- ::Dapp::CLI.send(:include, ::Dapp::Deployment::CLI::Command)
@@ -1,14 +0,0 @@
1
- module Dapp::Deployment::CLI
2
- module Command
3
- class Base < ::Dapp::CLI::Command::Base
4
- def run(argv = ARGV)
5
- self.class.parse_options(self, argv)
6
- ::Dapp::Dapp.new(options: cli_options).public_send(run_method)
7
- end
8
-
9
- def run_method
10
- :"deployment_#{class_to_lowercase}"
11
- end
12
- end
13
- end
14
- end
@@ -1,18 +0,0 @@
1
- module Dapp::Deployment::CLI
2
- module Command
3
- class Deployment < ::Dapp::CLI
4
- SUBCOMMANDS = ['apply', 'mrproper'].freeze
5
-
6
- banner <<BANNER.freeze
7
- Usage: dapp deployment subcommand [subcommand options]
8
-
9
- Available subcommands: (for details, dapp deployment SUB-COMMAND --help)
10
-
11
- dapp deployment apply [options] [APP ...] REPO
12
- dapp deployment mrproper [options]
13
-
14
- Options:
15
- BANNER
16
- end
17
- end
18
- end
@@ -1,26 +0,0 @@
1
- module Dapp::Deployment::CLI::Command
2
- class Deployment < ::Dapp::CLI
3
- class Apply < Base
4
- banner <<BANNER.freeze
5
- Usage:
6
-
7
- dapp deployment apply [options] [APP ...] REPO
8
-
9
- Options:
10
- BANNER
11
-
12
- option :namespace,
13
- long: '--namespace NAME'
14
-
15
- option :image_version,
16
- long: '--image-version IMAGE_VERSION',
17
- default: 'latest'
18
-
19
- def run(argv = ARGV)
20
- self.class.parse_options(self, argv)
21
- repo = self.class.required_argument(self, 'repo')
22
- ::Dapp::Dapp.new(options: cli_options(apps_patterns: cli_arguments, repo: repo)).deployment_apply
23
- end
24
- end
25
- end
26
- end
@@ -1,13 +0,0 @@
1
- module Dapp::Deployment::CLI::Command
2
- class Deployment < ::Dapp::CLI
3
- class Mrproper < Base
4
- banner <<BANNER.freeze
5
- Usage:
6
-
7
- dapp deployment mrproper [options]
8
-
9
- Options:
10
- BANNER
11
- end
12
- end
13
- end
@@ -1,46 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Config
5
- include Directive::Mod::Group
6
-
7
- def deployment(&blk)
8
- directive_eval(_deployment, &blk)
9
- end
10
-
11
- def _deployment
12
- @_deployment ||= Directive::Deployment.new(dapp: dapp).tap { |group| @_group << group }
13
- end
14
-
15
- protected
16
-
17
- def deployment_config_validate!
18
- raise ::Dapp::Error::Config, code: :app_name_required if _app.any? { |app| app._name.nil? } && _app.size > 1
19
- _app.each do |app|
20
- raise ::Dapp::Error::Config, code: :app_dimg_not_defined, data: { app: app._name } if app._dimg.nil? && !_dimg.map(&:_name).compact.empty?
21
- unless _dimg.map(&:_name).include?(app._dimg)
22
- raise ::Dapp::Error::Config, code: :app_dimg_not_found, data: { app: app._name, dimg: app._dimg }
23
- end
24
- end
25
-
26
- [:deployment, :app].each do |directive|
27
- Array(public_send(:"_#{directive}")).each do |obj|
28
- [:bootstrap, :before_apply_job].each do |job|
29
- next if (job_config = obj.public_send("_#{job}")).empty?
30
- job_dimg = job_config._dimg || obj._dimg
31
- if job_dimg.nil? && !_dimg.map(&:_name).compact.empty?
32
- raise ::Dapp::Error::Config, code: :"#{directive}_#{job}_dimg_not_defined"
33
- end
34
- unless _dimg.map(&:_name).include?(job_dimg)
35
- raise ::Dapp::Error::Config, code: :"#{directive}_#{job}_dimg_not_found", data: { dimg: job_dimg }
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
45
-
46
- ::Dapp::Config::Config.send(:include, ::Dapp::Deployment::Config::Config)
@@ -1,28 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class App < Base
6
- include InstanceMethods
7
- include Mod::Jobs
8
-
9
- attr_reader :_name
10
-
11
- def initialize(name, dapp:)
12
- self._name = name
13
- super(dapp: dapp)
14
- end
15
-
16
- def _name=(name)
17
- sub_directive_eval do
18
- return self if name.nil?
19
- name = name.to_s
20
- validate_compliance!(hostname_pattern, name, :app_name_incorrect)
21
- @_name = name
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,51 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class App < Base
6
- module InstanceMethods
7
- attr_reader :_dimg, :_namespace, :_expose, :_migrate
8
-
9
- def self.included(base)
10
- base.include(Namespace::InstanceMethods)
11
- end
12
-
13
- def dimg(name)
14
- @_dimg = name
15
- end
16
-
17
- def namespace(name, &blk)
18
- (_namespace[name] ||= begin
19
- Namespace.new(name, dapp: dapp).tap do |namespace|
20
- _namespace[name] = namespace
21
- end
22
- end).tap do |namespace|
23
- directive_eval(namespace, &blk)
24
- end
25
- end
26
-
27
- def expose(&blk)
28
- directive_eval(_expose, &blk)
29
- end
30
-
31
- def migrate(cmd)
32
- sub_directive_eval { @_migrate = cmd }
33
- end
34
-
35
- protected
36
-
37
- def app_init_variables!
38
- @_migrate = []
39
- @_namespace = {}
40
- @_expose = Expose.new(dapp: dapp)
41
- end
42
-
43
- def passed_directives
44
- [:@_dimg, :@_namespace, :@_expose, :@_migrate, :@_environment, :@_secret_environment, :@_scale]
45
- end
46
- end # InstanceMethods
47
- end # App
48
- end # Directive
49
- end # Config
50
- end # Deployment
51
- end # Dapp
@@ -1,13 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Base < ::Dapp::Config::Directive::Base
6
- def hostname_pattern
7
- '^[a-z0-9_-]*[a-z0-9]$'
8
- end
9
- end
10
- end
11
- end
12
- end
13
- end