kuber_kit 1.1.8 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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