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,11 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Deployment < Group
6
- include Mod::Jobs
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,68 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Expose < Base
6
- attr_reader :_port
7
- attr_reader :_type
8
-
9
- def initialize(dapp:)
10
- @_port = []
11
- @_type = 'ClusterIP'
12
- super
13
- end
14
-
15
- def cluster_ip
16
- sub_directive_eval { @_type = 'ClusterIP' }
17
- end
18
-
19
- def load_balancer
20
- sub_directive_eval { @_type = 'LoadBalancer' }
21
- end
22
-
23
- def node_port
24
- sub_directive_eval { @_type = 'NodePort' }
25
- end
26
-
27
- def port(number, &blk)
28
- sub_directive_eval { @_port << Port.new(number, dapp: dapp, &blk) }
29
- end
30
-
31
- class Port < Base
32
- attr_reader :_number, :_target, :_protocol
33
-
34
- def initialize(number, dapp:, &blk)
35
- self._number = number
36
- @_protocol = 'TCP'
37
- super(dapp: dapp, &blk)
38
- end
39
-
40
- def target(number)
41
- @_target = define_number(number, :unsupported_target_number)
42
- end
43
-
44
- def tcp
45
- @_protocol = 'TCP'
46
- end
47
-
48
- def udp
49
- @_protocol = 'UDP'
50
- end
51
-
52
- def _number=(number)
53
- @_number = define_number(number, :unsupported_port_number)
54
- end
55
-
56
- protected
57
-
58
- def define_number(number, code)
59
- number.to_i.tap do |n|
60
- raise ::Dapp::Error::Config, code: code, data: { number: number } unless (0..65536).cover?(n)
61
- end
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end
@@ -1,27 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Group < Base
6
- include Mod::Group
7
- include App::InstanceMethods
8
-
9
- def group(&blk)
10
- Group.new(dapp: dapp).tap do |group|
11
- group.instance_eval(&blk) if block_given?
12
- @_group << group
13
- end
14
- end
15
-
16
- def app(name = nil, &blk)
17
- App.new(name, dapp: dapp).tap do |app|
18
- pass_to(app)
19
- app.instance_eval(&blk) if block_given?
20
- @_app << app
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,28 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Job < Base
6
- attr_reader :_run, :_dimg
7
-
8
- def initialize(*args)
9
- super
10
- @_run = []
11
- end
12
-
13
- def run(*args)
14
- sub_directive_eval { @_run.concat(args.flatten) }
15
- end
16
-
17
- def dimg(name)
18
- sub_directive_eval { @_dimg = name }
19
- end
20
-
21
- def empty?
22
- _run.empty? && _dimg.nil?
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,22 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- module Mod
6
- module Group
7
- def _app
8
- (@_app + @_group.map(&:_app)).flatten
9
- end
10
-
11
- protected
12
-
13
- def deploy_init_variables!
14
- @_group = []
15
- @_app = []
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,26 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- module Mod
6
- module Jobs
7
- attr_reader :_bootstrap, :_before_apply_job
8
-
9
- def bootstrap(&blk)
10
- directive_eval(_bootstrap, &blk)
11
- end
12
-
13
- def before_apply_job(&blk)
14
- directive_eval(_before_apply_job, &blk)
15
- end
16
-
17
- def jobs_init_variables!
18
- @_bootstrap = Directive::Job.new(dapp: dapp)
19
- @_before_apply_job = Directive::Job.new(dapp: dapp)
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Namespace < Base
6
- include InstanceMethods
7
-
8
- attr_reader :_name
9
-
10
- def initialize(name, dapp:)
11
- self._name = name
12
- super(dapp: dapp)
13
- end
14
-
15
- def _name=(name)
16
- sub_directive_eval do
17
- name = name.to_s
18
- validate_compliance!(hostname_pattern, name, :namespace_name_incorrect)
19
- @_name = name
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,37 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Config
4
- module Directive
5
- class Namespace < Base
6
- module InstanceMethods
7
- attr_reader :_environment, :_secret_environment, :_scale
8
-
9
- def environment(**kwargs)
10
- sub_directive_eval { _environment.merge!(**kwargs) }
11
- end
12
-
13
- def secret_environment(**kwargs)
14
- sub_directive_eval { _secret_environment.merge!(**kwargs) }
15
- end
16
-
17
- def scale(value)
18
- sub_directive_eval do
19
- value.to_i.tap do |v|
20
- raise ::Dapp::Error::Config, code: :unsupported_scale_value, data: { value: value } unless v > 0
21
- @_scale = v
22
- end
23
- end
24
- end
25
-
26
- protected
27
-
28
- def namespace_init_variables!
29
- @_environment = {}
30
- @_secret_environment = {}
31
- end
32
- end # InstanceMethods
33
- end # Namespace
34
- end # Directive
35
- end # Config
36
- end # Deployment
37
- end # Dapp
@@ -1,19 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module CoreExt
4
- module Hash
5
- def kube_in_depth_merge(hash)
6
- merge(hash) do |_, v1, v2|
7
- if v1.is_a?(::Hash) && v2.is_a?(::Hash)
8
- v1.kube_in_depth_merge(v2)
9
- else
10
- v2
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
18
-
19
- ::Hash.send(:include, ::Dapp::Deployment::CoreExt::Hash)
@@ -1,71 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Dapp
4
- module Command
5
- module Apply
6
- def deployment_apply
7
- repo = option_repo
8
- image_version = options[:image_version]
9
-
10
- validate_repo_name!(repo)
11
- validate_tag_name!(image_version)
12
-
13
- log_process("Applying deployment #{deployment.name}") do
14
- deployment.kube.delete_unknown_resources!
15
-
16
- deployment.to_kube_bootstrap_pods(repo, image_version).each do |name, spec|
17
- next if deployment.kube.pod_succeeded?(name)
18
- deployment.kube.delete_pod!(name) if deployment.kube.pod_exist?(name)
19
- log_process(:bootstrap) do
20
- deployment.kube.run_job!(spec, name)
21
- end
22
- end
23
-
24
- deployment.to_kube_before_apply_job_pods(repo, image_version).each do |name, spec|
25
- log_process(:before_apply_job) do
26
- deployment.kube.delete_pod!(name) if deployment.kube.pod_exist?(name)
27
- deployment.kube.run_job!(spec, name)
28
- end
29
- end
30
-
31
- deployment.apps.each do |app|
32
- log_process("Applying app #{app.name}") do
33
- (app.kube.existing_deployments_names - app.to_kube_deployments(repo, image_version).keys).each do |deployment_name|
34
- app.kube.delete_deployment!(deployment_name)
35
- end
36
-
37
- (app.kube.existing_services_names - app.to_kube_services.keys).each do |service_name|
38
- app.kube.delete_service!(service_name)
39
- end
40
-
41
- app.to_kube_bootstrap_pods(repo, image_version).each do |name, spec|
42
- next if app.kube.pod_succeeded?(name)
43
- app.kube.delete_pod!(name) if app.kube.pod_exist?(name)
44
- log_process(:bootstrap) do
45
- app.kube.run_job!(spec, name)
46
- end
47
- end
48
-
49
- app.to_kube_before_apply_job_pods(repo, image_version).each do |name, spec|
50
- log_process(:before_apply_job) do
51
- app.kube.delete_pod!(name) if app.kube.pod_exist?(name)
52
- app.kube.run_job!(spec, name)
53
- end
54
- end
55
-
56
- app.to_kube_deployments(repo, image_version).each do |name, spec|
57
- app.kube.apply_deployment!(name, spec)
58
- end
59
-
60
- app.to_kube_services.each do |name, spec|
61
- app.kube.apply_service!(name, spec)
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
71
- end
@@ -1,17 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Dapp
4
- module Command
5
- module Common
6
- def deployment
7
- @deployment ||= Deployment.new(dapp: self)
8
- end
9
-
10
- def secret
11
- @secret ||= Secret.new(ENV['DAPP_SECRET_KEY']) if ENV.key?('DAPP_SECRET_KEY')
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Dapp
4
- module Command
5
- module Mrproper
6
- def deployment_mrproper
7
- end
8
- end
9
- end
10
- end
11
- end
12
- end
@@ -1,15 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Dapp
4
- module Dapp
5
- include Command::Apply
6
- include Command::Mrproper
7
- include Command::Common
8
-
9
- include Dappfile
10
- end
11
- end
12
- end
13
- end
14
-
15
- ::Dapp::Dapp.send(:include, ::Dapp::Deployment::Dapp::Dapp)
@@ -1,23 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- module Dapp
4
- module Dappfile
5
- def apps_configs
6
- @apps_configs ||= begin
7
- config._app.select do |app|
8
- apps_patterns.any? { |pattern| app._name.nil? || File.fnmatch(pattern, app._name) }
9
- end.tap do |apps|
10
- raise ::Dapp::Error::Dapp, code: :no_such_app, data: { apps_patterns: apps_patterns.join(', ') } if apps.empty?
11
- end
12
- end
13
- end
14
-
15
- def apps_patterns
16
- @apps_patterns ||= (options[:apps_patterns] || []).tap do |patterns|
17
- patterns << '*' unless patterns.any?
18
- end
19
- end
20
- end # Dappfile
21
- end # Dapp
22
- end # Dimg
23
- end # Dapp
@@ -1,46 +0,0 @@
1
- module Dapp
2
- module Deployment
3
- class Deployment
4
- include Mod::Namespace
5
- include Mod::SystemEnvironments
6
- include Mod::Jobs
7
-
8
- attr_reader :dapp
9
-
10
- def initialize(dapp:)
11
- @dapp = dapp
12
- end
13
-
14
- def name(*args)
15
- [dapp.name, *args].flatten.compact.join('-').gsub('_', '-')
16
- end
17
-
18
- def kube
19
- @kube ||= KubeDeployment.new(self)
20
- end
21
-
22
- def apps
23
- @apps ||= dapp.apps_configs.map { |app_config| App.new(app_config: app_config, deployment: self) }
24
- end
25
-
26
- def namespace
27
- dapp.options[:namespace] || ENV['DAPP_NAMESPACE']
28
- end
29
-
30
- def kubernetes
31
- @kubernetes ||= Kubernetes.new(namespace: namespace)
32
- end
33
-
34
- protected
35
-
36
- def deployment_config
37
- dapp.config._deployment
38
- end
39
- alias config deployment_config
40
-
41
- def secret
42
- dapp.secret
43
- end
44
- end
45
- end
46
- end