kubes 0.4.7 → 0.6.2

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 (161) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +54 -8
  4. data/docs/_docs/config/hooks/kubes.md +1 -0
  5. data/docs/_docs/config/reference.md +1 -0
  6. data/docs/_docs/config/skip.md +1 -1
  7. data/docs/_docs/dsl/multiple-resources.md +6 -4
  8. data/docs/_docs/dsl/resources/job.md +62 -0
  9. data/docs/_docs/dsl/resources/secret.md +19 -2
  10. data/docs/_docs/extra-env/dsl.md +2 -2
  11. data/docs/_docs/extra-env/yaml.md +1 -1
  12. data/docs/_docs/generators.md +41 -0
  13. data/docs/_docs/helpers.md +17 -3
  14. data/docs/_docs/helpers/aws/advanced.md +10 -0
  15. data/docs/_docs/helpers/aws/advanced/secrets.md +131 -0
  16. data/docs/_docs/helpers/aws/advanced/ssm.md +78 -0
  17. data/docs/_docs/helpers/aws/secrets.md +18 -88
  18. data/docs/_docs/helpers/aws/ssm.md +20 -38
  19. data/docs/_docs/helpers/google/advanced.md +10 -0
  20. data/docs/_docs/helpers/google/advanced/secrets.md +78 -0
  21. data/docs/_docs/helpers/google/gke.md +33 -0
  22. data/docs/_docs/helpers/google/secrets.md +18 -27
  23. data/docs/_docs/helpers/google/service-account.md +8 -0
  24. data/docs/_docs/intro.md +2 -9
  25. data/docs/_docs/intro/docker-image.md +66 -0
  26. data/docs/_docs/intro/how-kubes-works.md +7 -11
  27. data/docs/_docs/layering.md +2 -0
  28. data/docs/_docs/layering/merge.md +1 -1
  29. data/docs/_docs/layering/mix.md +99 -0
  30. data/docs/_docs/learn/dsl/delete.md +10 -2
  31. data/docs/_docs/learn/dsl/review-project.md +2 -2
  32. data/docs/_docs/learn/yaml/delete.md +10 -2
  33. data/docs/_docs/learn/yaml/review-project.md +2 -2
  34. data/docs/_docs/patterns/clock-web-worker.md +3 -3
  35. data/docs/_docs/patterns/migrations.md +1 -1
  36. data/docs/_docs/patterns/multiple-envs.md +55 -0
  37. data/docs/_docs/variables.md +23 -0
  38. data/docs/_docs/variables/advanced.md +62 -0
  39. data/docs/_docs/variables/basic.md +137 -0
  40. data/docs/_docs/vs.md +10 -0
  41. data/docs/_docs/vs/custom.md +109 -0
  42. data/docs/_docs/vs/helm.md +243 -0
  43. data/docs/_docs/vs/kustomize.md +167 -0
  44. data/docs/_docs/yaml.md +2 -2
  45. data/docs/_includes/commands.html +2 -2
  46. data/docs/_includes/intro/features.md +11 -0
  47. data/docs/_includes/layering/layers.md +2 -4
  48. data/docs/_includes/sidebar.html +41 -0
  49. data/docs/_includes/vs/article.md +1 -0
  50. data/docs/_includes/vs/kubes/layering.md +10 -0
  51. data/docs/_includes/vs/kubes/structure.md +24 -0
  52. data/docs/_reference/kubes-delete.md +1 -1
  53. data/docs/_reference/kubes-exec.md +17 -1
  54. data/docs/_reference/kubes-init.md +2 -2
  55. data/docs/_reference/kubes-logs.md +2 -1
  56. data/docs/_reference/kubes-new-help.md +15 -0
  57. data/docs/_reference/kubes-new-helper.md +25 -0
  58. data/docs/_reference/kubes-new-resource.md +56 -0
  59. data/docs/_reference/kubes-new-variable.md +20 -0
  60. data/docs/_reference/kubes-new.md +26 -0
  61. data/docs/_reference/kubes-prune.md +22 -0
  62. data/docs/reference.md +2 -0
  63. data/kubes.gemspec +2 -2
  64. data/lib/kubes.rb +5 -3
  65. data/lib/kubes/auth.rb +4 -1
  66. data/lib/kubes/auth/base.rb +21 -0
  67. data/lib/kubes/auth/ecr.rb +1 -15
  68. data/lib/kubes/auth/gcr.rb +24 -0
  69. data/lib/kubes/cli.rb +9 -1
  70. data/lib/kubes/cli/apply.rb +0 -1
  71. data/lib/kubes/cli/build.rb +6 -0
  72. data/lib/kubes/cli/compile.rb +7 -0
  73. data/lib/kubes/cli/deploy.rb +1 -6
  74. data/lib/kubes/cli/exec.rb +5 -1
  75. data/lib/kubes/cli/help/exec.md +15 -0
  76. data/lib/kubes/cli/help/new/helper.md +4 -0
  77. data/lib/kubes/cli/help/new/resource.md +30 -0
  78. data/lib/kubes/cli/init.rb +1 -1
  79. data/lib/kubes/cli/new.rb +15 -0
  80. data/lib/kubes/cli/new/helper.rb +24 -0
  81. data/lib/kubes/cli/new/resource.rb +97 -0
  82. data/lib/kubes/cli/new/variable.rb +16 -0
  83. data/lib/kubes/cli/prune.rb +4 -2
  84. data/lib/kubes/cli/sequence.rb +1 -0
  85. data/lib/kubes/command.rb +7 -0
  86. data/lib/kubes/compiler.rb +19 -21
  87. data/lib/kubes/compiler/decorator/base.rb +1 -1
  88. data/lib/kubes/compiler/dsl/core/base.rb +6 -9
  89. data/lib/kubes/compiler/dsl/syntax/job.rb +217 -0
  90. data/lib/kubes/compiler/layering.rb +21 -7
  91. data/lib/kubes/compiler/shared/custom_variables.rb +38 -0
  92. data/lib/kubes/compiler/shared/helpers.rb +11 -2
  93. data/lib/kubes/compiler/shared/helpers/deprecated.rb +37 -0
  94. data/lib/kubes/compiler/shared/plugin_helpers.rb +14 -0
  95. data/lib/kubes/compiler/strategy.rb +7 -6
  96. data/lib/kubes/compiler/strategy/base.rb +59 -2
  97. data/lib/kubes/compiler/strategy/dsl.rb +0 -29
  98. data/lib/kubes/compiler/strategy/erb.rb +10 -22
  99. data/lib/kubes/compiler/util/normalize.rb +6 -3
  100. data/lib/kubes/compiler/util/yaml_dump.rb +4 -4
  101. data/lib/kubes/config.rb +14 -1
  102. data/lib/kubes/core.rb +6 -0
  103. data/lib/kubes/docker/strategy/image_name.rb +1 -1
  104. data/lib/kubes/hooks/builder.rb +20 -4
  105. data/lib/kubes/hooks/concern.rb +1 -1
  106. data/lib/kubes/kubectl/batch.rb +7 -33
  107. data/lib/kubes/kubectl/ordering.rb +42 -0
  108. data/lib/kubes/plugin.rb +14 -0
  109. data/lib/kubes/util/sh.rb +1 -1
  110. data/lib/kubes/version.rb +1 -1
  111. data/lib/templates/base/.kubes/config.rb.tt +1 -1
  112. data/lib/templates/base/.kubes/config/env/dev.rb +1 -1
  113. data/lib/templates/base/.kubes/config/env/prod.rb +1 -1
  114. data/lib/templates/dsl/.kubes/resources/web/deployment.rb +1 -1
  115. data/lib/templates/new/helper/file.rb +2 -0
  116. data/lib/templates/new/resource/dsl/backend_config.rb +10 -0
  117. data/lib/templates/new/resource/dsl/config_map.rb +5 -0
  118. data/lib/templates/new/resource/dsl/daemon_set.rb +11 -0
  119. data/lib/templates/new/resource/dsl/deployment.rb +4 -0
  120. data/lib/templates/new/resource/dsl/ingress.rb +3 -0
  121. data/lib/templates/new/resource/dsl/job.rb +2 -0
  122. data/lib/templates/new/resource/dsl/managed_certificate.rb +2 -0
  123. data/lib/templates/new/resource/dsl/namespace.rb +2 -0
  124. data/lib/templates/new/resource/dsl/network_policy.rb +7 -0
  125. data/lib/templates/new/resource/dsl/pod.rb +6 -0
  126. data/lib/templates/new/resource/dsl/role.rb +4 -0
  127. data/lib/templates/new/resource/dsl/role_binding.rb +7 -0
  128. data/lib/templates/new/resource/dsl/secret.rb +5 -0
  129. data/lib/templates/new/resource/dsl/service.rb +2 -0
  130. data/lib/templates/new/resource/dsl/service_account.rb +1 -0
  131. data/lib/templates/new/resource/yaml/backend_config.yaml +10 -0
  132. data/lib/templates/new/resource/yaml/config_map.yaml +9 -0
  133. data/lib/templates/new/resource/yaml/daemon_set.yaml +11 -0
  134. data/lib/templates/new/resource/yaml/deployment.yaml +19 -0
  135. data/lib/templates/new/resource/yaml/ingress.yaml +12 -0
  136. data/lib/templates/new/resource/yaml/job.yaml +19 -0
  137. data/lib/templates/new/resource/yaml/managed_certificate.yaml +7 -0
  138. data/lib/templates/new/resource/yaml/namespace.yaml +6 -0
  139. data/lib/templates/new/resource/yaml/network_policy.yaml +20 -0
  140. data/lib/templates/new/resource/yaml/pod.yaml +11 -0
  141. data/lib/templates/new/resource/yaml/role.yaml +13 -0
  142. data/lib/templates/new/resource/yaml/role_binding.yaml +11 -0
  143. data/lib/templates/new/resource/yaml/secret.yaml +9 -0
  144. data/lib/templates/new/resource/yaml/service.yaml +14 -0
  145. data/lib/templates/new/resource/yaml/service_account.yaml +4 -0
  146. data/lib/templates/new/variable/file.rb +1 -0
  147. data/lib/templates/yaml/.kubes/resources/base/all.yaml.tt +2 -0
  148. data/lib/templates/yaml/.kubes/resources/web/deployment.yaml.tt +1 -1
  149. data/spec/fixtures/multiple-files/{deployment-1.rb → .kubes/resources/web/deployment-1.rb} +0 -0
  150. data/spec/fixtures/multiple-files/{deployment-2.rb → .kubes/resources/web/deployment-2.rb} +0 -0
  151. data/spec/fixtures/project/.kubes/resources/{deployment.rb → web/deployment.rb} +0 -0
  152. data/spec/fixtures/project/.kubes/resources/{foobar.rb → web/empty.rb} +0 -0
  153. data/spec/fixtures/project/.kubes/resources/{service.rb → web/service.rb} +1 -1
  154. data/spec/fixtures/syntax/{network_policy.rb → .kubes/resources/web/network_policy.rb} +0 -0
  155. data/spec/fixtures/syntax/{pod.rb → .kubes/resources/web/pod.rb} +0 -0
  156. data/spec/kubes/cli/prune_spec.rb +1 -0
  157. data/spec/kubes/compiler/strategy/dsl_spec.rb +2 -2
  158. data/spec/kubes/compiler_spec.rb +6 -2
  159. data/spec/kubes/dsl/network_policy_spec.rb +1 -1
  160. data/spec/kubes/dsl/pod_spec.rb +1 -1
  161. metadata +98 -25
@@ -0,0 +1,56 @@
1
+ ---
2
+ title: kubes new resource
3
+ reference: true
4
+ ---
5
+
6
+ ## Usage
7
+
8
+ kubes new resource
9
+
10
+ ## Description
11
+
12
+ Generates Kubes Kubernetes resource definition.
13
+
14
+ ## Examples
15
+
16
+ $ kubes new resource ingress
17
+ create .kubes/resources/web/ingress.yaml
18
+ $ kubes new resource service_account
19
+ create .kubes/resources/shared/service_account.yaml
20
+ $
21
+
22
+ ## Supported Resources
23
+
24
+ Here's a list of some of the supported resources.
25
+
26
+ backend_config
27
+ config_map
28
+ daemon_set
29
+ deployment
30
+ ingress
31
+ job
32
+ managed_certificate
33
+ namespace
34
+ network_policy
35
+ pod
36
+ role_binding
37
+ role
38
+ secret
39
+ service_account
40
+ service
41
+
42
+ Refer to the source code to all the resources that the generator supports:
43
+ https://github.com/boltops-tools/kubes/blob/master/lib/templates/new/resource/yaml
44
+
45
+
46
+ ## Options
47
+
48
+ ```
49
+ a, [--app=APP] # App name
50
+ # Default: demo
51
+ y, [--force] # Bypass overwrite are you sure prompt for existing files
52
+ r, [--role=ROLE] # Role. IE: web, clock, worker, migrate, etc. Defaults to convention: web or shared when not set
53
+ t, [--type=TYPE] # Type: dsl or yaml
54
+ # Default: yaml
55
+ ```
56
+
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: kubes new variable
3
+ reference: true
4
+ ---
5
+
6
+ ## Usage
7
+
8
+ kubes new variable
9
+
10
+ ## Description
11
+
12
+ Generates kubes variable file.
13
+
14
+
15
+ ## Options
16
+
17
+ ```
18
+ y, [--force] # Bypass overwrite are you sure prompt for existing files
19
+ ```
20
+
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: kubes new
3
+ reference: true
4
+ ---
5
+
6
+ ## Usage
7
+
8
+ kubes new
9
+
10
+ ## Description
11
+
12
+ Generates new resource.
13
+
14
+ ## Subcommands
15
+
16
+ * [kubes new helper]({% link _reference/kubes-new-helper.md %}) - Generates kubes helper file.
17
+ * [kubes new resource]({% link _reference/kubes-new-resource.md %}) - Generates Kubes Kubernetes resource definition.
18
+ * [kubes new variable]({% link _reference/kubes-new-variable.md %}) - Generates kubes variable file.
19
+
20
+ ## Options
21
+
22
+ ```
23
+ [--verbose], [--no-verbose]
24
+ [--noop], [--no-noop]
25
+ ```
26
+
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: kubes prune
3
+ reference: true
4
+ ---
5
+
6
+ ## Usage
7
+
8
+ kubes prune
9
+
10
+ ## Description
11
+
12
+ Prune old resources like secret and config maps
13
+
14
+
15
+ ## Options
16
+
17
+ ```
18
+ y, [--yes], [--no-yes] # Skip are you sure prompt
19
+ [--verbose], [--no-verbose]
20
+ [--noop], [--no-noop]
21
+ ```
22
+
@@ -16,4 +16,6 @@ title: CLI Reference
16
16
  * [kubes get]({% link _reference/kubes-get.md %})
17
17
  * [kubes init]({% link _reference/kubes-init.md %})
18
18
  * [kubes logs]({% link _reference/kubes-logs.md %})
19
+ * [kubes new]({% link _reference/kubes-new.md %})
20
+ * [kubes prune]({% link _reference/kubes-prune.md %})
19
21
  * [kubes version]({% link _reference/kubes-version.md %})
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency "zeitwerk"
30
30
 
31
31
  # core helper libs
32
- spec.add_dependency "kubes_aws"
33
- spec.add_dependency "kubes_google"
32
+ spec.add_dependency "kubes_aws", "~> 0.2.0"
33
+ spec.add_dependency "kubes_google", "~> 0.3.0"
34
34
 
35
35
  spec.add_development_dependency "bundler"
36
36
  spec.add_development_dependency "byebug"
@@ -1,6 +1,10 @@
1
1
  $stdout.sync = true unless ENV["KUBES_STDOUT_SYNC"] == "0"
2
2
 
3
3
  $:.unshift(File.expand_path("../", __FILE__))
4
+
5
+ require "kubes/autoloader"
6
+ Kubes::Autoloader.setup
7
+
4
8
  require "active_support/core_ext/class"
5
9
  require "active_support/core_ext/hash"
6
10
  require "active_support/core_ext/string"
@@ -20,10 +24,8 @@ require "kubes_google"
20
24
 
21
25
  DslEvaluator.backtrace_reject = "lib/kubes"
22
26
 
23
- require "kubes/autoloader"
24
- Kubes::Autoloader.setup
25
-
26
27
  module Kubes
27
28
  class Error < StandardError; end
29
+ class MissingDockerImage < Error; end
28
30
  extend Core
29
31
  end
@@ -10,11 +10,14 @@ module Kubes
10
10
  klass.new(@image).run
11
11
  end
12
12
 
13
- # Currently only support ECR
13
+ # Currently only support ECR and GCR
14
+ # TODO: consider moving this to plugin gems
14
15
  def strategy_class
15
16
  case @image
16
17
  when /\.amazonaws\.com/ # IE: 112233445566.dkr.ecr.us-west-2.amazonaws.com/demo/sinatra
17
18
  Ecr
19
+ when /gcr\.io/
20
+ Gcr
18
21
  end
19
22
  end
20
23
  end
@@ -0,0 +1,21 @@
1
+ require "json"
2
+
3
+ class Kubes::Auth
4
+ class Base
5
+ include Kubes::Logging
6
+
7
+ def initialize(image)
8
+ @image = image
9
+ @repo_domain = "#{image.split('/').first}"
10
+ end
11
+
12
+ def ensure_dotdocker_exists
13
+ dirname = File.dirname(docker_config)
14
+ FileUtils.mkdir_p(dirname) unless File.exist?(dirname)
15
+ end
16
+
17
+ def docker_config
18
+ "#{ENV['HOME']}/.docker/config.json"
19
+ end
20
+ end
21
+ end
@@ -14,14 +14,9 @@
14
14
  # If that format changes, the update will need to be updated.
15
15
  #
16
16
  class Kubes::Auth
17
- class Ecr
17
+ class Ecr < Base
18
18
  include Kubes::AwsServices
19
19
 
20
- def initialize(image)
21
- @image = image
22
- @repo_domain = "#{image.split('/').first}"
23
- end
24
-
25
20
  def run
26
21
  auth_token = fetch_auth_token
27
22
  if File.exist?(docker_config)
@@ -42,14 +37,5 @@ class Kubes::Auth
42
37
  def fetch_auth_token
43
38
  ecr.get_authorization_token.authorization_data.first.authorization_token
44
39
  end
45
-
46
- def docker_config
47
- "#{ENV['HOME']}/.docker/config.json"
48
- end
49
-
50
- def ensure_dotdocker_exists
51
- dirname = File.dirname(docker_config)
52
- FileUtils.mkdir_p(dirname) unless File.exist?(dirname)
53
- end
54
40
  end
55
41
  end
@@ -0,0 +1,24 @@
1
+ class Kubes::Auth
2
+ class Gcr < Base
3
+ def run
4
+ authorize! unless authorized?
5
+ end
6
+
7
+ def authorize!
8
+ command = "gcloud auth configure-docker"
9
+ logger.debug "Authorizing GCR with: #{command}"
10
+ success = system(command)
11
+ unless success
12
+ logger.error "ERROR: running #{command}".color(:red)
13
+ exit $?.exitstatus if exit_on_fail
14
+ end
15
+ success
16
+ end
17
+
18
+ def authorized?
19
+ return false unless File.exist?(docker_config)
20
+ data = JSON.load(IO.read(docker_config))
21
+ !!data.dig('credHelpers', 'gcr.io')
22
+ end
23
+ end
24
+ end
@@ -26,6 +26,14 @@ module Kubes
26
26
  long_desc Help.text(:docker)
27
27
  subcommand "docker", Docker
28
28
 
29
+ desc "docker SUBCOMMAND", "Docker subcommands"
30
+ long_desc Help.text(:docker)
31
+ subcommand "docker", Docker
32
+
33
+ long_desc Help.text("new")
34
+ New.options.each { |args| option(*args) }
35
+ register(New, "new", "new", "Generates new resource.")
36
+
29
37
  desc "apply [ROLE] [RESOURCE]", "Apply the Kubernetes YAML files without building docker image"
30
38
  long_desc Help.text(:apply)
31
39
  image_option.call
@@ -48,7 +56,7 @@ module Kubes
48
56
  Compile.new(options).run
49
57
  end
50
58
 
51
- desc "delete [ROLE] [RESOURCE]", "Delete Kubernetes resources within the app folder"
59
+ desc "delete [ROLE] [RESOURCE]", "Delete Kubernetes resources in defined .kubes/resources"
52
60
  long_desc Help.text(:delete)
53
61
  image_option.call
54
62
  yes_option.call
@@ -4,7 +4,6 @@ class Kubes::CLI
4
4
  compile
5
5
  logger.info "Deploying kubes resources"
6
6
  Kubes::Kubectl::Dispatcher.new(:apply, @options).run
7
- Prune.new(@options.merge(yes: true, quiet: true)).run if Kubes.config.auto_prune # prune old secrets and config maps
8
7
  end
9
8
  end
10
9
  end
@@ -1,8 +1,14 @@
1
1
  class Kubes::CLI
2
2
  class Build < Base
3
3
  def run
4
+ return unless build?
4
5
  Kubes::Docker.new(@options, "build").run
5
6
  Kubes::Docker.new(@options, "push").run
6
7
  end
8
+
9
+ def build?
10
+ return false if @options[:build] == false || @options[:image] || Kubes.config.image
11
+ @options[:resource].nil? || @options[:resource] == "deployment"
12
+ end
7
13
  end
8
14
  end
@@ -8,9 +8,16 @@ class Kubes::CLI
8
8
  @@compiled = false
9
9
  def run
10
10
  return if @@compiled
11
+ build_docker_image
11
12
  Clean.new(@options.merge(mute: true)).run
12
13
  Kubes::Compiler.new(@options).run
13
14
  @@compiled = true
14
15
  end
16
+
17
+ # auto build docker image and push image if kubes docker build not yet called
18
+ def build_docker_image
19
+ return if File.exist?("#{Kubes.root}/.kubes/state/docker_image.txt")
20
+ Build.new(@options).run
21
+ end
15
22
  end
16
23
  end
@@ -1,13 +1,8 @@
1
1
  class Kubes::CLI
2
2
  class Deploy < Base
3
3
  def run
4
- Build.new(@options).run if build?
4
+ Build.new(@options).run
5
5
  Apply.new(@options).run # also calls Compile
6
6
  end
7
-
8
- def build?
9
- return false if @options[:build] == false || @options[:image]
10
- @options[:resource].nil? || @options[:resource] == "deployment"
11
- end
12
7
  end
13
8
  end
@@ -20,10 +20,14 @@ class Kubes::CLI
20
20
  end
21
21
 
22
22
  container = " -c #{@options[:container]}" unless @options[:container].nil?
23
- cmd = @options[:cmd].empty? ? "bash" : @options[:cmd].join(' ')
23
+ cmd = @options[:cmd].empty? ? default_exec : @options[:cmd].join(' ')
24
24
  sh("kubectl exec #{ns} -ti #{pod}#{container} -- #{cmd}")
25
25
  end
26
26
 
27
+ def default_exec
28
+ ENV['KUBES_DEFAULT_EXEC'] || "sh"
29
+ end
30
+
27
31
  def find_pod
28
32
  pod_name || deployment_pod
29
33
  end
@@ -22,3 +22,18 @@ If you have have multiple deployments in your `.kubes/resources` then the comman
22
22
  If you have have multiple containers in your pod. You can specify the specfic container with the `--container` or `-c` option. Examples:
23
23
 
24
24
  kubes exec --name web
25
+
26
+ ## Default Exec Command
27
+
28
+ The default exec command is `sh`. Example:
29
+
30
+ $ kubes exec
31
+ => kubectl exec -n demo-dev -ti web-568645f665-62j8f -- sh
32
+ /app #
33
+
34
+ You can override the default with `KUBES_DEFAULT_EXEC`. Example:
35
+
36
+ $ export KUBES_DEFAULT_EXEC=bash
37
+ $ kubes exec
38
+ => kubectl exec -n demo-dev -ti web-568645f665-62j8f -- bash
39
+ /app #
@@ -0,0 +1,4 @@
1
+ ## Examples
2
+
3
+ $ kubes new helper custom
4
+ create .kubes/helpers/custom_helper.rb
@@ -0,0 +1,30 @@
1
+ ## Examples
2
+
3
+ $ kubes new resource ingress
4
+ create .kubes/resources/web/ingress.yaml
5
+ $ kubes new resource service_account
6
+ create .kubes/resources/shared/service_account.yaml
7
+ $
8
+
9
+ ## Supported Resources
10
+
11
+ Here's a list of some of the supported resources.
12
+
13
+ backend_config
14
+ config_map
15
+ daemon_set
16
+ deployment
17
+ ingress
18
+ job
19
+ managed_certificate
20
+ namespace
21
+ network_policy
22
+ pod
23
+ role_binding
24
+ role
25
+ secret
26
+ service_account
27
+ service
28
+
29
+ Refer to the source code to all the resources that the generator supports:
30
+ https://github.com/boltops-tools/kubes/blob/master/lib/templates/new/resource/yaml
@@ -3,7 +3,7 @@ class Kubes::CLI
3
3
  def self.options
4
4
  [
5
5
  [:app, aliases: ["a"], required: true, desc: "Docker repo name. Example: web. Generates .kubes/APP/resources folder"],
6
- [:force, type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
6
+ [:force, aliases: ["y"], type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
7
7
  [:type, aliases: ["t"], default: "yaml", desc: "Type: dsl or yaml"],
8
8
  [:repo, required: true, desc: "Docker repo name. Example: user/repo. Configures .kubes/config.rb"],
9
9
  [:namespace, aliases: ["n"], desc: "Namespace to use, defaults to APP-ENV. IE: demo-dev"],
@@ -0,0 +1,15 @@
1
+ class Kubes::CLI
2
+ class New < Kubes::Command
3
+ long_desc Help.text("new/resource")
4
+ Resource.options.each { |args| option(*args) }
5
+ register(Resource, "resource", "resource", "Generates Kubes Kubernetes resource definition.")
6
+
7
+ long_desc Help.text("new/helper")
8
+ Helper.options.each { |args| option(*args) }
9
+ register(Helper, "helper", "helper", "Generates kubes helper file.")
10
+
11
+ long_desc Help.text("new/variable")
12
+ Variable.options.each { |args| option(*args) }
13
+ register(Variable, "variable", "variable", "Generates kubes variable file.")
14
+ end
15
+ end