dapp 0.29.2 → 0.30.0

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