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
|
@@ -6,10 +6,33 @@ module Dapp
|
|
|
6
6
|
class GAPostSetupPatch < GABase
|
|
7
7
|
include Mod::Group
|
|
8
8
|
|
|
9
|
+
MAX_PATCH_SIZE = 1024 * 1024
|
|
10
|
+
|
|
9
11
|
def initialize(dimg, next_stage)
|
|
10
|
-
@prev_stage =
|
|
12
|
+
@prev_stage = Setup.new(dimg, self)
|
|
11
13
|
super
|
|
12
14
|
end
|
|
15
|
+
|
|
16
|
+
def renew
|
|
17
|
+
dependencies_discard
|
|
18
|
+
super
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def dependencies
|
|
22
|
+
@dependencies ||= [(changes_size_since_g_a_pre_setup_patch / MAX_PATCH_SIZE).to_i]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def changes_size_since_g_a_pre_setup_patch
|
|
28
|
+
dimg.git_artifacts.map do |git_artifact|
|
|
29
|
+
if git_artifact.repo.commit_exists? prev_stage.layer_commit(git_artifact)
|
|
30
|
+
git_artifact.patch_size(prev_stage.layer_commit(git_artifact))
|
|
31
|
+
else
|
|
32
|
+
0
|
|
33
|
+
end
|
|
34
|
+
end.reduce(0, :+)
|
|
35
|
+
end
|
|
13
36
|
end # GAPostSetupPatch
|
|
14
37
|
end
|
|
15
38
|
end # Stage
|
|
@@ -3,13 +3,17 @@ module Dapp
|
|
|
3
3
|
module Build
|
|
4
4
|
module Stage
|
|
5
5
|
module Setup
|
|
6
|
-
class GAPreSetupPatch <
|
|
6
|
+
class GAPreSetupPatch < GARelatedBase
|
|
7
7
|
include Mod::Group
|
|
8
8
|
|
|
9
9
|
def initialize(dimg, next_stage)
|
|
10
|
-
@prev_stage =
|
|
10
|
+
@prev_stage = BeforeSetupArtifact.new(dimg, self)
|
|
11
11
|
super
|
|
12
12
|
end
|
|
13
|
+
|
|
14
|
+
def related_stage_name
|
|
15
|
+
:setup
|
|
16
|
+
end
|
|
13
17
|
end # GAPrePatch
|
|
14
18
|
end
|
|
15
19
|
end # Stage
|
|
@@ -3,31 +3,13 @@ module Dapp
|
|
|
3
3
|
module Build
|
|
4
4
|
module Stage
|
|
5
5
|
module Setup
|
|
6
|
-
class Setup <
|
|
6
|
+
class Setup < Instructions
|
|
7
7
|
include Mod::Group
|
|
8
|
-
include Mod::GitArtifactsDependencies
|
|
9
8
|
|
|
10
9
|
def initialize(dimg, next_stage)
|
|
11
10
|
@prev_stage = GAPreSetupPatch.new(dimg, self)
|
|
12
11
|
super
|
|
13
12
|
end
|
|
14
|
-
|
|
15
|
-
def empty?
|
|
16
|
-
!dimg.builder.setup?
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def context
|
|
20
|
-
[git_artifacts_dependencies, builder_checksum]
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def builder_checksum
|
|
24
|
-
dimg.builder.setup_checksum
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def prepare_image
|
|
28
|
-
super
|
|
29
|
-
dimg.builder.setup(image)
|
|
30
|
-
end
|
|
31
13
|
end # Setup
|
|
32
14
|
end # Setup
|
|
33
15
|
end # Stage
|
|
@@ -66,7 +66,7 @@ module Dapp
|
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
def vendor_path
|
|
69
|
-
builder.dimg.dapp.lock(_vendor_lock_name, default_timeout:
|
|
69
|
+
builder.dimg.dapp.lock(_vendor_lock_name, default_timeout: 600) do
|
|
70
70
|
vendor! unless _vendor_path.join('.created_at').exist?
|
|
71
71
|
end
|
|
72
72
|
_vendor_path
|
|
@@ -74,11 +74,9 @@ module Dapp
|
|
|
74
74
|
|
|
75
75
|
# rubocop:disable Metrics/AbcSize
|
|
76
76
|
def vendor!
|
|
77
|
-
volumes_from = [builder.dimg.dapp.base_container, builder.chefdk_container]
|
|
77
|
+
volumes_from = [builder.dimg.dapp.toolchain_container, builder.dimg.dapp.base_container, builder.chefdk_container]
|
|
78
78
|
|
|
79
79
|
builder.dimg.dapp.log_secondary_process(builder.dimg.dapp.t(code: _vendor_process_name)) do
|
|
80
|
-
volumes_from = [builder.dimg.dapp.base_container, builder.chefdk_container]
|
|
81
|
-
|
|
82
80
|
tmp_berksfile_path = builder.dimg.tmp_path.join("Berksfile.#{SecureRandom.uuid}")
|
|
83
81
|
File.open(tmp_berksfile_path, 'w') {|file| file.write berksfile.dump}
|
|
84
82
|
|
|
@@ -89,11 +87,11 @@ module Dapp
|
|
|
89
87
|
"#{builder.dimg.dapp.mkdir_bin} -p ~/.ssh",
|
|
90
88
|
'echo "Host *" >> ~/.ssh/config',
|
|
91
89
|
'echo " StrictHostKeyChecking no" >> ~/.ssh/config',
|
|
92
|
-
*local_paths.map {|path| "#{builder.dimg.dapp.rsync_bin} --archive --relative #{path} /tmp/local_cookbooks"},
|
|
90
|
+
*local_paths.map {|path| "#{builder.dimg.dapp.rsync_bin} --inplace --archive --relative #{path} /tmp/local_cookbooks"},
|
|
93
91
|
"cd /tmp/local_cookbooks/#{path}",
|
|
94
92
|
"cp #{tmp_berksfile_path} Berksfile",
|
|
95
93
|
"cp #{tmp_metadata_path} metadata.rb",
|
|
96
|
-
|
|
94
|
+
"#{builder.berks_bin} vendor /tmp/cookbooks",
|
|
97
95
|
["#{builder.dimg.dapp.find_bin} /tmp/cookbooks -type d -exec #{builder.dimg.dapp.bash_bin} -ec '",
|
|
98
96
|
"#{builder.dimg.dapp.install_bin} -o #{Process.uid} -g #{Process.gid} ",
|
|
99
97
|
"--mode $(#{builder.dimg.dapp.stat_bin} -c %a {}) -d ",
|
|
@@ -107,7 +105,7 @@ module Dapp
|
|
|
107
105
|
]
|
|
108
106
|
|
|
109
107
|
builder.dimg.dapp.shellout!(
|
|
110
|
-
[
|
|
108
|
+
[ "#{builder.dimg.dapp.host_docker} run --rm",
|
|
111
109
|
volumes_from.map {|container| "--volumes-from #{container}"}.join(' '),
|
|
112
110
|
*local_paths.map {|path| "--volume #{path}:#{path}"},
|
|
113
111
|
"--volume #{builder.dimg.tmp_path}:#{builder.dimg.tmp_path}",
|
|
@@ -118,7 +116,7 @@ module Dapp
|
|
|
118
116
|
cmd << "dappdeps/berksdeps:0.1.0 #{builder.dimg.dapp.bash_bin}"
|
|
119
117
|
cmd << " -ec '#{builder.dimg.dapp.shellout_pack(vendor_commands.join(' && '))}'"
|
|
120
118
|
end ].compact.join(' '),
|
|
121
|
-
|
|
119
|
+
verbose: true
|
|
122
120
|
)
|
|
123
121
|
end
|
|
124
122
|
end
|
|
@@ -187,6 +185,8 @@ module Dapp
|
|
|
187
185
|
Dir[from_path.join('**/*')]
|
|
188
186
|
.map(&Pathname.method(:new))
|
|
189
187
|
.each do |from_subpath|
|
|
188
|
+
next if from_subpath.directory?
|
|
189
|
+
|
|
190
190
|
to_subpath = to_path.join(from_subpath.relative_path_from(from_path))
|
|
191
191
|
if to_subpath.exist?
|
|
192
192
|
raise(Error::Chef,
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
3
|
class Builder::Chef < Builder::Base
|
|
4
|
-
|
|
4
|
+
CHEFDK_VERSION = "2.3.17-2"
|
|
5
|
+
|
|
6
|
+
def chef_solo_bin
|
|
7
|
+
"/.dapp/deps/chefdk/#{CHEFDK_VERSION}/bin/chef-solo"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def berks_bin
|
|
11
|
+
"/.dapp/deps/chefdk/#{CHEFDK_VERSION}/bin/berks"
|
|
12
|
+
end
|
|
5
13
|
|
|
6
14
|
%i(before_install install before_setup setup build_artifact).each do |stage|
|
|
7
15
|
define_method("#{stage}?") {!stage_empty?(stage)}
|
|
@@ -16,7 +24,7 @@ module Dapp
|
|
|
16
24
|
unless stage_empty?(stage)
|
|
17
25
|
image.add_volumes_from(chefdk_container)
|
|
18
26
|
image.add_volume "#{stage_build_path(stage)}:#{container_stage_build_path(stage)}:ro"
|
|
19
|
-
image.add_command [
|
|
27
|
+
image.add_command [chef_solo_bin,
|
|
20
28
|
'--legacy-mode',
|
|
21
29
|
"--config #{container_stage_config_path(stage)}",
|
|
22
30
|
"--json-attributes #{container_stage_json_attributes_path(stage)}",
|
|
@@ -45,25 +53,29 @@ module Dapp
|
|
|
45
53
|
end
|
|
46
54
|
|
|
47
55
|
def chefdk_image
|
|
48
|
-
|
|
56
|
+
"dappdeps/chefdk:#{CHEFDK_VERSION}" # TODO: config, DSL, DEFAULT_CHEFDK_IMAGE
|
|
49
57
|
end
|
|
50
58
|
|
|
51
59
|
def chefdk_container_name # FIXME: hashsum(image) or dockersafe()
|
|
52
|
-
|
|
60
|
+
"dappdeps_chefdk_#{CHEFDK_VERSION}"
|
|
53
61
|
end
|
|
54
62
|
|
|
55
63
|
def chefdk_container
|
|
56
64
|
@chefdk_container ||= begin
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
is_container_exist = proc{dimg.dapp.shellout("#{dimg.dapp.host_docker} inspect #{chefdk_container_name}").exitstatus.zero?}
|
|
66
|
+
if !is_container_exist.call
|
|
67
|
+
dimg.dapp.lock("dappdeps.container.#{chefdk_container_name}", default_timeout: 600) do
|
|
68
|
+
if !is_container_exist.call
|
|
69
|
+
dimg.dapp.log_secondary_process(dimg.dapp.t(code: 'process.chefdk_container_creating', data: {name: chefdk_container_name}), short: true) do
|
|
70
|
+
dimg.dapp.shellout!(
|
|
71
|
+
["#{dimg.dapp.host_docker} create",
|
|
72
|
+
"--name #{chefdk_container_name}",
|
|
73
|
+
"--volume /.dapp/deps/chefdk/#{CHEFDK_VERSION} #{chefdk_image}"].join(' ')
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
64
77
|
end
|
|
65
78
|
end
|
|
66
|
-
|
|
67
79
|
chefdk_container_name
|
|
68
80
|
end
|
|
69
81
|
end
|
|
@@ -115,7 +127,7 @@ module Dapp
|
|
|
115
127
|
end
|
|
116
128
|
|
|
117
129
|
def stage_cookbooks_checksum_path(stage)
|
|
118
|
-
dimg.build_path.join("#{builder_cookbook.checksum}.#{dimg.
|
|
130
|
+
dimg.build_path.join("#{builder_cookbook.checksum}.#{dimg.name}.#{stage}.checksum")
|
|
119
131
|
end
|
|
120
132
|
|
|
121
133
|
def stage_cookbooks_checksum(stage)
|
|
@@ -180,8 +192,9 @@ module Dapp
|
|
|
180
192
|
@install_chef_solo_stage_config[stage] ||= true.tap do
|
|
181
193
|
stage_build_path(stage).join('config.rb').write [
|
|
182
194
|
"file_cache_path \"/.dapp/chef/cache\"\n",
|
|
183
|
-
"cookbook_path \"#{container_stage_build_path(stage).join('cookbooks')}\"\n"
|
|
184
|
-
|
|
195
|
+
"cookbook_path \"#{container_stage_build_path(stage).join('cookbooks')}\"\n",
|
|
196
|
+
("log_level :debug\n" if ENV["DAPP_CHEF_DEBUG"]),
|
|
197
|
+
].compact.join
|
|
185
198
|
end
|
|
186
199
|
end
|
|
187
200
|
|
|
@@ -203,7 +216,7 @@ module Dapp
|
|
|
203
216
|
end
|
|
204
217
|
|
|
205
218
|
def stage_build_path(stage)
|
|
206
|
-
dimg.tmp_path(dimg.
|
|
219
|
+
dimg.tmp_path(dimg.name).join(stage.to_s)
|
|
207
220
|
end
|
|
208
221
|
|
|
209
222
|
def container_stage_build_path(_stage)
|
|
@@ -1,38 +1,5 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
class Builder::None < Builder::
|
|
4
|
-
def before_dimg_should_be_built_check
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def before_install(_image)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def before_install_checksum
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def before_setup(_image)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def before_setup_checksum
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def install(_image)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def install_checksum
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def setup(_image)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def setup_checksum
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def build_artifact(_image)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def build_artifact_checksum
|
|
35
|
-
end
|
|
36
|
-
end # Builder::None
|
|
3
|
+
class Builder::None < Builder::Ruby2Go; end
|
|
37
4
|
end # Dimg
|
|
38
5
|
end # Dapp
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
module Dimg
|
|
3
|
+
class Builder::Ruby2Go < Builder::Base
|
|
4
|
+
[:before_install, :before_setup, :install, :setup, :build_artifact].each do |stage|
|
|
5
|
+
define_method("#{stage}_checksum") do
|
|
6
|
+
command = "#{snake_case_to_camel_case(stage)}Checksum"
|
|
7
|
+
ruby2go_builder_command(command: command)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
define_method("#{stage}?") do
|
|
11
|
+
command = "Is#{snake_case_to_camel_case(stage)}Empty"
|
|
12
|
+
!ruby2go_builder_command(command: command)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
define_method(stage.to_s) do |image|
|
|
16
|
+
command = snake_case_to_camel_case(stage)
|
|
17
|
+
ruby2go_builder_command(command: command, image: image.ruby2go_image_option).tap do |data|
|
|
18
|
+
image.set_ruby2go_state_hash(JSON.load(data["image"]))
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def ruby2go_builder_command(command:, **options)
|
|
24
|
+
(options[:options] ||= {}).merge!(host_docker_config_dir: dimg.dapp.class.host_docker_config_dir)
|
|
25
|
+
builder = self.class.name.split("::").last.downcase
|
|
26
|
+
command_options = {
|
|
27
|
+
builder: builder,
|
|
28
|
+
command: command,
|
|
29
|
+
config: YAML.dump(dimg.config),
|
|
30
|
+
extra: get_ruby2go_state_hash,
|
|
31
|
+
artifact: dimg.artifact?
|
|
32
|
+
}.merge(options)
|
|
33
|
+
|
|
34
|
+
dimg.dapp.ruby2go_builder(command_options).tap do |res|
|
|
35
|
+
raise Error::Build, code: :ruby2go_builder_command_failed_unexpected_error, data: { command: command, message: res["error"] } unless res["error"].nil?
|
|
36
|
+
break res['data']
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def get_ruby2go_state_hash
|
|
41
|
+
{
|
|
42
|
+
"TmpPath" => dimg.tmp_path.to_s,
|
|
43
|
+
"ContainerDappPath" => dimg.container_dapp_path.to_s,
|
|
44
|
+
}
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def snake_case_to_camel_case(value)
|
|
48
|
+
::Dapp::Helper::CaseConversion.snake_case_to_camel_case(value)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def snake_case_to_lower_camel_case(value)
|
|
52
|
+
::Dapp::Helper::CaseConversion.snake_case_to_lower_camel_case(value)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end # Builder::Shell
|
|
56
|
+
end # Dimg
|
|
57
|
+
end # Dapp
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
class Builder::Shell < Builder::
|
|
4
|
-
[:before_install, :before_setup, :install, :setup, :build_artifact].each do |stage|
|
|
5
|
-
define_method("#{stage}_checksum") do
|
|
6
|
-
[dimg.config._shell.public_send("_#{stage}_command"),
|
|
7
|
-
dimg.config._shell.public_send("_#{stage}_version")].flatten
|
|
8
|
-
end
|
|
9
|
-
define_method("#{stage}?") { !stage_empty?(stage) }
|
|
10
|
-
define_method(stage.to_s) do |image|
|
|
11
|
-
image.add_command(*stage_commands(stage)) unless stage_empty?(stage)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def stage_empty?(stage)
|
|
16
|
-
stage_commands(stage).empty?
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def stage_commands(stage)
|
|
20
|
-
dimg.config._shell.public_send("_#{stage}_command")
|
|
21
|
-
end
|
|
22
|
-
end # Builder::Shell
|
|
3
|
+
class Builder::Shell < Builder::Ruby2Go; end
|
|
23
4
|
end # Dimg
|
|
24
5
|
end # Dapp
|
data/lib/dapp/dimg/cli/cli.rb
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
::Dapp::CLI.send(:include, ::Dapp::Dimg::CLI)
|
|
1
|
+
::Dapp::CLI.send(:include, ::Dapp::Dimg::CLI::Command)
|
|
2
|
+
::Dapp::CLI.send(:include, ::Dapp::Dimg::CLI::Options)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Base < ::Dapp::CLI::Command::Base
|
|
4
|
+
DIMG_STAGES = [
|
|
5
|
+
:from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
|
|
6
|
+
:g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact,
|
|
7
|
+
:g_a_pre_setup_patch, :setup, :g_a_post_setup_patch, :after_setup_artifact, :g_a_latest_patch, :docker_instructions
|
|
8
|
+
].freeze
|
|
9
|
+
|
|
10
|
+
STAGE_PROC = proc do |stages|
|
|
11
|
+
proc { |val| val.to_sym.tap { |v| in_validate!(v, stages) } }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
option :build_dir,
|
|
15
|
+
long: "--build-dir PATH",
|
|
16
|
+
description: "Directory where build cache stored ($HOME/.dapp/builds/<dapp name> by default)."
|
|
17
|
+
|
|
18
|
+
def run(argv = ARGV)
|
|
19
|
+
self.class.parse_options(self, argv)
|
|
20
|
+
run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments))
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
|
+
class Bp < Push
|
|
5
|
+
banner <<BANNER.freeze
|
|
6
|
+
Usage:
|
|
7
|
+
|
|
8
|
+
dapp dimg bp [options] [DIMG ...] REPO
|
|
9
|
+
|
|
10
|
+
DIMG Dapp image to process [default: *].
|
|
11
|
+
REPO Pushed image name.
|
|
12
|
+
|
|
13
|
+
Options:
|
|
14
|
+
BANNER
|
|
15
|
+
|
|
16
|
+
# build options
|
|
17
|
+
|
|
18
|
+
extend ::Dapp::Dimg::CLI::Options::Introspection
|
|
19
|
+
extend ::Dapp::CLI::Options::Ssh
|
|
20
|
+
|
|
21
|
+
option :tmp_dir_prefix,
|
|
22
|
+
long: '--tmp-dir-prefix PREFIX',
|
|
23
|
+
description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
|
|
24
|
+
|
|
25
|
+
option :lock_timeout,
|
|
26
|
+
long: '--lock-timeout TIMEOUT',
|
|
27
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
|
28
|
+
proc: ->(v) { v.to_i }
|
|
29
|
+
|
|
30
|
+
option :build_context_directory,
|
|
31
|
+
long: '--build-context-directory DIR_PATH',
|
|
32
|
+
default: nil
|
|
33
|
+
|
|
34
|
+
option :use_system_tar,
|
|
35
|
+
long: '--use-system-tar',
|
|
36
|
+
boolean: true,
|
|
37
|
+
default: false
|
|
38
|
+
|
|
39
|
+
option :force_save_cache,
|
|
40
|
+
long: '--force-save-cache',
|
|
41
|
+
boolean: true,
|
|
42
|
+
default: false
|
|
43
|
+
|
|
44
|
+
# push options
|
|
45
|
+
|
|
46
|
+
extend ::Dapp::CLI::Options::Tag
|
|
47
|
+
|
|
48
|
+
option :with_stages,
|
|
49
|
+
long: '--with-stages',
|
|
50
|
+
boolean: true
|
|
51
|
+
|
|
52
|
+
option :registry_username,
|
|
53
|
+
long: '--registry-username USERNAME'
|
|
54
|
+
|
|
55
|
+
option :registry_password,
|
|
56
|
+
long: '--registry-password PASSWORD'
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
|
+
class Build < Base
|
|
5
|
+
banner <<BANNER.freeze
|
|
6
|
+
Usage:
|
|
7
|
+
|
|
8
|
+
dapp dimg build [options] [DIMG ...]
|
|
9
|
+
|
|
10
|
+
DIMG Dapp image to process [default: *].
|
|
11
|
+
|
|
12
|
+
Options:
|
|
13
|
+
BANNER
|
|
14
|
+
|
|
15
|
+
extend ::Dapp::Dimg::CLI::Options::Introspection
|
|
16
|
+
extend ::Dapp::CLI::Options::Ssh
|
|
17
|
+
|
|
18
|
+
option :tmp_dir_prefix,
|
|
19
|
+
long: '--tmp-dir-prefix PREFIX',
|
|
20
|
+
description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
|
|
21
|
+
|
|
22
|
+
option :lock_timeout,
|
|
23
|
+
long: '--lock-timeout TIMEOUT',
|
|
24
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
|
25
|
+
proc: ->(v) { v.to_i }
|
|
26
|
+
|
|
27
|
+
option :build_context_directory,
|
|
28
|
+
long: '--build-context-directory DIR_PATH',
|
|
29
|
+
default: nil
|
|
30
|
+
|
|
31
|
+
option :use_system_tar,
|
|
32
|
+
long: '--use-system-tar',
|
|
33
|
+
boolean: true,
|
|
34
|
+
default: false
|
|
35
|
+
|
|
36
|
+
option :force_save_cache,
|
|
37
|
+
long: '--force-save-cache',
|
|
38
|
+
boolean: true,
|
|
39
|
+
default: false
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
module Dapp
|
|
2
|
-
module
|
|
3
|
-
|
|
4
|
-
class BuildContext
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
|
+
class BuildContext < ::Dapp::CLI
|
|
5
5
|
class Export < Base
|
|
6
6
|
banner <<BANNER.freeze
|
|
7
7
|
Usage:
|
|
@@ -16,6 +16,11 @@ BANNER
|
|
|
16
16
|
long: '--build-context-directory DIR_PATH',
|
|
17
17
|
description: 'Path to the directory with context'
|
|
18
18
|
|
|
19
|
+
option :use_system_tar,
|
|
20
|
+
long: '--use-system-tar',
|
|
21
|
+
boolean: true,
|
|
22
|
+
default: false
|
|
23
|
+
|
|
19
24
|
def run_method
|
|
20
25
|
:"build_context_#{class_to_lowercase}"
|
|
21
26
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
module Dapp
|
|
2
|
-
module
|
|
3
|
-
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
4
|
class BuildContext < ::Dapp::CLI
|
|
5
5
|
SUBCOMMANDS = %w(import export).freeze
|
|
6
6
|
|
|
7
7
|
banner <<BANNER.freeze
|
|
8
8
|
Available subcommands: (for details, dapp dimg build-context SUB-COMMAND --help)
|
|
9
9
|
|
|
10
|
-
dapp dimg build-context export [options] [DIMG ...]
|
|
11
|
-
dapp dimg build-context import [options]
|
|
10
|
+
dapp dimg build-context export [options] [DIMG ...]
|
|
11
|
+
dapp dimg build-context import [options]
|
|
12
12
|
|
|
13
13
|
Options:
|
|
14
14
|
BANNER
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
module Dapp
|
|
2
|
-
module
|
|
3
|
-
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
4
|
class Cleanup < Base
|
|
5
5
|
banner <<BANNER.freeze
|
|
6
6
|
Usage:
|
|
7
7
|
|
|
8
|
-
dapp dimg cleanup [options]
|
|
9
|
-
|
|
10
|
-
DIMG Dapp image to process [default: *].
|
|
8
|
+
dapp dimg cleanup [options]
|
|
11
9
|
|
|
12
10
|
Options:
|
|
13
11
|
BANNER
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
|
+
class CleanupRepo < Base
|
|
5
|
+
banner <<BANNER.freeze
|
|
6
|
+
Usage:
|
|
7
|
+
|
|
8
|
+
dapp dimg cleanup repo [options] [DIMG ...] REPO
|
|
9
|
+
|
|
10
|
+
Options:
|
|
11
|
+
BANNER
|
|
12
|
+
|
|
13
|
+
option :lock_timeout,
|
|
14
|
+
long: '--lock-timeout TIMEOUT',
|
|
15
|
+
description: 'Redefine resource locking timeout (in seconds)',
|
|
16
|
+
proc: ->(v) { v.to_i }
|
|
17
|
+
|
|
18
|
+
option :kubernetes_timeout,
|
|
19
|
+
long: '--kubernetes-timeout TIMEOUT',
|
|
20
|
+
description: 'Kubernetes api-server tcp connection, read and write timeout (in seconds)',
|
|
21
|
+
proc: ->(v) { v.to_i }
|
|
22
|
+
|
|
23
|
+
option :with_stages,
|
|
24
|
+
long: '--with-stages',
|
|
25
|
+
boolean: true
|
|
26
|
+
|
|
27
|
+
option :without_kube,
|
|
28
|
+
long: '--without-kube',
|
|
29
|
+
boolean: true
|
|
30
|
+
|
|
31
|
+
option :registry_username,
|
|
32
|
+
long: '--registry-username USERNAME',
|
|
33
|
+
default: (ENV.key?("DAPP_DIMG_CLEANUP_REGISTRY_PASSWORD") ? "dapp-cleanup-repo" : nil) # FIXME: https://gitlab.com/gitlab-org/gitlab-ce/issues/41384
|
|
34
|
+
|
|
35
|
+
option :registry_password,
|
|
36
|
+
long: '--registry-password PASSWORD',
|
|
37
|
+
default: ENV["DAPP_DIMG_CLEANUP_REGISTRY_PASSWORD"] # FIXME: https://gitlab.com/gitlab-org/gitlab-ce/issues/41384
|
|
38
|
+
|
|
39
|
+
def run(argv = ARGV)
|
|
40
|
+
self.class.parse_options(self, argv)
|
|
41
|
+
repo = self.class.required_argument(self, 'repo')
|
|
42
|
+
run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, repo: repo, verbose: true))
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Dapp::Dimg::CLI
|
|
2
|
+
module Command
|
|
3
|
+
class Dimg < ::Dapp::CLI
|
|
4
|
+
class FlushLocal < Base
|
|
5
|
+
banner <<BANNER.freeze
|
|
6
|
+
Usage:
|
|
7
|
+
|
|
8
|
+
dapp dimg flush local [options] [DIMG ...]
|
|
9
|
+
|
|
10
|
+
Options:
|
|
11
|
+
BANNER
|
|
12
|
+
|
|
13
|
+
option :with_stages,
|
|
14
|
+
long: '--with-stages',
|
|
15
|
+
boolean: true
|
|
16
|
+
|
|
17
|
+
def run(argv = ARGV)
|
|
18
|
+
self.class.parse_options(self, argv)
|
|
19
|
+
run_dapp_command(run_method, options: cli_options(dimgs_patterns: cli_arguments, verbose: true))
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|