kuber_kit 0.2.8 → 0.2.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4caab78fa6712fb2e509f29078f209fe491f35973a973a941143feed08f41d1c
4
- data.tar.gz: 4aa7e98355e2e961d963026c640422a4d90deb802a0ffadfd4d938781527ab7f
3
+ metadata.gz: 050f5ef4e2ef34f21bd8d5d92593717770a82c54c40d929cdce949a9f2735171
4
+ data.tar.gz: 250684c19fc240e0f243ad3c5688cd170912b26c49559569d12717a0bd1655fb
5
5
  SHA512:
6
- metadata.gz: '08ad78c315e7e7900f668707f96ea61e9a200f90c5ae7f9d94a54835540a697549e763692c73734631f03df2d76c53d9eef7bff4e019a003b23b63baf3499902'
7
- data.tar.gz: e347e3b630580b7476fa67a4434ef870b897979d2322a73e32027346933be12f37b7f1212426e9e806833074e7c3cb655b5bed930c6556c30f1288ec49dec45d
6
+ metadata.gz: 3b80414736ee18eb858e383dde9219468b20953d98bbc61439974683b0a0287758e6a039719783ee6c132b94fa999c1e3f4eb9c6c020939313d29d100dc365c3
7
+ data.tar.gz: e7a7b01fea7a033bf14755dd597ca85079d51e235855c722c5ca8ddba1b25838d70469c2ae4089aca77b48394e5aca52dbcfdb9ef0706892a61437a3eaf8e7a9
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kuber_kit (0.2.8)
4
+ kuber_kit (0.2.9)
5
5
  cli-ui
6
6
  contracts-lite
7
7
  dry-auto_inject
data/TODO.md CHANGED
@@ -1,9 +1,10 @@
1
+ - list services and require confirmation before deployment
2
+ - kit attach should list available deployments/pods, and ask for specific container if it has multiple containers
3
+ - add kit logs support, should work similar to kit attach
4
+ - allow deploying only services enabled for specific configuration
1
5
  - find a way to always deploy some service, e.g. for migrations and env_files
2
6
  - allow setting default configuration for kuberkit using env variable
3
- - add ability to set container health checks
7
+ - add ability to set container health checks
4
8
  - implement interactive shell.exec!
5
- - allow deploying only services enabled for specific configuration
6
- - list services and require confirmation before deployment
7
- - add build vars support (use images instead of containers)
8
9
  - template should be able to set default attributes
9
10
  - template should be able to depend on image?
@@ -8,4 +8,4 @@ COPY README.md README.md
8
8
 
9
9
  RUN ruby /app/source.rb
10
10
 
11
- COPY example_file.txt example_file.txt
11
+ COPY example_file.txt <%= build_vars.example_file_name %>
@@ -2,6 +2,9 @@ KuberKit
2
2
  .define_image(:ruby_app)
3
3
  .registry(:default)
4
4
  .depends_on(:ruby, :app_sources)
5
+ .build_vars({
6
+ example_file_name: "example.txt"
7
+ })
5
8
  .before_build do |context_helper, build_dir|
6
9
  # copy file: local artifact
7
10
  source_path = context_helper.artifact_path(:kuber_kit_example_data, "test.txt")
@@ -57,7 +57,7 @@ module KuberKit
57
57
  autoload :ImageHelper, 'core/context_helper/image_helper'
58
58
  autoload :ServiceHelper, 'core/context_helper/service_helper'
59
59
  autoload :ContextHelperFactory, 'core/context_helper/context_helper_factory'
60
- autoload :ContextArgs, 'core/context_helper/context_args'
60
+ autoload :ContextVars, 'core/context_helper/context_vars'
61
61
  end
62
62
 
63
63
  module Registries
@@ -217,7 +217,7 @@ module KuberKit
217
217
  end
218
218
 
219
219
  def global_build_vars
220
- KuberKit::Core::ContextHelper::ContextArgs.new(current_configuration.global_build_vars)
220
+ KuberKit::Core::ContextHelper::ContextVars.new(current_configuration.global_build_vars)
221
221
  end
222
222
 
223
223
  def add_registry(registry)
@@ -56,6 +56,11 @@ class KuberKit::Actions::ConfigurationLoader
56
56
 
57
57
  ui.create_task("Loading image definitions") do |task|
58
58
  files = image_store.load_definitions(images_path)
59
+
60
+ configs.additional_images_paths.each do |path|
61
+ files += image_store.load_definitions(path)
62
+ end
63
+
59
64
  task.update_title("Loaded #{files.count} image definitions")
60
65
  end
61
66
 
@@ -4,7 +4,8 @@ class KuberKit::Configs
4
4
  AVAILABLE_CONFIGS = [
5
5
  :image_dockerfile_name, :image_build_context_dir, :image_tag, :docker_ignore_list, :image_compile_dir,
6
6
  :kuber_kit_dirname, :kuber_kit_min_version, :images_dirname, :services_dirname, :infra_dirname, :configurations_dirname,
7
- :artifact_clone_dir, :service_config_dir, :deploy_strategy, :compile_simultaneous_limit
7
+ :artifact_clone_dir, :service_config_dir, :deploy_strategy, :compile_simultaneous_limit,
8
+ :additional_images_paths
8
9
  ]
9
10
  DOCKER_IGNORE_LIST = [
10
11
  'Dockerfile',
@@ -48,6 +49,7 @@ class KuberKit::Configs
48
49
  set :service_config_dir, "/tmp/kuber_kit/services"
49
50
  set :deploy_strategy, :kubernetes
50
51
  set :compile_simultaneous_limit, 5
52
+ set :additional_images_paths, []
51
53
  end
52
54
 
53
55
  def items
@@ -35,4 +35,9 @@ class KuberKit::Core::Configuration
35
35
  def service_attributes(service_name)
36
36
  services_attributes[service_name.to_sym] || {}
37
37
  end
38
+
39
+ def global_build_args
40
+ puts "WARNING: global_build_args is deprecated, please use global_build_vars instead"
41
+ global_build_vars
42
+ end
38
43
  end
@@ -5,12 +5,13 @@ class KuberKit::Core::ContextHelper::ContextHelperFactory
5
5
  env_file_reader: "env_file_reader.action_handler"
6
6
  ]
7
7
 
8
- def build_image_context(shell)
8
+ def build_image_context(shell, image)
9
9
  KuberKit::Core::ContextHelper::ImageHelper.new(
10
10
  image_store: image_store,
11
11
  artifact_store: artifact_store,
12
12
  shell: shell,
13
- env_file_reader: env_file_reader
13
+ env_file_reader: env_file_reader,
14
+ image: image
14
15
  )
15
16
  end
16
17
 
@@ -1,8 +1,8 @@
1
- class KuberKit::Core::ContextHelper::ContextArgs
1
+ class KuberKit::Core::ContextHelper::ContextVars
2
2
  attr_reader :parent, :parent_name
3
3
 
4
- def initialize(context_args, parent_name = nil, parent = nil)
5
- @context_args = context_args
4
+ def initialize(context_vars, parent_name = nil, parent = nil)
5
+ @context_vars = context_vars
6
6
  @parent_name = parent_name
7
7
  @parent = parent
8
8
  end
@@ -12,8 +12,8 @@ class KuberKit::Core::ContextHelper::ContextArgs
12
12
  raise ArgumentError.new("context args does not accept any arguments")
13
13
  end
14
14
 
15
- value = @context_args.fetch(name) do
16
- raise(KuberKit::Error, "build arg '#{format_arg(name)}' is not defined, available args: #{@context_args.inspect}")
15
+ value = @context_vars.fetch(name) do
16
+ raise(KuberKit::Error, "build arg '#{format_arg(name)}' is not defined, available args: #{@context_vars.inspect}")
17
17
  end
18
18
 
19
19
  if value.is_a?(Hash)
@@ -1,2 +1,19 @@
1
1
  class KuberKit::Core::ContextHelper::ImageHelper < KuberKit::Core::ContextHelper::BaseHelper
2
+ def initialize(image_store:, artifact_store:, shell:, env_file_reader:, image:)
3
+ super(
4
+ image_store: image_store,
5
+ artifact_store: artifact_store,
6
+ shell: shell,
7
+ env_file_reader: env_file_reader
8
+ )
9
+ @image = image
10
+ end
11
+
12
+ def image_name
13
+ @image.name.to_s
14
+ end
15
+
16
+ def build_vars
17
+ KuberKit::Core::ContextHelper::ContextVars.new(@image.build_vars)
18
+ end
2
19
  end
@@ -66,14 +66,14 @@ class KuberKit::Core::ImageDefinition
66
66
  self
67
67
  end
68
68
 
69
- def before_build(&block)
70
- @before_build_callback = block
69
+ def before_build(lambda_arg = nil, &block)
70
+ @before_build_callback = lambda_arg || block
71
71
 
72
72
  self
73
73
  end
74
74
 
75
- def after_build(&block)
76
- @after_build_callback = block
75
+ def after_build(lambda_arg = nil, &block)
76
+ @after_build_callback = lambda_arg || block
77
77
 
78
78
  self
79
79
  end
@@ -14,6 +14,10 @@ module KuberKit
14
14
  def build_configuration(configuration_name)
15
15
  define_configuration(configuration_name)
16
16
  end
17
+
18
+ def configuration
19
+ current_configuration
20
+ end
17
21
  end
18
22
  end
19
23
  Indocker = KuberKit
@@ -9,7 +9,7 @@ class KuberKit::ImageCompiler::Compiler
9
9
  def compile(shell, image, builds_dir)
10
10
  image_build_dir = File.join(builds_dir, image.name.to_s)
11
11
 
12
- context_helper = context_helper_factory.build_image_context(shell)
12
+ context_helper = context_helper_factory.build_image_context(shell, image)
13
13
  image_build_dir_creator.create(shell, image, image_build_dir, context_helper: context_helper)
14
14
 
15
15
  image_builder.build(shell, image, image_build_dir, context_helper: context_helper)
@@ -1,3 +1,3 @@
1
1
  module KuberKit
2
- VERSION = "0.2.8"
2
+ VERSION = "0.2.9"
3
3
  end
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: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Iskander Khaziev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-07 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: contracts-lite
@@ -212,8 +212,8 @@ files:
212
212
  - lib/kuber_kit/core/configuration_factory.rb
213
213
  - lib/kuber_kit/core/configuration_store.rb
214
214
  - lib/kuber_kit/core/context_helper/base_helper.rb
215
- - lib/kuber_kit/core/context_helper/context_args.rb
216
215
  - lib/kuber_kit/core/context_helper/context_helper_factory.rb
216
+ - lib/kuber_kit/core/context_helper/context_vars.rb
217
217
  - lib/kuber_kit/core/context_helper/image_helper.rb
218
218
  - lib/kuber_kit/core/context_helper/service_helper.rb
219
219
  - lib/kuber_kit/core/env_files/abstract_env_file.rb