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
data/lib/dapp/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
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.
|
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
|
data/lib/dapp/deployment/app.rb
DELETED
@@ -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,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
|