dapp 0.10.2 → 0.36.24

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 (287) hide show
  1. checksums.yaml +5 -5
  2. data/bin/dapp +77 -15
  3. data/config/en/common.yml +20 -11
  4. data/config/en/net_status.yml +108 -27
  5. data/lib/dapp/cli/cli.rb +1 -0
  6. data/lib/dapp/cli/command/base.rb +111 -0
  7. data/lib/dapp/cli/command/sample/base.rb +28 -0
  8. data/lib/dapp/cli/command/sample/create.rb +24 -0
  9. data/lib/dapp/cli/command/sample/list.rb +25 -0
  10. data/lib/dapp/cli/command/sample.rb +20 -0
  11. data/lib/dapp/cli/command/slug.rb +26 -0
  12. data/lib/dapp/cli/command/update.rb +65 -0
  13. data/lib/dapp/cli/options/ssh.rb +18 -0
  14. data/lib/dapp/cli/options/tag.rb +51 -0
  15. data/lib/dapp/cli.rb +11 -3
  16. data/lib/dapp/config/config.rb +21 -0
  17. data/lib/dapp/config/directive/base.rb +100 -3
  18. data/lib/dapp/core_ext/hash.rb +14 -0
  19. data/lib/dapp/core_ext/pathname.rb +6 -4
  20. data/lib/dapp/dapp/chef.rb +1 -9
  21. data/lib/dapp/dapp/command/common.rb +24 -0
  22. data/lib/dapp/dapp/command/sample/common.rb +54 -0
  23. data/lib/dapp/dapp/command/sample/create.rb +57 -0
  24. data/lib/dapp/dapp/command/sample/list.rb +13 -0
  25. data/lib/dapp/dapp/command/slug.rb +11 -0
  26. data/lib/dapp/dapp/dapp_config.rb +85 -0
  27. data/lib/dapp/dapp/dappfile.rb +108 -27
  28. data/lib/dapp/dapp/deps/base.rb +9 -32
  29. data/lib/dapp/dapp/deps/common.rb +26 -0
  30. data/lib/dapp/dapp/deps/gitartifact.rb +2 -20
  31. data/lib/dapp/dapp/deps/toolchain.rb +11 -0
  32. data/lib/dapp/dapp/git_artifact.rb +6 -4
  33. data/lib/dapp/dapp/lock.rb +6 -5
  34. data/lib/dapp/dapp/logging/base.rb +32 -20
  35. data/lib/dapp/dapp/logging/i18n.rb +5 -1
  36. data/lib/dapp/dapp/logging/process.rb +6 -6
  37. data/lib/dapp/dapp/option_tags.rb +98 -0
  38. data/lib/dapp/dapp/ruby2go.rb +130 -0
  39. data/lib/dapp/dapp/sentry.rb +97 -0
  40. data/lib/dapp/dapp/shellout/base.rb +26 -18
  41. data/lib/dapp/dapp/shellout/streaming.rb +2 -2
  42. data/lib/dapp/dapp/slug.rb +12 -0
  43. data/lib/dapp/dapp/ssh_agent.rb +25 -7
  44. data/lib/dapp/dapp.rb +192 -41
  45. data/lib/dapp/deployment.rb +1 -0
  46. data/lib/dapp/dimg/artifact.rb +12 -4
  47. data/lib/dapp/dimg/build/stage/artifact_base.rb +26 -30
  48. data/lib/dapp/dimg/build/stage/artifact_default.rb +50 -28
  49. data/lib/dapp/dimg/build/stage/base.rb +187 -52
  50. data/lib/dapp/dimg/build/stage/before_install.rb +4 -15
  51. data/lib/dapp/dimg/build/stage/before_install_artifact.rb +4 -0
  52. data/lib/dapp/dimg/build/stage/before_setup.rb +1 -20
  53. data/lib/dapp/dimg/build/stage/build_artifact.rb +1 -20
  54. data/lib/dapp/dimg/build/stage/docker_instructions.rb +5 -4
  55. data/lib/dapp/dimg/build/stage/from.rb +62 -9
  56. data/lib/dapp/dimg/build/stage/ga_archive.rb +14 -1
  57. data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +1 -5
  58. data/lib/dapp/dimg/build/stage/ga_base.rb +5 -35
  59. data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +15 -34
  60. data/lib/dapp/dimg/build/stage/ga_related_base.rb +21 -0
  61. data/lib/dapp/dimg/build/stage/import_artifact.rb +22 -11
  62. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +6 -2
  63. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +6 -2
  64. data/lib/dapp/dimg/build/stage/install/install.rb +1 -19
  65. data/lib/dapp/dimg/build/stage/instructions.rb +27 -0
  66. data/lib/dapp/dimg/build/stage/mod/group.rb +19 -7
  67. data/lib/dapp/dimg/build/stage/mod/logging.rb +15 -19
  68. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +24 -1
  69. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +6 -2
  70. data/lib/dapp/dimg/build/stage/setup/setup.rb +1 -19
  71. data/lib/dapp/dimg/builder/ansible.rb +5 -0
  72. data/lib/dapp/dimg/builder/chef/cookbook.rb +8 -8
  73. data/lib/dapp/dimg/builder/chef.rb +29 -16
  74. data/lib/dapp/dimg/builder/none.rb +1 -34
  75. data/lib/dapp/dimg/builder/ruby2go.rb +57 -0
  76. data/lib/dapp/dimg/builder/shell.rb +1 -20
  77. data/lib/dapp/dimg/cli/cli.rb +2 -1
  78. data/lib/dapp/dimg/cli/command/base.rb +24 -0
  79. data/lib/dapp/dimg/cli/command/dimg/bp.rb +60 -0
  80. data/lib/dapp/dimg/cli/command/dimg/build.rb +43 -0
  81. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +9 -4
  82. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
  83. data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +5 -5
  84. data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +4 -6
  85. data/lib/dapp/dimg/cli/command/dimg/cleanup_repo.rb +47 -0
  86. data/lib/dapp/dimg/cli/command/dimg/flush_local.rb +24 -0
  87. data/lib/dapp/dimg/cli/command/dimg/flush_repo.rb +36 -0
  88. data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +6 -3
  89. data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
  90. data/lib/dapp/dimg/cli/command/dimg/push.rb +39 -0
  91. data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +30 -15
  92. data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
  93. data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +12 -3
  94. data/lib/dapp/dimg/cli/command/dimg/stages/base.rb +13 -0
  95. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +13 -9
  96. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +6 -8
  97. data/lib/dapp/dimg/cli/command/dimg/stages/flush_local.rb +21 -0
  98. data/lib/dapp/dimg/cli/command/dimg/stages/flush_repo.rb +28 -0
  99. data/lib/dapp/dimg/cli/command/dimg/stages/pull.rb +34 -0
  100. data/lib/dapp/dimg/cli/command/dimg/stages/push.rb +30 -0
  101. data/lib/dapp/dimg/cli/command/dimg/stages.rb +22 -0
  102. data/lib/dapp/dimg/cli/command/dimg/tag.rb +24 -0
  103. data/lib/dapp/dimg/cli/command/dimg.rb +31 -0
  104. data/lib/dapp/dimg/cli/options/introspection.rb +45 -0
  105. data/lib/dapp/dimg/config/config.rb +24 -0
  106. data/lib/dapp/dimg/config/directive/artifact.rb +13 -15
  107. data/lib/dapp/dimg/config/directive/artifact_base.rb +13 -8
  108. data/lib/dapp/dimg/config/directive/artifact_dimg.rb +12 -0
  109. data/lib/dapp/dimg/config/directive/artifact_group.rb +60 -0
  110. data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +203 -0
  111. data/lib/dapp/dimg/config/directive/dimg/validation.rb +217 -0
  112. data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
  113. data/lib/dapp/dimg/config/directive/dimg_group.rb +73 -0
  114. data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
  115. data/lib/dapp/dimg/config/directive/docker/artifact.rb +5 -0
  116. data/lib/dapp/dimg/config/directive/docker/base.rb +2 -3
  117. data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
  118. data/lib/dapp/dimg/config/directive/git_artifact_local.rb +24 -5
  119. data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +23 -12
  120. data/lib/dapp/dimg/config/directive/mount.rb +11 -3
  121. data/lib/dapp/dimg/config/directive/shell/dimg.rb +2 -2
  122. data/lib/dapp/dimg/dapp/command/bp.rb +3 -5
  123. data/lib/dapp/dimg/dapp/command/build.rb +4 -6
  124. data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
  125. data/lib/dapp/dimg/dapp/command/build_context/export.rb +14 -14
  126. data/lib/dapp/dimg/dapp/command/build_context/import.rb +28 -23
  127. data/lib/dapp/dimg/dapp/command/cleanup.rb +4 -11
  128. data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +143 -0
  129. data/lib/dapp/dimg/dapp/command/common.rb +148 -38
  130. data/lib/dapp/dimg/dapp/command/flush_local.rb +25 -0
  131. data/lib/dapp/dimg/dapp/command/flush_repo.rb +25 -0
  132. data/lib/dapp/dimg/dapp/command/list.rb +1 -1
  133. data/lib/dapp/dimg/dapp/command/mrproper.rb +16 -63
  134. data/lib/dapp/dimg/dapp/command/push.rb +11 -16
  135. data/lib/dapp/dimg/dapp/command/ruby2go_cleanup.rb +48 -0
  136. data/lib/dapp/dimg/dapp/command/run.rb +4 -4
  137. data/lib/dapp/dimg/dapp/command/spush.rb +4 -5
  138. data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
  139. data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +13 -115
  140. data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +23 -102
  141. data/lib/dapp/dimg/dapp/command/stages/common.rb +57 -39
  142. data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +13 -7
  143. data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +14 -8
  144. data/lib/dapp/dimg/dapp/command/stages/pull.rb +4 -13
  145. data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -9
  146. data/lib/dapp/dimg/dapp/command/tag.rb +4 -6
  147. data/lib/dapp/dimg/dapp/config_artifact_group.rb +20 -0
  148. data/lib/dapp/dimg/dapp/dapp.rb +40 -0
  149. data/lib/dapp/dimg/dapp/dappfile.rb +43 -0
  150. data/lib/dapp/dimg/dapp/dimg.rb +41 -0
  151. data/lib/dapp/dimg/dimg/git_artifact.rb +25 -11
  152. data/lib/dapp/dimg/dimg/path.rb +7 -9
  153. data/lib/dapp/dimg/dimg/stages.rb +27 -15
  154. data/lib/dapp/dimg/dimg.rb +172 -69
  155. data/lib/dapp/dimg/docker_registry/base.rb +31 -74
  156. data/lib/dapp/dimg/docker_registry/dimg.rb +55 -0
  157. data/lib/dapp/dimg/docker_registry.rb +5 -23
  158. data/lib/dapp/dimg/error/build.rb +1 -1
  159. data/lib/dapp/dimg/error/chef.rb +1 -5
  160. data/lib/dapp/dimg/error/{command.rb → default.rb} +1 -1
  161. data/lib/dapp/dimg/error/dimg.rb +1 -1
  162. data/lib/dapp/dimg/error/lock.rb +1 -1
  163. data/lib/dapp/dimg/error/registry.rb +1 -1
  164. data/lib/dapp/dimg/error/rugged.rb +1 -1
  165. data/lib/dapp/dimg/error/tar_writer.rb +1 -1
  166. data/lib/dapp/dimg/git_artifact.rb +195 -179
  167. data/lib/dapp/dimg/git_repo/base.rb +49 -45
  168. data/lib/dapp/dimg/git_repo/local.rb +45 -0
  169. data/lib/dapp/dimg/git_repo/own.rb +3 -31
  170. data/lib/dapp/dimg/git_repo/remote.rb +65 -26
  171. data/lib/dapp/dimg/image/argument.rb +15 -50
  172. data/lib/dapp/dimg/image/dimg.rb +15 -0
  173. data/lib/dapp/dimg/image/scratch.rb +35 -9
  174. data/lib/dapp/dimg/image/stage.rb +223 -44
  175. data/lib/dapp/dimg/lock/file.rb +4 -4
  176. data/lib/dapp/downloader.rb +117 -0
  177. data/lib/dapp/error/base.rb +1 -5
  178. data/lib/dapp/error/command.rb +5 -0
  179. data/lib/dapp/error/config.rb +5 -0
  180. data/lib/dapp/error/dapp.rb +1 -1
  181. data/lib/dapp/error/dappfile.rb +1 -1
  182. data/lib/dapp/error/default.rb +11 -0
  183. data/lib/dapp/error/mod/user.rb +11 -0
  184. data/lib/dapp/error/shellout.rb +1 -1
  185. data/lib/dapp/exception/base.rb +1 -1
  186. data/lib/dapp/helper/case_conversion.rb +17 -0
  187. data/lib/dapp/helper/cli.rb +18 -7
  188. data/lib/dapp/helper/net_status.rb +5 -1
  189. data/lib/dapp/helper/sha256.rb +1 -1
  190. data/lib/dapp/helper/tar.rb +31 -0
  191. data/lib/dapp/helper/trivia.rb +40 -1
  192. data/lib/dapp/helper/url.rb +23 -0
  193. data/lib/dapp/helper/yaml.rb +24 -0
  194. data/lib/dapp/kube/cli/cli.rb +1 -0
  195. data/lib/dapp/kube/cli/command/base.rb +14 -0
  196. data/lib/dapp/kube/cli/command/kube/chart_create.rb +19 -0
  197. data/lib/dapp/kube/cli/command/kube/deploy.rb +80 -0
  198. data/lib/dapp/kube/cli/command/kube/dismiss.rb +31 -0
  199. data/lib/dapp/kube/cli/command/kube/lint.rb +53 -0
  200. data/lib/dapp/kube/cli/command/kube/minikube_setup.rb +19 -0
  201. data/lib/dapp/kube/cli/command/kube/render.rb +63 -0
  202. data/lib/dapp/kube/cli/command/kube/secret_edit.rb +30 -0
  203. data/lib/dapp/kube/cli/command/kube/secret_extract.rb +39 -0
  204. data/lib/dapp/kube/cli/command/kube/secret_generate.rb +34 -0
  205. data/lib/dapp/kube/cli/command/kube/secret_key_generate.rb +16 -0
  206. data/lib/dapp/kube/cli/command/kube/secret_regenerate.rb +29 -0
  207. data/lib/dapp/kube/cli/command/kube/value_get.rb +47 -0
  208. data/lib/dapp/kube/cli/command/kube.rb +28 -0
  209. data/lib/dapp/kube/dapp/command/chart_create.rb +103 -0
  210. data/lib/dapp/kube/dapp/command/common.rb +379 -0
  211. data/lib/dapp/kube/dapp/command/deploy.rb +351 -0
  212. data/lib/dapp/kube/dapp/command/dismiss.rb +50 -0
  213. data/lib/dapp/kube/dapp/command/lint.rb +69 -0
  214. data/lib/dapp/kube/dapp/command/minikube_setup.rb +402 -0
  215. data/lib/dapp/kube/dapp/command/render.rb +54 -0
  216. data/lib/dapp/kube/dapp/command/ruby2go.rb +17 -0
  217. data/lib/dapp/kube/dapp/command/secret_edit.rb +21 -0
  218. data/lib/dapp/kube/dapp/command/secret_extract.rb +17 -0
  219. data/lib/dapp/kube/dapp/command/secret_generate.rb +21 -0
  220. data/lib/dapp/kube/dapp/command/secret_key_generate.rb +13 -0
  221. data/lib/dapp/kube/dapp/command/secret_regenerate.rb +13 -0
  222. data/lib/dapp/kube/dapp/command/value_get.rb +32 -0
  223. data/lib/dapp/kube/dapp/dapp.rb +26 -0
  224. data/lib/dapp/kube/error/default.rb +7 -0
  225. data/lib/dapp/kube/helm/release.rb +189 -0
  226. data/lib/dapp/kube/helm/values.rb +148 -0
  227. data/lib/dapp/kube/helm.rb +5 -0
  228. data/lib/dapp/kube/kubernetes/client/error.rb +43 -0
  229. data/lib/dapp/kube/kubernetes/client/resource/base.rb +33 -0
  230. data/lib/dapp/kube/kubernetes/client/resource/deployment.rb +11 -0
  231. data/lib/dapp/kube/kubernetes/client/resource/event.rb +8 -0
  232. data/lib/dapp/kube/kubernetes/client/resource/job.rb +27 -0
  233. data/lib/dapp/kube/kubernetes/client/resource/pod.rb +62 -0
  234. data/lib/dapp/kube/kubernetes/client/resource/replicaset.rb +8 -0
  235. data/lib/dapp/kube/kubernetes/client.rb +314 -0
  236. data/lib/dapp/kube/kubernetes/config.rb +132 -0
  237. data/lib/dapp/kube/kubernetes/error.rb +15 -0
  238. data/lib/dapp/kube/kubernetes/manager/base.rb +15 -0
  239. data/lib/dapp/kube/kubernetes/manager/container.rb +103 -0
  240. data/lib/dapp/kube/kubernetes/manager/deployment.rb +212 -0
  241. data/lib/dapp/kube/kubernetes/manager/job.rb +65 -0
  242. data/lib/dapp/kube/kubernetes/manager/pod.rb +69 -0
  243. data/lib/dapp/kube/kubernetes.rb +6 -0
  244. data/lib/dapp/kube/secret.rb +93 -0
  245. data/lib/dapp/kube.rb +1 -0
  246. data/lib/dapp/version.rb +2 -2
  247. data/lib/dapp.rb +155 -61
  248. metadata +208 -61
  249. data/lib/dapp/cli/base.rb +0 -63
  250. data/lib/dapp/config/base.rb +0 -54
  251. data/lib/dapp/config/error/config.rb +0 -7
  252. data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +0 -27
  253. data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +0 -20
  254. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +0 -22
  255. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -22
  256. data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
  257. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -32
  258. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -22
  259. data/lib/dapp/dimg/cli/base.rb +0 -16
  260. data/lib/dapp/dimg/cli/bp.rb +0 -37
  261. data/lib/dapp/dimg/cli/build.rb +0 -64
  262. data/lib/dapp/dimg/cli/dimg.rb +0 -30
  263. data/lib/dapp/dimg/cli/push.rb +0 -61
  264. data/lib/dapp/dimg/cli/stages/flush_local.rb +0 -23
  265. data/lib/dapp/dimg/cli/stages/flush_repo.rb +0 -24
  266. data/lib/dapp/dimg/cli/stages/pull.rb +0 -28
  267. data/lib/dapp/dimg/cli/stages/push.rb +0 -24
  268. data/lib/dapp/dimg/cli/stages.rb +0 -22
  269. data/lib/dapp/dimg/cli/tag.rb +0 -24
  270. data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
  271. data/lib/dapp/dimg/config/artifact_group.rb +0 -43
  272. data/lib/dapp/dimg/config/base.rb +0 -7
  273. data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
  274. data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
  275. data/lib/dapp/dimg/config/dimg.rb +0 -24
  276. data/lib/dapp/dimg/config/dimg_group.rb +0 -61
  277. data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
  278. data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
  279. data/lib/dapp/dimg/dapp/command.rb +0 -21
  280. data/lib/dapp/dimg/dimg/tags.rb +0 -65
  281. data/lib/dapp/dimg/docker_registry/base/authorization.rb +0 -63
  282. data/lib/dapp/dimg/docker_registry/base/request.rb +0 -34
  283. data/lib/dapp/dimg/docker_registry/default.rb +0 -18
  284. data/lib/dapp/dimg/error/base.rb +0 -7
  285. data/lib/dapp/dimg/error/config.rb +0 -7
  286. data/lib/dapp/dimg/exception/introspect_image.rb +0 -7
  287. data/lib/dapp/dimg/image/docker.rb +0 -134
@@ -0,0 +1,63 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class Render < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube render [options] REPO
8
+
9
+ Options:
10
+ BANNER
11
+ extend ::Dapp::CLI::Options::Tag
12
+
13
+ option :namespace,
14
+ long: '--namespace NAME',
15
+ default: nil
16
+
17
+ option :context,
18
+ long: '--context NAME',
19
+ default: nil
20
+
21
+ option :tmp_dir_prefix,
22
+ long: '--tmp-dir-prefix PREFIX',
23
+ description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
24
+
25
+ option :helm_set_options,
26
+ long: '--set STRING_ARRAY',
27
+ default: [],
28
+ proc: proc { |v| composite_options(:helm_set) << v }
29
+
30
+ option :helm_values_options,
31
+ long: '--values FILE_PATH',
32
+ default: [],
33
+ proc: proc { |v| composite_options(:helm_values) << v }
34
+
35
+ option :helm_secret_values_options,
36
+ long: '--secret-values FILE_PATH',
37
+ default: [],
38
+ proc: proc { |v| composite_options(:helm_secret_values) << v }
39
+
40
+ option :registry_username,
41
+ long: '--registry-username USERNAME'
42
+
43
+ option :registry_password,
44
+ long: '--registry-password PASSWORD'
45
+
46
+ option :without_registry,
47
+ long: "--without-registry",
48
+ default: false,
49
+ boolean: true,
50
+ description: "Do not connect to docker registry to obtain docker image ids of dimgs being deployed."
51
+
52
+ def run(argv = ARGV)
53
+ self.class.parse_options(self, argv)
54
+ repo = self.class.required_argument(self, 'repo')
55
+ run_dapp_command(run_method, options: cli_options(repo: repo))
56
+ end
57
+
58
+ def log_running_time
59
+ false
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,30 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class SecretEdit < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube secret edit FILE_PATH [options]
8
+
9
+ Options:
10
+ BANNER
11
+
12
+ option :values,
13
+ long: '--values',
14
+ description: 'Edit secret values file',
15
+ default: false
16
+
17
+ def run(argv = ARGV)
18
+ self.class.parse_options(self, argv)
19
+ file_path = self.class.required_argument(self, 'FILE_PATH')
20
+ run_dapp_command(nil, options: cli_options) do |dapp|
21
+ dapp.public_send(run_method, file_path)
22
+ end
23
+ end
24
+
25
+ def log_running_time
26
+ false
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,39 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class SecretExtract < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube secret extract [FILE_PATH] [options]
8
+
9
+ Options:
10
+ BANNER
11
+
12
+ option :output_file_path,
13
+ short: '-o OUTPUT_FILE_PATH',
14
+ description: 'Output file',
15
+ required: false
16
+
17
+ option :values,
18
+ long: '--values',
19
+ description: 'Decode secret values file',
20
+ default: false
21
+
22
+ def run(argv = ARGV)
23
+ self.class.parse_options(self, argv)
24
+ file_path = begin
25
+ if cli_options[:values] || !cli_arguments.empty?
26
+ self.class.required_argument(self, 'FILE_PATH')
27
+ end
28
+ end
29
+ run_dapp_command(nil, options: cli_options) do |dapp|
30
+ dapp.public_send(run_method, file_path)
31
+ end
32
+ end
33
+
34
+ def log_running_time
35
+ false
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,34 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class SecretGenerate < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube secret generate [FILE_PATH] [options]
8
+
9
+ Options:
10
+ BANNER
11
+
12
+ option :output_file_path,
13
+ short: '-o OUTPUT_FILE_PATH',
14
+ required: false
15
+
16
+ option :values,
17
+ long: '--values',
18
+ description: 'Decode secret values file',
19
+ default: false
20
+
21
+ def run(argv = ARGV)
22
+ self.class.parse_options(self, argv)
23
+ file_path = cli_arguments.empty? ? nil : cli_arguments.first
24
+ run_dapp_command(nil, options: cli_options) do |dapp|
25
+ dapp.public_send(run_method, file_path)
26
+ end
27
+ end
28
+
29
+ def log_running_time
30
+ false
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class SecretKeyGenerate < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube secret key generate
8
+
9
+ Options:
10
+ BANNER
11
+ def log_running_time
12
+ false
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,29 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class SecretRegenerate < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube secret regenerate [SECRET_VALUES_FILE_PATH ...] [options]
8
+
9
+ Options:
10
+ BANNER
11
+
12
+ option :old_secret_key,
13
+ long: '--old-secret-key KEY',
14
+ description: 'Old secret key',
15
+ required: true
16
+
17
+ def run(argv = ARGV)
18
+ self.class.parse_options(self, argv)
19
+ run_dapp_command(nil, options: cli_options) do |dapp|
20
+ dapp.public_send(run_method, *cli_arguments)
21
+ end
22
+ end
23
+
24
+ def log_running_time
25
+ false
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,47 @@
1
+ module Dapp::Kube::CLI::Command
2
+ class Kube < ::Dapp::CLI
3
+ class ValueGet < Base
4
+ banner <<BANNER.freeze
5
+ Usage:
6
+
7
+ dapp kube value get [options] VALUE_KEY REPO
8
+
9
+ Options:
10
+ BANNER
11
+ extend ::Dapp::CLI::Options::Tag
12
+
13
+ option :namespace,
14
+ long: '--namespace NAME',
15
+ default: nil
16
+
17
+ option :context,
18
+ long: '--context NAME',
19
+ default: nil
20
+
21
+ option :registry_username,
22
+ long: '--registry-username USERNAME'
23
+
24
+ option :registry_password,
25
+ long: '--registry-password PASSWORD'
26
+
27
+ option :without_registry,
28
+ long: "--without-registry",
29
+ default: false,
30
+ boolean: true,
31
+ description: "Do not connect to docker registry to obtain docker image ids of dimgs being deployed."
32
+
33
+ def run(argv = ARGV)
34
+ self.class.parse_options(self, argv)
35
+ repo = self.class.required_argument(self, 'repo')
36
+ run_dapp_command(nil, options: cli_options(repo: repo)) do |dapp|
37
+ value_key = self.class.required_argument(self, "VALUE_KEY")
38
+ dapp.public_send(run_method, value_key)
39
+ end
40
+ end
41
+ end
42
+
43
+ def log_running_time
44
+ false
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,28 @@
1
+ module Dapp::Kube::CLI
2
+ module Command
3
+ class Kube < ::Dapp::CLI
4
+ SUBCOMMANDS = ['secret generate', 'secret key generate', 'secret regenerate', 'deploy', 'dismiss', 'secret extract', 'secret edit', 'minikube setup', 'chart create', 'render', 'lint', 'value get'].freeze
5
+
6
+ banner <<BANNER.freeze
7
+ Usage: dapp kube subcommand [subcommand options]
8
+
9
+ Available subcommands: (for details, dapp kube SUB-COMMAND --help)
10
+
11
+ dapp kube deploy [options] [REPO]
12
+ dapp kube dismiss [options]
13
+ dapp kube secret key generate [options]
14
+ dapp kube secret generate [FILE_PATH] [options]
15
+ dapp kube secret extract [FILE_PATH] [options]
16
+ dapp kube secret regenerate [SECRET_VALUES_FILE_PATH ...] [options]
17
+ dapp kube secret edit FILE_PATH [options]
18
+ dapp kube minikube setup
19
+ dapp kube chart create [options]
20
+ dapp kube render [options] REPO
21
+ dapp kube lint [options] REPO
22
+ dapp kube value get VALUE_KEY
23
+
24
+ Options:
25
+ BANNER
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,103 @@
1
+ module Dapp
2
+ module Kube
3
+ module Dapp
4
+ module Command
5
+ module ChartCreate
6
+ def kube_chart_create
7
+ with_kube_tmp_chart_dir do
8
+ FileUtils.cp_r kube_chart_path, kube_chart_path_for_helm(name) if kube_chart_path.directory? && !options[:force]
9
+
10
+ shellout!("helm create #{name}", cwd: kube_chart_path_for_helm)
11
+ kube_create_chart_samples
12
+
13
+ FileUtils.rm_rf kube_chart_path
14
+ FileUtils.mv kube_chart_path_for_helm(name), kube_chart_path
15
+ end
16
+ end
17
+
18
+ def kube_create_chart_samples
19
+ kube_chart_path_for_helm(name, 'secret-values.yaml').tap { |f| FileUtils.touch(f) unless f.file? }
20
+ kube_chart_path_for_helm(name, kube_chart_secret_dir_name).tap { |dir| FileUtils.mkdir(dir) unless dir.directory? }
21
+ kube_chart_path_for_helm(name, 'templates', '_envs.tpl').tap do |f|
22
+ f.write begin
23
+ <<-EOF
24
+ {{- define "common_envs" }}
25
+ - name: A
26
+ value: value
27
+ {{- if eq .Values.global.env "production" }}
28
+ - name: B
29
+ value: value
30
+ {{- else }}
31
+ - name: B
32
+ value: value2
33
+ {{- if or (eq .Values.global.env "stage") (eq .Values.global.env "test") }}
34
+ - name: C
35
+ value: value3
36
+ {{- end }}
37
+ {{- end }}
38
+ {{- end }}
39
+ EOF
40
+ end unless f.file?
41
+ end
42
+ kube_chart_path_for_helm(name, 'templates', 'backend.yaml').tap do |f|
43
+ f.write begin
44
+ <<-EOF
45
+ apiVersion: extensions/v1beta1
46
+ kind: Deployment
47
+ metadata:
48
+ name: {{ .Chart.Name }}-backend
49
+ labels:
50
+ service: {{ .Chart.Name }}-backend
51
+ spec:
52
+ minReadySeconds: 60
53
+ strategy:
54
+ type: RollingUpdate
55
+ replicas: 2
56
+ template:
57
+ metadata:
58
+ labels:
59
+ service: {{ .Chart.Name }}-backend
60
+ spec:
61
+ volumes:
62
+ - name: {{ .Chart.Name }}-backend
63
+ secret:
64
+ secretName: {{ .Chart.Name }}-backend
65
+ containers:
66
+ - command: [ '/bin/bash', '-l', '-c', 'bundle exec ctl start' ]
67
+ {{ tuple "dimg-name" . | include "dapp_container_image" | indent 8 }} # or nameless dimg {{ tuple . | include "dapp_container_image" }}
68
+ name: {{ .Chart.Name }}-backend
69
+ livenessProbe:
70
+ httpGet:
71
+ path: /assets/logo.png
72
+ port: 8080
73
+ scheme: HTTP
74
+ initialDelaySeconds: 10
75
+ periodSeconds: 3
76
+ ports:
77
+ - containerPort: 8080
78
+ name: http
79
+ protocol: TCP
80
+ env:
81
+ {{ tuple "dimg-name" . | include "dapp_container_env" | indent 10 }}
82
+ ---
83
+ apiVersion: v1
84
+ kind: Service
85
+ metadata:
86
+ name: {{ .Chart.Name }}-backend
87
+ spec:
88
+ type: ClusterIP
89
+ selector:
90
+ service: {{ .Chart.Name }}-backend
91
+ ports:
92
+ - name: http
93
+ port: 8080
94
+ protocol: TCP
95
+ EOF
96
+ end unless f.file?
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end