kuber_kit 1.1.8 → 1.2.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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec.yml +1 -1
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG.md +0 -48
  5. data/README.md +2 -2
  6. data/kuber_kit.gemspec +3 -3
  7. data/lib/kuber_kit/actions/configuration_loader.rb +3 -13
  8. data/lib/kuber_kit/actions/kubectl_attacher.rb +4 -7
  9. data/lib/kuber_kit/actions/kubectl_get.rb +3 -3
  10. data/lib/kuber_kit/actions/kubectl_logs.rb +4 -7
  11. data/lib/kuber_kit/actions/service_deployer.rb +27 -40
  12. data/lib/kuber_kit/artifacts_sync/abstract_artifact_resolver.rb +5 -0
  13. data/lib/kuber_kit/artifacts_sync/artifact_updater.rb +9 -19
  14. data/lib/kuber_kit/artifacts_sync/git_artifact_resolver.rb +31 -0
  15. data/lib/kuber_kit/artifacts_sync/null_artifact_resolver.rb +7 -0
  16. data/lib/kuber_kit/cli.rb +2 -36
  17. data/lib/kuber_kit/configs.rb +1 -4
  18. data/lib/kuber_kit/container.rb +4 -28
  19. data/lib/kuber_kit/core/artifacts/abstract_artifact.rb +0 -8
  20. data/lib/kuber_kit/core/artifacts/git.rb +1 -10
  21. data/lib/kuber_kit/core/artifacts/local.rb +0 -8
  22. data/lib/kuber_kit/core/configuration.rb +6 -10
  23. data/lib/kuber_kit/core/configuration_definition.rb +9 -30
  24. data/lib/kuber_kit/core/configuration_factory.rb +1 -3
  25. data/lib/kuber_kit/core/context_helper/base_helper.rb +7 -1
  26. data/lib/kuber_kit/core/context_helper/context_helper_factory.rb +1 -3
  27. data/lib/kuber_kit/core/context_helper/context_vars.rb +19 -33
  28. data/lib/kuber_kit/core/context_helper/service_helper.rb +1 -15
  29. data/lib/kuber_kit/core/dependencies/abstract_dependency_resolver.rb +0 -7
  30. data/lib/kuber_kit/core/service.rb +5 -8
  31. data/lib/kuber_kit/core/service_definition.rb +4 -16
  32. data/lib/kuber_kit/core/service_factory.rb +1 -2
  33. data/lib/kuber_kit/defaults.rb +4 -13
  34. data/lib/kuber_kit/image_compiler/image_builder.rb +1 -1
  35. data/lib/kuber_kit/service_deployer/service_dependency_resolver.rb +1 -1
  36. data/lib/kuber_kit/service_deployer/strategies/kubernetes.rb +2 -8
  37. data/lib/kuber_kit/service_reader/reader.rb +10 -2
  38. data/lib/kuber_kit/shell/commands/bash_commands.rb +6 -6
  39. data/lib/kuber_kit/shell/commands/docker_commands.rb +5 -5
  40. data/lib/kuber_kit/shell/commands/docker_compose_commands.rb +1 -1
  41. data/lib/kuber_kit/shell/commands/git_commands.rb +12 -19
  42. data/lib/kuber_kit/shell/commands/kubectl_commands.rb +4 -5
  43. data/lib/kuber_kit/shell/commands/rsync_commands.rb +1 -1
  44. data/lib/kuber_kit/shell/commands/system_commands.rb +1 -1
  45. data/lib/kuber_kit/shell/local_shell.rb +8 -12
  46. data/lib/kuber_kit/shell/ssh_session.rb +1 -5
  47. data/lib/kuber_kit/shell/ssh_shell.rb +2 -2
  48. data/lib/kuber_kit/shell_launcher/strategies/kubernetes.rb +1 -10
  49. data/lib/kuber_kit/template_reader/reader.rb +0 -1
  50. data/lib/kuber_kit/template_reader/strategies/artifact_file.rb +0 -1
  51. data/lib/kuber_kit/tools/logger_factory.rb +1 -1
  52. data/lib/kuber_kit/version.rb +1 -1
  53. data/lib/kuber_kit.rb +3 -23
  54. metadata +13 -24
  55. data/lib/kuber_kit/actions/service_generator.rb +0 -20
  56. data/lib/kuber_kit/artifacts_sync/strategies/abstract.rb +0 -9
  57. data/lib/kuber_kit/artifacts_sync/strategies/git_updater.rb +0 -46
  58. data/lib/kuber_kit/artifacts_sync/strategies/null_updater.rb +0 -12
  59. data/lib/kuber_kit/core/context_helper/abstract_helper.rb +0 -5
  60. data/lib/kuber_kit/core/context_helper/local_context_helper.rb +0 -14
  61. data/lib/kuber_kit/service_deployer/strategies/helm.rb +0 -41
  62. data/lib/kuber_kit/service_generator/action_handler.rb +0 -16
  63. data/lib/kuber_kit/service_generator/generator.rb +0 -26
  64. data/lib/kuber_kit/service_generator/strategies/abstract.rb +0 -5
  65. data/lib/kuber_kit/service_generator/strategies/helm.rb +0 -33
  66. data/lib/kuber_kit/service_generator/strategy_detector.rb +0 -6
  67. data/lib/kuber_kit/shell/commands/helm_commands.rb +0 -42
  68. data/lib/kuber_kit/template_reader/renderer.rb +0 -17
@@ -5,13 +5,12 @@ 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, cache_result: true)
8
+ def setup(remote_url:, remote_name: DEFAULT_REMOTE_NAME, branch: DEFAULT_BRANCH, clone_path: nil, ssh_key: DEFAULT_SSH_KEY)
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
15
14
  self
16
15
  end
17
16
 
@@ -20,12 +19,4 @@ class KuberKit::Core::Artifacts::Git < KuberKit::Core::Artifacts::AbstractArtifa
20
19
  configs = KuberKit::Container['configs']
21
20
  "#{configs.artifact_clone_dir}/#{name}"
22
21
  end
23
-
24
- def sync_description
25
- "#{remote_url}:#{branch}"
26
- end
27
-
28
- def cleanup_needed?
29
- !@cache_result
30
- end
31
22
  end
@@ -11,12 +11,4 @@ class KuberKit::Core::Artifacts::Local < KuberKit::Core::Artifacts::AbstractArti
11
11
  def cloned_path
12
12
  root_path
13
13
  end
14
-
15
- def sync_description
16
- "local"
17
- end
18
-
19
- def cleanup_needed?
20
- false
21
- end
22
14
  end
@@ -1,9 +1,9 @@
1
1
  class KuberKit::Core::Configuration
2
2
  attr_reader :name, :artifacts, :registries, :env_files, :templates, :kubeconfig_path, :kubectl_entrypoint,
3
3
  :services_attributes, :enabled_services, :disabled_services, :default_services,
4
- :pre_deploy_services, :post_deploy_services, :build_servers, :global_build_vars,
4
+ :initial_services, :build_servers, :global_build_vars,
5
5
  :deployer_strategy, :deployer_namespace, :deployer_require_confirmation,
6
- :shell_launcher_strategy, :generator_strategy
6
+ :shell_launcher_strategy
7
7
 
8
8
  Contract KeywordArgs[
9
9
  name: Symbol,
@@ -17,20 +17,18 @@ class KuberKit::Core::Configuration
17
17
  enabled_services: ArrayOf[Symbol],
18
18
  disabled_services: ArrayOf[Symbol],
19
19
  default_services: ArrayOf[Symbol],
20
- pre_deploy_services: ArrayOf[Symbol],
21
- post_deploy_services: ArrayOf[Symbol],
20
+ initial_services: ArrayOf[Symbol],
22
21
  build_servers: ArrayOf[KuberKit::Core::BuildServers::AbstractBuildServer],
23
22
  global_build_vars: HashOf[Symbol => Any],
24
23
  deployer_strategy: Symbol,
25
24
  deployer_namespace: Maybe[Or[Symbol, String]],
26
25
  deployer_require_confirmation: Bool,
27
26
  shell_launcher_strategy: Symbol,
28
- generator_strategy: Symbol,
29
27
  ] => Any
30
28
  def initialize(name:, artifacts:, registries:, env_files:, templates:, kubeconfig_path:, kubectl_entrypoint:,
31
29
  services_attributes:, enabled_services:, disabled_services:, default_services:,
32
- pre_deploy_services:, post_deploy_services:, build_servers:, global_build_vars:,
33
- deployer_strategy:, deployer_namespace:, deployer_require_confirmation:, shell_launcher_strategy:, generator_strategy:)
30
+ initial_services:, build_servers:, global_build_vars:,
31
+ deployer_strategy:, deployer_namespace:, deployer_require_confirmation:, shell_launcher_strategy:)
34
32
  @name = name
35
33
  @artifacts = artifacts
36
34
  @registries = registries
@@ -43,14 +41,12 @@ class KuberKit::Core::Configuration
43
41
  @enabled_services = enabled_services
44
42
  @disabled_services = disabled_services
45
43
  @default_services = default_services
46
- @pre_deploy_services = pre_deploy_services
47
- @post_deploy_services = post_deploy_services
44
+ @initial_services = initial_services
48
45
  @global_build_vars = global_build_vars
49
46
  @deployer_strategy = deployer_strategy
50
47
  @deployer_namespace = deployer_namespace
51
48
  @deployer_require_confirmation = deployer_require_confirmation
52
49
  @shell_launcher_strategy = shell_launcher_strategy
53
- @generator_strategy = generator_strategy
54
50
  end
55
51
 
56
52
  def service_attributes(service_name)
@@ -9,14 +9,13 @@ class KuberKit::Core::ConfigurationDefinition
9
9
  @artifacts = {}
10
10
  @registries = {}
11
11
  @env_files = {}
12
- @templates = {}
13
- @build_servers = []
14
- @enabled_services = []
15
- @disabled_services = []
16
- @default_services = []
17
- @pre_deploy_services = []
18
- @post_deploy_services = []
19
- @services_attributes = {}
12
+ @templates = {}
13
+ @build_servers = []
14
+ @enabled_services = []
15
+ @disabled_services = []
16
+ @default_services = []
17
+ @initial_services = []
18
+ @services_attributes = {}
20
19
  end
21
20
 
22
21
  def to_attrs
@@ -31,8 +30,7 @@ class KuberKit::Core::ConfigurationDefinition
31
30
  enabled_services: @enabled_services,
32
31
  disabled_services: @disabled_services,
33
32
  default_services: @default_services,
34
- pre_deploy_services: @pre_deploy_services,
35
- post_deploy_services: @post_deploy_services,
33
+ initial_services: @initial_services,
36
34
  build_servers: @build_servers,
37
35
  services_attributes: @services_attributes,
38
36
  global_build_vars: @global_build_vars,
@@ -40,7 +38,6 @@ class KuberKit::Core::ConfigurationDefinition
40
38
  deployer_namespace: @deployer_namespace,
41
39
  deployer_require_confirmation: @deployer_require_confirmation || false,
42
40
  shell_launcher_strategy: @shell_launcher_strategy,
43
- generator_strategy: @generator_strategy,
44
41
  )
45
42
  end
46
43
 
@@ -112,12 +109,6 @@ class KuberKit::Core::ConfigurationDefinition
112
109
  self
113
110
  end
114
111
 
115
- def generator_strategy(strategy)
116
- @generator_strategy = strategy
117
-
118
- self
119
- end
120
-
121
112
  def deployer_require_confirmation
122
113
  @deployer_require_confirmation = true
123
114
 
@@ -152,19 +143,7 @@ class KuberKit::Core::ConfigurationDefinition
152
143
  end
153
144
 
154
145
  def initial_services(services)
155
- unless KuberKit.deprecation_warnings_disabled?
156
- puts "WARNING: initial_services is deprecated, please use pre_deploy_services instead"
157
- end
158
- pre_deploy_services(services)
159
- end
160
-
161
- def pre_deploy_services(services)
162
- @pre_deploy_services += services.map(&:to_sym)
163
- return self
164
- end
165
-
166
- def post_deploy_services(services)
167
- @post_deploy_services += services.map(&:to_sym)
146
+ @initial_services += services.map(&:to_sym)
168
147
  return self
169
148
  end
170
149
 
@@ -32,14 +32,12 @@ class KuberKit::Core::ConfigurationFactory
32
32
  enabled_services: configuration_attrs.enabled_services,
33
33
  disabled_services: configuration_attrs.disabled_services,
34
34
  default_services: configuration_attrs.default_services,
35
- pre_deploy_services: configuration_attrs.pre_deploy_services,
36
- post_deploy_services: configuration_attrs.post_deploy_services,
35
+ initial_services: configuration_attrs.initial_services,
37
36
  global_build_vars: configuration_attrs.global_build_vars || {},
38
37
  deployer_strategy: configuration_attrs.deployer_strategy || configs.deployer_strategy,
39
38
  deployer_namespace: configuration_attrs.deployer_namespace,
40
39
  deployer_require_confirmation: configuration_attrs.deployer_require_confirmation,
41
40
  shell_launcher_strategy: configuration_attrs.shell_launcher_strategy || configs.shell_launcher_strategy,
42
- generator_strategy: configuration_attrs.generator_strategy || configs.generator_strategy,
43
41
  )
44
42
  end
45
43
 
@@ -1,4 +1,6 @@
1
- class KuberKit::Core::ContextHelper::BaseHelper < KuberKit::Core::ContextHelper::AbstractHelper
1
+ class KuberKit::Core::ContextHelper::BaseHelper
2
+ CONTRACT = RespondTo[:get_binding]
3
+
2
4
  attr_reader :shell, :artifact_store, :image_store, :env_file_reader
3
5
 
4
6
  def initialize(image_store:, artifact_store:, shell:, env_file_reader:)
@@ -37,4 +39,8 @@ class KuberKit::Core::ContextHelper::BaseHelper < KuberKit::Core::ContextHelper:
37
39
  end
38
40
  global_build_vars
39
41
  end
42
+
43
+ def get_binding
44
+ binding
45
+ end
40
46
  end
@@ -2,8 +2,7 @@ class KuberKit::Core::ContextHelper::ContextHelperFactory
2
2
  include KuberKit::Import[
3
3
  "core.image_store",
4
4
  "core.artifact_store",
5
- template_renderer: "template_reader.renderer",
6
- env_file_reader: "env_file_reader.action_handler"
5
+ env_file_reader: "env_file_reader.action_handler"
7
6
  ]
8
7
 
9
8
  def build_image_context(shell, image)
@@ -23,7 +22,6 @@ class KuberKit::Core::ContextHelper::ContextHelperFactory
23
22
  shell: shell,
24
23
  env_file_reader: env_file_reader,
25
24
  service: service,
26
- template_renderer: template_renderer
27
25
  )
28
26
  end
29
27
  end
@@ -1,21 +1,15 @@
1
- require 'ostruct'
2
1
  class KuberKit::Core::ContextHelper::ContextVars
3
2
  attr_reader :parent, :parent_name
4
3
 
5
4
  BuildArgUndefined = Class.new(KuberKit::Error)
6
5
 
7
- def initialize(context_vars, parent_name = nil)
6
+ def initialize(context_vars, parent_name = nil, parent = nil)
8
7
  @context_vars = context_vars
9
8
  @parent_name = parent_name
9
+ @parent = parent
10
10
  end
11
11
 
12
- def read(*variable_names, default: nil)
13
- dig(*variable_names)
14
- rescue BuildArgUndefined
15
- return default
16
- end
17
-
18
- def dig(*variable_names)
12
+ def read(*variable_names)
19
13
  result = self
20
14
  variable_names.each do |var|
21
15
  result = result.get_variable_value(var)
@@ -24,7 +18,7 @@ class KuberKit::Core::ContextHelper::ContextVars
24
18
  end
25
19
 
26
20
  def variable_defined?(*variable_names)
27
- dig(*variable_names)
21
+ read(*variable_names)
28
22
  return true
29
23
  rescue BuildArgUndefined
30
24
  return false
@@ -35,30 +29,15 @@ class KuberKit::Core::ContextHelper::ContextVars
35
29
  raise ArgumentError.new("context args does not accept any arguments")
36
30
  end
37
31
 
38
- dig(name)
39
- end
40
-
41
- def keys
42
- @context_vars.keys
32
+ read(name)
43
33
  end
44
34
 
45
35
  def to_h
46
- values = keys.map do |key|
47
- value = get_variable_value(key)
48
- hash_value = value.respond_to?(:to_h) ? value.to_h : value
49
- [key, hash_value]
36
+ if @context_vars.is_a?(Hash)
37
+ return @context_vars
38
+ else
39
+ return {value: @context_vars}
50
40
  end
51
- Hash[values]
52
- end
53
-
54
- def to_struct
55
- values = keys.map do |key|
56
- value = get_variable_value(key)
57
- hash_value = value.respond_to?(:to_struct) ? value.to_struct : value
58
- [key, hash_value]
59
- end
60
- hash = Hash[values]
61
- OpenStruct.new(hash)
62
41
  end
63
42
 
64
43
  def get_variable_value(variable_name)
@@ -67,16 +46,23 @@ class KuberKit::Core::ContextHelper::ContextVars
67
46
  end
68
47
 
69
48
  if value.is_a?(Hash)
70
- return self.class.new(value, format_arg(variable_name))
49
+ return self.class.new(value, variable_name, self)
71
50
  end
72
51
 
73
52
  value
74
53
  end
75
54
 
76
55
  private
77
-
78
56
 
79
57
  def format_arg(name)
80
- [@parent_name, name].compact.join(".")
58
+ string = [@parent_name, name].compact.join(".")
59
+ parent = @parent
60
+
61
+ while parent do
62
+ string = [parent.parent_name, string].compact.join(".")
63
+ parent = parent.parent
64
+ end
65
+
66
+ string
81
67
  end
82
68
  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:, template_renderer:)
2
+ def initialize(image_store:, artifact_store:, shell:, env_file_reader:, service:)
3
3
  super(
4
4
  image_store: image_store,
5
5
  artifact_store: artifact_store,
@@ -7,7 +7,6 @@ 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
11
10
  end
12
11
 
13
12
  def service_name
@@ -21,17 +20,4 @@ class KuberKit::Core::ContextHelper::ServiceHelper < KuberKit::Core::ContextHelp
21
20
  def attribute(attribute_name, default: nil)
22
21
  @service.attribute(attribute_name, default: default)
23
22
  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
37
23
  end
@@ -50,13 +50,6 @@ class KuberKit::Core::Dependencies::AbstractDependencyResolver
50
50
  (deps + item_names).uniq
51
51
  end
52
52
 
53
- # Get all dependencies for items (excluding the items themself), without any limitations
54
- Contract Or[Symbol, ArrayOf[Symbol]] => Any
55
- def get_all_deps(item_names)
56
- deps = Array(item_names).map { |i| get_recursive_deps(i) }.flatten
57
- deps.uniq - item_names
58
- end
59
-
60
53
  def get_recursive_deps(item_name, dependency_tree: [])
61
54
  deps = get_deps(item_name)
62
55
 
@@ -1,28 +1,25 @@
1
1
  class KuberKit::Core::Service
2
2
  AttributeNotSet = Class.new(KuberKit::Error)
3
3
 
4
- attr_reader :name, :initializers, :template_name, :tags, :images, :attributes,
5
- :deployer_strategy, :generator_strategy
4
+ attr_reader :name, :dependencies, :template_name, :tags, :images, :attributes, :deployer_strategy
6
5
 
7
6
  Contract KeywordArgs[
8
7
  name: Symbol,
9
- initializers: ArrayOf[Symbol],
8
+ dependencies: ArrayOf[Symbol],
10
9
  template_name: Maybe[Symbol],
11
10
  tags: ArrayOf[Symbol],
12
11
  images: ArrayOf[Symbol],
13
12
  attributes: HashOf[Symbol => Any],
14
- deployer_strategy: Maybe[Symbol],
15
- generator_strategy: Maybe[Symbol]
13
+ deployer_strategy: Maybe[Symbol]
16
14
  ] => Any
17
- def initialize(name:, initializers:, template_name:, tags:, images:, attributes:, deployer_strategy:, generator_strategy:)
15
+ def initialize(name:, dependencies:, template_name:, tags:, images:, attributes:, deployer_strategy:)
18
16
  @name = name
19
- @initializers = initializers
17
+ @dependencies = dependencies
20
18
  @template_name = template_name
21
19
  @tags = tags
22
20
  @images = images
23
21
  @attributes = attributes
24
22
  @deployer_strategy = deployer_strategy
25
- @generator_strategy = generator_strategy
26
23
  end
27
24
 
28
25
  def uri
@@ -1,32 +1,26 @@
1
1
  class KuberKit::Core::ServiceDefinition
2
- attr_reader :service_name, :template_name, :dependencies, :initializers
2
+ attr_reader :service_name, :template_name, :dependencies
3
3
 
4
4
  Contract Or[Symbol, String] => Any
5
5
  def initialize(service_name)
6
6
  @service_name = service_name.to_sym
7
- @initializers = []
7
+ @dependencies = []
8
8
  end
9
9
 
10
10
  def to_service_attrs
11
11
  OpenStruct.new(
12
12
  name: @service_name,
13
- initializers: @initializers,
13
+ dependencies: @dependencies,
14
14
  template_name: get_value(@template_name),
15
15
  tags: Array(get_value(@tags)).map(&:to_sym),
16
16
  images: Array(get_value(@images)).map(&:to_sym),
17
17
  attributes: get_value(@attributes),
18
18
  deployer_strategy: get_value(@deployer_strategy),
19
- generator_strategy: get_value(@generator_strategy),
20
19
  )
21
20
  end
22
21
 
23
22
  def depends_on(*value, &block)
24
- initialize_with(value)
25
- self
26
- end
27
-
28
- def initialize_with(*value, &block)
29
- @initializers = Array(value).flatten
23
+ @dependencies = Array(value).flatten
30
24
  self
31
25
  end
32
26
 
@@ -60,12 +54,6 @@ class KuberKit::Core::ServiceDefinition
60
54
  self
61
55
  end
62
56
 
63
- def generator_strategy(value = nil, &block)
64
- @generator_strategy = block_given? ? block : value
65
-
66
- self
67
- end
68
-
69
57
  private
70
58
  def get_value(variable)
71
59
  variable.is_a?(Proc) ? variable.call : variable
@@ -7,13 +7,12 @@ class KuberKit::Core::ServiceFactory
7
7
 
8
8
  KuberKit::Core::Service.new(
9
9
  name: service_attrs.name,
10
- initializers: service_attrs.initializers,
10
+ dependencies: service_attrs.dependencies,
11
11
  template_name: service_attrs.template_name,
12
12
  tags: service_attrs.tags,
13
13
  images: service_attrs.images,
14
14
  attributes: attributes,
15
15
  deployer_strategy: service_attrs.deployer_strategy,
16
- generator_strategy: service_attrs.generator_strategy,
17
16
  )
18
17
  end
19
18
  end
@@ -7,12 +7,12 @@ class KuberKit::Defaults
7
7
  end
8
8
 
9
9
  def init!
10
- container["artifacts_sync.artifact_updater"].use_strategy(
11
- container["artifacts_sync.strategies.git_updater"],
10
+ container["artifacts_sync.artifact_updater"].use_resolver(
11
+ container["artifacts_sync.git_artifact_resolver"],
12
12
  artifact_class: KuberKit::Core::Artifacts::Git
13
13
  )
14
- container["artifacts_sync.artifact_updater"].use_strategy(
15
- container["artifacts_sync.strategies.null_updater"],
14
+ container["artifacts_sync.artifact_updater"].use_resolver(
15
+ container["artifacts_sync.null_artifact_resolver"],
16
16
  artifact_class: KuberKit::Core::Artifacts::Local
17
17
  )
18
18
  container["env_file_reader.reader"].use_reader(
@@ -39,15 +39,6 @@ class KuberKit::Defaults
39
39
  :docker_compose,
40
40
  KuberKit::ServiceDeployer::Strategies::DockerCompose.new
41
41
  )
42
- container["service_deployer.deployer"].register_strategy(
43
- :helm,
44
- KuberKit::ServiceDeployer::Strategies::Helm.new
45
- )
46
-
47
- container["service_generator.generator"].register_strategy(
48
- :helm,
49
- KuberKit::ServiceGenerator::Strategies::Helm.new
50
- )
51
42
 
52
43
  container["shell_launcher.launcher"].register_strategy(
53
44
  :kubernetes,
@@ -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::AbstractHelper]
8
+ context_helper: Maybe[KuberKit::Core::ContextHelper::BaseHelper::CONTRACT]
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
@@ -5,7 +5,7 @@ class KuberKit::ServiceDeployer::ServiceDependencyResolver < KuberKit::Core::Dep
5
5
  ]
6
6
 
7
7
  def get_deps(service_name)
8
- service_store.get_definition(service_name).initializers
8
+ service_store.get_definition(service_name).dependencies
9
9
  end
10
10
 
11
11
  def dependency_batch_size
@@ -10,8 +10,7 @@ class KuberKit::ServiceDeployer::Strategies::Kubernetes < KuberKit::ServiceDeplo
10
10
  :resource_name,
11
11
  :delete_if_exists,
12
12
  :restart_if_exists,
13
- :wait_for_rollout,
14
- :apply_command
13
+ :wait_for_rollout
15
14
  ]
16
15
 
17
16
  Contract KuberKit::Shell::AbstractShell, KuberKit::Core::Service => Any
@@ -41,12 +40,7 @@ class KuberKit::ServiceDeployer::Strategies::Kubernetes < KuberKit::ServiceDeplo
41
40
  kubectl_commands.delete_resource(shell, resource_type, resource_name, kubeconfig_path: kubeconfig_path, namespace: namespace)
42
41
  end
43
42
 
44
- apply_result = kubectl_commands.apply_file(
45
- shell, config_path,
46
- kubeconfig_path: kubeconfig_path,
47
- namespace: namespace,
48
- apply_command: strategy_options.fetch(:apply_command, "apply")
49
- )
43
+ apply_result = kubectl_commands.apply_file(shell, config_path, kubeconfig_path: kubeconfig_path, namespace: namespace)
50
44
 
51
45
  restart_enabled = strategy_options.fetch(:restart_if_exists, true)
52
46
  wait_for_rollout = strategy_options.fetch(:wait_for_rollout, true)
@@ -1,7 +1,9 @@
1
1
  class KuberKit::ServiceReader::Reader
2
2
  include KuberKit::Import[
3
+ "core.template_store",
3
4
  "core.context_helper_factory",
4
- "template_reader.renderer"
5
+ "template_reader.reader",
6
+ "preprocessing.text_preprocessor"
5
7
  ]
6
8
 
7
9
  AttributeNotSetError = Class.new(KuberKit::Error)
@@ -12,8 +14,14 @@ class KuberKit::ServiceReader::Reader
12
14
  raise AttributeNotSetError, "Please set template for service using #template method"
13
15
  end
14
16
 
17
+ template = template_store.get(service.template_name)
18
+
15
19
  context_helper = context_helper_factory.build_service_context(shell, service)
16
20
 
17
- renderer.call(shell, service.template_name, context_helper: context_helper)
21
+ template = reader.read(shell, template)
22
+
23
+ result = text_preprocessor.compile(template, context_helper: context_helper)
24
+
25
+ result
18
26
  end
19
27
  end
@@ -1,27 +1,27 @@
1
1
  require 'time'
2
2
  class KuberKit::Shell::Commands::BashCommands
3
3
  def rm(shell, path)
4
- shell.exec!(%Q{rm "#{path}"}, merge_stderr: true)
4
+ shell.exec!(%Q{rm "#{path}"})
5
5
  end
6
6
 
7
7
  def rm_rf(shell, path)
8
- shell.exec!(%Q{rm -rf "#{path}"}, merge_stderr: true)
8
+ shell.exec!(%Q{rm -rf "#{path}"})
9
9
  end
10
10
 
11
11
  def cp(shell, source_path, dest_path)
12
- shell.exec!(%Q{cp "#{source_path}" "#{dest_path}"}, merge_stderr: true)
12
+ shell.exec!(%Q{cp "#{source_path}" "#{dest_path}"})
13
13
  end
14
14
 
15
15
  def cp_r(shell, source_path, dest_path)
16
- shell.exec!(%Q{cp -r "#{source_path}" "#{dest_path}"}, merge_stderr: true)
16
+ shell.exec!(%Q{cp -r "#{source_path}" "#{dest_path}"})
17
17
  end
18
18
 
19
19
  def mkdir(shell, path)
20
- shell.exec!(%Q{mkdir "#{path}"}, merge_stderr: true)
20
+ shell.exec!(%Q{mkdir "#{path}"})
21
21
  end
22
22
 
23
23
  def mkdir_p(shell, path)
24
- shell.exec!(%Q{mkdir -p "#{path}"}, merge_stderr: true)
24
+ shell.exec!(%Q{mkdir -p "#{path}"})
25
25
  end
26
26
 
27
27
  def ctime(shell, path)
@@ -3,15 +3,15 @@ class KuberKit::Shell::Commands::DockerCommands
3
3
  default_args = ["--rm=true"]
4
4
  args_list = (default_args + args).join(" ")
5
5
 
6
- shell.exec!(%Q{docker image build #{build_dir} #{args_list}}, merge_stderr: true)
6
+ shell.exec!(%Q{docker image build #{build_dir} #{args_list}})
7
7
  end
8
8
 
9
9
  def tag(shell, image_name, tag_name)
10
- shell.exec!(%Q{docker tag #{image_name} #{tag_name}}, merge_stderr: true)
10
+ shell.exec!(%Q{docker tag #{image_name} #{tag_name}})
11
11
  end
12
12
 
13
13
  def push(shell, tag_name)
14
- shell.exec!(%Q{docker push #{tag_name}}, merge_stderr: true)
14
+ shell.exec!(%Q{docker push #{tag_name}})
15
15
  end
16
16
 
17
17
  def run(shell, image_name, args: nil, command: nil, detached: false, interactive: false)
@@ -25,7 +25,7 @@ class KuberKit::Shell::Commands::DockerCommands
25
25
  if interactive
26
26
  shell.interactive!(command_parts.join(" "))
27
27
  else
28
- shell.exec!(command_parts.join(" "), merge_stderr: true)
28
+ shell.exec!(command_parts.join(" "))
29
29
  end
30
30
  end
31
31
 
@@ -44,7 +44,7 @@ class KuberKit::Shell::Commands::DockerCommands
44
44
  if status
45
45
  command_parts << "--filter=\"status=#{status}\""
46
46
  end
47
- command_parts << "--filter=\"name=^/#{container_name}$\""
47
+ command_parts << "--filter=\"name=#{container_name}\""
48
48
 
49
49
  shell.exec!(command_parts.join(" "))
50
50
  end
@@ -15,7 +15,7 @@ class KuberKit::Shell::Commands::DockerComposeCommands
15
15
  if interactive
16
16
  shell.interactive!(command_parts.join(" "))
17
17
  else
18
- shell.exec!(command_parts.join(" "), merge_stderr: true)
18
+ shell.exec!(command_parts.join(" "))
19
19
  end
20
20
  end
21
21
  end