dapp 0.8.0 → 0.9.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/bin/dapp +5 -5
- data/config/en/common.yml +6 -4
- data/config/en/net_status.yml +8 -7
- data/lib/dapp.rb +157 -139
- data/lib/dapp/cli.rb +6 -16
- data/lib/dapp/cli/base.rb +3 -5
- data/lib/dapp/config/base.rb +19 -7
- data/lib/dapp/config/directive/base.rb +0 -1
- data/lib/dapp/config/error/config.rb +7 -0
- data/lib/dapp/core_ext/hash.rb +0 -2
- data/lib/dapp/core_ext/pathname.rb +1 -3
- data/lib/dapp/{project.rb → dapp.rb} +2 -21
- data/lib/dapp/{project → dapp}/chef.rb +2 -4
- data/lib/dapp/{project → dapp}/dappfile.rb +5 -7
- data/lib/dapp/{project → dapp}/deps/base.rb +3 -6
- data/lib/dapp/{project → dapp}/deps/gitartifact.rb +2 -5
- data/lib/dapp/{project → dapp}/git_artifact.rb +2 -4
- data/lib/dapp/{project → dapp}/lock.rb +3 -5
- data/lib/dapp/{project → dapp}/logging/base.rb +2 -5
- data/lib/dapp/{project → dapp}/logging/i18n.rb +2 -3
- data/lib/dapp/{project → dapp}/logging/paint.rb +2 -4
- data/lib/dapp/{project → dapp}/logging/process.rb +2 -5
- data/lib/dapp/{project → dapp}/shellout/base.rb +2 -4
- data/lib/dapp/{project → dapp}/shellout/streaming.rb +3 -8
- data/lib/dapp/{project → dapp}/ssh_agent.rb +6 -9
- data/lib/dapp/dimg.rb +1 -192
- data/lib/dapp/dimg/artifact.rb +24 -0
- data/lib/dapp/dimg/build/stage/after_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/after_setup_artifact.rb +18 -0
- data/lib/dapp/dimg/build/stage/artifact_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/artifact_default.rb +63 -0
- data/lib/dapp/dimg/build/stage/base.rb +210 -0
- data/lib/dapp/dimg/build/stage/before_install.rb +33 -0
- data/lib/dapp/dimg/build/stage/before_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/before_setup.rb +31 -0
- data/lib/dapp/dimg/build/stage/before_setup_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/build_artifact.rb +31 -0
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +25 -0
- data/lib/dapp/dimg/build/stage/from.rb +50 -0
- data/lib/dapp/dimg/build/stage/ga_archive.rb +28 -0
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +27 -0
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/ga_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +20 -0
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +54 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +64 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/install.rb +35 -0
- data/lib/dapp/dimg/build/stage/mod/group.rb +42 -0
- data/lib/dapp/dimg/build/stage/mod/logging.rb +101 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +32 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/setup.rb +35 -0
- data/lib/dapp/dimg/builder.rb +6 -0
- data/lib/dapp/{builder → dimg/builder}/base.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/chef.rb +41 -33
- data/lib/dapp/dimg/builder/chef/berksfile.rb +121 -0
- data/lib/dapp/dimg/builder/chef/cookbook.rb +285 -0
- data/lib/dapp/dimg/builder/chef/cookbook_metadata.rb +106 -0
- data/lib/dapp/{builder → dimg/builder}/none.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/shell.rb +5 -6
- data/lib/dapp/dimg/cli/base.rb +16 -0
- data/lib/dapp/dimg/cli/bp.rb +37 -0
- data/lib/dapp/dimg/cli/build.rb +64 -0
- data/lib/dapp/dimg/cli/build_context.rb +18 -0
- data/lib/dapp/dimg/cli/build_context/export.rb +26 -0
- data/lib/dapp/dimg/cli/build_context/import.rb +17 -0
- data/lib/dapp/dimg/cli/cleanup.rb +22 -0
- data/lib/dapp/dimg/cli/cli.rb +1 -0
- data/lib/dapp/dimg/cli/dimg.rb +30 -0
- data/lib/dapp/dimg/cli/list.rb +17 -0
- data/lib/dapp/dimg/cli/mrproper.rb +26 -0
- data/lib/dapp/dimg/cli/push.rb +61 -0
- data/lib/dapp/dimg/cli/run.rb +59 -0
- data/lib/dapp/{cli → dimg/cli}/spush.rb +7 -7
- data/lib/dapp/dimg/cli/stage_image.rb +24 -0
- data/lib/dapp/dimg/cli/stages.rb +22 -0
- data/lib/dapp/dimg/cli/stages/cleanup_local.rb +44 -0
- data/lib/dapp/dimg/cli/stages/cleanup_repo.rb +26 -0
- data/lib/dapp/dimg/cli/stages/flush_local.rb +23 -0
- data/lib/dapp/dimg/cli/stages/flush_repo.rb +24 -0
- data/lib/dapp/dimg/cli/stages/pull.rb +28 -0
- data/lib/dapp/dimg/cli/stages/push.rb +24 -0
- data/lib/dapp/dimg/cli/tag.rb +24 -0
- data/lib/dapp/dimg/config/artifact_dimg.rb +17 -0
- data/lib/dapp/dimg/config/artifact_group.rb +47 -0
- data/lib/dapp/dimg/config/base.rb +7 -0
- data/lib/dapp/dimg/config/dimg.rb +24 -0
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +177 -0
- data/lib/dapp/dimg/config/dimg/validation.rb +126 -0
- data/lib/dapp/dimg/config/dimg_group.rb +61 -0
- data/lib/dapp/dimg/config/dimg_group_base.rb +54 -0
- data/lib/dapp/dimg/config/dimg_group_main.rb +22 -0
- data/lib/dapp/dimg/config/directive/artifact.rb +70 -0
- data/lib/dapp/dimg/config/directive/artifact_base.rb +97 -0
- data/lib/dapp/dimg/config/directive/base.rb +9 -0
- data/lib/dapp/dimg/config/directive/chef.rb +68 -0
- data/lib/dapp/dimg/config/directive/docker/artifact.rb +15 -0
- data/lib/dapp/dimg/config/directive/docker/base.rb +22 -0
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +82 -0
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +47 -0
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +58 -0
- data/lib/dapp/dimg/config/directive/mount.rb +27 -0
- data/lib/dapp/dimg/config/directive/shell/artifact.rb +18 -0
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +65 -0
- data/lib/dapp/dimg/dapp/command.rb +21 -0
- data/lib/dapp/dimg/dapp/command/bp.rb +20 -0
- data/lib/dapp/dimg/dapp/command/build.rb +22 -0
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +27 -0
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +55 -0
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +71 -0
- data/lib/dapp/dimg/dapp/command/cleanup.rb +23 -0
- data/lib/dapp/dimg/dapp/command/common.rb +96 -0
- data/lib/dapp/dimg/dapp/command/list.rb +19 -0
- data/lib/dapp/dimg/dapp/command/mrproper.rb +75 -0
- data/lib/dapp/dimg/dapp/command/push.rb +27 -0
- data/lib/dapp/dimg/dapp/command/run.rb +15 -0
- data/lib/dapp/dimg/dapp/command/spush.rb +17 -0
- data/lib/dapp/dimg/dapp/command/stage_image.rb +14 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +137 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +124 -0
- data/lib/dapp/dimg/dapp/command/stages/common.rb +85 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +26 -0
- data/lib/dapp/dimg/dapp/command/stages/push.rb +22 -0
- data/lib/dapp/dimg/dapp/command/tag.rb +17 -0
- data/lib/dapp/dimg/dimg.rb +192 -0
- data/lib/dapp/dimg/dimg/git_artifact.rb +26 -0
- data/lib/dapp/dimg/dimg/path.rb +37 -0
- data/lib/dapp/dimg/dimg/stages.rb +60 -0
- data/lib/dapp/dimg/dimg/tags.rb +65 -0
- data/lib/dapp/dimg/docker_registry.rb +37 -0
- data/lib/dapp/dimg/docker_registry/base.rb +109 -0
- data/lib/dapp/dimg/docker_registry/base/authorization.rb +63 -0
- data/lib/dapp/dimg/docker_registry/base/request.rb +34 -0
- data/lib/dapp/dimg/docker_registry/default.rb +18 -0
- data/lib/dapp/dimg/error/base.rb +7 -0
- data/lib/dapp/dimg/error/build.rb +7 -0
- data/lib/dapp/dimg/error/chef.rb +11 -0
- data/lib/dapp/dimg/error/command.rb +7 -0
- data/lib/dapp/dimg/error/config.rb +7 -0
- data/lib/dapp/dimg/error/dimg.rb +7 -0
- data/lib/dapp/dimg/error/lock.rb +7 -0
- data/lib/dapp/dimg/error/registry.rb +7 -0
- data/lib/dapp/dimg/error/rugged.rb +7 -0
- data/lib/dapp/dimg/error/shellout.rb +7 -0
- data/lib/dapp/dimg/error/tar_writer.rb +7 -0
- data/lib/dapp/dimg/exception/base.rb +7 -0
- data/lib/dapp/dimg/exception/introspect_image.rb +7 -0
- data/lib/dapp/dimg/exception/registry.rb +7 -0
- data/lib/dapp/dimg/filelock.rb +43 -0
- data/lib/dapp/dimg/git_artifact.rb +241 -18
- data/lib/dapp/dimg/git_repo/base.rb +90 -0
- data/lib/dapp/dimg/git_repo/own.rb +39 -0
- data/lib/dapp/dimg/git_repo/remote.rb +50 -0
- data/lib/dapp/dimg/image/argument.rb +143 -0
- data/lib/dapp/dimg/image/docker.rb +127 -0
- data/lib/dapp/dimg/image/scratch.rb +32 -0
- data/lib/dapp/dimg/image/stage.rb +95 -0
- data/lib/dapp/dimg/lock/base.rb +51 -0
- data/lib/dapp/dimg/lock/file.rb +48 -0
- data/lib/dapp/error/base.rb +0 -1
- data/lib/dapp/error/dapp.rb +5 -0
- data/lib/dapp/error/dappfile.rb +0 -1
- data/lib/dapp/error/shellout.rb +0 -1
- data/lib/dapp/exception/base.rb +0 -1
- data/lib/dapp/helper/cli.rb +5 -6
- data/lib/dapp/helper/net_status.rb +0 -1
- data/lib/dapp/helper/sha256.rb +0 -1
- data/lib/dapp/helper/trivia.rb +0 -1
- data/lib/dapp/prctl.rb +0 -1
- data/lib/dapp/version.rb +1 -2
- metadata +172 -140
- data/lib/dapp/artifact.rb +0 -23
- data/lib/dapp/build/stage/after_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/after_setup_artifact.rb +0 -17
- data/lib/dapp/build/stage/artifact_base.rb +0 -80
- data/lib/dapp/build/stage/artifact_default.rb +0 -63
- data/lib/dapp/build/stage/base.rb +0 -203
- data/lib/dapp/build/stage/before_install.rb +0 -32
- data/lib/dapp/build/stage/before_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/before_setup.rb +0 -30
- data/lib/dapp/build/stage/before_setup_artifact.rb +0 -13
- data/lib/dapp/build/stage/build_artifact.rb +0 -36
- data/lib/dapp/build/stage/docker_instructions.rb +0 -24
- data/lib/dapp/build/stage/from.rb +0 -34
- data/lib/dapp/build/stage/ga_archive.rb +0 -27
- data/lib/dapp/build/stage/ga_archive_dependencies.rb +0 -26
- data/lib/dapp/build/stage/ga_artifact_patch.rb +0 -21
- data/lib/dapp/build/stage/ga_base.rb +0 -79
- data/lib/dapp/build/stage/ga_dependencies_base.rb +0 -19
- data/lib/dapp/build/stage/ga_latest_patch.rb +0 -53
- data/lib/dapp/build/stage/import_artifact.rb +0 -65
- data/lib/dapp/build/stage/install/ga_post_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/install.rb +0 -40
- data/lib/dapp/build/stage/mod/group.rb +0 -42
- data/lib/dapp/build/stage/mod/logging.rb +0 -104
- data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -31
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/setup/setup.rb +0 -40
- data/lib/dapp/builder/chef/berksfile.rb +0 -78
- data/lib/dapp/builder/chef/cookbook.rb +0 -257
- data/lib/dapp/builder/chef/cookbook_metadata.rb +0 -54
- data/lib/dapp/builder/chef/error.rb +0 -12
- data/lib/dapp/cli/bp.rb +0 -37
- data/lib/dapp/cli/build.rb +0 -60
- data/lib/dapp/cli/cleanup.rb +0 -22
- data/lib/dapp/cli/list.rb +0 -17
- data/lib/dapp/cli/mrproper.rb +0 -26
- data/lib/dapp/cli/push.rb +0 -61
- data/lib/dapp/cli/run.rb +0 -53
- data/lib/dapp/cli/stage_image.rb +0 -24
- data/lib/dapp/cli/stages.rb +0 -23
- data/lib/dapp/cli/stages/cleanup_local.rb +0 -44
- data/lib/dapp/cli/stages/cleanup_repo.rb +0 -26
- data/lib/dapp/cli/stages/flush_local.rb +0 -23
- data/lib/dapp/cli/stages/flush_repo.rb +0 -24
- data/lib/dapp/cli/stages/pull.rb +0 -28
- data/lib/dapp/cli/stages/push.rb +0 -24
- data/lib/dapp/cli/tag.rb +0 -24
- data/lib/dapp/config/artifact_dimg.rb +0 -20
- data/lib/dapp/config/artifact_group.rb +0 -56
- data/lib/dapp/config/dimg.rb +0 -23
- data/lib/dapp/config/dimg/instance_methods.rb +0 -194
- data/lib/dapp/config/dimg/validation.rb +0 -125
- data/lib/dapp/config/dimg_group.rb +0 -60
- data/lib/dapp/config/dimg_group_base.rb +0 -53
- data/lib/dapp/config/dimg_group_main.rb +0 -21
- data/lib/dapp/config/directive/artifact.rb +0 -69
- data/lib/dapp/config/directive/artifact_base.rb +0 -93
- data/lib/dapp/config/directive/chef.rb +0 -57
- data/lib/dapp/config/directive/docker/artifact.rb +0 -15
- data/lib/dapp/config/directive/docker/base.rb +0 -20
- data/lib/dapp/config/directive/docker/dimg.rb +0 -81
- data/lib/dapp/config/directive/git_artifact_local.rb +0 -13
- data/lib/dapp/config/directive/git_artifact_remote.rb +0 -57
- data/lib/dapp/config/directive/mount.rb +0 -26
- data/lib/dapp/config/directive/shell/artifact.rb +0 -17
- data/lib/dapp/config/directive/shell/dimg.rb +0 -65
- data/lib/dapp/dimg/path.rb +0 -37
- data/lib/dapp/dimg/stages.rb +0 -59
- data/lib/dapp/dimg/tags.rb +0 -65
- data/lib/dapp/docker_registry.rb +0 -36
- data/lib/dapp/docker_registry/base.rb +0 -109
- data/lib/dapp/docker_registry/default.rb +0 -18
- data/lib/dapp/docker_registry/mod/authorization.rb +0 -63
- data/lib/dapp/docker_registry/mod/request.rb +0 -32
- data/lib/dapp/error/build.rb +0 -6
- data/lib/dapp/error/config.rb +0 -6
- data/lib/dapp/error/dimg.rb +0 -6
- data/lib/dapp/error/image.rb +0 -6
- data/lib/dapp/error/project.rb +0 -6
- data/lib/dapp/error/registry.rb +0 -6
- data/lib/dapp/error/rugged.rb +0 -6
- data/lib/dapp/error/tar_writer.rb +0 -6
- data/lib/dapp/exception/introspect_image.rb +0 -6
- data/lib/dapp/exception/registry.rb +0 -6
- data/lib/dapp/filelock.rb +0 -43
- data/lib/dapp/git_artifact.rb +0 -241
- data/lib/dapp/git_repo/base.rb +0 -88
- data/lib/dapp/git_repo/own.rb +0 -38
- data/lib/dapp/git_repo/remote.rb +0 -49
- data/lib/dapp/image/argument.rb +0 -134
- data/lib/dapp/image/docker.rb +0 -115
- data/lib/dapp/image/scratch.rb +0 -32
- data/lib/dapp/image/stage.rb +0 -94
- data/lib/dapp/lock/base.rb +0 -51
- data/lib/dapp/lock/error.rb +0 -14
- data/lib/dapp/lock/file.rb +0 -45
- data/lib/dapp/project/command/bp.rb +0 -21
- data/lib/dapp/project/command/build.rb +0 -20
- data/lib/dapp/project/command/cleanup.rb +0 -24
- data/lib/dapp/project/command/common.rb +0 -96
- data/lib/dapp/project/command/list.rb +0 -20
- data/lib/dapp/project/command/mrproper.rb +0 -69
- data/lib/dapp/project/command/push.rb +0 -28
- data/lib/dapp/project/command/run.rb +0 -15
- data/lib/dapp/project/command/spush.rb +0 -18
- data/lib/dapp/project/command/stage_image.rb +0 -15
- data/lib/dapp/project/command/stages/cleanup_local.rb +0 -138
- data/lib/dapp/project/command/stages/cleanup_repo.rb +0 -125
- data/lib/dapp/project/command/stages/common.rb +0 -86
- data/lib/dapp/project/command/stages/flush_local.rb +0 -22
- data/lib/dapp/project/command/stages/flush_repo.rb +0 -22
- data/lib/dapp/project/command/stages/pull.rb +0 -27
- data/lib/dapp/project/command/stages/push.rb +0 -23
- data/lib/dapp/project/command/tag.rb +0 -18
@@ -1,257 +0,0 @@
|
|
1
|
-
module Dapp::Builder
|
2
|
-
# Локальный cookbook сборщик с правилами
|
3
|
-
# сборки dimg образов для chef сборщика.
|
4
|
-
class Chef::Cookbook
|
5
|
-
CHECKSUM_PATTERNS = %w(
|
6
|
-
attributes/**/*
|
7
|
-
recipes/**/*
|
8
|
-
files/**/*
|
9
|
-
templates/**/*
|
10
|
-
).freeze
|
11
|
-
|
12
|
-
attr_reader :builder
|
13
|
-
|
14
|
-
attr_reader :path
|
15
|
-
attr_reader :vendor_path
|
16
|
-
attr_reader :berksfile
|
17
|
-
attr_reader :metadata
|
18
|
-
attr_reader :enabled_recipes
|
19
|
-
attr_reader :enabled_modules
|
20
|
-
|
21
|
-
def initialize(builder, path:, berksfile:, metadata:, enabled_recipes:, enabled_modules:)
|
22
|
-
@builder = builder
|
23
|
-
@path = Pathname.new(path)
|
24
|
-
@berksfile = berksfile
|
25
|
-
@metadata = metadata
|
26
|
-
@enabled_recipes = enabled_recipes
|
27
|
-
@enabled_modules = enabled_modules
|
28
|
-
end
|
29
|
-
|
30
|
-
def name
|
31
|
-
metadata.name
|
32
|
-
end
|
33
|
-
|
34
|
-
def local_paths
|
35
|
-
@local_paths ||= [].tap do |paths|
|
36
|
-
paths << path
|
37
|
-
paths.push *berksfile.local_cookbooks.values.map {|cookbook| cookbook[:path]}
|
38
|
-
paths.uniq!
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# TODO Сookbook'и зависимости на локальной файловой системе
|
43
|
-
# TODO должны обрабатываться рекурсивно. Чтобы контрольная сумма
|
44
|
-
# TODO учитывала все зависимости всех зависимых локальных cookbook'ов.
|
45
|
-
def checksum
|
46
|
-
@checksum ||= begin
|
47
|
-
all_local_paths = local_paths
|
48
|
-
.product(CHECKSUM_PATTERNS)
|
49
|
-
.map {|cb, dir| Dir[cb.join(dir)]}
|
50
|
-
.flatten
|
51
|
-
.map(&Pathname.method(:new))
|
52
|
-
|
53
|
-
builder.dimg.hashsum [
|
54
|
-
builder.dimg.paths_content_hashsum(all_local_paths),
|
55
|
-
*all_local_paths.map {|p| p.relative_path_from(self.path).to_s}.sort
|
56
|
-
].compact
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def vendor_path
|
61
|
-
builder.dimg.project.lock(_vendor_lock_name, default_timeout: 120) do
|
62
|
-
vendor! unless _vendor_path.join('.created_at').exist?
|
63
|
-
end
|
64
|
-
_vendor_path
|
65
|
-
end
|
66
|
-
|
67
|
-
def vendor!
|
68
|
-
volumes_from = [builder.dimg.project.base_container, builder.chefdk_container]
|
69
|
-
|
70
|
-
builder.dimg.project.log_secondary_process(builder.dimg.project.t(code: _vendor_process_name)) do
|
71
|
-
volumes_from = [builder.dimg.project.base_container, builder.chefdk_container]
|
72
|
-
|
73
|
-
vendor_commands = [
|
74
|
-
"#{builder.dimg.project.mkdir_bin} -p ~/.ssh",
|
75
|
-
"echo \"Host *\" >> ~/.ssh/config",
|
76
|
-
"echo \" StrictHostKeyChecking no\" >> ~/.ssh/config",
|
77
|
-
*local_paths.map {|path| "#{builder.dimg.project.rsync_bin} --archive --relative #{path} /tmp/local_cookbooks"},
|
78
|
-
"cd /tmp/local_cookbooks/#{path}",
|
79
|
-
'/.dapp/deps/chefdk/bin/berks vendor /tmp/cookbooks',
|
80
|
-
["#{builder.dimg.project.find_bin} /tmp/cookbooks -type d -exec #{builder.dimg.project.bash_bin} -ec '",
|
81
|
-
"#{builder.dimg.project.install_bin} -o #{Process.uid} -g #{Process.gid} --mode $(#{builder.dimg.project.stat_bin} -c %a {}) -d ",
|
82
|
-
"#{_vendor_path}/$(echo {} | #{builder.dimg.project.sed_bin} -e \"s/^\\/tmp\\/cookbooks//\")' \\;"].join,
|
83
|
-
["#{builder.dimg.project.find_bin} /tmp/cookbooks -type f -exec #{builder.dimg.project.bash_bin} -ec '",
|
84
|
-
"#{builder.dimg.project.install_bin} -o #{Process.uid} -g #{Process.gid} --mode $(#{builder.dimg.project.stat_bin} -c %a {}) {} ",
|
85
|
-
"#{_vendor_path}/$(echo {} | #{builder.dimg.project.sed_bin} -e \"s/\\/tmp\\/cookbooks//\")' \\;"].join,
|
86
|
-
"#{builder.dimg.project.install_bin} -o #{Process.uid} -g #{Process.gid} --mode 0644 <(#{builder.dimg.project.date_bin} +%s.%N) #{_vendor_path.join('.created_at')}"
|
87
|
-
]
|
88
|
-
|
89
|
-
builder.dimg.project.shellout!(
|
90
|
-
['docker run --rm',
|
91
|
-
volumes_from.map {|container| "--volumes-from #{container}"}.join(' '),
|
92
|
-
*local_paths.map {|path| "--volume #{path}:#{path}"},
|
93
|
-
("--volume #{builder.dimg.project.ssh_auth_sock}:/tmp/dapp-ssh-agent" if builder.dimg.project.ssh_auth_sock),
|
94
|
-
"--volume #{_vendor_path.tap(&:mkpath)}:#{_vendor_path}",
|
95
|
-
('--env SSH_AUTH_SOCK=/tmp/dapp-ssh-agent' if builder.dimg.project.ssh_auth_sock),
|
96
|
-
"dappdeps/berksdeps:0.1.0 #{builder.dimg.project.bash_bin} -ec '#{builder.dimg.project.shellout_pack(vendor_commands.join(' && '))}'"].compact.join(' '),
|
97
|
-
log_verbose: builder.dimg.project.log_verbose?
|
98
|
-
)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def stage_cookbooks_path(stage)
|
103
|
-
_stage_cookbooks_path(stage).tap do |_cookbooks_path|
|
104
|
-
@stage_cookbooks_installed ||= {}
|
105
|
-
@stage_cookbooks_installed[stage] ||= true.tap {install_stage_cookbooks(stage)}
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def stage_enabled_modules(stage)
|
110
|
-
@stage_enabled_modules ||= {}
|
111
|
-
@stage_enabled_modules[stage] ||= enabled_modules.select {|cookbook| stage_entry_exist?(stage, cookbook, stage)}
|
112
|
-
end
|
113
|
-
|
114
|
-
def stage_enabled_recipes(stage)
|
115
|
-
@stage_enabled_recipes ||= {}
|
116
|
-
@stage_enabled_recipes[stage] ||= enabled_recipes.select {|recipe| stage_entry_exist?(stage, self.name, recipe)}
|
117
|
-
end
|
118
|
-
|
119
|
-
def stage_checksum(stage)
|
120
|
-
paths = Dir[stage_cookbooks_path(stage).join('**/*')].map(&Pathname.method(:new))
|
121
|
-
|
122
|
-
builder.dimg.hashsum [
|
123
|
-
builder.dimg.paths_content_hashsum(paths),
|
124
|
-
*paths.map {|p| p.relative_path_from(stage_cookbooks_path(stage)).to_s}.sort,
|
125
|
-
stage == :before_install ? builder.chefdk_image : nil
|
126
|
-
].compact
|
127
|
-
end
|
128
|
-
|
129
|
-
protected
|
130
|
-
|
131
|
-
def _vendor_path
|
132
|
-
builder.dimg.build_path.join('cookbooks', checksum)
|
133
|
-
end
|
134
|
-
|
135
|
-
def _vendor_process_name
|
136
|
-
"process.vendoring_builder_cookbooks"
|
137
|
-
end
|
138
|
-
|
139
|
-
def _vendor_lock_name
|
140
|
-
"#{builder.dimg.project.name}.cookbooks.#{checksum}"
|
141
|
-
end
|
142
|
-
|
143
|
-
def stage_entry_exist?(stage, cookbook, entrypoint)
|
144
|
-
stage_cookbooks_path(stage).join(cookbook, 'recipes', "#{entrypoint}.rb").exist?
|
145
|
-
end
|
146
|
-
|
147
|
-
def install_stage_cookbooks(stage)
|
148
|
-
_stage_cookbooks_path(stage).mkpath
|
149
|
-
|
150
|
-
stage_install_paths(stage).each do |cookbook_path, paths|
|
151
|
-
cookbook = cookbook_path.basename.to_s
|
152
|
-
|
153
|
-
paths.each do |from, to|
|
154
|
-
if from.nil?
|
155
|
-
to_path = _stage_cookbooks_path(stage).join(cookbook, 'recipes/void.rb')
|
156
|
-
to_path.parent.mkpath
|
157
|
-
FileUtils.touch to_path
|
158
|
-
else
|
159
|
-
from_path = cookbook_path.join(from)
|
160
|
-
to_path = _stage_cookbooks_path(stage).join(cookbook, to)
|
161
|
-
if from_path.directory? && to_path.exist?
|
162
|
-
Dir[from_path.join('**/*')]
|
163
|
-
.map(&Pathname.method(:new))
|
164
|
-
.each do |from_subpath|
|
165
|
-
to_subpath = to_path.join(from_subpath.relative_path_from(from_path))
|
166
|
-
raise(::Dapp::Builder::Chef::Error,
|
167
|
-
code: :stage_path_overlap,
|
168
|
-
data: { stage: stage,
|
169
|
-
cookbook: cookbook,
|
170
|
-
from: from_subpath.relative_path_from(cookbook_path),
|
171
|
-
to: to_subpath.relative_path_from(_stage_cookbooks_path(stage).join(cookbook)) }
|
172
|
-
) if to_subpath.exist?
|
173
|
-
|
174
|
-
to_subpath.parent.mkpath
|
175
|
-
FileUtils.cp_r from_subpath, to_subpath
|
176
|
-
end
|
177
|
-
else
|
178
|
-
to_path.parent.mkpath
|
179
|
-
FileUtils.cp_r from_path, to_path
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
|
-
def stage_install_paths(stage)
|
187
|
-
select_existing_paths = proc do |cookbook_path, paths|
|
188
|
-
paths.select {|from, _| cookbook_path.join(from).exist?}
|
189
|
-
end
|
190
|
-
|
191
|
-
common_paths = [['metadata.json', 'metadata.json']]
|
192
|
-
|
193
|
-
install_paths = Dir[vendor_path.join('*')]
|
194
|
-
.map(&Pathname.method(:new))
|
195
|
-
.map do |cookbook_path|
|
196
|
-
cookbook_name = File.basename cookbook_path
|
197
|
-
is_builder = (cookbook_name == self.name)
|
198
|
-
is_dimod = cookbook_name.start_with? 'dimod-'
|
199
|
-
dimod_enabled = is_dimod && enabled_modules.include?(cookbook_name)
|
200
|
-
paths = nil
|
201
|
-
|
202
|
-
if is_builder
|
203
|
-
common_dapp_paths = select_existing_paths.call(
|
204
|
-
cookbook_path,
|
205
|
-
[
|
206
|
-
*common_paths,
|
207
|
-
["files/#{stage}/common", 'files/default'],
|
208
|
-
["templates/#{stage}/common", 'templates/default'],
|
209
|
-
*enabled_recipes.flat_map do |recipe|
|
210
|
-
[["files/#{stage}/#{recipe}", 'files/default'],
|
211
|
-
["templates/#{stage}/#{recipe}", 'templates/default']]
|
212
|
-
end
|
213
|
-
]
|
214
|
-
)
|
215
|
-
|
216
|
-
recipe_paths = enabled_recipes
|
217
|
-
.map {|recipe| ["recipes/#{stage}/#{recipe}.rb", "recipes/#{recipe}.rb"]}
|
218
|
-
.select {|from, _| cookbook_path.join(from).exist?}
|
219
|
-
|
220
|
-
if recipe_paths.any?
|
221
|
-
paths = [*recipe_paths, *common_dapp_paths]
|
222
|
-
else
|
223
|
-
paths = [nil, *common_dapp_paths]
|
224
|
-
end
|
225
|
-
elsif is_dimod && dimod_enabled
|
226
|
-
common_dimod_paths = select_existing_paths.call(
|
227
|
-
cookbook_path,
|
228
|
-
[
|
229
|
-
*common_paths,
|
230
|
-
["files/#{stage}", 'files/default'],
|
231
|
-
['files/common', 'files/default'],
|
232
|
-
["templates/#{stage}", 'templates/default'],
|
233
|
-
['templates/common', 'templates/default'],
|
234
|
-
["attributes/#{stage}.rb", "attributes/#{stage}.rb"],
|
235
|
-
['attributes/common.rb', 'attributes/common.rb']
|
236
|
-
]
|
237
|
-
)
|
238
|
-
|
239
|
-
recipe_path = "recipes/#{stage}.rb"
|
240
|
-
if cookbook_path.join(recipe_path).exist?
|
241
|
-
paths = [[recipe_path, recipe_path], *common_dimod_paths]
|
242
|
-
else
|
243
|
-
paths = [nil, *common_dimod_paths]
|
244
|
-
end
|
245
|
-
elsif !is_dimod
|
246
|
-
paths = [['.', '.']]
|
247
|
-
end
|
248
|
-
|
249
|
-
[cookbook_path, paths] if paths && paths.any?
|
250
|
-
end.compact
|
251
|
-
end
|
252
|
-
|
253
|
-
def _stage_cookbooks_path(stage)
|
254
|
-
builder.stage_build_path(stage).join('cookbooks')
|
255
|
-
end
|
256
|
-
end # Chef::Cookbook
|
257
|
-
end # Dapp::Builder
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Dapp::Builder
|
2
|
-
class Chef::CookbookMetadata
|
3
|
-
class << self
|
4
|
-
def from_file(metadata_file_path)
|
5
|
-
metadata = self.new
|
6
|
-
FileParser.new(metadata_file_path, metadata)
|
7
|
-
metadata
|
8
|
-
end
|
9
|
-
|
10
|
-
def from_conf(conf)
|
11
|
-
# TODO
|
12
|
-
end
|
13
|
-
end # << self
|
14
|
-
|
15
|
-
class FileParser
|
16
|
-
def initialize(metadata_file_path, metadata)
|
17
|
-
@metadata_file_path = metadata_file_path
|
18
|
-
@metadata = metadata
|
19
|
-
|
20
|
-
parse
|
21
|
-
end
|
22
|
-
|
23
|
-
def name(name)
|
24
|
-
@metadata.name = name
|
25
|
-
end
|
26
|
-
|
27
|
-
def version(version)
|
28
|
-
@metadata.version = version
|
29
|
-
end
|
30
|
-
|
31
|
-
def depends(dependency, *_a, &_blk)
|
32
|
-
@metadata.depends << dependency.to_s
|
33
|
-
end
|
34
|
-
|
35
|
-
# rubocop:disable Style/MethodMissing
|
36
|
-
def method_missing(*_a, &_blk)
|
37
|
-
end
|
38
|
-
# rubocop:enable Style/MethodMissing
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def parse
|
43
|
-
instance_eval(@metadata_file_path.read, @metadata_file_path.to_s)
|
44
|
-
end
|
45
|
-
end # FileParser
|
46
|
-
|
47
|
-
attr_accessor :name
|
48
|
-
attr_accessor :version
|
49
|
-
|
50
|
-
def depends
|
51
|
-
@depends ||= []
|
52
|
-
end
|
53
|
-
end # Chef::CookbookMetadata
|
54
|
-
end # Dapp::Builder
|
data/lib/dapp/cli/bp.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
class CLI
|
3
|
-
# CLI bp subcommand
|
4
|
-
class Bp < Push
|
5
|
-
banner <<BANNER.freeze
|
6
|
-
Version: #{Dapp::VERSION}
|
7
|
-
|
8
|
-
Usage:
|
9
|
-
dapp bp [options] [DIMG ...] REPO
|
10
|
-
|
11
|
-
DIMG Dapp image to process [default: *].
|
12
|
-
REPO Pushed image name.
|
13
|
-
|
14
|
-
Options:
|
15
|
-
BANNER
|
16
|
-
option :tmp_dir_prefix,
|
17
|
-
long: '--tmp-dir-prefix PREFIX',
|
18
|
-
description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
|
19
|
-
|
20
|
-
option :lock_timeout,
|
21
|
-
long: '--lock-timeout TIMEOUT',
|
22
|
-
description: 'Redefine resource locking timeout (in seconds)',
|
23
|
-
proc: ->(v) { v.to_i }
|
24
|
-
|
25
|
-
option :git_artifact_branch,
|
26
|
-
long: '--git-artifact-branch BRANCH',
|
27
|
-
description: 'Default branch to archive artifacts from'
|
28
|
-
|
29
|
-
option :ssh_key,
|
30
|
-
long: '--ssh-key SSH_KEY',
|
31
|
-
description: ['Enable only specified ssh keys ',
|
32
|
-
'(use system ssh-agent by default)'].join,
|
33
|
-
default: nil,
|
34
|
-
proc: ->(v) { composite_options(:ssh_key) << v }
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/lib/dapp/cli/build.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
class CLI
|
3
|
-
# CLI build subcommand
|
4
|
-
class Build < Base
|
5
|
-
banner <<BANNER.freeze
|
6
|
-
Version: #{Dapp::VERSION}
|
7
|
-
|
8
|
-
Usage:
|
9
|
-
dapp build [options] [DIMG ...]
|
10
|
-
|
11
|
-
DIMG Dapp image to process [default: *].
|
12
|
-
|
13
|
-
Options:
|
14
|
-
BANNER
|
15
|
-
option :tmp_dir_prefix,
|
16
|
-
long: '--tmp-dir-prefix PREFIX',
|
17
|
-
description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
|
18
|
-
|
19
|
-
option :lock_timeout,
|
20
|
-
long: '--lock-timeout TIMEOUT',
|
21
|
-
description: 'Redefine resource locking timeout (in seconds)',
|
22
|
-
proc: ->(v) { v.to_i }
|
23
|
-
|
24
|
-
option :git_artifact_branch,
|
25
|
-
long: '--git-artifact-branch BRANCH',
|
26
|
-
description: 'Default branch to archive artifacts from'
|
27
|
-
|
28
|
-
option :introspect_error,
|
29
|
-
long: '--introspect-error',
|
30
|
-
boolean: true,
|
31
|
-
default: false
|
32
|
-
|
33
|
-
option :introspect_before_error,
|
34
|
-
long: '--introspect-before-error',
|
35
|
-
boolean: true,
|
36
|
-
default: false
|
37
|
-
|
38
|
-
option :introspect_stage,
|
39
|
-
long: '--introspect-stage STAGE',
|
40
|
-
proc: proc { |v| v.to_sym },
|
41
|
-
in: [nil, :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
|
42
|
-
:g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
|
43
|
-
:setup, :g_a_post_setup_patch, :after_setup_artifact, :g_a_latest_patch, :docker_instructions]
|
44
|
-
|
45
|
-
option :introspect_artifact_stage,
|
46
|
-
long: '--introspect-artifact-stage STAGE',
|
47
|
-
proc: proc { |v| v.to_sym },
|
48
|
-
in: [nil, :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
|
49
|
-
:g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
|
50
|
-
:setup, :after_setup_artifact, :g_a_artifact_patch, :build_artifact]
|
51
|
-
|
52
|
-
option :ssh_key,
|
53
|
-
long: '--ssh-key SSH_KEY',
|
54
|
-
description: ['Enable only specified ssh keys ',
|
55
|
-
'(use system ssh-agent by default)'].join,
|
56
|
-
default: nil,
|
57
|
-
proc: ->(v) { composite_options(:ssh_key) << v }
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
data/lib/dapp/cli/cleanup.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
class CLI
|
3
|
-
# Cleanup subcommand
|
4
|
-
class Cleanup < Base
|
5
|
-
banner <<BANNER.freeze
|
6
|
-
Version: #{Dapp::VERSION}
|
7
|
-
|
8
|
-
Usage:
|
9
|
-
dapp cleanup [options] [DIMG ...]
|
10
|
-
|
11
|
-
DIMG Dapp image to process [default: *].
|
12
|
-
|
13
|
-
Options:
|
14
|
-
BANNER
|
15
|
-
|
16
|
-
option :lock_timeout,
|
17
|
-
long: '--lock-timeout TIMEOUT',
|
18
|
-
description: 'Redefine resource locking timeout (in seconds)',
|
19
|
-
proc: ->(v) { v.to_i }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|