dapp 0.11.0 → 0.12.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 +4 -4
- data/config/en/net_status.yml +36 -4
- data/lib/dapp.rb +84 -36
- data/lib/dapp/cli.rb +3 -2
- data/lib/dapp/cli/command/base.rb +69 -0
- data/lib/dapp/config/config.rb +17 -0
- data/lib/dapp/config/directive/base.rb +90 -3
- data/lib/dapp/dapp.rb +6 -14
- data/lib/dapp/dapp/dappfile.rb +20 -27
- data/lib/dapp/dapp/deps/base.rb +2 -2
- data/lib/dapp/dapp/lock.rb +1 -1
- data/lib/dapp/dapp/logging/base.rb +11 -7
- data/lib/dapp/dapp/logging/process.rb +4 -2
- data/lib/dapp/dapp/shellout/base.rb +2 -2
- data/lib/dapp/dapp/ssh_agent.rb +2 -2
- data/lib/dapp/deployment.rb +1 -0
- data/lib/dapp/deployment/app.rb +120 -0
- data/lib/dapp/deployment/cli/cli.rb +1 -0
- data/lib/dapp/deployment/cli/command/base.rb +14 -0
- data/lib/dapp/deployment/cli/command/deployment.rb +21 -0
- data/lib/dapp/deployment/cli/command/deployment/apply.rb +26 -0
- data/lib/dapp/deployment/cli/command/deployment/minikube_setup.rb +13 -0
- data/lib/dapp/deployment/cli/command/deployment/mrproper.rb +13 -0
- data/lib/dapp/deployment/cli/command/deployment/secret_generate.rb +13 -0
- data/lib/dapp/deployment/cli/command/deployment/secret_key_generate.rb +13 -0
- data/lib/dapp/deployment/config/config.rb +46 -0
- data/lib/dapp/deployment/config/directive/app.rb +28 -0
- data/lib/dapp/deployment/config/directive/app/instance_methods.rb +51 -0
- data/lib/dapp/deployment/config/directive/base.rb +13 -0
- data/lib/dapp/deployment/config/directive/deployment.rb +11 -0
- data/lib/dapp/deployment/config/directive/expose.rb +68 -0
- data/lib/dapp/deployment/config/directive/group.rb +27 -0
- data/lib/dapp/deployment/config/directive/job.rb +28 -0
- data/lib/dapp/deployment/config/directive/mod/group.rb +22 -0
- data/lib/dapp/deployment/config/directive/mod/jobs.rb +26 -0
- data/lib/dapp/deployment/config/directive/namespace.rb +26 -0
- data/lib/dapp/deployment/config/directive/namespace/instance_methods.rb +37 -0
- data/lib/dapp/deployment/core_ext/hash.rb +19 -0
- data/lib/dapp/deployment/dapp/command/apply.rb +83 -0
- data/lib/dapp/deployment/dapp/command/common.rb +17 -0
- data/lib/dapp/deployment/dapp/command/minikube_setup.rb +393 -0
- data/lib/dapp/deployment/dapp/command/mrproper.rb +12 -0
- data/lib/dapp/deployment/dapp/command/secret_generate.rb +17 -0
- data/lib/dapp/deployment/dapp/command/secret_key_generate.rb +13 -0
- data/lib/dapp/deployment/dapp/dapp.rb +18 -0
- data/lib/dapp/deployment/dapp/dappfile.rb +23 -0
- data/lib/dapp/deployment/deployment.rb +46 -0
- data/lib/dapp/deployment/error/app.rb +7 -0
- data/lib/dapp/deployment/error/base.rb +7 -0
- data/lib/dapp/deployment/error/command.rb +7 -0
- data/lib/dapp/deployment/error/config.rb +7 -0
- data/lib/dapp/deployment/error/deployment.rb +7 -0
- data/lib/dapp/deployment/error/kubernetes.rb +7 -0
- data/lib/dapp/deployment/kube_app.rb +277 -0
- data/lib/dapp/deployment/kube_base.rb +97 -0
- data/lib/dapp/deployment/kube_deployment.rb +51 -0
- data/lib/dapp/deployment/kubernetes.rb +174 -0
- data/lib/dapp/deployment/kubernetes/error.rb +20 -0
- data/lib/dapp/deployment/mod/jobs.rb +37 -0
- data/lib/dapp/deployment/mod/namespace.rb +58 -0
- data/lib/dapp/deployment/mod/system_environments.rb +30 -0
- data/lib/dapp/deployment/secret.rb +93 -0
- data/lib/dapp/dimg/artifact.rb +1 -1
- data/lib/dapp/dimg/build/stage/artifact_default.rb +35 -23
- data/lib/dapp/dimg/build/stage/base.rb +1 -1
- data/lib/dapp/dimg/build/stage/before_setup.rb +0 -2
- data/lib/dapp/dimg/build/stage/build_artifact.rb +0 -2
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +2 -2
- data/lib/dapp/dimg/build/stage/install/install.rb +0 -1
- data/lib/dapp/dimg/build/stage/setup/setup.rb +0 -1
- data/lib/dapp/dimg/cli/cli.rb +1 -1
- data/lib/dapp/dimg/cli/command/base.rb +14 -0
- data/lib/dapp/dimg/cli/{dimg.rb → command/dimg.rb} +5 -7
- data/lib/dapp/dimg/cli/{bp.rb → command/dimg/bp.rb} +3 -3
- data/lib/dapp/dimg/cli/{build.rb → command/dimg/build.rb} +3 -3
- data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +3 -3
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +4 -4
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
- data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +3 -3
- data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +3 -3
- data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
- data/lib/dapp/dimg/cli/{push.rb → command/dimg/push.rb} +5 -5
- data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +8 -8
- data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
- data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +3 -3
- data/lib/dapp/dimg/cli/{stages.rb → command/dimg/stages.rb} +3 -3
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +6 -6
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +5 -5
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/flush_local.rb +5 -5
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/flush_repo.rb +6 -6
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/pull.rb +6 -6
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/push.rb +6 -6
- data/lib/dapp/dimg/cli/{tag.rb → command/dimg/tag.rb} +6 -6
- data/lib/dapp/dimg/config/config.rb +20 -0
- data/lib/dapp/dimg/config/directive/artifact_dimg.rb +19 -0
- data/lib/dapp/dimg/config/directive/artifact_group.rb +45 -0
- data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
- data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +149 -0
- data/lib/dapp/dimg/config/directive/dimg/validation.rb +128 -0
- data/lib/dapp/dimg/config/directive/dimg_group.rb +64 -0
- data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +1 -1
- data/lib/dapp/dimg/dapp/command/bp.rb +4 -4
- data/lib/dapp/dimg/dapp/command/build.rb +2 -2
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +1 -1
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +1 -1
- data/lib/dapp/dimg/dapp/command/cleanup.rb +1 -1
- data/lib/dapp/dimg/dapp/command/common.rb +19 -4
- data/lib/dapp/dimg/dapp/command/list.rb +1 -1
- data/lib/dapp/dimg/dapp/command/mrproper.rb +3 -3
- data/lib/dapp/dimg/dapp/command/push.rb +6 -5
- data/lib/dapp/dimg/dapp/command/run.rb +1 -1
- data/lib/dapp/dimg/dapp/command/spush.rb +4 -3
- data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +1 -1
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +3 -3
- data/lib/dapp/dimg/dapp/command/stages/common.rb +4 -4
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +1 -1
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +1 -1
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +5 -4
- data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -3
- data/lib/dapp/dimg/dapp/command/tag.rb +3 -2
- data/lib/dapp/dimg/dapp/dapp.rb +33 -0
- data/lib/dapp/dimg/dapp/dappfile.rb +25 -0
- data/lib/dapp/dimg/dimg.rb +3 -3
- data/lib/dapp/dimg/dimg/path.rb +1 -1
- data/lib/dapp/dimg/dimg/stages.rb +1 -1
- data/lib/dapp/dimg/dimg/tags.rb +5 -5
- data/lib/dapp/dimg/docker_registry.rb +3 -7
- data/lib/dapp/dimg/git_artifact.rb +30 -14
- data/lib/dapp/dimg/git_repo/base.rb +13 -1
- data/lib/dapp/dimg/git_repo/own.rb +9 -1
- data/lib/dapp/dimg/image/docker.rb +9 -3
- data/lib/dapp/helper/cli.rb +3 -1
- data/lib/dapp/helper/net_status.rb +5 -1
- data/lib/dapp/helper/trivia.rb +1 -1
- data/lib/dapp/version.rb +2 -2
- metadata +84 -38
- data/lib/dapp/cli/base.rb +0 -63
- data/lib/dapp/config/base.rb +0 -54
- data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
- data/lib/dapp/dimg/cli/base.rb +0 -16
- data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
- data/lib/dapp/dimg/config/artifact_group.rb +0 -43
- data/lib/dapp/dimg/config/base.rb +0 -7
- data/lib/dapp/dimg/config/dimg.rb +0 -24
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
- data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
- data/lib/dapp/dimg/config/dimg_group.rb +0 -61
- data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
- data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
- data/lib/dapp/dimg/dapp/command.rb +0 -21
@@ -0,0 +1,46 @@
|
|
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 Error::Config, code: :app_name_required if _app.any? { |app| app._name.nil? } && _app.size > 1
|
19
|
+
_app.each do |app|
|
20
|
+
raise 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 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 Error::Config, code: :"#{directive}_#{job}_dimg_not_defined"
|
33
|
+
end
|
34
|
+
unless _dimg.map(&:_name).include?(job_dimg)
|
35
|
+
raise 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)
|
@@ -0,0 +1,28 @@
|
|
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
|
@@ -0,0 +1,51 @@
|
|
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
|
@@ -0,0 +1,68 @@
|
|
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 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
|
@@ -0,0 +1,27 @@
|
|
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
|
@@ -0,0 +1,28 @@
|
|
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
|
@@ -0,0 +1,22 @@
|
|
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
|
@@ -0,0 +1,26 @@
|
|
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
|
@@ -0,0 +1,26 @@
|
|
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
|
@@ -0,0 +1,37 @@
|
|
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 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
|
@@ -0,0 +1,19 @@
|
|
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)
|