kubes 0.7.10 → 0.8.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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/docs/Gemfile +1 -0
  4. data/docs/_config.yml +6 -0
  5. data/docs/_docs/config/app-overrides.md +7 -0
  6. data/docs/_docs/config/boot.md +46 -0
  7. data/docs/_docs/config/env.md +29 -2
  8. data/docs/_docs/config/reference.md +2 -2
  9. data/docs/_docs/config/skip.md +22 -0
  10. data/docs/_docs/helpers/aws/secret_data.md +55 -0
  11. data/docs/_docs/helpers/builtin/config-map-files.md +63 -0
  12. data/docs/_docs/helpers/builtin.md +16 -0
  13. data/docs/_docs/helpers/google/secret_data.md +55 -0
  14. data/docs/_docs/helpers.md +3 -12
  15. data/docs/{_includes/intro/install.md → _docs/install/dependencies.md} +4 -5
  16. data/docs/_docs/install/gem/custom-version.md +70 -0
  17. data/docs/_docs/install/gem.md +6 -0
  18. data/docs/_docs/install/standalone/centos.md +70 -0
  19. data/docs/_docs/install/standalone/details/permissions.md +44 -0
  20. data/docs/_docs/install/standalone/details/uninstall.md +16 -0
  21. data/docs/_docs/install/standalone/details.md +20 -0
  22. data/docs/_docs/install/standalone/macosx.md +45 -0
  23. data/docs/_docs/install/standalone/ubuntu.md +48 -0
  24. data/docs/_docs/install/standalone.md +43 -0
  25. data/docs/_docs/install.md +8 -0
  26. data/docs/_docs/learn/dsl/install.md +1 -1
  27. data/docs/_docs/learn/yaml/install.md +1 -1
  28. data/docs/_docs/patterns/central-deployer.md +38 -0
  29. data/docs/_docs/variables/advanced.md +32 -1
  30. data/docs/_docs/variables/basic.md +1 -0
  31. data/docs/_docs/vs/custom.md +2 -0
  32. data/docs/_docs/vs/helm.md +2 -0
  33. data/docs/_docs/vs/kustomize.md +2 -0
  34. data/docs/_docs/vs.md +2 -0
  35. data/docs/_docs/yaml/erb-comment.md +89 -0
  36. data/docs/_includes/config/app-overrides-cheatsheet.md +44 -0
  37. data/docs/_includes/content.html +1 -1
  38. data/docs/_includes/install/gem.md +7 -0
  39. data/docs/_includes/install/wrapper.md +9 -0
  40. data/docs/_includes/layering/layers.md +3 -0
  41. data/docs/_includes/sidebar.html +38 -4
  42. data/docs/_includes/videos/learn/vs.md +4 -0
  43. data/docs/_includes/videos/learn.md +12 -0
  44. data/docs/_includes/videos/youtube.md +1 -0
  45. data/docs/_layouts/default.html +1 -0
  46. data/docs/_sass/theme.scss +11 -0
  47. data/docs/js/scripts.js +7 -0
  48. data/kubes.gemspec +2 -2
  49. data/lib/kubes/booter.rb +26 -0
  50. data/lib/kubes/cli/init.rb +0 -1
  51. data/lib/kubes/command.rb +1 -1
  52. data/lib/kubes/compiler/layering.rb +9 -0
  53. data/lib/kubes/compiler/shared/helpers/config_map_helper.rb +35 -0
  54. data/lib/kubes/compiler/shared/helpers/docker_helper.rb +23 -0
  55. data/lib/kubes/compiler/shared/helpers/extra_helper.rb +12 -0
  56. data/lib/kubes/compiler/shared/helpers/secret_helper.rb +29 -0
  57. data/lib/kubes/compiler/shared/helpers.rb +4 -37
  58. data/lib/kubes/compiler/shared/runtime_helpers.rb +7 -0
  59. data/lib/kubes/compiler/strategy/erb/comment.rb +46 -0
  60. data/lib/kubes/compiler/strategy/erb.rb +4 -0
  61. data/lib/kubes/compiler/strategy/result.rb +13 -1
  62. data/lib/kubes/compiler.rb +2 -0
  63. data/lib/kubes/config.rb +6 -2
  64. data/lib/kubes/core.rb +4 -0
  65. data/lib/kubes/kubectl/ordering.rb +9 -6
  66. data/lib/kubes/version.rb +1 -1
  67. data/lib/kubes.rb +2 -0
  68. metadata +40 -10
  69. data/docs/_docs/intro/install.md +0 -6
@@ -0,0 +1,26 @@
1
+ module Kubes
2
+ module Booter
3
+ def boot
4
+ run_hooks
5
+ end
6
+
7
+ # Special boot hooks run super early, even before plugins are loaded.
8
+ # Useful for setting env vars and other early things.
9
+ #
10
+ # config/boot.rb
11
+ # config/boot/dev.rb
12
+ #
13
+ def run_hooks
14
+ run_hook
15
+ run_hook(Kubes.env)
16
+ end
17
+
18
+ def run_hook(env=nil)
19
+ name = env ? "boot/#{env}" : "boot"
20
+ path = "#{Kubes.root}/.kubes/#{name}.rb"
21
+ require path if File.exist?(path)
22
+ end
23
+
24
+ extend self
25
+ end
26
+ end
@@ -85,7 +85,6 @@ class Kubes::CLI
85
85
  def adjust_gitignore
86
86
  ignores = %w[
87
87
  .kubes/output
88
- .kubes/state
89
88
  .kubes/tmp
90
89
  ].map {|l| "#{l}\n"} # the readlines will have lines with \n so keep consistent for processing
91
90
  if File.exist?(".gitignore")
data/lib/kubes/command.rb CHANGED
@@ -58,7 +58,7 @@ module Kubes
58
58
 
59
59
  def check_project!(command_name)
60
60
  return if command_name.nil?
61
- return if %w[-h -v completion completion_script help init new version].include?(command_name)
61
+ return if %w[-h -v --version completion completion_script help init new version].include?(command_name)
62
62
  Kubes.check_project!
63
63
  end
64
64
 
@@ -31,6 +31,15 @@ class Kubes::Compiler
31
31
  "base",
32
32
  Kubes.env.to_s
33
33
  ]
34
+
35
+ if Kubes.app
36
+ layers += [
37
+ Kubes.app,
38
+ "#{Kubes.app}/base",
39
+ "#{Kubes.app}/#{Kubes.env}",
40
+ ]
41
+ end
42
+
34
43
  layers = add_exts(layers)
35
44
  layers.map! do |layer|
36
45
  "#{kind_path}/#{layer}"
@@ -0,0 +1,35 @@
1
+ module Kubes::Compiler::Shared::Helpers
2
+ module ConfigMapHelper
3
+ def config_map_files(options={})
4
+ indent = options[:indent] || 2
5
+
6
+ shared_config_map = "#{Kubes.root}/.kubes/resources/shared/config_map"
7
+ layers = [
8
+ [shared_config_map, "base.txt"],
9
+ [shared_config_map, "#{Kubes.env}.txt"],
10
+ ]
11
+ if Kubes.app
12
+ layers += [
13
+ [shared_config_map, Kubes.app, "base.txt"],
14
+ [shared_config_map, Kubes.app, "#{Kubes.env}.txt"],
15
+ ]
16
+ end
17
+ layers.map! { |layer| layer.compact.join('/') }
18
+ data = {}
19
+ layers.each do |path|
20
+ next unless File.exist?(path)
21
+ lines = IO.readlines(path)
22
+ lines.each do |line|
23
+ key, value = line.split('=').map(&:strip)
24
+ data[key] = value
25
+ end
26
+ end
27
+
28
+ spacing = " " * indent
29
+ lines = data.map do |key,value|
30
+ "#{spacing}#{key}: #{value}"
31
+ end
32
+ lines.join("\n")
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,23 @@
1
+ module Kubes::Compiler::Shared::Helpers
2
+ module DockerHelper
3
+ def docker_image
4
+ return @options[:image] if @options[:image] # override
5
+ return Kubes.config.image if Kubes.config.image
6
+ built_image_helper
7
+ end
8
+
9
+ def built_image
10
+ Deprecated.new.built_image
11
+ built_image_helper
12
+ end
13
+
14
+ def built_image_helper
15
+ path = Kubes.config.state.path
16
+ unless File.exist?(path)
17
+ raise Kubes::MissingDockerImage.new("Missing file with docker image built by kubes: #{path}. Try first running: kubes docker build")
18
+ end
19
+ data = JSON.load(IO.read(path))
20
+ data['image']
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ module Kubes::Compiler::Shared::Helpers
2
+ module ExtraHelper
3
+ def with_extra(value)
4
+ [value, extra].compact.join('-')
5
+ end
6
+
7
+ def extra
8
+ extra = ENV['KUBES_EXTRA']
9
+ extra&.strip&.empty? ? nil : extra # if blank string then also return nil
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ module Kubes::Compiler::Shared::Helpers
2
+ module SecretHelper
3
+ # Meant to be used by plugins. IE:
4
+ # google_secret_data and aws_secret_data
5
+ def generic_secret_data(plugin_secret_method, name, options={})
6
+ indent = options[:indent] || 2
7
+ base64 = options[:base64].nil? ? true : options[:base64]
8
+
9
+ full_data = send(plugin_secret_method, name, base64: false)
10
+ spacing = " " * indent
11
+ lines = full_data.split("\n")
12
+ new_lines = lines.map do |line|
13
+ key, value = line.split('=')
14
+ value = encode64(value) if base64
15
+ "#{spacing}#{key}: #{value}"
16
+ end
17
+ new_lines.join("\n")
18
+ end
19
+
20
+ def encode64(v)
21
+ Base64.strict_encode64(v.to_s).strip
22
+ end
23
+ alias_method :base64, :encode64
24
+
25
+ def decode64(v)
26
+ Base64.strict_decode64(v)
27
+ end
28
+ end
29
+ end
@@ -6,42 +6,9 @@ module Kubes::Compiler::Shared
6
6
  extend Kubes::Compiler::Dsl::Core::Fields
7
7
  fields "name"
8
8
 
9
- def docker_image
10
- return @options[:image] if @options[:image] # override
11
- return Kubes.config.image if Kubes.config.image
12
- built_image_helper
13
- end
14
-
15
- def built_image
16
- Deprecated.new.built_image
17
- built_image_helper
18
- end
19
-
20
- def built_image_helper
21
- path = Kubes.config.state.path
22
- unless File.exist?(path)
23
- raise Kubes::MissingDockerImage.new("Missing file with docker image built by kubes: #{path}. Try first running: kubes docker build")
24
- end
25
- data = JSON.load(IO.read(path))
26
- data['image']
27
- end
28
-
29
- def with_extra(value)
30
- [value, extra].compact.join('-')
31
- end
32
-
33
- def extra
34
- extra = ENV['KUBES_EXTRA']
35
- extra&.strip&.empty? ? nil : extra # if blank string then also return nil
36
- end
37
-
38
- def encode64(v)
39
- Base64.strict_encode64(v.to_s).strip
40
- end
41
- alias_method :base64, :encode64
42
-
43
- def decode64(v)
44
- Base64.strict_decode64(v)
45
- end
9
+ include ConfigMapHelper
10
+ include DockerHelper
11
+ include ExtraHelper
12
+ include SecretHelper
46
13
  end
47
14
  end
@@ -68,6 +68,13 @@ module Kubes::Compiler::Shared
68
68
  "#{role}/#{kind}/base.rb",
69
69
  "#{role}/#{kind}/#{Kubes.env}.rb",
70
70
  ]
71
+ if Kubes.app
72
+ app_layers = ["#{Kubes.app}.rb"]
73
+ app_layers += layers.map do |path|
74
+ "#{Kubes.app}/#{path}"
75
+ end
76
+ layers += app_layers
77
+ end
71
78
 
72
79
  layers.each do |layer|
73
80
  path = "#{Kubes.root}/.kubes/variables/#{layer}"
@@ -0,0 +1,46 @@
1
+ # Processes the ERB files and looks for comments like
2
+ #
3
+ # #ERB if @testvar
4
+ # - "some yaml"
5
+ # #ERB end
6
+ #
7
+ class Kubes::Compiler::Strategy::Erb
8
+ class Comment
9
+ extend Memoist
10
+
11
+ def initialize(path)
12
+ @path = path
13
+ end
14
+
15
+ def lines
16
+ IO.readlines(@path)
17
+ end
18
+ memoize :lines
19
+
20
+ def process?
21
+ !!lines.detect { |l| l.include?('#ERB') }
22
+ end
23
+
24
+ def process
25
+ new_lines = lines.map do |line|
26
+ md = line.match(/(.*)#ERB(.*)/)
27
+ if md
28
+ "#{md[1]}<%#{md[2]} %>\n"
29
+ else
30
+ line
31
+ end
32
+ end
33
+ content = new_lines.join('')
34
+ IO.write(erb_path, content)
35
+ erb_path
36
+ end
37
+
38
+ def clean
39
+ FileUtils.rm_f(erb_path) unless ENV['KUBES_KEEP_ERB']
40
+ end
41
+
42
+ def erb_path
43
+ "#{@path}.erb"
44
+ end
45
+ end
46
+ end
@@ -17,7 +17,11 @@ class Kubes::Compiler::Strategy
17
17
  def render_result(path)
18
18
  return unless File.exist?(path)
19
19
 
20
+ comment = Comment.new(path)
21
+ path = comment.process if comment.process?
20
22
  yaml = RenderMePretty.result(path, context: self)
23
+ comment.clean if comment.process?
24
+
21
25
  result = yaml_load(path, yaml)
22
26
  # in case of blank yaml doc a Boolean false is returned. else Hash or Array is returned
23
27
  %w[Array Hash].include?(result.class.to_s) ? result : {}
@@ -21,8 +21,20 @@ class Kubes::Compiler::Strategy
21
21
  end
22
22
 
23
23
  def content
24
- result = @data.size == 1 ? @data.first : @data
24
+ data = filter_skip(@data)
25
+ return if data.empty?
26
+ result = data.size == 1 ? data.first : data
25
27
  yaml_dump(result)
26
28
  end
29
+
30
+ def skip?
31
+ content.nil?
32
+ end
33
+
34
+ def filter_skip(data)
35
+ data.reject do |item|
36
+ item.dig('kubes', 'skip')
37
+ end
38
+ end
27
39
  end
28
40
  end
@@ -38,6 +38,8 @@ module Kubes
38
38
  end
39
39
 
40
40
  def write(result)
41
+ return if config_skip?(result.filename)
42
+ return if result.skip?
41
43
  result.decorate!(:post)
42
44
  filename, content = result.filename, result.content
43
45
  dest = "#{Kubes.root}/.kubes/output/#{filename}"
data/lib/kubes/config.rb CHANGED
@@ -18,7 +18,7 @@ module Kubes
18
18
  # Auto-switching options
19
19
  config.kubectl = ActiveSupport::OrderedOptions.new
20
20
  config.kubectl.context = nil
21
- config.kubectl.context_keep = true # after switching context keep it
21
+ config.kubectl.context_keep = false # after switching context keep it
22
22
 
23
23
  # whether or not continue if the kubectl command fails
24
24
  config.kubectl.exit_on_fail = ActiveSupport::OrderedOptions.new
@@ -39,7 +39,7 @@ module Kubes
39
39
  config.skip = []
40
40
 
41
41
  config.state = ActiveSupport::OrderedOptions.new
42
- config.state.path = "#{Kubes.root}/.kubes/state/#{Kubes.env}/data.json"
42
+ config.state.path = ["#{Kubes.root}/.kubes/tmp/state", Kubes.app, "#{Kubes.env}/data.json"].compact.join('/')
43
43
 
44
44
  config.suffix_hash = true # append suffix hash to ConfigMap and Secret
45
45
 
@@ -95,6 +95,10 @@ module Kubes
95
95
  def load_configs
96
96
  evaluate_file(".kubes/config.rb")
97
97
  evaluate_file(".kubes/config/env/#{Kubes.env}.rb")
98
+ if Kubes.app
99
+ evaluate_file(".kubes/config/env/#{Kubes.app}.rb")
100
+ evaluate_file(".kubes/config/env/#{Kubes.app}/#{Kubes.env}.rb")
101
+ end
98
102
  Kubes::Plugin.plugins.each do |klass|
99
103
  # klass: IE: KubesAws, KubesGoogle
100
104
  name = klass.to_s.underscore.sub('kubes_','') # kubes_google => google
data/lib/kubes/core.rb CHANGED
@@ -2,6 +2,10 @@ module Kubes
2
2
  module Core
3
3
  extend Memoist
4
4
 
5
+ def app
6
+ ENV['KUBES_APP']
7
+ end
8
+
5
9
  def env
6
10
  ENV['KUBES_ENV'] || "dev"
7
11
  end
@@ -13,20 +13,23 @@ class Kubes::Kubectl
13
13
  "#{role_i}/#{kind_i}"
14
14
  end
15
15
 
16
- sorted = filter_files(sorted)
16
+ sorted = filter_skip(sorted)
17
17
 
18
18
  @name == "delete" ? sorted.reverse : sorted
19
19
  end
20
20
 
21
- def filter_files(sorted)
22
- skip = Kubes.config.skip
23
- skip += ENV['KUBES_SKIP'].split(' ') if ENV['KUBES_SKIP']
24
- return sorted if skip.empty?
21
+ def filter_skip(sorted)
25
22
  sorted.reject do |file|
26
- skip.detect { |text| file.include?(text) }
23
+ config_skip?(file)
27
24
  end
28
25
  end
29
26
 
27
+ def config_skip?(file)
28
+ skip = Kubes.config.skip
29
+ skip += ENV['KUBES_SKIP'].split(' ') if ENV['KUBES_SKIP']
30
+ !!skip.detect { |pattern| file.include?(pattern) }
31
+ end
32
+
30
33
  # type: kinds or roles
31
34
  # value: Examples: kind: deployment, role: web
32
35
  def index_for(type, value)
data/lib/kubes/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kubes
2
- VERSION = "0.7.10"
2
+ VERSION = "0.8.3"
3
3
  end
data/lib/kubes.rb CHANGED
@@ -31,3 +31,5 @@ module Kubes
31
31
  class MissingDockerImage < Error; end
32
32
  extend Core
33
33
  end
34
+
35
+ Kubes::Booter.boot
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.10
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-18 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -154,30 +154,30 @@ dependencies:
154
154
  name: kubes_aws
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.3.1
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.3.1
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: kubes_google
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: 0.3.5
173
+ version: 0.3.8
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: 0.3.5
180
+ version: 0.3.8
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: bundler
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -287,9 +287,11 @@ files:
287
287
  - docs/_config.yml
288
288
  - docs/_docs/ci/cloudbuild.md
289
289
  - docs/_docs/config.md
290
+ - docs/_docs/config/app-overrides.md
290
291
  - docs/_docs/config/args.md
291
292
  - docs/_docs/config/args/docker.md
292
293
  - docs/_docs/config/args/kubectl.md
294
+ - docs/_docs/config/boot.md
293
295
  - docs/_docs/config/builder.md
294
296
  - docs/_docs/config/docker.md
295
297
  - docs/_docs/config/env.md
@@ -332,20 +334,34 @@ files:
332
334
  - docs/_docs/helpers/aws/advanced/secrets.md
333
335
  - docs/_docs/helpers/aws/advanced/ssm.md
334
336
  - docs/_docs/helpers/aws/iam-role.md
337
+ - docs/_docs/helpers/aws/secret_data.md
335
338
  - docs/_docs/helpers/aws/secrets.md
336
339
  - docs/_docs/helpers/aws/ssm.md
340
+ - docs/_docs/helpers/builtin.md
341
+ - docs/_docs/helpers/builtin/config-map-files.md
337
342
  - docs/_docs/helpers/custom.md
338
343
  - docs/_docs/helpers/google.md
339
344
  - docs/_docs/helpers/google/advanced.md
340
345
  - docs/_docs/helpers/google/advanced/secrets.md
341
346
  - docs/_docs/helpers/google/gke.md
347
+ - docs/_docs/helpers/google/secret_data.md
342
348
  - docs/_docs/helpers/google/secrets.md
343
349
  - docs/_docs/helpers/google/service-account.md
350
+ - docs/_docs/install.md
351
+ - docs/_docs/install/dependencies.md
352
+ - docs/_docs/install/gem.md
353
+ - docs/_docs/install/gem/custom-version.md
354
+ - docs/_docs/install/standalone.md
355
+ - docs/_docs/install/standalone/centos.md
356
+ - docs/_docs/install/standalone/details.md
357
+ - docs/_docs/install/standalone/details/permissions.md
358
+ - docs/_docs/install/standalone/details/uninstall.md
359
+ - docs/_docs/install/standalone/macosx.md
360
+ - docs/_docs/install/standalone/ubuntu.md
344
361
  - docs/_docs/intro.md
345
362
  - docs/_docs/intro/concepts.md
346
363
  - docs/_docs/intro/docker-image.md
347
364
  - docs/_docs/intro/how-kubes-works.md
348
- - docs/_docs/intro/install.md
349
365
  - docs/_docs/intro/ordering.md
350
366
  - docs/_docs/intro/ordering/custom.md
351
367
  - docs/_docs/intro/structure.md
@@ -380,6 +396,7 @@ files:
380
396
  - docs/_docs/misc/separate-steps.md
381
397
  - docs/_docs/next-steps.md
382
398
  - docs/_docs/patterns.md
399
+ - docs/_docs/patterns/central-deployer.md
383
400
  - docs/_docs/patterns/clock-web-worker.md
384
401
  - docs/_docs/patterns/migrations.md
385
402
  - docs/_docs/patterns/multiple-envs.md
@@ -399,11 +416,13 @@ files:
399
416
  - docs/_docs/vs/helm.md
400
417
  - docs/_docs/vs/kustomize.md
401
418
  - docs/_docs/yaml.md
419
+ - docs/_docs/yaml/erb-comment.md
402
420
  - docs/_docs/yaml/multiple-files.md
403
421
  - docs/_docs/yaml/multiple-resources.md
404
422
  - docs/_includes/banner/foot.html
405
423
  - docs/_includes/banner/head.html
406
424
  - docs/_includes/commands.html
425
+ - docs/_includes/config/app-overrides-cheatsheet.md
407
426
  - docs/_includes/config/hooks/generator.md
408
427
  - docs/_includes/config/hooks/options.md
409
428
  - docs/_includes/content.html
@@ -416,8 +435,9 @@ files:
416
435
  - docs/_includes/header.html
417
436
  - docs/_includes/helpers/base64.md
418
437
  - docs/_includes/helpers/generator.md
438
+ - docs/_includes/install/gem.md
439
+ - docs/_includes/install/wrapper.md
419
440
  - docs/_includes/intro/features.md
420
- - docs/_includes/intro/install.md
421
441
  - docs/_includes/js.html
422
442
  - docs/_includes/kubes-steps.md
423
443
  - docs/_includes/layering/layers.md
@@ -431,6 +451,9 @@ files:
431
451
  - docs/_includes/reference.md
432
452
  - docs/_includes/sidebar.html
433
453
  - docs/_includes/variables/generator.md
454
+ - docs/_includes/videos/learn.md
455
+ - docs/_includes/videos/learn/vs.md
456
+ - docs/_includes/videos/youtube.md
434
457
  - docs/_includes/vs/article.md
435
458
  - docs/_includes/vs/kubes/layering.md
436
459
  - docs/_includes/vs/kubes/structure.md
@@ -487,6 +510,7 @@ files:
487
510
  - docs/img/logos/kubes-white.png
488
511
  - docs/index.html
489
512
  - docs/js/app.js
513
+ - docs/js/scripts.js
490
514
  - docs/opal/app.rb
491
515
  - docs/opal/pager.rb
492
516
  - docs/opal/sidebar.rb
@@ -579,6 +603,7 @@ files:
579
603
  - lib/kubes/auth/gcr.rb
580
604
  - lib/kubes/autoloader.rb
581
605
  - lib/kubes/aws_services.rb
606
+ - lib/kubes/booter.rb
582
607
  - lib/kubes/cli.rb
583
608
  - lib/kubes/cli/apply.rb
584
609
  - lib/kubes/cli/base.rb
@@ -644,12 +669,17 @@ files:
644
669
  - lib/kubes/compiler/dsl/syntax/service_account.rb
645
670
  - lib/kubes/compiler/layering.rb
646
671
  - lib/kubes/compiler/shared/helpers.rb
672
+ - lib/kubes/compiler/shared/helpers/config_map_helper.rb
647
673
  - lib/kubes/compiler/shared/helpers/deprecated.rb
674
+ - lib/kubes/compiler/shared/helpers/docker_helper.rb
675
+ - lib/kubes/compiler/shared/helpers/extra_helper.rb
676
+ - lib/kubes/compiler/shared/helpers/secret_helper.rb
648
677
  - lib/kubes/compiler/shared/runtime_helpers.rb
649
678
  - lib/kubes/compiler/strategy.rb
650
679
  - lib/kubes/compiler/strategy/base.rb
651
680
  - lib/kubes/compiler/strategy/dispatcher.rb
652
681
  - lib/kubes/compiler/strategy/erb.rb
682
+ - lib/kubes/compiler/strategy/erb/comment.rb
653
683
  - lib/kubes/compiler/strategy/erb/yaml_error.rb
654
684
  - lib/kubes/compiler/strategy/pass.rb
655
685
  - lib/kubes/compiler/strategy/result.rb
@@ -1,6 +0,0 @@
1
- ---
2
- title: Installation
3
- ---
4
-
5
- {% include intro/install.md %}
6
-