kuber_kit 1.3.2 → 1.3.3
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/CHANGELOG.md +6 -1
- data/kuber_kit.gemspec +1 -0
- data/lib/kuber_kit/artifacts_sync/artifact_updater.rb +19 -9
- data/lib/kuber_kit/artifacts_sync/strategies/abstract.rb +9 -0
- data/lib/kuber_kit/artifacts_sync/strategies/git_updater.rb +46 -0
- data/lib/kuber_kit/artifacts_sync/strategies/null_updater.rb +12 -0
- data/lib/kuber_kit/cli.rb +17 -0
- data/lib/kuber_kit/container.rb +8 -4
- data/lib/kuber_kit/core/artifacts/abstract_artifact.rb +4 -0
- data/lib/kuber_kit/core/artifacts/git.rb +6 -1
- data/lib/kuber_kit/core/artifacts/local.rb +4 -0
- data/lib/kuber_kit/core/context_helper/abstract_helper.rb +5 -0
- data/lib/kuber_kit/core/context_helper/base_helper.rb +1 -7
- data/lib/kuber_kit/core/context_helper/context_helper_factory.rb +3 -1
- data/lib/kuber_kit/core/context_helper/local_context_helper.rb +14 -0
- data/lib/kuber_kit/core/context_helper/service_helper.rb +15 -1
- data/lib/kuber_kit/defaults.rb +4 -4
- data/lib/kuber_kit/image_compiler/image_builder.rb +1 -1
- data/lib/kuber_kit/service_reader/reader.rb +2 -10
- data/lib/kuber_kit/shell/commands/git_commands.rb +10 -0
- data/lib/kuber_kit/template_reader/reader.rb +1 -0
- data/lib/kuber_kit/template_reader/renderer.rb +17 -0
- data/lib/kuber_kit/template_reader/strategies/artifact_file.rb +1 -0
- data/lib/kuber_kit/version.rb +1 -1
- data/lib/kuber_kit.rb +9 -3
- metadata +22 -5
- data/lib/kuber_kit/artifacts_sync/abstract_artifact_resolver.rb +0 -5
- data/lib/kuber_kit/artifacts_sync/git_artifact_resolver.rb +0 -31
- data/lib/kuber_kit/artifacts_sync/null_artifact_resolver.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7a15c35161f8c5761166a3c41dbc90266cc3ae51d1cfa9072d3fa388d7989e2
|
4
|
+
data.tar.gz: d8099224340a4853898d990c3da88885db319c5b1025c660ae86427bf41dcaa2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7237d18746045b3a9017efd958191fc80339c321945bb6a4fceffa0320c15832e4b04710636b56977ab8df22bd0f5770bb970a83797e6c9a4aa22a4efea0093
|
7
|
+
data.tar.gz: 30e94daaafd019195a7ab46ffe07d619af7bcbbe06d87e288f4e3e50ca8e926a9270dfa7716b72cbfcec0d480a9fa2979422c676ea4df7a3fdd0dbc03ff2b4c0
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
**1.3.
|
1
|
+
**1.3.3**
|
2
|
+
- Support "partials" in the templates with "render" method.
|
3
|
+
- Cleanup artifacts after deployment if cache_result: false
|
4
|
+
- Improve fetching git artifact when branch name has changed
|
5
|
+
|
6
|
+
**1.3.2**
|
2
7
|
- Added an ability to generate helm templates using `kit generate` command
|
3
8
|
|
4
9
|
**1.3.1**
|
data/kuber_kit.gemspec
CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_dependency "cli-ui", '2.1.0'
|
37
37
|
spec.add_dependency "net-ssh"
|
38
38
|
spec.add_dependency "tty-prompt"
|
39
|
+
spec.add_dependency 'ed25519'
|
39
40
|
|
40
41
|
spec.add_development_dependency "bundler", "~> 2.2"
|
41
42
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -1,27 +1,37 @@
|
|
1
1
|
class KuberKit::ArtifactsSync::ArtifactUpdater
|
2
|
-
|
2
|
+
StrategyNotFoundError = Class.new(KuberKit::NotFoundError)
|
3
3
|
|
4
4
|
include KuberKit::Import[
|
5
5
|
"ui"
|
6
6
|
]
|
7
7
|
|
8
|
-
def
|
9
|
-
@@
|
8
|
+
def use_strategy(strategy, artifact_class:)
|
9
|
+
@@strategies ||= {}
|
10
10
|
|
11
|
-
if !
|
12
|
-
raise ArgumentError.new("should be an instance of KuberKit::ArtifactsSync::
|
11
|
+
if !strategy.is_a?(KuberKit::ArtifactsSync::Strategies::Abstract)
|
12
|
+
raise ArgumentError.new("should be an instance of KuberKit::ArtifactsSync::Strategies::Abstract, got: #{strategy.inspect}")
|
13
13
|
end
|
14
14
|
|
15
|
-
@@
|
15
|
+
@@strategies[artifact_class] = strategy
|
16
16
|
end
|
17
17
|
|
18
18
|
def update(shell, artifact)
|
19
|
-
|
19
|
+
strategy = @@strategies[artifact.class]
|
20
20
|
|
21
21
|
ui.print_debug "ArtifactUpdater", "Updating artifact #{artifact.name.to_s.green}"
|
22
22
|
|
23
|
-
raise
|
23
|
+
raise StrategyNotFoundError, "Can't find strategy for artifact #{artifact}" if strategy.nil?
|
24
24
|
|
25
|
-
|
25
|
+
strategy.update(shell, artifact)
|
26
|
+
end
|
27
|
+
|
28
|
+
def cleanup(shell, artifact)
|
29
|
+
strategy = @@strategies[artifact.class]
|
30
|
+
|
31
|
+
ui.print_debug "ArtifactUpdater", "Cleaning artifact #{artifact.name.to_s.green}"
|
32
|
+
|
33
|
+
raise StrategyNotFoundError, "Can't find strategy for artifact #{artifact}" if strategy.nil?
|
34
|
+
|
35
|
+
strategy.cleanup(shell, artifact)
|
26
36
|
end
|
27
37
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
class KuberKit::ArtifactsSync::Strategies::GitUpdater < KuberKit::ArtifactsSync::Strategies::Abstract
|
2
|
+
|
3
|
+
include KuberKit::Import[
|
4
|
+
"shell.git_commands",
|
5
|
+
"shell.bash_commands",
|
6
|
+
]
|
7
|
+
|
8
|
+
Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Artifacts::Git => Any
|
9
|
+
def update(shell, artifact)
|
10
|
+
already_cloned = artifact_already_cloned?(
|
11
|
+
shell: shell,
|
12
|
+
repo_path: artifact.cloned_path,
|
13
|
+
artifact: artifact
|
14
|
+
)
|
15
|
+
|
16
|
+
if already_cloned
|
17
|
+
git_commands.force_pull_repo(shell,
|
18
|
+
path: artifact.cloned_path, branch: artifact.branch
|
19
|
+
)
|
20
|
+
else
|
21
|
+
git_commands.download_repo(shell,
|
22
|
+
remote_url: artifact.remote_url, path: artifact.cloned_path, branch: artifact.branch
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Artifacts::Git => Any
|
28
|
+
def cleanup(shell, artifact)
|
29
|
+
bash_commands.rm_rf(shell, artifact.cloned_path)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
def artifact_already_cloned?(shell:, repo_path:, artifact:)
|
34
|
+
target_remote_url = git_commands.get_remote_url(shell, repo_path)
|
35
|
+
if target_remote_url != artifact.remote_url
|
36
|
+
return false
|
37
|
+
end
|
38
|
+
|
39
|
+
target_branch = git_commands.get_branch_name(shell, repo_path)
|
40
|
+
if target_branch != artifact.branch
|
41
|
+
return false
|
42
|
+
end
|
43
|
+
|
44
|
+
return true
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class KuberKit::ArtifactsSync::Strategies::NullUpdater < KuberKit::ArtifactsSync::Strategies::Abstract
|
2
|
+
|
3
|
+
Contract KuberKit::Shell::AbstractShell, Any => Any
|
4
|
+
def update(shell, artifact)
|
5
|
+
return true
|
6
|
+
end
|
7
|
+
|
8
|
+
Contract KuberKit::Shell::AbstractShell, Any => Any
|
9
|
+
def cleanup(shell, artifact)
|
10
|
+
return true
|
11
|
+
end
|
12
|
+
end
|
data/lib/kuber_kit/cli.rb
CHANGED
@@ -24,6 +24,8 @@ class KuberKit::CLI < Thor
|
|
24
24
|
action_result = KuberKit::Container['actions.image_compiler'].call(image_names, options)
|
25
25
|
end
|
26
26
|
|
27
|
+
clean_artifacts(options)
|
28
|
+
|
27
29
|
if action_result && action_result.succeeded?
|
28
30
|
time = (Time.now.to_i - started_at)
|
29
31
|
print_result("Image compilation finished! (#{time}s)", result: {
|
@@ -64,6 +66,8 @@ class KuberKit::CLI < Thor
|
|
64
66
|
)
|
65
67
|
end
|
66
68
|
|
69
|
+
clean_artifacts(options)
|
70
|
+
|
67
71
|
if action_result && action_result.succeeded?
|
68
72
|
time = (Time.now.to_i - started_at)
|
69
73
|
print_result("Service deployment finished! (#{time}s)", result: {
|
@@ -230,4 +234,17 @@ class KuberKit::CLI < Thor
|
|
230
234
|
def print_result(message, data = {})
|
231
235
|
KuberKit::Container['ui'].print_result(message, data)
|
232
236
|
end
|
237
|
+
|
238
|
+
def clean_artifacts(options)
|
239
|
+
artifacts = KuberKit.current_configuration.artifacts.values
|
240
|
+
artifacts_to_clean = artifacts.select(&:cleanup_needed?)
|
241
|
+
|
242
|
+
return unless artifacts_to_clean.any?
|
243
|
+
|
244
|
+
artifacts_to_clean.each do |artifact|
|
245
|
+
KuberKit::Container['artifacts_sync.artifact_updater'].cleanup(
|
246
|
+
KuberKit::Container['shell.local_shell'], artifact
|
247
|
+
)
|
248
|
+
end
|
249
|
+
end
|
233
250
|
end
|
data/lib/kuber_kit/container.rb
CHANGED
@@ -237,12 +237,12 @@ class KuberKit::Container
|
|
237
237
|
KuberKit::ArtifactsSync::ArtifactUpdater.new
|
238
238
|
end
|
239
239
|
|
240
|
-
register "artifacts_sync.
|
241
|
-
KuberKit::ArtifactsSync::
|
240
|
+
register "artifacts_sync.strategies.git_updater" do
|
241
|
+
KuberKit::ArtifactsSync::Strategies::GitUpdater.new
|
242
242
|
end
|
243
243
|
|
244
|
-
register "artifacts_sync.
|
245
|
-
KuberKit::ArtifactsSync::
|
244
|
+
register "artifacts_sync.strategies.null_updater" do
|
245
|
+
KuberKit::ArtifactsSync::Strategies::NullUpdater.new
|
246
246
|
end
|
247
247
|
|
248
248
|
register "env_file_reader.action_handler" do
|
@@ -277,6 +277,10 @@ class KuberKit::Container
|
|
277
277
|
KuberKit::TemplateReader::Reader.new
|
278
278
|
end
|
279
279
|
|
280
|
+
register "template_reader.renderer" do
|
281
|
+
KuberKit::TemplateReader::Renderer.new
|
282
|
+
end
|
283
|
+
|
280
284
|
register "template_reader.strategies.artifact_file" do
|
281
285
|
KuberKit::TemplateReader::Strategies::ArtifactFile.new
|
282
286
|
end
|
@@ -5,12 +5,13 @@ class KuberKit::Core::Artifacts::Git < KuberKit::Core::Artifacts::AbstractArtifa
|
|
5
5
|
DEFAULT_REMOTE_NAME = "origin"
|
6
6
|
DEFAULT_BRANCH = "master"
|
7
7
|
|
8
|
-
def setup(remote_url:, remote_name: DEFAULT_REMOTE_NAME, branch: DEFAULT_BRANCH, clone_path: nil, ssh_key: DEFAULT_SSH_KEY)
|
8
|
+
def setup(remote_url:, remote_name: DEFAULT_REMOTE_NAME, branch: DEFAULT_BRANCH, clone_path: nil, ssh_key: DEFAULT_SSH_KEY, cache_result: true)
|
9
9
|
@remote_name = remote_name
|
10
10
|
@remote_url = remote_url
|
11
11
|
@branch = branch
|
12
12
|
@clone_path = clone_path
|
13
13
|
@ssh_key = ssh_key
|
14
|
+
@cache_result = cache_result
|
14
15
|
self
|
15
16
|
end
|
16
17
|
|
@@ -23,4 +24,8 @@ class KuberKit::Core::Artifacts::Git < KuberKit::Core::Artifacts::AbstractArtifa
|
|
23
24
|
def sync_description
|
24
25
|
"#{remote_url}:#{branch}"
|
25
26
|
end
|
27
|
+
|
28
|
+
def cleanup_needed?
|
29
|
+
!@cache_result
|
30
|
+
end
|
26
31
|
end
|
@@ -1,6 +1,4 @@
|
|
1
|
-
class KuberKit::Core::ContextHelper::BaseHelper
|
2
|
-
CONTRACT = RespondTo[:get_binding]
|
3
|
-
|
1
|
+
class KuberKit::Core::ContextHelper::BaseHelper < KuberKit::Core::ContextHelper::AbstractHelper
|
4
2
|
attr_reader :shell, :artifact_store, :image_store, :env_file_reader
|
5
3
|
|
6
4
|
def initialize(image_store:, artifact_store:, shell:, env_file_reader:)
|
@@ -39,8 +37,4 @@ class KuberKit::Core::ContextHelper::BaseHelper
|
|
39
37
|
end
|
40
38
|
global_build_vars
|
41
39
|
end
|
42
|
-
|
43
|
-
def get_binding
|
44
|
-
binding
|
45
|
-
end
|
46
40
|
end
|
@@ -2,7 +2,8 @@ class KuberKit::Core::ContextHelper::ContextHelperFactory
|
|
2
2
|
include KuberKit::Import[
|
3
3
|
"core.image_store",
|
4
4
|
"core.artifact_store",
|
5
|
-
|
5
|
+
template_renderer: "template_reader.renderer",
|
6
|
+
env_file_reader: "env_file_reader.action_handler"
|
6
7
|
]
|
7
8
|
|
8
9
|
def build_image_context(shell, image)
|
@@ -22,6 +23,7 @@ class KuberKit::Core::ContextHelper::ContextHelperFactory
|
|
22
23
|
shell: shell,
|
23
24
|
env_file_reader: env_file_reader,
|
24
25
|
service: service,
|
26
|
+
template_renderer: template_renderer
|
25
27
|
)
|
26
28
|
end
|
27
29
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class KuberKit::Core::ContextHelper::LocalContextHelper < KuberKit::Core::ContextHelper::AbstractHelper
|
2
|
+
def initialize(parent_context_helper:, variables:)
|
3
|
+
@parent_context_helper = parent_context_helper
|
4
|
+
@variables = variables
|
5
|
+
end
|
6
|
+
|
7
|
+
def method_missing(method_name, *args, &block)
|
8
|
+
if @variables.has_key?(method_name)
|
9
|
+
@variables[method_name]
|
10
|
+
else
|
11
|
+
@parent_context_helper.send(method_name, *args, &block)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class KuberKit::Core::ContextHelper::ServiceHelper < KuberKit::Core::ContextHelper::BaseHelper
|
2
|
-
def initialize(image_store:, artifact_store:, shell:, env_file_reader:, service:)
|
2
|
+
def initialize(image_store:, artifact_store:, shell:, env_file_reader:, service:, template_renderer:)
|
3
3
|
super(
|
4
4
|
image_store: image_store,
|
5
5
|
artifact_store: artifact_store,
|
@@ -7,6 +7,7 @@ class KuberKit::Core::ContextHelper::ServiceHelper < KuberKit::Core::ContextHelp
|
|
7
7
|
env_file_reader: env_file_reader
|
8
8
|
)
|
9
9
|
@service = service
|
10
|
+
@template_renderer = template_renderer
|
10
11
|
end
|
11
12
|
|
12
13
|
def service_name
|
@@ -20,4 +21,17 @@ class KuberKit::Core::ContextHelper::ServiceHelper < KuberKit::Core::ContextHelp
|
|
20
21
|
def attribute(attribute_name, default: nil)
|
21
22
|
@service.attribute(attribute_name, default: default)
|
22
23
|
end
|
24
|
+
|
25
|
+
Contract Maybe[String, Symbol], Hash => String
|
26
|
+
def render(template_name, variables = {})
|
27
|
+
context_helper = KuberKit::Core::ContextHelper::LocalContextHelper.new(
|
28
|
+
parent_context_helper: self,
|
29
|
+
variables: variables
|
30
|
+
)
|
31
|
+
@template_renderer.call(shell, template_name.to_sym, context_helper: context_helper)
|
32
|
+
end
|
33
|
+
|
34
|
+
def method_missing(m, *args, &block)
|
35
|
+
raise("Unknown variable: #{m} while rendering '#{service_name}' with '#{@service.template_name}' template.")
|
36
|
+
end
|
23
37
|
end
|
data/lib/kuber_kit/defaults.rb
CHANGED
@@ -7,12 +7,12 @@ class KuberKit::Defaults
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def init!
|
10
|
-
container["artifacts_sync.artifact_updater"].
|
11
|
-
container["artifacts_sync.
|
10
|
+
container["artifacts_sync.artifact_updater"].use_strategy(
|
11
|
+
container["artifacts_sync.strategies.git_updater"],
|
12
12
|
artifact_class: KuberKit::Core::Artifacts::Git
|
13
13
|
)
|
14
|
-
container["artifacts_sync.artifact_updater"].
|
15
|
-
container["artifacts_sync.
|
14
|
+
container["artifacts_sync.artifact_updater"].use_strategy(
|
15
|
+
container["artifacts_sync.strategies.null_updater"],
|
16
16
|
artifact_class: KuberKit::Core::Artifacts::Local
|
17
17
|
)
|
18
18
|
container["env_file_reader.reader"].use_reader(
|
@@ -5,7 +5,7 @@ class KuberKit::ImageCompiler::ImageBuilder
|
|
5
5
|
]
|
6
6
|
|
7
7
|
Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Image, String, KeywordArgs[
|
8
|
-
context_helper: Maybe[KuberKit::Core::ContextHelper::
|
8
|
+
context_helper: Maybe[KuberKit::Core::ContextHelper::AbstractHelper]
|
9
9
|
] => Any
|
10
10
|
def build(shell, image, build_dir, context_helper: nil)
|
11
11
|
image.before_build_callback.call(context_helper, build_dir) if image.before_build_callback
|
@@ -1,9 +1,7 @@
|
|
1
1
|
class KuberKit::ServiceReader::Reader
|
2
2
|
include KuberKit::Import[
|
3
|
-
"core.template_store",
|
4
3
|
"core.context_helper_factory",
|
5
|
-
"template_reader.
|
6
|
-
"preprocessing.text_preprocessor"
|
4
|
+
"template_reader.renderer"
|
7
5
|
]
|
8
6
|
|
9
7
|
AttributeNotSetError = Class.new(KuberKit::Error)
|
@@ -14,14 +12,8 @@ class KuberKit::ServiceReader::Reader
|
|
14
12
|
raise AttributeNotSetError, "Please set template for service using #template method"
|
15
13
|
end
|
16
14
|
|
17
|
-
template = template_store.get(service.template_name)
|
18
|
-
|
19
15
|
context_helper = context_helper_factory.build_service_context(shell, service)
|
20
16
|
|
21
|
-
|
22
|
-
|
23
|
-
result = text_preprocessor.compile(template, context_helper: context_helper)
|
24
|
-
|
25
|
-
result
|
17
|
+
renderer.call(shell, service.template_name, context_helper: context_helper)
|
26
18
|
end
|
27
19
|
end
|
@@ -8,6 +8,15 @@ class KuberKit::Shell::Commands::GitCommands
|
|
8
8
|
return nil
|
9
9
|
end
|
10
10
|
|
11
|
+
def get_branch_name(shell, git_repo_path, remote_name: "origin")
|
12
|
+
shell.exec!([
|
13
|
+
"cd #{git_repo_path}",
|
14
|
+
"git rev-parse --abbrev-ref HEAD",
|
15
|
+
].join(" && "), merge_stderr: true)
|
16
|
+
rescue KuberKit::Shell::AbstractShell::ShellError
|
17
|
+
return nil
|
18
|
+
end
|
19
|
+
|
11
20
|
def get_version_hash(shell, git_repo_path)
|
12
21
|
shell.exec!([
|
13
22
|
"cd #{git_repo_path}",
|
@@ -28,6 +37,7 @@ class KuberKit::Shell::Commands::GitCommands
|
|
28
37
|
"cd #{path}",
|
29
38
|
"git add .",
|
30
39
|
"git reset HEAD --hard",
|
40
|
+
"git fetch origin #{branch}",
|
31
41
|
"git checkout #{branch}",
|
32
42
|
"git reset --hard '@{u}'",
|
33
43
|
"git pull --force",
|
@@ -11,6 +11,7 @@ class KuberKit::TemplateReader::Reader
|
|
11
11
|
@@readers[template_class] = template_reader
|
12
12
|
end
|
13
13
|
|
14
|
+
Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Templates::AbstractTemplate => String
|
14
15
|
def read(shell, template)
|
15
16
|
reader = @@readers[template.class]
|
16
17
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class KuberKit::TemplateReader::Renderer
|
2
|
+
include KuberKit::Import[
|
3
|
+
"core.template_store",
|
4
|
+
"preprocessing.text_preprocessor",
|
5
|
+
template_reader: "template_reader.reader"
|
6
|
+
]
|
7
|
+
|
8
|
+
|
9
|
+
Contract KuberKit::Shell::AbstractShell, Symbol, KeywordArgs[
|
10
|
+
context_helper: KuberKit::Core::ContextHelper::AbstractHelper
|
11
|
+
] => String
|
12
|
+
def call(shell, template_name, context_helper:)
|
13
|
+
template = template_store.get(template_name)
|
14
|
+
template_text = template_reader.read(shell, template)
|
15
|
+
text_preprocessor.compile(template_text, context_helper: context_helper)
|
16
|
+
end
|
17
|
+
end
|
@@ -3,6 +3,7 @@ class KuberKit::TemplateReader::Strategies::ArtifactFile < KuberKit::TemplateRea
|
|
3
3
|
"core.artifact_store"
|
4
4
|
]
|
5
5
|
|
6
|
+
Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Templates::AbstractTemplate => String
|
6
7
|
def read(shell, template)
|
7
8
|
artifact = artifact_store.get(template.artifact_name)
|
8
9
|
|
data/lib/kuber_kit/version.rb
CHANGED
data/lib/kuber_kit.rb
CHANGED
@@ -61,11 +61,13 @@ module KuberKit
|
|
61
61
|
end
|
62
62
|
|
63
63
|
module ContextHelper
|
64
|
+
autoload :AbstractHelper, 'core/context_helper/abstract_helper'
|
64
65
|
autoload :BaseHelper, 'core/context_helper/base_helper'
|
65
66
|
autoload :ImageHelper, 'core/context_helper/image_helper'
|
66
67
|
autoload :ServiceHelper, 'core/context_helper/service_helper'
|
67
68
|
autoload :ContextHelperFactory, 'core/context_helper/context_helper_factory'
|
68
69
|
autoload :ContextVars, 'core/context_helper/context_vars'
|
70
|
+
autoload :LocalContextHelper, 'core/context_helper/local_context_helper'
|
69
71
|
end
|
70
72
|
|
71
73
|
module Registries
|
@@ -125,10 +127,13 @@ module KuberKit
|
|
125
127
|
end
|
126
128
|
|
127
129
|
module ArtifactsSync
|
128
|
-
autoload :AbstractArtifactResolver, 'artifacts_sync/abstract_artifact_resolver'
|
129
130
|
autoload :ArtifactUpdater, 'artifacts_sync/artifact_updater'
|
130
|
-
|
131
|
-
|
131
|
+
|
132
|
+
module Strategies
|
133
|
+
autoload :Abstract, 'artifacts_sync/strategies/abstract'
|
134
|
+
autoload :GitUpdater, 'artifacts_sync/strategies/git_updater'
|
135
|
+
autoload :NullUpdater, 'artifacts_sync/strategies/null_updater'
|
136
|
+
end
|
132
137
|
end
|
133
138
|
|
134
139
|
module EnvFileReader
|
@@ -147,6 +152,7 @@ module KuberKit
|
|
147
152
|
module TemplateReader
|
148
153
|
autoload :ActionHandler, 'template_reader/action_handler'
|
149
154
|
autoload :Reader, 'template_reader/reader'
|
155
|
+
autoload :Renderer, 'template_reader/renderer'
|
150
156
|
|
151
157
|
module Strategies
|
152
158
|
autoload :Abstract, 'template_reader/strategies/abstract'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kuber_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Iskander Khaziev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: contracts
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: ed25519
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: bundler
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -263,10 +277,10 @@ files:
|
|
263
277
|
- lib/kuber_kit/actions/service_reader.rb
|
264
278
|
- lib/kuber_kit/actions/shell_launcher.rb
|
265
279
|
- lib/kuber_kit/actions/template_reader.rb
|
266
|
-
- lib/kuber_kit/artifacts_sync/abstract_artifact_resolver.rb
|
267
280
|
- lib/kuber_kit/artifacts_sync/artifact_updater.rb
|
268
|
-
- lib/kuber_kit/artifacts_sync/
|
269
|
-
- lib/kuber_kit/artifacts_sync/
|
281
|
+
- lib/kuber_kit/artifacts_sync/strategies/abstract.rb
|
282
|
+
- lib/kuber_kit/artifacts_sync/strategies/git_updater.rb
|
283
|
+
- lib/kuber_kit/artifacts_sync/strategies/null_updater.rb
|
270
284
|
- lib/kuber_kit/cli.rb
|
271
285
|
- lib/kuber_kit/configs.rb
|
272
286
|
- lib/kuber_kit/container.rb
|
@@ -284,10 +298,12 @@ files:
|
|
284
298
|
- lib/kuber_kit/core/configuration_definition_factory.rb
|
285
299
|
- lib/kuber_kit/core/configuration_factory.rb
|
286
300
|
- lib/kuber_kit/core/configuration_store.rb
|
301
|
+
- lib/kuber_kit/core/context_helper/abstract_helper.rb
|
287
302
|
- lib/kuber_kit/core/context_helper/base_helper.rb
|
288
303
|
- lib/kuber_kit/core/context_helper/context_helper_factory.rb
|
289
304
|
- lib/kuber_kit/core/context_helper/context_vars.rb
|
290
305
|
- lib/kuber_kit/core/context_helper/image_helper.rb
|
306
|
+
- lib/kuber_kit/core/context_helper/local_context_helper.rb
|
291
307
|
- lib/kuber_kit/core/context_helper/service_helper.rb
|
292
308
|
- lib/kuber_kit/core/dependencies/abstract_dependency_resolver.rb
|
293
309
|
- lib/kuber_kit/core/env_files/abstract_env_file.rb
|
@@ -373,6 +389,7 @@ files:
|
|
373
389
|
- lib/kuber_kit/shell_launcher/strategies/kubernetes.rb
|
374
390
|
- lib/kuber_kit/template_reader/action_handler.rb
|
375
391
|
- lib/kuber_kit/template_reader/reader.rb
|
392
|
+
- lib/kuber_kit/template_reader/renderer.rb
|
376
393
|
- lib/kuber_kit/template_reader/strategies/abstract.rb
|
377
394
|
- lib/kuber_kit/template_reader/strategies/artifact_file.rb
|
378
395
|
- lib/kuber_kit/tools/build_dir_cleaner.rb
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class KuberKit::ArtifactsSync::GitArtifactResolver < KuberKit::ArtifactsSync::AbstractArtifactResolver
|
2
|
-
|
3
|
-
include KuberKit::Import[
|
4
|
-
"shell.git_commands",
|
5
|
-
]
|
6
|
-
|
7
|
-
Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Artifacts::Git => Any
|
8
|
-
def resolve(shell, artifact)
|
9
|
-
already_cloned = artifact_already_cloned?(
|
10
|
-
shell: shell,
|
11
|
-
target_path: artifact.cloned_path,
|
12
|
-
remote_url: artifact.remote_url,
|
13
|
-
)
|
14
|
-
|
15
|
-
if already_cloned
|
16
|
-
git_commands.force_pull_repo(shell,
|
17
|
-
path: artifact.cloned_path, branch: artifact.branch
|
18
|
-
)
|
19
|
-
else
|
20
|
-
git_commands.download_repo(shell,
|
21
|
-
remote_url: artifact.remote_url, path: artifact.cloned_path, branch: artifact.branch
|
22
|
-
)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
def artifact_already_cloned?(shell:, target_path:, remote_url:)
|
28
|
-
target_remote_url = git_commands.get_remote_url(shell, target_path)
|
29
|
-
target_remote_url == remote_url
|
30
|
-
end
|
31
|
-
end
|