kuber_kit 0.1.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 (118) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -0
  7. data/Gemfile +8 -0
  8. data/Gemfile.lock +67 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +19 -0
  11. data/Rakefile +6 -0
  12. data/TODO.md +2 -0
  13. data/bin/console +14 -0
  14. data/bin/kit +8 -0
  15. data/example/app_data/service.yml +7 -0
  16. data/example/app_data/test.env +2 -0
  17. data/example/app_data/test.txt +1 -0
  18. data/example/configurations/review.rb +4 -0
  19. data/example/images/app_sources/Dockerfile +6 -0
  20. data/example/images/app_sources/build_context/source.rb +2 -0
  21. data/example/images/app_sources/image.rb +4 -0
  22. data/example/images/ruby/Dockerfile +1 -0
  23. data/example/images/ruby/image.rb +3 -0
  24. data/example/images/ruby_app/Dockerfile +11 -0
  25. data/example/images/ruby_app/build_context/example_file.txt +2 -0
  26. data/example/images/ruby_app/image.rb +15 -0
  27. data/example/images/ruby_app2/Dockerfile +8 -0
  28. data/example/images/ruby_app2/build_context/example_file.txt +2 -0
  29. data/example/images/ruby_app2/image.rb +4 -0
  30. data/example/infrastructure/artifacts.rb +13 -0
  31. data/example/infrastructure/env_files.rb +4 -0
  32. data/example/infrastructure/registries.rb +4 -0
  33. data/example/infrastructure/services.rb +3 -0
  34. data/example/infrastructure/templates.rb +4 -0
  35. data/kuber_kit.gemspec +35 -0
  36. data/lib/kuber_kit.rb +205 -0
  37. data/lib/kuber_kit/actions/configuration_loader.rb +74 -0
  38. data/lib/kuber_kit/actions/env_file_reader.rb +17 -0
  39. data/lib/kuber_kit/actions/image_compiler.rb +56 -0
  40. data/lib/kuber_kit/actions/kubectl_applier.rb +17 -0
  41. data/lib/kuber_kit/actions/service_applier.rb +39 -0
  42. data/lib/kuber_kit/actions/service_reader.rb +17 -0
  43. data/lib/kuber_kit/actions/template_reader.rb +17 -0
  44. data/lib/kuber_kit/artifacts_sync/abstract_artifact_resolver.rb +5 -0
  45. data/lib/kuber_kit/artifacts_sync/artifacts_updater.rb +42 -0
  46. data/lib/kuber_kit/artifacts_sync/git_artifact_resolver.rb +31 -0
  47. data/lib/kuber_kit/artifacts_sync/null_artifact_resolver.rb +7 -0
  48. data/lib/kuber_kit/cli.rb +72 -0
  49. data/lib/kuber_kit/configs.rb +42 -0
  50. data/lib/kuber_kit/container.rb +207 -0
  51. data/lib/kuber_kit/core/artifacts/abstract_artifact.rb +13 -0
  52. data/lib/kuber_kit/core/artifacts/artifact_store.rb +45 -0
  53. data/lib/kuber_kit/core/artifacts/git.rb +22 -0
  54. data/lib/kuber_kit/core/artifacts/local.rb +14 -0
  55. data/lib/kuber_kit/core/configuration.rb +20 -0
  56. data/lib/kuber_kit/core/configuration_definition.rb +67 -0
  57. data/lib/kuber_kit/core/configuration_definition_factory.rb +5 -0
  58. data/lib/kuber_kit/core/configuration_factory.rb +61 -0
  59. data/lib/kuber_kit/core/configuration_store.rb +72 -0
  60. data/lib/kuber_kit/core/context_helper/base_helper.rb +28 -0
  61. data/lib/kuber_kit/core/context_helper/context_helper_factory.rb +23 -0
  62. data/lib/kuber_kit/core/context_helper/image_helper.rb +2 -0
  63. data/lib/kuber_kit/core/context_helper/service_helper.rb +19 -0
  64. data/lib/kuber_kit/core/env_files/abstract_env_file.rb +9 -0
  65. data/lib/kuber_kit/core/env_files/artifact_file.rb +9 -0
  66. data/lib/kuber_kit/core/env_files/env_file_store.rb +45 -0
  67. data/lib/kuber_kit/core/image.rb +39 -0
  68. data/lib/kuber_kit/core/image_definition.rb +85 -0
  69. data/lib/kuber_kit/core/image_definition_factory.rb +5 -0
  70. data/lib/kuber_kit/core/image_factory.rb +40 -0
  71. data/lib/kuber_kit/core/image_store.rb +60 -0
  72. data/lib/kuber_kit/core/registries/abstract_registry.rb +25 -0
  73. data/lib/kuber_kit/core/registries/registry.rb +24 -0
  74. data/lib/kuber_kit/core/registries/registry_store.rb +49 -0
  75. data/lib/kuber_kit/core/service.rb +14 -0
  76. data/lib/kuber_kit/core/service_definition.rb +33 -0
  77. data/lib/kuber_kit/core/service_definition_factory.rb +5 -0
  78. data/lib/kuber_kit/core/service_factory.rb +17 -0
  79. data/lib/kuber_kit/core/service_store.rb +68 -0
  80. data/lib/kuber_kit/core/templates/abstract_template.rb +9 -0
  81. data/lib/kuber_kit/core/templates/artifact_file.rb +9 -0
  82. data/lib/kuber_kit/core/templates/template_store.rb +45 -0
  83. data/lib/kuber_kit/env_file_reader/abstract_env_file_reader.rb +5 -0
  84. data/lib/kuber_kit/env_file_reader/artifact_file_reader.rb +86 -0
  85. data/lib/kuber_kit/env_file_reader/reader.rb +35 -0
  86. data/lib/kuber_kit/extensions/colored_string.rb +43 -0
  87. data/lib/kuber_kit/extensions/contracts.rb +4 -0
  88. data/lib/kuber_kit/extensions/indocker_compat.rb +19 -0
  89. data/lib/kuber_kit/extensions/inspectable.rb +10 -0
  90. data/lib/kuber_kit/image_compiler/compiler.rb +21 -0
  91. data/lib/kuber_kit/image_compiler/image_build_dir_creator.rb +37 -0
  92. data/lib/kuber_kit/image_compiler/image_builder.rb +26 -0
  93. data/lib/kuber_kit/image_compiler/image_dependency_resolver.rb +40 -0
  94. data/lib/kuber_kit/image_compiler/version_tag_builder.rb +5 -0
  95. data/lib/kuber_kit/preprocessing/dir_preprocessor.rb +19 -0
  96. data/lib/kuber_kit/preprocessing/file_preprocessor.rb +33 -0
  97. data/lib/kuber_kit/preprocessing/text_preprocessor.rb +7 -0
  98. data/lib/kuber_kit/service_deployer/service_list_resolver.rb +56 -0
  99. data/lib/kuber_kit/service_deployer/service_reader.rb +20 -0
  100. data/lib/kuber_kit/shell/abstract_shell.rb +20 -0
  101. data/lib/kuber_kit/shell/bash_commands.rb +25 -0
  102. data/lib/kuber_kit/shell/command_counter.rb +19 -0
  103. data/lib/kuber_kit/shell/docker_commands.rb +16 -0
  104. data/lib/kuber_kit/shell/git_commands.rb +28 -0
  105. data/lib/kuber_kit/shell/kubectl_commands.rb +12 -0
  106. data/lib/kuber_kit/shell/local_shell.rb +64 -0
  107. data/lib/kuber_kit/shell/rsync_commands.rb +20 -0
  108. data/lib/kuber_kit/template_reader/abstract_template_reader.rb +5 -0
  109. data/lib/kuber_kit/template_reader/artifact_file_reader.rb +14 -0
  110. data/lib/kuber_kit/template_reader/reader.rb +35 -0
  111. data/lib/kuber_kit/tools/file_presence_checker.rb +25 -0
  112. data/lib/kuber_kit/tools/files_sync.rb +10 -0
  113. data/lib/kuber_kit/tools/logger_factory.rb +34 -0
  114. data/lib/kuber_kit/ui.rb +18 -0
  115. data/lib/kuber_kit/ui/interactive.rb +44 -0
  116. data/lib/kuber_kit/ui/simple.rb +75 -0
  117. data/lib/kuber_kit/version.rb +3 -0
  118. metadata +273 -0
@@ -0,0 +1,64 @@
1
+ require 'fileutils'
2
+
3
+ class KuberKit::Shell::LocalShell < KuberKit::Shell::AbstractShell
4
+ include KuberKit::Import[
5
+ "tools.logger",
6
+ "shell.command_counter"
7
+ ]
8
+
9
+ def exec!(command)
10
+ command_number = command_counter.get_number.to_s.rjust(2, "0")
11
+
12
+ logger.info("Executed command [#{command_number}]: #{command.to_s.cyan}")
13
+
14
+ result = nil
15
+ IO.popen(command, err: [:child, :out]) do |io|
16
+ result = io.read.chomp.strip
17
+ end
18
+
19
+ if result && result != ""
20
+ logger.info("Finished command [#{command_number}] with result: \n#{result.grey}")
21
+ end
22
+
23
+ if $?.exitstatus != 0
24
+ raise ShellError, "Shell command failed: #{command}\r\n#{result}"
25
+ end
26
+
27
+ result
28
+ end
29
+
30
+ def read(file_path)
31
+ File.read(file_path)
32
+ end
33
+
34
+ def write(file_path, content)
35
+ ensure_directory_exists(file_path)
36
+
37
+ File.write(file_path, content)
38
+
39
+ logger.info("Created file #{file_path.to_s.cyan}\r\n#{content.grey}")
40
+
41
+ true
42
+ end
43
+
44
+ def recursive_list_files(path, name: nil)
45
+ command = %Q{find -L #{path} -type f}
46
+ command += " -name #{name}" if name
47
+ exec!(command).split(/[\r\n]+/)
48
+ rescue => e
49
+ if e.message.include?("No such file or directory")
50
+ raise DirNotFoundError.new("Dir not found: #{path}")
51
+ else
52
+ raise e
53
+ end
54
+ end
55
+
56
+ private
57
+ def ensure_directory_exists(file_path)
58
+ dir_path = File.dirname(file_path)
59
+
60
+ unless Dir.exists?(dir_path)
61
+ FileUtils.mkdir_p(dir_path)
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,20 @@
1
+ class KuberKit::Shell::RsyncCommands
2
+ def rsync(shell, source_path, target_path, exclude: nil)
3
+ # Add a trailing slash to directory to have behavior similar to CP command
4
+ if path_is_directory?(source_path) && !source_path.end_with?("/")
5
+ source_path = "#{source_path}/"
6
+ end
7
+
8
+ args = [source_path, target_path]
9
+ if exclude
10
+ args << "--exclude=#{exclude}"
11
+ end
12
+
13
+ shell.exec!(%Q{rsync -a #{args.join(' ')}})
14
+ end
15
+
16
+ private
17
+ def path_is_directory?(path)
18
+ File.directory?(path)
19
+ end
20
+ end
@@ -0,0 +1,5 @@
1
+ class KuberKit::TemplateReader::AbstractTemplateReader
2
+ def read(shell, template)
3
+ raise KuberKit::NotImplementedError, "must be implemented"
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class KuberKit::TemplateReader::ArtifactFileReader < KuberKit::TemplateReader::AbstractTemplateReader
2
+ include KuberKit::Import[
3
+ "core.artifact_store"
4
+ ]
5
+
6
+ def read(shell, env_file)
7
+ artifact = artifact_store.get(env_file.artifact_name)
8
+
9
+ file_parts = [artifact.cloned_path, env_file.file_path].compact
10
+ file_path = File.join(*file_parts)
11
+
12
+ shell.read(file_path)
13
+ end
14
+ end
@@ -0,0 +1,35 @@
1
+ class KuberKit::TemplateReader::Reader
2
+ ReaderNotFoundError = Class.new(KuberKit::NotFoundError)
3
+
4
+ include KuberKit::Import[
5
+ "template_reader.artifact_file_reader",
6
+ ]
7
+
8
+ def use_reader(template_reader, template_class:)
9
+ @@readers ||= {}
10
+
11
+ if !template_reader.is_a?(KuberKit::TemplateReader::AbstractTemplateReader)
12
+ raise ArgumentError.new("should be an instance of KuberKit::TemplateReader::AbstractTemplateReader, got: #{template_reader.inspect}")
13
+ end
14
+
15
+ @@readers[template_class] = template_reader
16
+ end
17
+
18
+ def read(shell, template)
19
+ add_default_readers
20
+
21
+ reader = @@readers[template.class]
22
+
23
+ raise ReaderNotFoundError, "Can't find reader for template #{template}" if reader.nil?
24
+
25
+ reader.read(shell, template)
26
+ end
27
+
28
+ def add_default_readers
29
+ use_reader(artifact_file_reader, template_class: KuberKit::Core::Templates::ArtifactFile)
30
+ end
31
+
32
+ def reset!
33
+ @@readers = {}
34
+ end
35
+ end
@@ -0,0 +1,25 @@
1
+ class KuberKit::Tools::FilePresenceChecker
2
+ FileNotFound = Class.new(KuberKit::Error)
3
+
4
+ def check_file!(file_path)
5
+ unless file_exists?(file_path)
6
+ raise FileNotFound, "File not found at path: #{file_path}"
7
+ end
8
+ true
9
+ end
10
+
11
+ def file_exists?(file_path)
12
+ File.exists?(file_path)
13
+ end
14
+
15
+ def check_dir!(dir_path)
16
+ unless dir_exists?(dir_path)
17
+ raise FileNotFound, "Directory not found at path: #{dir_path}"
18
+ end
19
+ true
20
+ end
21
+
22
+ def dir_exists?(dir_path)
23
+ Dir.exists?(dir_path)
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ class KuberKit::Tools::FilesSync
2
+ include KuberKit::Import[
3
+ "shell.rsync_commands",
4
+ "shell.local_shell"
5
+ ]
6
+
7
+ def sync(from_path, to_path, exclude: nil)
8
+ rsync_commands.rsync(local_shell, from_path, to_path, exclude: exclude)
9
+ end
10
+ end
@@ -0,0 +1,34 @@
1
+ require 'logger'
2
+
3
+ class KuberKit::Tools::LoggerFactory
4
+ SEVERITY_COLORS_BY_LEVEL = {
5
+ Logger::INFO => String::Colors::GREEN,
6
+ Logger::WARN => String::Colors::PURPLE,
7
+ Logger::DEBUG => String::Colors::YELLOW,
8
+ Logger::ERROR => String::Colors::RED,
9
+ Logger::FATAL => String::Colors::PURPLE,
10
+ }
11
+
12
+ def create(stdout, level = nil)
13
+ logger = Logger.new(stdout)
14
+
15
+ logger.level = level || Logger::DEBUG
16
+
17
+ logger.formatter = proc do |severity, datetime, progname, msg|
18
+ level = Logger::SEV_LABEL.index(severity)
19
+
20
+ severity_color = SEVERITY_COLORS_BY_LEVEL[level]
21
+
22
+ severity_text = severity.to_s
23
+ severity_text = severity_text.colorize(severity_color) if severity_color
24
+
25
+ if level == Logger::INFO
26
+ "#{datetime.strftime("%Y/%m/%d %H:%M:%S").grey} #{msg}\n"
27
+ else
28
+ "#{datetime.strftime("%Y/%m/%d %H:%M:%S").grey} #{severity_text.downcase}: #{msg}\n"
29
+ end
30
+ end
31
+
32
+ logger
33
+ end
34
+ end
@@ -0,0 +1,18 @@
1
+ require 'cli/ui'
2
+
3
+ class KuberKit::UI
4
+ class TaskGroup < CLI::UI::SpinGroup
5
+ end
6
+
7
+ def init
8
+ ::CLI::UI::StdoutRouter.enable
9
+ end
10
+
11
+ def create_task_group
12
+ TaskGroup.new
13
+ end
14
+
15
+ def create_task(title, &block)
16
+ CLI::UI::Spinner.spin(title, &block)
17
+ end
18
+ end
@@ -0,0 +1,44 @@
1
+ require 'cli/ui'
2
+
3
+ class KuberKit::UI::Interactive
4
+ class TaskGroup < CLI::UI::SpinGroup
5
+ end
6
+
7
+ def create_task_group
8
+ init_if_needed
9
+ TaskGroup.new
10
+ end
11
+
12
+ def create_task(title, &block)
13
+ init_if_needed
14
+ CLI::UI::Spinner.spin(title, &block)
15
+ end
16
+
17
+ def print_info(title, text)
18
+ print_in_frame(title, text, color: :blue)
19
+ end
20
+
21
+ def print_error(title, text)
22
+ print_in_frame(title, text, color: :red)
23
+ end
24
+
25
+ def print_warning(title, text)
26
+ print_in_frame(title, text, color: :yellow)
27
+ end
28
+
29
+ private
30
+ def init
31
+ @initialized = true
32
+ ::CLI::UI::StdoutRouter.enable
33
+ end
34
+
35
+ def init_if_needed
36
+ init unless @initialized
37
+ end
38
+
39
+ def print_in_frame(title, text, color:)
40
+ CLI::UI::Frame.open(title, color: color) do
41
+ puts text
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,75 @@
1
+ class KuberKit::UI::Simple
2
+ class Task
3
+ def initialize(title, &callback)
4
+ @title = title
5
+ @callback = callback
6
+ end
7
+
8
+ def execute
9
+ if @thread
10
+ raise "Already started execution of task '#{title}'"
11
+ end
12
+
13
+ @thread = Thread.new do
14
+ puts "Start task: #{@title.green}"
15
+ @callback.call(self)
16
+ puts "Finish task: #{@title.green}"
17
+ end
18
+ end
19
+
20
+ def wait
21
+ if !@thread
22
+ raise "Task '#{title}' not started"
23
+ end
24
+ @thread.join
25
+ end
26
+
27
+ def update_title(title)
28
+ @title = title
29
+ end
30
+ end
31
+
32
+ class TaskGroup
33
+ def add(task_title, &task_block)
34
+ task = Task.new(task_title, &task_block)
35
+ task.execute
36
+ add_task(task)
37
+ end
38
+
39
+ def add_task(task)
40
+ @tasks ||= []
41
+ @tasks << task
42
+ end
43
+
44
+ def wait
45
+ @tasks.each(&:wait)
46
+ end
47
+ end
48
+
49
+ def create_task_group
50
+ TaskGroup.new
51
+ end
52
+
53
+ def create_task(title, &block)
54
+ task = Task.new(title, &block)
55
+ task.execute
56
+ task.wait
57
+ end
58
+
59
+ def print_info(title, text)
60
+ print_text(title, text, color: String::Colors::BLUE)
61
+ end
62
+
63
+ def print_error(title, text)
64
+ print_text(title, text, color: String::Colors::RED)
65
+ end
66
+
67
+ def print_warning(title, text)
68
+ print_text(title, text, color: String::Colors::YELLOW)
69
+ end
70
+
71
+ private
72
+ def print_text(title, text, color:)
73
+ puts "#{title.colorize(color)}\r\n #{text.colorize(color)}"
74
+ end
75
+ end
@@ -0,0 +1,3 @@
1
+ module KuberKit
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,273 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kuber_kit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Iskander Khaziev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-10-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: contracts-lite
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dry-auto_inject
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: thor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: cli-ui
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.17'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.17'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Docker Containers Build & Deployment
126
+ email:
127
+ - gvalmon@gmail.com
128
+ executables:
129
+ - console
130
+ - kit
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".gitignore"
135
+ - ".rspec"
136
+ - ".ruby-gemset"
137
+ - ".ruby-version"
138
+ - ".travis.yml"
139
+ - Gemfile
140
+ - Gemfile.lock
141
+ - LICENSE.txt
142
+ - README.md
143
+ - Rakefile
144
+ - TODO.md
145
+ - bin/console
146
+ - bin/kit
147
+ - example/app_data/service.yml
148
+ - example/app_data/test.env
149
+ - example/app_data/test.txt
150
+ - example/configurations/review.rb
151
+ - example/images/app_sources/Dockerfile
152
+ - example/images/app_sources/build_context/source.rb
153
+ - example/images/app_sources/image.rb
154
+ - example/images/ruby/Dockerfile
155
+ - example/images/ruby/image.rb
156
+ - example/images/ruby_app/Dockerfile
157
+ - example/images/ruby_app/build_context/example_file.txt
158
+ - example/images/ruby_app/image.rb
159
+ - example/images/ruby_app2/Dockerfile
160
+ - example/images/ruby_app2/build_context/example_file.txt
161
+ - example/images/ruby_app2/image.rb
162
+ - example/infrastructure/artifacts.rb
163
+ - example/infrastructure/env_files.rb
164
+ - example/infrastructure/registries.rb
165
+ - example/infrastructure/services.rb
166
+ - example/infrastructure/templates.rb
167
+ - kuber_kit.gemspec
168
+ - lib/kuber_kit.rb
169
+ - lib/kuber_kit/actions/configuration_loader.rb
170
+ - lib/kuber_kit/actions/env_file_reader.rb
171
+ - lib/kuber_kit/actions/image_compiler.rb
172
+ - lib/kuber_kit/actions/kubectl_applier.rb
173
+ - lib/kuber_kit/actions/service_applier.rb
174
+ - lib/kuber_kit/actions/service_reader.rb
175
+ - lib/kuber_kit/actions/template_reader.rb
176
+ - lib/kuber_kit/artifacts_sync/abstract_artifact_resolver.rb
177
+ - lib/kuber_kit/artifacts_sync/artifacts_updater.rb
178
+ - lib/kuber_kit/artifacts_sync/git_artifact_resolver.rb
179
+ - lib/kuber_kit/artifacts_sync/null_artifact_resolver.rb
180
+ - lib/kuber_kit/cli.rb
181
+ - lib/kuber_kit/configs.rb
182
+ - lib/kuber_kit/container.rb
183
+ - lib/kuber_kit/core/artifacts/abstract_artifact.rb
184
+ - lib/kuber_kit/core/artifacts/artifact_store.rb
185
+ - lib/kuber_kit/core/artifacts/git.rb
186
+ - lib/kuber_kit/core/artifacts/local.rb
187
+ - lib/kuber_kit/core/configuration.rb
188
+ - lib/kuber_kit/core/configuration_definition.rb
189
+ - lib/kuber_kit/core/configuration_definition_factory.rb
190
+ - lib/kuber_kit/core/configuration_factory.rb
191
+ - lib/kuber_kit/core/configuration_store.rb
192
+ - lib/kuber_kit/core/context_helper/base_helper.rb
193
+ - lib/kuber_kit/core/context_helper/context_helper_factory.rb
194
+ - lib/kuber_kit/core/context_helper/image_helper.rb
195
+ - lib/kuber_kit/core/context_helper/service_helper.rb
196
+ - lib/kuber_kit/core/env_files/abstract_env_file.rb
197
+ - lib/kuber_kit/core/env_files/artifact_file.rb
198
+ - lib/kuber_kit/core/env_files/env_file_store.rb
199
+ - lib/kuber_kit/core/image.rb
200
+ - lib/kuber_kit/core/image_definition.rb
201
+ - lib/kuber_kit/core/image_definition_factory.rb
202
+ - lib/kuber_kit/core/image_factory.rb
203
+ - lib/kuber_kit/core/image_store.rb
204
+ - lib/kuber_kit/core/registries/abstract_registry.rb
205
+ - lib/kuber_kit/core/registries/registry.rb
206
+ - lib/kuber_kit/core/registries/registry_store.rb
207
+ - lib/kuber_kit/core/service.rb
208
+ - lib/kuber_kit/core/service_definition.rb
209
+ - lib/kuber_kit/core/service_definition_factory.rb
210
+ - lib/kuber_kit/core/service_factory.rb
211
+ - lib/kuber_kit/core/service_store.rb
212
+ - lib/kuber_kit/core/templates/abstract_template.rb
213
+ - lib/kuber_kit/core/templates/artifact_file.rb
214
+ - lib/kuber_kit/core/templates/template_store.rb
215
+ - lib/kuber_kit/env_file_reader/abstract_env_file_reader.rb
216
+ - lib/kuber_kit/env_file_reader/artifact_file_reader.rb
217
+ - lib/kuber_kit/env_file_reader/reader.rb
218
+ - lib/kuber_kit/extensions/colored_string.rb
219
+ - lib/kuber_kit/extensions/contracts.rb
220
+ - lib/kuber_kit/extensions/indocker_compat.rb
221
+ - lib/kuber_kit/extensions/inspectable.rb
222
+ - lib/kuber_kit/image_compiler/compiler.rb
223
+ - lib/kuber_kit/image_compiler/image_build_dir_creator.rb
224
+ - lib/kuber_kit/image_compiler/image_builder.rb
225
+ - lib/kuber_kit/image_compiler/image_dependency_resolver.rb
226
+ - lib/kuber_kit/image_compiler/version_tag_builder.rb
227
+ - lib/kuber_kit/preprocessing/dir_preprocessor.rb
228
+ - lib/kuber_kit/preprocessing/file_preprocessor.rb
229
+ - lib/kuber_kit/preprocessing/text_preprocessor.rb
230
+ - lib/kuber_kit/service_deployer/service_list_resolver.rb
231
+ - lib/kuber_kit/service_deployer/service_reader.rb
232
+ - lib/kuber_kit/shell/abstract_shell.rb
233
+ - lib/kuber_kit/shell/bash_commands.rb
234
+ - lib/kuber_kit/shell/command_counter.rb
235
+ - lib/kuber_kit/shell/docker_commands.rb
236
+ - lib/kuber_kit/shell/git_commands.rb
237
+ - lib/kuber_kit/shell/kubectl_commands.rb
238
+ - lib/kuber_kit/shell/local_shell.rb
239
+ - lib/kuber_kit/shell/rsync_commands.rb
240
+ - lib/kuber_kit/template_reader/abstract_template_reader.rb
241
+ - lib/kuber_kit/template_reader/artifact_file_reader.rb
242
+ - lib/kuber_kit/template_reader/reader.rb
243
+ - lib/kuber_kit/tools/file_presence_checker.rb
244
+ - lib/kuber_kit/tools/files_sync.rb
245
+ - lib/kuber_kit/tools/logger_factory.rb
246
+ - lib/kuber_kit/ui.rb
247
+ - lib/kuber_kit/ui/interactive.rb
248
+ - lib/kuber_kit/ui/simple.rb
249
+ - lib/kuber_kit/version.rb
250
+ homepage: https://github.com/ArtStation/kuber_kit
251
+ licenses:
252
+ - MIT
253
+ metadata: {}
254
+ post_install_message:
255
+ rdoc_options: []
256
+ require_paths:
257
+ - lib
258
+ required_ruby_version: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ required_rubygems_version: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - ">="
266
+ - !ruby/object:Gem::Version
267
+ version: '0'
268
+ requirements: []
269
+ rubygems_version: 3.0.8
270
+ signing_key:
271
+ specification_version: 4
272
+ summary: Docker Containers Build & Deployment
273
+ test_files: []