dapp 0.10.2 → 0.36.24
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 +77 -15
- data/config/en/common.yml +20 -11
- data/config/en/net_status.yml +108 -27
- data/lib/dapp/cli/cli.rb +1 -0
- data/lib/dapp/cli/command/base.rb +111 -0
- data/lib/dapp/cli/command/sample/base.rb +28 -0
- data/lib/dapp/cli/command/sample/create.rb +24 -0
- data/lib/dapp/cli/command/sample/list.rb +25 -0
- data/lib/dapp/cli/command/sample.rb +20 -0
- data/lib/dapp/cli/command/slug.rb +26 -0
- data/lib/dapp/cli/command/update.rb +65 -0
- data/lib/dapp/cli/options/ssh.rb +18 -0
- data/lib/dapp/cli/options/tag.rb +51 -0
- data/lib/dapp/cli.rb +11 -3
- data/lib/dapp/config/config.rb +21 -0
- data/lib/dapp/config/directive/base.rb +100 -3
- data/lib/dapp/core_ext/hash.rb +14 -0
- data/lib/dapp/core_ext/pathname.rb +6 -4
- data/lib/dapp/dapp/chef.rb +1 -9
- data/lib/dapp/dapp/command/common.rb +24 -0
- data/lib/dapp/dapp/command/sample/common.rb +54 -0
- data/lib/dapp/dapp/command/sample/create.rb +57 -0
- data/lib/dapp/dapp/command/sample/list.rb +13 -0
- data/lib/dapp/dapp/command/slug.rb +11 -0
- data/lib/dapp/dapp/dapp_config.rb +85 -0
- data/lib/dapp/dapp/dappfile.rb +108 -27
- data/lib/dapp/dapp/deps/base.rb +9 -32
- data/lib/dapp/dapp/deps/common.rb +26 -0
- data/lib/dapp/dapp/deps/gitartifact.rb +2 -20
- data/lib/dapp/dapp/deps/toolchain.rb +11 -0
- data/lib/dapp/dapp/git_artifact.rb +6 -4
- data/lib/dapp/dapp/lock.rb +6 -5
- data/lib/dapp/dapp/logging/base.rb +32 -20
- data/lib/dapp/dapp/logging/i18n.rb +5 -1
- data/lib/dapp/dapp/logging/process.rb +6 -6
- data/lib/dapp/dapp/option_tags.rb +98 -0
- data/lib/dapp/dapp/ruby2go.rb +130 -0
- data/lib/dapp/dapp/sentry.rb +97 -0
- data/lib/dapp/dapp/shellout/base.rb +26 -18
- data/lib/dapp/dapp/shellout/streaming.rb +2 -2
- data/lib/dapp/dapp/slug.rb +12 -0
- data/lib/dapp/dapp/ssh_agent.rb +25 -7
- data/lib/dapp/dapp.rb +192 -41
- data/lib/dapp/deployment.rb +1 -0
- data/lib/dapp/dimg/artifact.rb +12 -4
- data/lib/dapp/dimg/build/stage/artifact_base.rb +26 -30
- data/lib/dapp/dimg/build/stage/artifact_default.rb +50 -28
- data/lib/dapp/dimg/build/stage/base.rb +187 -52
- data/lib/dapp/dimg/build/stage/before_install.rb +4 -15
- data/lib/dapp/dimg/build/stage/before_install_artifact.rb +4 -0
- data/lib/dapp/dimg/build/stage/before_setup.rb +1 -20
- data/lib/dapp/dimg/build/stage/build_artifact.rb +1 -20
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +5 -4
- data/lib/dapp/dimg/build/stage/from.rb +62 -9
- data/lib/dapp/dimg/build/stage/ga_archive.rb +14 -1
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +1 -5
- data/lib/dapp/dimg/build/stage/ga_base.rb +5 -35
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +15 -34
- data/lib/dapp/dimg/build/stage/ga_related_base.rb +21 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +22 -11
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +6 -2
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +6 -2
- data/lib/dapp/dimg/build/stage/install/install.rb +1 -19
- data/lib/dapp/dimg/build/stage/instructions.rb +27 -0
- data/lib/dapp/dimg/build/stage/mod/group.rb +19 -7
- data/lib/dapp/dimg/build/stage/mod/logging.rb +15 -19
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +24 -1
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +6 -2
- data/lib/dapp/dimg/build/stage/setup/setup.rb +1 -19
- data/lib/dapp/dimg/builder/ansible.rb +5 -0
- data/lib/dapp/dimg/builder/chef/cookbook.rb +8 -8
- data/lib/dapp/dimg/builder/chef.rb +29 -16
- data/lib/dapp/dimg/builder/none.rb +1 -34
- data/lib/dapp/dimg/builder/ruby2go.rb +57 -0
- data/lib/dapp/dimg/builder/shell.rb +1 -20
- data/lib/dapp/dimg/cli/cli.rb +2 -1
- data/lib/dapp/dimg/cli/command/base.rb +24 -0
- data/lib/dapp/dimg/cli/command/dimg/bp.rb +60 -0
- data/lib/dapp/dimg/cli/command/dimg/build.rb +43 -0
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +9 -4
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
- data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +5 -5
- data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +4 -6
- data/lib/dapp/dimg/cli/command/dimg/cleanup_repo.rb +47 -0
- data/lib/dapp/dimg/cli/command/dimg/flush_local.rb +24 -0
- data/lib/dapp/dimg/cli/command/dimg/flush_repo.rb +36 -0
- data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +6 -3
- data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
- data/lib/dapp/dimg/cli/command/dimg/push.rb +39 -0
- data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +30 -15
- 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} +12 -3
- data/lib/dapp/dimg/cli/command/dimg/stages/base.rb +13 -0
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +13 -9
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +6 -8
- data/lib/dapp/dimg/cli/command/dimg/stages/flush_local.rb +21 -0
- data/lib/dapp/dimg/cli/command/dimg/stages/flush_repo.rb +28 -0
- data/lib/dapp/dimg/cli/command/dimg/stages/pull.rb +34 -0
- data/lib/dapp/dimg/cli/command/dimg/stages/push.rb +30 -0
- data/lib/dapp/dimg/cli/command/dimg/stages.rb +22 -0
- data/lib/dapp/dimg/cli/command/dimg/tag.rb +24 -0
- data/lib/dapp/dimg/cli/command/dimg.rb +31 -0
- data/lib/dapp/dimg/cli/options/introspection.rb +45 -0
- data/lib/dapp/dimg/config/config.rb +24 -0
- data/lib/dapp/dimg/config/directive/artifact.rb +13 -15
- data/lib/dapp/dimg/config/directive/artifact_base.rb +13 -8
- data/lib/dapp/dimg/config/directive/artifact_dimg.rb +12 -0
- data/lib/dapp/dimg/config/directive/artifact_group.rb +60 -0
- data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +203 -0
- data/lib/dapp/dimg/config/directive/dimg/validation.rb +217 -0
- data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
- data/lib/dapp/dimg/config/directive/dimg_group.rb +73 -0
- data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
- data/lib/dapp/dimg/config/directive/docker/artifact.rb +5 -0
- data/lib/dapp/dimg/config/directive/docker/base.rb +2 -3
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +24 -5
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +23 -12
- data/lib/dapp/dimg/config/directive/mount.rb +11 -3
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +2 -2
- data/lib/dapp/dimg/dapp/command/bp.rb +3 -5
- data/lib/dapp/dimg/dapp/command/build.rb +4 -6
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +14 -14
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +28 -23
- data/lib/dapp/dimg/dapp/command/cleanup.rb +4 -11
- data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +143 -0
- data/lib/dapp/dimg/dapp/command/common.rb +148 -38
- data/lib/dapp/dimg/dapp/command/flush_local.rb +25 -0
- data/lib/dapp/dimg/dapp/command/flush_repo.rb +25 -0
- data/lib/dapp/dimg/dapp/command/list.rb +1 -1
- data/lib/dapp/dimg/dapp/command/mrproper.rb +16 -63
- data/lib/dapp/dimg/dapp/command/push.rb +11 -16
- data/lib/dapp/dimg/dapp/command/ruby2go_cleanup.rb +48 -0
- data/lib/dapp/dimg/dapp/command/run.rb +4 -4
- data/lib/dapp/dimg/dapp/command/spush.rb +4 -5
- data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +13 -115
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +23 -102
- data/lib/dapp/dimg/dapp/command/stages/common.rb +57 -39
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +13 -7
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +14 -8
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +4 -13
- data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -9
- data/lib/dapp/dimg/dapp/command/tag.rb +4 -6
- data/lib/dapp/dimg/dapp/config_artifact_group.rb +20 -0
- data/lib/dapp/dimg/dapp/dapp.rb +40 -0
- data/lib/dapp/dimg/dapp/dappfile.rb +43 -0
- data/lib/dapp/dimg/dapp/dimg.rb +41 -0
- data/lib/dapp/dimg/dimg/git_artifact.rb +25 -11
- data/lib/dapp/dimg/dimg/path.rb +7 -9
- data/lib/dapp/dimg/dimg/stages.rb +27 -15
- data/lib/dapp/dimg/dimg.rb +172 -69
- data/lib/dapp/dimg/docker_registry/base.rb +31 -74
- data/lib/dapp/dimg/docker_registry/dimg.rb +55 -0
- data/lib/dapp/dimg/docker_registry.rb +5 -23
- data/lib/dapp/dimg/error/build.rb +1 -1
- data/lib/dapp/dimg/error/chef.rb +1 -5
- data/lib/dapp/dimg/error/{command.rb → default.rb} +1 -1
- data/lib/dapp/dimg/error/dimg.rb +1 -1
- data/lib/dapp/dimg/error/lock.rb +1 -1
- data/lib/dapp/dimg/error/registry.rb +1 -1
- data/lib/dapp/dimg/error/rugged.rb +1 -1
- data/lib/dapp/dimg/error/tar_writer.rb +1 -1
- data/lib/dapp/dimg/git_artifact.rb +195 -179
- data/lib/dapp/dimg/git_repo/base.rb +49 -45
- data/lib/dapp/dimg/git_repo/local.rb +45 -0
- data/lib/dapp/dimg/git_repo/own.rb +3 -31
- data/lib/dapp/dimg/git_repo/remote.rb +65 -26
- data/lib/dapp/dimg/image/argument.rb +15 -50
- data/lib/dapp/dimg/image/dimg.rb +15 -0
- data/lib/dapp/dimg/image/scratch.rb +35 -9
- data/lib/dapp/dimg/image/stage.rb +223 -44
- data/lib/dapp/dimg/lock/file.rb +4 -4
- data/lib/dapp/downloader.rb +117 -0
- data/lib/dapp/error/base.rb +1 -5
- data/lib/dapp/error/command.rb +5 -0
- data/lib/dapp/error/config.rb +5 -0
- data/lib/dapp/error/dapp.rb +1 -1
- data/lib/dapp/error/dappfile.rb +1 -1
- data/lib/dapp/error/default.rb +11 -0
- data/lib/dapp/error/mod/user.rb +11 -0
- data/lib/dapp/error/shellout.rb +1 -1
- data/lib/dapp/exception/base.rb +1 -1
- data/lib/dapp/helper/case_conversion.rb +17 -0
- data/lib/dapp/helper/cli.rb +18 -7
- data/lib/dapp/helper/net_status.rb +5 -1
- data/lib/dapp/helper/sha256.rb +1 -1
- data/lib/dapp/helper/tar.rb +31 -0
- data/lib/dapp/helper/trivia.rb +40 -1
- data/lib/dapp/helper/url.rb +23 -0
- data/lib/dapp/helper/yaml.rb +24 -0
- data/lib/dapp/kube/cli/cli.rb +1 -0
- data/lib/dapp/kube/cli/command/base.rb +14 -0
- data/lib/dapp/kube/cli/command/kube/chart_create.rb +19 -0
- data/lib/dapp/kube/cli/command/kube/deploy.rb +80 -0
- data/lib/dapp/kube/cli/command/kube/dismiss.rb +31 -0
- data/lib/dapp/kube/cli/command/kube/lint.rb +53 -0
- data/lib/dapp/kube/cli/command/kube/minikube_setup.rb +19 -0
- data/lib/dapp/kube/cli/command/kube/render.rb +63 -0
- data/lib/dapp/kube/cli/command/kube/secret_edit.rb +30 -0
- data/lib/dapp/kube/cli/command/kube/secret_extract.rb +39 -0
- data/lib/dapp/kube/cli/command/kube/secret_generate.rb +34 -0
- data/lib/dapp/kube/cli/command/kube/secret_key_generate.rb +16 -0
- data/lib/dapp/kube/cli/command/kube/secret_regenerate.rb +29 -0
- data/lib/dapp/kube/cli/command/kube/value_get.rb +47 -0
- data/lib/dapp/kube/cli/command/kube.rb +28 -0
- data/lib/dapp/kube/dapp/command/chart_create.rb +103 -0
- data/lib/dapp/kube/dapp/command/common.rb +379 -0
- data/lib/dapp/kube/dapp/command/deploy.rb +351 -0
- data/lib/dapp/kube/dapp/command/dismiss.rb +50 -0
- data/lib/dapp/kube/dapp/command/lint.rb +69 -0
- data/lib/dapp/kube/dapp/command/minikube_setup.rb +402 -0
- data/lib/dapp/kube/dapp/command/render.rb +54 -0
- data/lib/dapp/kube/dapp/command/ruby2go.rb +17 -0
- data/lib/dapp/kube/dapp/command/secret_edit.rb +21 -0
- data/lib/dapp/kube/dapp/command/secret_extract.rb +17 -0
- data/lib/dapp/kube/dapp/command/secret_generate.rb +21 -0
- data/lib/dapp/kube/dapp/command/secret_key_generate.rb +13 -0
- data/lib/dapp/kube/dapp/command/secret_regenerate.rb +13 -0
- data/lib/dapp/kube/dapp/command/value_get.rb +32 -0
- data/lib/dapp/kube/dapp/dapp.rb +26 -0
- data/lib/dapp/kube/error/default.rb +7 -0
- data/lib/dapp/kube/helm/release.rb +189 -0
- data/lib/dapp/kube/helm/values.rb +148 -0
- data/lib/dapp/kube/helm.rb +5 -0
- data/lib/dapp/kube/kubernetes/client/error.rb +43 -0
- data/lib/dapp/kube/kubernetes/client/resource/base.rb +33 -0
- data/lib/dapp/kube/kubernetes/client/resource/deployment.rb +11 -0
- data/lib/dapp/kube/kubernetes/client/resource/event.rb +8 -0
- data/lib/dapp/kube/kubernetes/client/resource/job.rb +27 -0
- data/lib/dapp/kube/kubernetes/client/resource/pod.rb +62 -0
- data/lib/dapp/kube/kubernetes/client/resource/replicaset.rb +8 -0
- data/lib/dapp/kube/kubernetes/client.rb +314 -0
- data/lib/dapp/kube/kubernetes/config.rb +132 -0
- data/lib/dapp/kube/kubernetes/error.rb +15 -0
- data/lib/dapp/kube/kubernetes/manager/base.rb +15 -0
- data/lib/dapp/kube/kubernetes/manager/container.rb +103 -0
- data/lib/dapp/kube/kubernetes/manager/deployment.rb +212 -0
- data/lib/dapp/kube/kubernetes/manager/job.rb +65 -0
- data/lib/dapp/kube/kubernetes/manager/pod.rb +69 -0
- data/lib/dapp/kube/kubernetes.rb +6 -0
- data/lib/dapp/kube/secret.rb +93 -0
- data/lib/dapp/kube.rb +1 -0
- data/lib/dapp/version.rb +2 -2
- data/lib/dapp.rb +155 -61
- metadata +208 -61
- data/lib/dapp/cli/base.rb +0 -63
- data/lib/dapp/config/base.rb +0 -54
- data/lib/dapp/config/error/config.rb +0 -7
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +0 -27
- data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +0 -20
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +0 -22
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -22
- data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -32
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -22
- data/lib/dapp/dimg/cli/base.rb +0 -16
- data/lib/dapp/dimg/cli/bp.rb +0 -37
- data/lib/dapp/dimg/cli/build.rb +0 -64
- data/lib/dapp/dimg/cli/dimg.rb +0 -30
- data/lib/dapp/dimg/cli/push.rb +0 -61
- data/lib/dapp/dimg/cli/stages/flush_local.rb +0 -23
- data/lib/dapp/dimg/cli/stages/flush_repo.rb +0 -24
- data/lib/dapp/dimg/cli/stages/pull.rb +0 -28
- data/lib/dapp/dimg/cli/stages/push.rb +0 -24
- data/lib/dapp/dimg/cli/stages.rb +0 -22
- data/lib/dapp/dimg/cli/tag.rb +0 -24
- 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/instance_methods.rb +0 -179
- data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
- data/lib/dapp/dimg/config/dimg.rb +0 -24
- 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
- data/lib/dapp/dimg/dimg/tags.rb +0 -65
- data/lib/dapp/dimg/docker_registry/base/authorization.rb +0 -63
- data/lib/dapp/dimg/docker_registry/base/request.rb +0 -34
- data/lib/dapp/dimg/docker_registry/default.rb +0 -18
- data/lib/dapp/dimg/error/base.rb +0 -7
- data/lib/dapp/dimg/error/config.rb +0 -7
- data/lib/dapp/dimg/exception/introspect_image.rb +0 -7
- data/lib/dapp/dimg/image/docker.rb +0 -134
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
module Dimg
|
|
3
|
+
module Config
|
|
4
|
+
module Directive
|
|
5
|
+
module DimgGroupBase
|
|
6
|
+
def dimg(name = nil, &blk)
|
|
7
|
+
Dimg.new(name, dapp: dapp).tap do |dimg|
|
|
8
|
+
before_dimg_eval(dimg)
|
|
9
|
+
dimg.instance_eval(&blk) if block_given?
|
|
10
|
+
@_dimg << dimg
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def dimg_group(&blk)
|
|
15
|
+
DimgGroup.new(dapp: dapp).tap do |dimg_group|
|
|
16
|
+
before_dimg_group_eval(dimg_group)
|
|
17
|
+
dimg_group.instance_eval(&blk) if block_given?
|
|
18
|
+
@_dimg_group << dimg_group
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def _dimg
|
|
23
|
+
(@_dimg + _dimg_group.map(&:_dimg)).flatten
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def _dimg_group
|
|
27
|
+
@_dimg_group||[]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
protected
|
|
31
|
+
|
|
32
|
+
def before_dimg_eval(dimg)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def before_dimg_group_eval(dimg_group)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def dimg_group_init_variables!
|
|
39
|
+
@_dimg = []
|
|
40
|
+
@_dimg_group = []
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -4,6 +4,11 @@ module Dapp
|
|
|
4
4
|
module Directive
|
|
5
5
|
module Docker
|
|
6
6
|
class Artifact < Base
|
|
7
|
+
def method_missing(m, *args)
|
|
8
|
+
raise ::Dapp::Error::Config, code: :docker_artifact_unsupported_directive if Dimg.instance_methods.include?(m)
|
|
9
|
+
super
|
|
10
|
+
end
|
|
11
|
+
|
|
7
12
|
def _change_options
|
|
8
13
|
{}
|
|
9
14
|
end
|
|
@@ -9,9 +9,8 @@ module Dapp
|
|
|
9
9
|
def from(image, cache_version: nil)
|
|
10
10
|
sub_directive_eval do
|
|
11
11
|
image = image.to_s
|
|
12
|
-
raise(Error::Config, code: :docker_from_incorrect, data: { name: image }) unless ::Dapp::Dimg::Image::
|
|
13
|
-
|
|
14
|
-
@_from = image
|
|
12
|
+
raise(::Dapp::Error::Config, code: :docker_from_incorrect, data: { name: image }) unless ::Dapp::Dimg::Image::Stage.image_name?(image)
|
|
13
|
+
@_from = image.include?(':') ? image : [image, 'latest'].join(':')
|
|
15
14
|
@_from_cache_version = cache_version
|
|
16
15
|
end
|
|
17
16
|
end
|
|
@@ -18,11 +18,11 @@ module Dapp
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def volume(*args)
|
|
21
|
-
sub_directive_eval { @_volume.concat(args) }
|
|
21
|
+
sub_directive_eval { @_volume.concat(args.flatten) }
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def expose(*args)
|
|
25
|
-
sub_directive_eval { @_expose.concat(args) }
|
|
25
|
+
sub_directive_eval { @_expose.concat(args.flatten) }
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def env(**options)
|
|
@@ -34,11 +34,11 @@ module Dapp
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def cmd(*args)
|
|
37
|
-
sub_directive_eval { @_cmd.concat(args) }
|
|
37
|
+
sub_directive_eval { @_cmd.concat(args.flatten) }
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def onbuild(*args)
|
|
41
|
-
sub_directive_eval { @_onbuild.concat(args) }
|
|
41
|
+
sub_directive_eval { @_onbuild.concat(args.flatten) }
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def workdir(path)
|
|
@@ -3,20 +3,39 @@ module Dapp
|
|
|
3
3
|
module Config
|
|
4
4
|
module Directive
|
|
5
5
|
class GitArtifactLocal < ArtifactBase
|
|
6
|
+
attr_reader :_as
|
|
7
|
+
|
|
8
|
+
def as(value)
|
|
9
|
+
@_as = value
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def export(absolute_dir_path = '/', &blk)
|
|
13
|
+
super
|
|
14
|
+
end
|
|
6
15
|
alias add export
|
|
7
16
|
undef_method :export
|
|
8
17
|
|
|
18
|
+
def _export
|
|
19
|
+
super do |export|
|
|
20
|
+
export._as = @_as
|
|
21
|
+
|
|
22
|
+
yield(export) if block_given?
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
9
26
|
class Export < ArtifactBase::Export
|
|
27
|
+
attr_accessor :_as
|
|
28
|
+
|
|
10
29
|
def stage_dependencies(&blk)
|
|
11
30
|
@stage_dependencies ||= StageDependencies.new(&blk)
|
|
12
31
|
end
|
|
13
32
|
|
|
14
33
|
def validate!
|
|
15
|
-
raise Error::Config, code: :add_to_required if _to.nil?
|
|
34
|
+
raise ::Dapp::Error::Config, code: :add_to_required if _to.nil?
|
|
16
35
|
end
|
|
17
36
|
|
|
18
37
|
def _artifact_options
|
|
19
|
-
super.merge(stages_dependencies: stage_dependencies.to_h)
|
|
38
|
+
super.merge(stages_dependencies: stage_dependencies.to_h, as: _as)
|
|
20
39
|
end
|
|
21
40
|
|
|
22
41
|
class StageDependencies < Directive::Base
|
|
@@ -25,10 +44,10 @@ module Dapp
|
|
|
25
44
|
STAGES.each do |stage|
|
|
26
45
|
define_method(stage) do |*glob|
|
|
27
46
|
sub_directive_eval do
|
|
28
|
-
if (globs = glob.map { |g| path_format(g) }).any? { |g| Pathname(g).absolute? }
|
|
29
|
-
raise Error::Config, code: :stages_dependencies_paths_relative_path_required, data: { stage: stage }
|
|
47
|
+
if (globs = glob.flatten.map { |g| path_format(g) }).any? { |g| Pathname(g).absolute? }
|
|
48
|
+
raise ::Dapp::Error::Config, code: :stages_dependencies_paths_relative_path_required, data: { stage: stage }
|
|
30
49
|
end
|
|
31
|
-
instance_variable_set(:"@#{stage}", globs)
|
|
50
|
+
instance_variable_set(:"@#{stage}", public_send("_#{stage}") + globs)
|
|
32
51
|
end
|
|
33
52
|
end
|
|
34
53
|
|
|
@@ -3,24 +3,27 @@ module Dapp
|
|
|
3
3
|
module Config
|
|
4
4
|
module Directive
|
|
5
5
|
class GitArtifactRemote < GitArtifactLocal
|
|
6
|
-
|
|
6
|
+
include ::Dapp::Helper::Url
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
raise Error::Config, code: :git_artifact_remote_unsupported_protocol,
|
|
10
|
-
data: { url: url } unless %w(http https).include? URI(url.to_s).scheme
|
|
8
|
+
attr_reader :_url, :_name, :_branch, :_tag, :_commit
|
|
11
9
|
|
|
10
|
+
def initialize(url, **kwargs, &blk)
|
|
12
11
|
@_url = url
|
|
13
|
-
@_name = url
|
|
12
|
+
@_name = git_url_to_name(url)
|
|
14
13
|
|
|
15
14
|
super(**kwargs, &blk)
|
|
16
15
|
end
|
|
17
16
|
|
|
18
17
|
def branch(value)
|
|
19
|
-
sub_directive_eval { @_branch = value }
|
|
18
|
+
sub_directive_eval { @_branch = value.to_s }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def tag(value)
|
|
22
|
+
sub_directive_eval { @_tag = value.to_s }
|
|
20
23
|
end
|
|
21
24
|
|
|
22
25
|
def commit(value)
|
|
23
|
-
sub_directive_eval { @_commit = value }
|
|
26
|
+
sub_directive_eval { @_commit = value.to_s }
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
def _export
|
|
@@ -28,28 +31,36 @@ module Dapp
|
|
|
28
31
|
export._url = @_url
|
|
29
32
|
export._name = @_name
|
|
30
33
|
export._branch ||= @_branch
|
|
34
|
+
export._tag ||= @_tag
|
|
31
35
|
export._commit ||= @_commit
|
|
36
|
+
|
|
37
|
+
yield(export) if block_given?
|
|
32
38
|
end
|
|
33
39
|
end
|
|
34
40
|
|
|
35
41
|
class Export < GitArtifactLocal::Export
|
|
36
|
-
attr_accessor :_url, :_name, :_branch, :_commit
|
|
42
|
+
attr_accessor :_url, :_name, :_branch, :_tag, :_commit
|
|
37
43
|
|
|
38
44
|
def _artifact_options
|
|
39
|
-
super.merge(name: _name, branch: _branch, commit: _commit)
|
|
45
|
+
super.merge(name: _name, branch: _branch, tag: _tag, commit: _commit)
|
|
40
46
|
end
|
|
41
47
|
|
|
42
48
|
def branch(value)
|
|
43
|
-
sub_directive_eval { @_branch = value }
|
|
49
|
+
sub_directive_eval { @_branch = value.to_s }
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def tag(value)
|
|
53
|
+
sub_directive_eval { @_tag = value.to_s }
|
|
44
54
|
end
|
|
45
55
|
|
|
46
56
|
def commit(value)
|
|
47
|
-
sub_directive_eval { @_commit = value }
|
|
57
|
+
sub_directive_eval { @_commit = value.to_s }
|
|
48
58
|
end
|
|
49
59
|
|
|
50
60
|
def validate!
|
|
51
61
|
super
|
|
52
|
-
|
|
62
|
+
refs = [_branch, _tag, _commit].compact
|
|
63
|
+
raise ::Dapp::Error::Config, code: :git_artifact_remote_with_refs if refs.length > 1
|
|
53
64
|
end
|
|
54
65
|
end
|
|
55
66
|
end
|
|
@@ -4,10 +4,11 @@ module Dapp
|
|
|
4
4
|
module Directive
|
|
5
5
|
class Mount < Base
|
|
6
6
|
attr_reader :_to
|
|
7
|
+
attr_reader :_from
|
|
7
8
|
attr_reader :_type
|
|
8
9
|
|
|
9
10
|
def initialize(to, **kwargs, &blk)
|
|
10
|
-
raise Error::Config, code: :mount_to_absolute_path_required unless Pathname((to = to.to_s)).absolute?
|
|
11
|
+
raise ::Dapp::Error::Config, code: :mount_to_absolute_path_required unless Pathname((to = to.to_s)).absolute?
|
|
11
12
|
@_to = path_format(to)
|
|
12
13
|
|
|
13
14
|
super(**kwargs, &blk)
|
|
@@ -16,13 +17,20 @@ module Dapp
|
|
|
16
17
|
def from(type)
|
|
17
18
|
sub_directive_eval do
|
|
18
19
|
type = type.to_sym
|
|
19
|
-
raise Error::Config, code: :mount_from_type_required unless [:tmp_dir, :build_dir].include? type
|
|
20
|
+
raise ::Dapp::Error::Config, code: :mount_from_type_required unless [:tmp_dir, :build_dir].include? type
|
|
20
21
|
@_type = type
|
|
21
22
|
end
|
|
22
23
|
end
|
|
23
24
|
|
|
25
|
+
def from_path(path)
|
|
26
|
+
sub_directive_eval do
|
|
27
|
+
@_from = path_format(path)
|
|
28
|
+
@_type = :custom_dir
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
24
32
|
def validate!
|
|
25
|
-
raise Error::Config, code: :
|
|
33
|
+
raise ::Dapp::Error::Config, code: :mount_from_or_from_path_required if _type.nil?
|
|
26
34
|
end
|
|
27
35
|
end
|
|
28
36
|
end
|
|
@@ -25,7 +25,7 @@ module Dapp
|
|
|
25
25
|
|
|
26
26
|
define_method "_#{stage}_version" do
|
|
27
27
|
return [] if (variable = instance_variable_get("@_#{stage}")).nil?
|
|
28
|
-
variable._version
|
|
28
|
+
variable._version
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
[:before_install, :before_setup, :install, :setup].each(&method(:stage_command_generator))
|
|
@@ -48,7 +48,7 @@ module Dapp
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def run(*args)
|
|
51
|
-
sub_directive_eval { @_run.concat(args) }
|
|
51
|
+
sub_directive_eval { @_run.concat(args.flatten) }
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def version(value)
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Bp
|
|
6
|
-
def bp
|
|
6
|
+
def bp
|
|
7
7
|
bp_step(:build)
|
|
8
|
-
bp_step(:push
|
|
9
|
-
bp_step(:stages_cleanup_by_repo, repo)
|
|
10
|
-
bp_step(:cleanup)
|
|
8
|
+
bp_step(:push)
|
|
11
9
|
end
|
|
12
10
|
|
|
13
11
|
def bp_step(step, *args)
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Build
|
|
6
6
|
def build
|
|
7
|
-
setup_ssh_agent
|
|
8
|
-
|
|
9
7
|
build_configs.each do |config|
|
|
10
8
|
log_dimg_name_with_indent(config) do
|
|
11
|
-
|
|
9
|
+
dimg(config: config).build!
|
|
12
10
|
end
|
|
13
11
|
end
|
|
14
|
-
rescue ::Dapp::Error::Shellout, Error::
|
|
15
|
-
build_context_export unless
|
|
12
|
+
rescue ::Dapp::Error::Shellout, Error::Default
|
|
13
|
+
build_context_export unless options[:build_context_directory].nil?
|
|
16
14
|
raise
|
|
17
15
|
end
|
|
18
16
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module BuildContext
|
|
6
6
|
module Common
|
|
@@ -17,7 +17,7 @@ module Dapp
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def build_context_directory
|
|
20
|
-
File.expand_path(
|
|
20
|
+
File.expand_path(options[:build_context_directory].to_s)
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
end
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module BuildContext
|
|
6
6
|
module Export
|
|
7
7
|
def build_context_export
|
|
8
8
|
log_process(:'export context') do
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export_build_context_build_tar
|
|
12
|
-
end
|
|
9
|
+
export_build_context_image_tar
|
|
10
|
+
export_build_context_build_tar
|
|
13
11
|
end
|
|
14
12
|
end
|
|
15
13
|
|
|
16
14
|
def export_build_context_image_tar
|
|
17
15
|
lock("#{name}.images", readonly: true) do
|
|
18
16
|
context_images_names = build_configs.map do |config|
|
|
19
|
-
|
|
17
|
+
dimg(config: config).all_tagged_images.map(&:name)
|
|
20
18
|
end.flatten
|
|
21
19
|
|
|
22
20
|
log_secondary_process(:images, short: true) do
|
|
23
|
-
Image::
|
|
21
|
+
Image::Stage.save!(self, context_images_names, build_context_images_tar, verbose: true, quiet: log_quiet?) unless dry_run?
|
|
24
22
|
end unless context_images_names.empty?
|
|
25
23
|
end
|
|
26
24
|
end
|
|
27
25
|
|
|
28
26
|
def export_build_context_build_tar
|
|
29
27
|
log_secondary_process(:build_dir, short: true) do
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
if !!options[:use_system_tar]
|
|
29
|
+
shellout!("tar -C #{build_path} -cf #{build_context_build_tar} .")
|
|
30
|
+
else
|
|
31
|
+
tar_write(build_context_build_tar) do |tar|
|
|
32
32
|
Dir.glob(File.join(build_path, '**/*'), File::FNM_DOTMATCH).each do |path|
|
|
33
33
|
archive_file_path = path
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
.reverse
|
|
35
|
+
.chomp(build_path.to_s.reverse)
|
|
36
|
+
.chomp('/')
|
|
37
|
+
.reverse
|
|
38
38
|
if File.directory?(path)
|
|
39
39
|
tar.mkdir archive_file_path, File.stat(path).mode
|
|
40
40
|
else
|
|
@@ -44,7 +44,7 @@ module Dapp
|
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
|
-
end
|
|
47
|
+
end unless dry_run?
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module BuildContext
|
|
6
6
|
module Import
|
|
7
7
|
def build_context_import
|
|
8
|
-
raise Error::Command, code: :context_directory_not_found,
|
|
9
|
-
|
|
8
|
+
raise ::Dapp::Error::Command, code: :context_directory_not_found,
|
|
9
|
+
data: { path: build_context_path } unless build_context_path.exist?
|
|
10
10
|
|
|
11
11
|
log_process(:'import context') do
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import_build_context_image_tar
|
|
15
|
-
end
|
|
12
|
+
import_build_context_build_tar
|
|
13
|
+
import_build_context_image_tar
|
|
16
14
|
end
|
|
17
15
|
end
|
|
18
16
|
|
|
19
17
|
def import_build_context_image_tar
|
|
20
18
|
if build_context_images_tar.exist?
|
|
21
|
-
log_secondary_process(:images
|
|
19
|
+
log_secondary_process(:images) do
|
|
22
20
|
lock("#{name}.images") do
|
|
23
|
-
Image::
|
|
24
|
-
end
|
|
21
|
+
Image::Stage.load!(self, build_context_images_tar, verbose: true, quiet: log_quiet?)
|
|
22
|
+
end unless dry_run?
|
|
25
23
|
end
|
|
26
24
|
else
|
|
27
25
|
log_warning(desc: { code: :context_archive_not_found, data: { path: build_context_images_tar } })
|
|
@@ -31,19 +29,26 @@ module Dapp
|
|
|
31
29
|
def import_build_context_build_tar
|
|
32
30
|
if build_context_build_tar.exist?
|
|
33
31
|
log_secondary_process(:build_dir, short: true) do
|
|
34
|
-
|
|
32
|
+
unless dry_run?
|
|
33
|
+
store_current_build_dir
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
if !!options[:use_system_tar]
|
|
36
|
+
FileUtils.mkpath build_path
|
|
37
|
+
shellout!("tar -xf #{build_context_build_tar} -C #{build_path}")
|
|
38
|
+
else
|
|
39
|
+
tar_read(build_context_build_tar) do |tar|
|
|
40
|
+
tar.each_entry do |entry|
|
|
41
|
+
header = entry.header
|
|
42
|
+
path = File.join(build_path, entry.full_name)
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
if entry.directory?
|
|
45
|
+
FileUtils.mkpath path, :mode => entry.header.mode
|
|
46
|
+
else
|
|
47
|
+
FileUtils.mkpath File.dirname(path)
|
|
48
|
+
File.write(path, entry.read)
|
|
49
|
+
File.chmod(header.mode, path)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
47
52
|
end
|
|
48
53
|
end
|
|
49
54
|
end
|
|
@@ -55,8 +60,8 @@ module Dapp
|
|
|
55
60
|
|
|
56
61
|
def store_current_build_dir
|
|
57
62
|
return if build_path_empty?
|
|
58
|
-
raise Error::Command, code: :stored_build_dir_already_exist,
|
|
59
|
-
|
|
63
|
+
raise ::Dapp::Error::Command, code: :stored_build_dir_already_exist,
|
|
64
|
+
data: { path: "#{build_path}.old" } if File.exist?("#{build_path}.old")
|
|
60
65
|
FileUtils.mv(build_path, "#{build_path}.old")
|
|
61
66
|
end
|
|
62
67
|
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Cleanup
|
|
6
6
|
def cleanup
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
dapp_dangling_images_flush
|
|
11
|
-
remove_images_by_query([
|
|
12
|
-
'docker images',
|
|
13
|
-
%(--format '{{if ne "#{stage_cache}" .Repository }}{{.Repository}}:{{.Tag}}{{ end }}'),
|
|
14
|
-
%(-f "label=dapp=#{stage_dapp_label}")
|
|
15
|
-
].join(' ')) # FIXME: negative filter is not currently supported by the Docker CLI
|
|
16
|
-
end
|
|
7
|
+
log_step_with_indent(:cleanup) do
|
|
8
|
+
dapp_containers_flush_by_label('dapp')
|
|
9
|
+
dapp_dangling_images_flush_by_label('dapp')
|
|
17
10
|
end
|
|
18
11
|
end
|
|
19
12
|
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
module Dimg
|
|
3
|
+
module Dapp
|
|
4
|
+
module Command
|
|
5
|
+
module CleanupRepo
|
|
6
|
+
def cleanup_repo
|
|
7
|
+
git_repo_option = git_own_repo_exist? ? JSON.dump(git_own_repo.get_ruby2go_state_hash) : nil
|
|
8
|
+
ruby2go_cleanup_command(:gc, ruby2go_cleanup_gc_options_dump, local_repo: git_repo_option)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def ruby2go_cleanup_gc_options_dump
|
|
12
|
+
ruby2go_cleanup_common_repo_options.merge(
|
|
13
|
+
mode: {
|
|
14
|
+
with_stages: with_stages?
|
|
15
|
+
},
|
|
16
|
+
deployed_docker_images: deployed_docker_images
|
|
17
|
+
).tap do |data|
|
|
18
|
+
break JSON.dump(data)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def deployed_docker_images
|
|
23
|
+
@deployed_docker_images ||= search_deployed_docker_images
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def search_deployed_docker_images
|
|
27
|
+
return [] if without_kube?
|
|
28
|
+
|
|
29
|
+
config = ::Dapp::Kube::Kubernetes::Config.new_auto_if_available
|
|
30
|
+
return [] if config.nil?
|
|
31
|
+
|
|
32
|
+
config.context_names.
|
|
33
|
+
map {|context_name|
|
|
34
|
+
client = ::Dapp::Kube::Kubernetes::Client.new(
|
|
35
|
+
config,
|
|
36
|
+
context_name,
|
|
37
|
+
"default",
|
|
38
|
+
timeout: options[:kubernetes_timeout],
|
|
39
|
+
)
|
|
40
|
+
search_deployed_docker_images_from_kube(client)
|
|
41
|
+
}.flatten.sort.uniq
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def search_deployed_docker_images_from_kube(client)
|
|
45
|
+
namespaces = []
|
|
46
|
+
# check connectivity for 2 seconds
|
|
47
|
+
begin
|
|
48
|
+
namespaces = client.namespace_list(excon_parameters: {:connect_timeout => 30})
|
|
49
|
+
rescue Excon::Error::Timeout
|
|
50
|
+
raise ::Dapp::Error::Default, code: :kube_connect_timeout
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# get images from containers from pods from all namespaces.
|
|
54
|
+
namespaces['items'].map do |item|
|
|
55
|
+
item['metadata']['name']
|
|
56
|
+
end.map do |ns|
|
|
57
|
+
[].tap do |arr|
|
|
58
|
+
client.with_namespace(ns) do
|
|
59
|
+
arr << pod_images(client)
|
|
60
|
+
arr << deployment_images(client)
|
|
61
|
+
arr << replicaset_images(client)
|
|
62
|
+
arr << statefulset_images(client)
|
|
63
|
+
arr << daemonset_images(client)
|
|
64
|
+
arr << job_images(client)
|
|
65
|
+
arr << cronjob_images(client)
|
|
66
|
+
arr << replicationcontroller_images(client)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end.flatten.select do |img|
|
|
70
|
+
img.start_with? option_repo
|
|
71
|
+
end.sort.uniq
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# pod items[] spec containers[] image
|
|
75
|
+
def pod_images(client)
|
|
76
|
+
client.pod_list['items'].map do |item|
|
|
77
|
+
images_from_pod_spec(item)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# cronjob items[] spec jobTemplate spec template spec containers[] image
|
|
82
|
+
def cronjob_images(client)
|
|
83
|
+
client.cronjob_list['items'].map do |item|
|
|
84
|
+
images_from_pod_spec(item['spec']['jobTemplate']['spec']['template'])
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# daemonsets items[] spec template spec containers[] image
|
|
89
|
+
def daemonset_images(client)
|
|
90
|
+
client.daemonset_list['items'].map do |item|
|
|
91
|
+
images_from_pod_spec(item['spec']['template'])
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# deployment items[] spec template spec containers[] image
|
|
96
|
+
def deployment_images(client)
|
|
97
|
+
client.deployment_list['items'].map do |item|
|
|
98
|
+
images_from_pod_spec(item['spec']['template'])
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# job items[] spec template spec containers[] image
|
|
103
|
+
def job_images(client)
|
|
104
|
+
client.job_list['items'].map do |item|
|
|
105
|
+
images_from_pod_spec(item['spec']['template'])
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# replicasets items[] spec template spec containers[] image
|
|
110
|
+
def replicaset_images(client)
|
|
111
|
+
client.replicaset_list['items'].map do |item|
|
|
112
|
+
images_from_pod_spec(item['spec']['template'])
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# replicasets items[] spec template spec containers[] image
|
|
117
|
+
def statefulset_images(client)
|
|
118
|
+
client.statefulset_list['items'].map do |item|
|
|
119
|
+
images_from_pod_spec(item['spec']['template'])
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# replicationcontroller items[] spec template spec containers[] image
|
|
124
|
+
def replicationcontroller_images(client)
|
|
125
|
+
client.replicationcontroller_list['items'].map do |item|
|
|
126
|
+
images_from_pod_spec(item['spec']['template'])
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def images_from_pod_spec(pod_spec)
|
|
131
|
+
containers = Array(pod_spec['spec']['containers'])
|
|
132
|
+
initContainers = Array(pod_spec['spec']['initContainers'])
|
|
133
|
+
(containers + initContainers).map { |cont| cont['image'] }
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def without_kube?
|
|
137
|
+
!!options[:without_kube]
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end # Dimg
|
|
143
|
+
end # Dapp
|