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.
- checksums.yaml +5 -5
- data/bin/dapp +1 -23
- data/config/en/net_status.yml +5 -4
- data/lib/dapp.rb +1 -1
- data/lib/dapp/dapp/sentry.rb +11 -8
- data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +33 -21
- data/lib/dapp/dimg/dimg/git_artifact.rb +2 -5
- data/lib/dapp/dimg/git_artifact.rb +41 -23
- data/lib/dapp/dimg/git_repo/base.rb +19 -39
- data/lib/dapp/dimg/git_repo/local.rb +15 -14
- data/lib/dapp/dimg/git_repo/remote.rb +32 -19
- data/lib/dapp/kube/cli/command/kube/deploy.rb +4 -0
- data/lib/dapp/kube/cli/command/kube/dismiss.rb +4 -0
- data/lib/dapp/kube/cli/command/kube/lint.rb +4 -0
- data/lib/dapp/kube/cli/command/kube/render.rb +4 -0
- data/lib/dapp/kube/cli/command/kube/value_get.rb +4 -0
- data/lib/dapp/kube/dapp/command/common.rb +21 -18
- data/lib/dapp/kube/dapp/command/minikube_setup.rb +6 -2
- data/lib/dapp/kube/helm/release.rb +1 -1
- data/lib/dapp/kube/helm/values.rb +3 -3
- data/lib/dapp/kube/kubernetes/client.rb +21 -90
- data/lib/dapp/kube/kubernetes/config.rb +129 -0
- data/lib/dapp/version.rb +1 -1
- metadata +6 -44
- data/lib/dapp/deployment/app.rb +0 -120
- data/lib/dapp/deployment/cli/cli.rb +0 -1
- data/lib/dapp/deployment/cli/command/base.rb +0 -14
- data/lib/dapp/deployment/cli/command/deployment.rb +0 -18
- data/lib/dapp/deployment/cli/command/deployment/apply.rb +0 -26
- data/lib/dapp/deployment/cli/command/deployment/mrproper.rb +0 -13
- data/lib/dapp/deployment/config/config.rb +0 -46
- data/lib/dapp/deployment/config/directive/app.rb +0 -28
- data/lib/dapp/deployment/config/directive/app/instance_methods.rb +0 -51
- data/lib/dapp/deployment/config/directive/base.rb +0 -13
- data/lib/dapp/deployment/config/directive/deployment.rb +0 -11
- data/lib/dapp/deployment/config/directive/expose.rb +0 -68
- data/lib/dapp/deployment/config/directive/group.rb +0 -27
- data/lib/dapp/deployment/config/directive/job.rb +0 -28
- data/lib/dapp/deployment/config/directive/mod/group.rb +0 -22
- data/lib/dapp/deployment/config/directive/mod/jobs.rb +0 -26
- data/lib/dapp/deployment/config/directive/namespace.rb +0 -26
- data/lib/dapp/deployment/config/directive/namespace/instance_methods.rb +0 -37
- data/lib/dapp/deployment/core_ext/hash.rb +0 -19
- data/lib/dapp/deployment/dapp/command/apply.rb +0 -71
- data/lib/dapp/deployment/dapp/command/common.rb +0 -17
- data/lib/dapp/deployment/dapp/command/mrproper.rb +0 -12
- data/lib/dapp/deployment/dapp/dapp.rb +0 -15
- data/lib/dapp/deployment/dapp/dappfile.rb +0 -23
- data/lib/dapp/deployment/deployment.rb +0 -46
- data/lib/dapp/deployment/error/app.rb +0 -7
- data/lib/dapp/deployment/error/default.rb +0 -7
- data/lib/dapp/deployment/error/deployment.rb +0 -7
- data/lib/dapp/deployment/error/kubernetes.rb +0 -7
- data/lib/dapp/deployment/kube_app.rb +0 -146
- data/lib/dapp/deployment/kube_base.rb +0 -97
- data/lib/dapp/deployment/kube_deployment.rb +0 -51
- data/lib/dapp/deployment/kubernetes.rb +0 -174
- data/lib/dapp/deployment/kubernetes/error.rb +0 -20
- data/lib/dapp/deployment/mod/jobs.rb +0 -37
- data/lib/dapp/deployment/mod/namespace.rb +0 -58
- data/lib/dapp/deployment/mod/system_environments.rb +0 -30
- data/lib/dapp/deployment/secret.rb +0 -93
- data/lib/dapp/kube/error/kubernetes.rb +0 -7
@@ -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,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
|