ufo 5.0.7 → 6.0.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 (457) hide show
  1. checksums.yaml +4 -4
  2. data/.cody/README.md +19 -0
  3. data/.cody/acceptance/bin/build.sh +90 -0
  4. data/.cody/acceptance/buildspec.yml +10 -0
  5. data/.cody/acceptance/project.rb +11 -0
  6. data/.cody/acceptance/role.rb +28 -0
  7. data/.cody/shared/script/install/ufo.sh +40 -0
  8. data/.cody/shared/script/install.sh +5 -0
  9. data/.github/workflows/main.yml +28 -0
  10. data/CHANGELOG.md +4 -1
  11. data/Gemfile +0 -2
  12. data/README.md +1 -32
  13. data/lib/templates/docker/Dockerfile +4 -0
  14. data/lib/templates/helper/%underscore_name%_helper.rb.tt +6 -0
  15. data/lib/templates/init/.ufo/config/web/base.rb +6 -0
  16. data/lib/templates/init/.ufo/config/web/dev.rb +6 -0
  17. data/lib/templates/init/.ufo/config/web/prod.rb +6 -0
  18. data/lib/templates/init/.ufo/config.rb.tt +39 -0
  19. data/lib/templates/init/.ufo/resources/iam_roles/execution_role.rb +23 -0
  20. data/lib/templates/init/.ufo/resources/iam_roles/task_role.rb +20 -0
  21. data/lib/templates/init/.ufo/resources/task_definitions/web.yml +29 -0
  22. data/lib/templates/init/.ufo/vars/base.rb +20 -0
  23. data/lib/templates/init/.ufo/vars/dev.rb +4 -0
  24. data/lib/templates/init/.ufo/vars/prod.rb +4 -0
  25. data/lib/ufo/aws_services.rb +118 -0
  26. data/lib/ufo/booter.rb +27 -0
  27. data/lib/ufo/cfn/base.rb +7 -0
  28. data/lib/ufo/cfn/deploy.rb +54 -0
  29. data/lib/ufo/{stack → cfn/stack}/builder/base.rb +12 -23
  30. data/lib/ufo/cfn/stack/builder/conditions.rb +25 -0
  31. data/lib/ufo/{stack → cfn/stack}/builder/outputs.rb +2 -2
  32. data/lib/ufo/cfn/stack/builder/parameters.rb +34 -0
  33. data/lib/ufo/cfn/stack/builder/resources/base.rb +4 -0
  34. data/lib/ufo/cfn/stack/builder/resources/dns.rb +47 -0
  35. data/lib/ufo/{stack/builder/resources/ecs.rb → cfn/stack/builder/resources/ecs_service.rb} +11 -10
  36. data/lib/ufo/cfn/stack/builder/resources/elb.rb +35 -0
  37. data/lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb +32 -0
  38. data/lib/ufo/cfn/stack/builder/resources/iam_roles/execution_role.rb +4 -0
  39. data/lib/ufo/cfn/stack/builder/resources/iam_roles/task_role.rb +4 -0
  40. data/lib/ufo/cfn/stack/builder/resources/listener.rb +65 -0
  41. data/lib/ufo/cfn/stack/builder/resources/listener_ssl.rb +44 -0
  42. data/lib/ufo/cfn/stack/builder/resources/scaling/base.rb +5 -0
  43. data/lib/ufo/cfn/stack/builder/resources/scaling/policy.rb +27 -0
  44. data/lib/ufo/cfn/stack/builder/resources/scaling/role.rb +33 -0
  45. data/lib/ufo/cfn/stack/builder/resources/scaling/target.rb +22 -0
  46. data/lib/ufo/cfn/stack/builder/resources/security_group/base.rb +4 -0
  47. data/lib/ufo/{stack → cfn/stack}/builder/resources/security_group/ecs.rb +4 -4
  48. data/lib/ufo/{stack → cfn/stack}/builder/resources/security_group/ecs_rule.rb +2 -2
  49. data/lib/ufo/{stack → cfn/stack}/builder/resources/security_group/elb.rb +5 -6
  50. data/lib/ufo/{stack → cfn/stack}/builder/resources/target_group.rb +4 -4
  51. data/lib/ufo/{stack → cfn/stack}/builder/resources/task_definition/reconstructor.rb +4 -4
  52. data/lib/ufo/{stack → cfn/stack}/builder/resources/task_definition.rb +4 -4
  53. data/lib/ufo/cfn/stack/builder/resources.rb +24 -0
  54. data/lib/ufo/cfn/stack/builder.rb +30 -0
  55. data/lib/ufo/{stack → cfn/stack}/custom_properties.rb +21 -5
  56. data/lib/ufo/cfn/stack/params.rb +51 -0
  57. data/lib/ufo/{stack → cfn/stack}/status.rb +2 -2
  58. data/lib/ufo/cfn/stack/template.rb +8 -0
  59. data/lib/ufo/cfn/stack/vars.rb +110 -0
  60. data/lib/ufo/cfn/stack/vpc.rb +31 -0
  61. data/lib/ufo/cfn/stack.rb +175 -0
  62. data/lib/ufo/cli/base.rb +18 -0
  63. data/lib/ufo/cli/build.rb +30 -0
  64. data/lib/ufo/cli/cancel.rb +18 -0
  65. data/lib/ufo/cli/central/update.rb +80 -0
  66. data/lib/ufo/cli/central.rb +12 -0
  67. data/lib/ufo/cli/clean.rb +17 -0
  68. data/lib/ufo/cli/destroy.rb +31 -0
  69. data/lib/ufo/{docker.rb → cli/docker.rb} +18 -18
  70. data/lib/ufo/cli/exec.rb +82 -0
  71. data/lib/ufo/cli/help/central/update.md +20 -0
  72. data/lib/ufo/{help → cli/help}/completion.md +0 -0
  73. data/lib/ufo/{help → cli/help}/completion_script.md +0 -0
  74. data/lib/ufo/cli/help/destroy.md +9 -0
  75. data/lib/ufo/cli/help/docker/base.md +39 -0
  76. data/lib/ufo/{help → cli/help}/docker/build.md +9 -9
  77. data/lib/ufo/{help → cli/help}/docker/clean.md +8 -8
  78. data/lib/ufo/{help → cli/help}/docker/compile.md +0 -0
  79. data/lib/ufo/cli/help/docker/name.md +16 -0
  80. data/lib/ufo/{help → cli/help}/docker/push.md +0 -0
  81. data/lib/ufo/cli/help/docker.md +6 -0
  82. data/lib/ufo/{help → cli/help}/help.md +1 -1
  83. data/lib/ufo/cli/help/init.md +27 -0
  84. data/lib/ufo/{help → cli/help}/logs.md +5 -4
  85. data/lib/ufo/cli/help/ps.md +12 -0
  86. data/lib/ufo/cli/help/releases.md +15 -0
  87. data/lib/ufo/cli/help/rollback.md +40 -0
  88. data/lib/ufo/cli/help/scale.md +7 -0
  89. data/lib/ufo/cli/help/ship.md +41 -0
  90. data/lib/ufo/cli/help/stop.md +3 -0
  91. data/lib/ufo/cli/help.rb +62 -0
  92. data/lib/ufo/{logs.rb → cli/logs.rb} +13 -6
  93. data/lib/ufo/cli/new/concerns.rb +16 -0
  94. data/lib/ufo/cli/new/helper.rb +24 -0
  95. data/lib/ufo/cli/new/init.rb +68 -0
  96. data/lib/ufo/{sequence.rb → cli/new/sequence.rb} +26 -4
  97. data/lib/ufo/cli/new.rb +10 -0
  98. data/lib/ufo/cli/opts.rb +35 -0
  99. data/lib/ufo/{ps → cli/ps}/task.rb +22 -29
  100. data/lib/ufo/cli/ps.rb +190 -0
  101. data/lib/ufo/{releases.rb → cli/releases.rb} +4 -4
  102. data/lib/ufo/{rollback.rb → cli/rollback.rb} +24 -12
  103. data/lib/ufo/cli/scale.rb +76 -0
  104. data/lib/ufo/cli/ship.rb +28 -0
  105. data/lib/ufo/cli/status.rb +8 -0
  106. data/lib/ufo/cli/stop.rb +49 -0
  107. data/lib/ufo/{tasks.rb → cli/tasks.rb} +2 -2
  108. data/lib/ufo/{upgrade.rb → cli/upgrade.rb} +2 -2
  109. data/lib/ufo/cli.rb +82 -172
  110. data/lib/ufo/command.rb +56 -1
  111. data/lib/ufo/concerns/autoscaling.rb +11 -0
  112. data/lib/ufo/concerns/names.rb +9 -0
  113. data/lib/ufo/concerns.rb +26 -0
  114. data/lib/ufo/config/inits.rb +13 -0
  115. data/lib/ufo/config.rb +187 -0
  116. data/lib/ufo/core.rb +32 -44
  117. data/lib/ufo/docker/builder.rb +44 -40
  118. data/lib/ufo/docker/cleaner.rb +9 -12
  119. data/lib/ufo/docker/compiler.rb +10 -4
  120. data/lib/ufo/docker/concerns.rb +7 -0
  121. data/lib/ufo/docker/dockerfile.rb +13 -9
  122. data/lib/ufo/docker/pusher.rb +13 -25
  123. data/lib/ufo/docker/state.rb +63 -0
  124. data/lib/ufo/ecr/auth.rb +8 -7
  125. data/lib/ufo/ecr/cleaner.rb +10 -14
  126. data/lib/ufo/ext/core/module.rb +31 -0
  127. data/lib/ufo/ext/core/nil_class.rb +11 -0
  128. data/lib/ufo/ext.rb +2 -0
  129. data/lib/ufo/{role → iam_role}/builder.rb +1 -1
  130. data/lib/ufo/{role → iam_role}/dsl.rb +8 -2
  131. data/lib/ufo/{role → iam_role}/registry.rb +1 -1
  132. data/lib/ufo/info.rb +22 -4
  133. data/lib/ufo/layering/layer.rb +95 -0
  134. data/lib/ufo/layering.rb +23 -0
  135. data/lib/ufo/log_group.rb +18 -10
  136. data/lib/ufo/logger/formatter.rb +13 -0
  137. data/lib/ufo/logger.rb +32 -0
  138. data/lib/ufo/names.rb +69 -0
  139. data/lib/ufo/param.rb +2 -1
  140. data/lib/ufo/task_definition/builder.rb +7 -0
  141. data/lib/ufo/task_definition/context.rb +45 -0
  142. data/lib/ufo/task_definition/erb/base.rb +18 -0
  143. data/lib/ufo/task_definition/erb/json.rb +28 -0
  144. data/lib/ufo/task_definition/erb/yaml.rb +18 -0
  145. data/lib/ufo/task_definition/erb.rb +78 -0
  146. data/lib/ufo/task_definition/helpers/aws_data_helper.rb +18 -0
  147. data/lib/ufo/task_definition/helpers/core.rb +50 -0
  148. data/lib/ufo/task_definition/helpers/ssm/fetcher.rb +39 -0
  149. data/lib/ufo/task_definition/helpers/ssm.rb +8 -0
  150. data/lib/ufo/task_definition/helpers/stack_output.rb +23 -0
  151. data/lib/ufo/{dsl/helper → task_definition/helpers}/vars.rb +40 -19
  152. data/lib/ufo/task_definition/helpers/vpc.rb +48 -0
  153. data/lib/ufo/task_definition/helpers.rb +5 -0
  154. data/lib/ufo/task_definition.rb +19 -0
  155. data/lib/ufo/upgrade/upgrade3.rb +1 -1
  156. data/lib/ufo/upgrade/upgrade4.rb +3 -3
  157. data/lib/ufo/utils/execute.rb +30 -0
  158. data/lib/ufo/utils/logging.rb +7 -0
  159. data/lib/ufo/utils/pretty.rb +18 -0
  160. data/lib/ufo/utils/squeezer.rb +1 -1
  161. data/lib/ufo/utils/sure.rb +23 -0
  162. data/lib/ufo/version.rb +1 -1
  163. data/lib/ufo/yaml/loader.rb +48 -0
  164. data/lib/ufo/yaml/validator.rb +51 -0
  165. data/lib/ufo/yaml.rb +13 -0
  166. data/lib/ufo.rb +12 -2
  167. data/spec/spec_helper.rb +4 -26
  168. data/spec/{lib → ufo}/ecr_auth_spec.rb +0 -0
  169. data/spec/{lib → ufo}/ecr_cleaner_spec.rb +0 -2
  170. data/spec/{lib/role → ufo/iam_role}/builder_spec.rb +5 -5
  171. data/spec/{lib/role → ufo/iam_role}/dsl_spec.rb +3 -3
  172. data/spec/{lib → ufo}/logs_spec.rb +2 -2
  173. data/ufo.gemspec +9 -3
  174. metadata +244 -341
  175. data/.circleci/bin/commit_docs.sh +0 -26
  176. data/.circleci/config.yml +0 -78
  177. data/.gitmodules +0 -0
  178. data/docs/.gitignore +0 -5
  179. data/docs/CNAME +0 -1
  180. data/docs/Gemfile +0 -4
  181. data/docs/LICENSE +0 -21
  182. data/docs/README.md +0 -20
  183. data/docs/_config.yml +0 -75
  184. data/docs/_docs/aws-ecs-task-execution-role.md +0 -28
  185. data/docs/_docs/conventions.md +0 -47
  186. data/docs/_docs/extras/codebuild-iam-role.md +0 -46
  187. data/docs/_docs/extras/dockerfile-erb.md +0 -60
  188. data/docs/_docs/extras/ecs-network-mode.md +0 -37
  189. data/docs/_docs/extras/load-balancer.md +0 -83
  190. data/docs/_docs/extras/minimal-deploy-iam.md +0 -79
  191. data/docs/_docs/extras/notification-arns.md +0 -21
  192. data/docs/_docs/extras/redirection-support.md +0 -27
  193. data/docs/_docs/extras/route53-support.md +0 -27
  194. data/docs/_docs/extras/security-groups.md +0 -36
  195. data/docs/_docs/extras/ssl-support.md +0 -20
  196. data/docs/_docs/faq.md +0 -100
  197. data/docs/_docs/fargate.md +0 -5
  198. data/docs/_docs/helpers.md +0 -24
  199. data/docs/_docs/iam-roles.md +0 -112
  200. data/docs/_docs/install.md +0 -25
  201. data/docs/_docs/more/auto-completion.md +0 -24
  202. data/docs/_docs/more/automated-cleanup.md +0 -14
  203. data/docs/_docs/more/customize-cloudformation.md +0 -35
  204. data/docs/_docs/more/migrations.md +0 -25
  205. data/docs/_docs/more/run-in-pieces.md +0 -30
  206. data/docs/_docs/more/single-task.md +0 -25
  207. data/docs/_docs/more/stuck-cloudformation.md +0 -29
  208. data/docs/_docs/more/why-cloudformation.md +0 -21
  209. data/docs/_docs/next-steps.md +0 -16
  210. data/docs/_docs/quick-start-ec2.md +0 -86
  211. data/docs/_docs/secrets.md +0 -135
  212. data/docs/_docs/settings/aws_profile.md +0 -36
  213. data/docs/_docs/settings/cfn.md +0 -12
  214. data/docs/_docs/settings/cluster.md +0 -66
  215. data/docs/_docs/settings/manage-security-groups.md +0 -24
  216. data/docs/_docs/settings/network.md +0 -45
  217. data/docs/_docs/settings.md +0 -55
  218. data/docs/_docs/ssl_errors.md +0 -40
  219. data/docs/_docs/structure.md +0 -41
  220. data/docs/_docs/tutorial-ufo-docker-build.md +0 -61
  221. data/docs/_docs/tutorial-ufo-init.md +0 -86
  222. data/docs/_docs/tutorial-ufo-ship.md +0 -95
  223. data/docs/_docs/tutorial-ufo-ships.md +0 -38
  224. data/docs/_docs/tutorial-ufo-tasks-build.md +0 -177
  225. data/docs/_docs/tutorial.md +0 -14
  226. data/docs/_docs/ufo-current.md +0 -49
  227. data/docs/_docs/ufo-env-extra.md +0 -22
  228. data/docs/_docs/ufo-env.md +0 -46
  229. data/docs/_docs/ufo-logs.md +0 -49
  230. data/docs/_docs/ufo-task-params.md +0 -43
  231. data/docs/_docs/ufo-tasks-register.md +0 -21
  232. data/docs/_docs/upgrading/upgrade4.5.md +0 -52
  233. data/docs/_docs/upgrading/upgrade4.md +0 -48
  234. data/docs/_docs/upgrading/upgrade5.md +0 -19
  235. data/docs/_docs/upgrading.md +0 -13
  236. data/docs/_docs/variables.md +0 -55
  237. data/docs/_includes/about.html +0 -19
  238. data/docs/_includes/banner/foot.html +0 -2
  239. data/docs/_includes/banner/head.html +0 -5
  240. data/docs/_includes/cfn-customize.md +0 -53
  241. data/docs/_includes/commands.html +0 -80
  242. data/docs/_includes/contact.html +0 -17
  243. data/docs/_includes/contact_disqus.html +0 -16
  244. data/docs/_includes/contact_static.html +0 -17
  245. data/docs/_includes/content.html +0 -26
  246. data/docs/_includes/css/bootstrap.min.css +0 -7
  247. data/docs/_includes/css/main.css +0 -501
  248. data/docs/_includes/css/quotes.css +0 -102
  249. data/docs/_includes/css/syntax.css +0 -65
  250. data/docs/_includes/css/table.css +0 -53
  251. data/docs/_includes/css/timeline.css +0 -201
  252. data/docs/_includes/css/ufo.css +0 -218
  253. data/docs/_includes/edit-on-github.html +0 -11
  254. data/docs/_includes/example.html +0 -63
  255. data/docs/_includes/footer.html +0 -44
  256. data/docs/_includes/google_analytics.html +0 -10
  257. data/docs/_includes/head.html +0 -32
  258. data/docs/_includes/header.html +0 -15
  259. data/docs/_includes/js.html +0 -32
  260. data/docs/_includes/js_disqus.html +0 -21
  261. data/docs/_includes/modals.html +0 -40
  262. data/docs/_includes/nav.html +0 -27
  263. data/docs/_includes/prev_next.md +0 -19
  264. data/docs/_includes/quotes.html +0 -19
  265. data/docs/_includes/reference.md +0 -5
  266. data/docs/_includes/repo_push_access.md +0 -11
  267. data/docs/_includes/subnav.html +0 -78
  268. data/docs/_includes/summary.html +0 -22
  269. data/docs/_includes/ufo-ship-options.md +0 -12
  270. data/docs/_includes/uses.html +0 -19
  271. data/docs/_layouts/default.html +0 -13
  272. data/docs/_layouts/style.css +0 -6
  273. data/docs/_reference/ufo-apps.md +0 -37
  274. data/docs/_reference/ufo-cancel.md +0 -24
  275. data/docs/_reference/ufo-completion.md +0 -46
  276. data/docs/_reference/ufo-completion_script.md +0 -27
  277. data/docs/_reference/ufo-current.md +0 -93
  278. data/docs/_reference/ufo-deploy.md +0 -76
  279. data/docs/_reference/ufo-destroy.md +0 -36
  280. data/docs/_reference/ufo-docker-base.md +0 -71
  281. data/docs/_reference/ufo-docker-build.md +0 -91
  282. data/docs/_reference/ufo-docker-clean.md +0 -44
  283. data/docs/_reference/ufo-docker-compile.md +0 -19
  284. data/docs/_reference/ufo-docker-help.md +0 -15
  285. data/docs/_reference/ufo-docker-name.md +0 -37
  286. data/docs/_reference/ufo-docker-push.md +0 -49
  287. data/docs/_reference/ufo-docker.md +0 -38
  288. data/docs/_reference/ufo-init.md +0 -125
  289. data/docs/_reference/ufo-logs.md +0 -40
  290. data/docs/_reference/ufo-network-help.md +0 -15
  291. data/docs/_reference/ufo-network-init.md +0 -39
  292. data/docs/_reference/ufo-network.md +0 -26
  293. data/docs/_reference/ufo-ps.md +0 -56
  294. data/docs/_reference/ufo-releases.md +0 -40
  295. data/docs/_reference/ufo-resources.md +0 -44
  296. data/docs/_reference/ufo-rollback.md +0 -61
  297. data/docs/_reference/ufo-scale.md +0 -50
  298. data/docs/_reference/ufo-ship.md +0 -129
  299. data/docs/_reference/ufo-ships.md +0 -68
  300. data/docs/_reference/ufo-status.md +0 -23
  301. data/docs/_reference/ufo-stop.md +0 -31
  302. data/docs/_reference/ufo-task.md +0 -56
  303. data/docs/_reference/ufo-tasks-build.md +0 -178
  304. data/docs/_reference/ufo-tasks-help.md +0 -15
  305. data/docs/_reference/ufo-tasks-register.md +0 -29
  306. data/docs/_reference/ufo-tasks.md +0 -35
  307. data/docs/_reference/ufo-upgrade-help.md +0 -15
  308. data/docs/_reference/ufo-upgrade-v2to3.md +0 -15
  309. data/docs/_reference/ufo-upgrade-v33to34.md +0 -15
  310. data/docs/_reference/ufo-upgrade-v3to4.md +0 -27
  311. data/docs/_reference/ufo-upgrade-v43to45.md +0 -15
  312. data/docs/_reference/ufo-upgrade.md +0 -29
  313. data/docs/_reference/ufo-version.md +0 -23
  314. data/docs/articles.md +0 -14
  315. data/docs/bin/web +0 -4
  316. data/docs/css/font-awesome/css/font-awesome.css +0 -1566
  317. data/docs/css/font-awesome/css/font-awesome.min.css +0 -4
  318. data/docs/css/font-awesome/fonts/FontAwesome.otf +0 -0
  319. data/docs/css/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  320. data/docs/css/font-awesome/fonts/fontawesome-webfont.svg +0 -504
  321. data/docs/css/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  322. data/docs/css/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  323. data/docs/docs.md +0 -29
  324. data/docs/img/docs/cloudformation-resources.png +0 -0
  325. data/docs/img/logos/boltops-logo-full.png +0 -0
  326. data/docs/img/logos/boltops-logo.png +0 -0
  327. data/docs/img/logos/ufo-logo-2.png +0 -0
  328. data/docs/img/logos/ufo-logo.png +0 -0
  329. data/docs/img/logos/ufo-site-header.png +0 -0
  330. data/docs/img/logos/ufo.jpg +0 -0
  331. data/docs/img/tutorials/ecs-console-task-definitions.png +0 -0
  332. data/docs/img/tutorials/ecs-console-ufo-ship.png +0 -0
  333. data/docs/img/tutorials/ecs-console-ufo-ships.png +0 -0
  334. data/docs/index.html +0 -10
  335. data/docs/js/bootstrap.js +0 -2114
  336. data/docs/js/bootstrap.min.js +0 -6
  337. data/docs/js/cbpAnimatedHeader.js +0 -44
  338. data/docs/js/cbpAnimatedHeader.min.js +0 -11
  339. data/docs/js/classie.js +0 -80
  340. data/docs/js/contact_me.js +0 -70
  341. data/docs/js/contact_me_static.js +0 -23
  342. data/docs/js/freelancer.js +0 -37
  343. data/docs/js/jqBootstrapValidation.js +0 -912
  344. data/docs/js/jquery-1.11.0.js +0 -4
  345. data/docs/js/jquery.easing.min.js +0 -44
  346. data/docs/js/nav.js +0 -53
  347. data/docs/quick-start.md +0 -133
  348. data/docs/reference.md +0 -29
  349. data/docs/style.css +0 -3
  350. data/docs/utils/ssl-doctor.rb +0 -89
  351. data/docs/utils/test-aws-api-access.rb +0 -11
  352. data/docs/utils/update-cert-chains.sh +0 -11
  353. data/lib/template/.env +0 -3
  354. data/lib/template/.secrets +0 -5
  355. data/lib/template/.ufo/iam_roles/execution_role.rb +0 -7
  356. data/lib/template/.ufo/iam_roles/task_role.rb +0 -21
  357. data/lib/template/.ufo/params.yml.tt +0 -27
  358. data/lib/template/.ufo/settings/cfn/default.yml.tt +0 -72
  359. data/lib/template/.ufo/settings/network/default.yml.tt +0 -26
  360. data/lib/template/.ufo/settings.yml.tt +0 -26
  361. data/lib/template/.ufo/task_definitions.rb.tt +0 -61
  362. data/lib/template/.ufo/templates/fargate.json.erb +0 -39
  363. data/lib/template/.ufo/templates/main.json.erb +0 -43
  364. data/lib/template/.ufo/variables/base.rb.tt +0 -19
  365. data/lib/template/.ufo/variables/development.rb +0 -8
  366. data/lib/template/.ufo/variables/production.rb +0 -7
  367. data/lib/template/Dockerfile +0 -15
  368. data/lib/template/bin/deploy.tt +0 -7
  369. data/lib/ufo/apps/cfn_map.rb +0 -70
  370. data/lib/ufo/apps/cluster.rb +0 -24
  371. data/lib/ufo/apps/service.rb +0 -56
  372. data/lib/ufo/apps.rb +0 -56
  373. data/lib/ufo/aws_service.rb +0 -36
  374. data/lib/ufo/base.rb +0 -35
  375. data/lib/ufo/cancel.rb +0 -23
  376. data/lib/ufo/current.rb +0 -104
  377. data/lib/ufo/default/settings.yml +0 -24
  378. data/lib/ufo/default/templates/main.json.erb +0 -39
  379. data/lib/ufo/destroy.rb +0 -41
  380. data/lib/ufo/docker/variables.rb +0 -26
  381. data/lib/ufo/dsl/helper.rb +0 -79
  382. data/lib/ufo/dsl/outputter.rb +0 -43
  383. data/lib/ufo/dsl/task_definition.rb +0 -108
  384. data/lib/ufo/dsl.rb +0 -96
  385. data/lib/ufo/help/apps.md +0 -12
  386. data/lib/ufo/help/balancer.md +0 -3
  387. data/lib/ufo/help/completions.md +0 -16
  388. data/lib/ufo/help/completions_script.md +0 -1
  389. data/lib/ufo/help/current.md +0 -65
  390. data/lib/ufo/help/deploy.md +0 -38
  391. data/lib/ufo/help/destroy.md +0 -9
  392. data/lib/ufo/help/docker/base.md +0 -49
  393. data/lib/ufo/help/docker/name.md +0 -16
  394. data/lib/ufo/help/docker.md +0 -6
  395. data/lib/ufo/help/init.md +0 -91
  396. data/lib/ufo/help/network/init.md +0 -13
  397. data/lib/ufo/help/ps.md +0 -27
  398. data/lib/ufo/help/releases.md +0 -16
  399. data/lib/ufo/help/resources.md +0 -20
  400. data/lib/ufo/help/rollback.md +0 -35
  401. data/lib/ufo/help/scale.md +0 -26
  402. data/lib/ufo/help/ship.md +0 -95
  403. data/lib/ufo/help/ships.md +0 -35
  404. data/lib/ufo/help/stop.md +0 -7
  405. data/lib/ufo/help/task.md +0 -27
  406. data/lib/ufo/help/tasks/build.md +0 -158
  407. data/lib/ufo/help/tasks/register.md +0 -14
  408. data/lib/ufo/help/tasks.md +0 -7
  409. data/lib/ufo/help/upgrade/v3to4.md +0 -3
  410. data/lib/ufo/help.rb +0 -9
  411. data/lib/ufo/init.rb +0 -119
  412. data/lib/ufo/network/fetch.rb +0 -48
  413. data/lib/ufo/network/helper.rb +0 -23
  414. data/lib/ufo/network/init.rb +0 -26
  415. data/lib/ufo/network.rb +0 -21
  416. data/lib/ufo/ps.rb +0 -129
  417. data/lib/ufo/scale.rb +0 -28
  418. data/lib/ufo/setting/profile.rb +0 -44
  419. data/lib/ufo/setting/security_groups.rb +0 -22
  420. data/lib/ufo/setting.rb +0 -75
  421. data/lib/ufo/settings.rb +0 -20
  422. data/lib/ufo/ship.rb +0 -103
  423. data/lib/ufo/stack/builder/conditions.rb +0 -23
  424. data/lib/ufo/stack/builder/parameters.rb +0 -45
  425. data/lib/ufo/stack/builder/resources/base.rb +0 -4
  426. data/lib/ufo/stack/builder/resources/dns.rb +0 -17
  427. data/lib/ufo/stack/builder/resources/elb.rb +0 -45
  428. data/lib/ufo/stack/builder/resources/listener.rb +0 -42
  429. data/lib/ufo/stack/builder/resources/listener_ssl.rb +0 -16
  430. data/lib/ufo/stack/builder/resources/roles/base.rb +0 -22
  431. data/lib/ufo/stack/builder/resources/roles/execution_role.rb +0 -4
  432. data/lib/ufo/stack/builder/resources/roles/task_role.rb +0 -4
  433. data/lib/ufo/stack/builder/resources/security_group/base.rb +0 -4
  434. data/lib/ufo/stack/builder/resources.rb +0 -20
  435. data/lib/ufo/stack/builder.rb +0 -26
  436. data/lib/ufo/stack/context.rb +0 -253
  437. data/lib/ufo/stack/helper.rb +0 -55
  438. data/lib/ufo/stack/template_body.rb +0 -13
  439. data/lib/ufo/stack.rb +0 -213
  440. data/lib/ufo/status.rb +0 -56
  441. data/lib/ufo/stop.rb +0 -49
  442. data/lib/ufo/task.rb +0 -225
  443. data/lib/ufo/tasks/builder.rb +0 -40
  444. data/lib/ufo/tasks/register.rb +0 -90
  445. data/lib/ufo/template_scope.rb +0 -57
  446. data/lib/ufo/util.rb +0 -69
  447. data/spec/lib/apps_spec.rb +0 -20
  448. data/spec/lib/builder_spec.rb +0 -23
  449. data/spec/lib/cli_spec.rb +0 -73
  450. data/spec/lib/completion_spec.rb +0 -18
  451. data/spec/lib/ps_spec.rb +0 -14
  452. data/spec/lib/register_spec.rb +0 -49
  453. data/spec/lib/setting_spec.rb +0 -18
  454. data/spec/lib/ship_spec.rb +0 -46
  455. data/spec/lib/stack/status_spec.rb +0 -76
  456. data/spec/lib/stop_spec.rb +0 -13
  457. data/spec/lib/task_spec.rb +0 -54
data/lib/ufo/base.rb DELETED
@@ -1,35 +0,0 @@
1
- module Ufo
2
- class Base
3
- extend Memoist
4
- include Stack::Helper
5
-
6
- def initialize(service, options={})
7
- @service = switch_current(service)
8
- @options = options
9
-
10
- @cluster = @options[:cluster] || default_cluster(@service)
11
- @stack_name = adjust_stack_name(@cluster, @service)
12
- end
13
-
14
- def switch_current(service)
15
- Current.service!(service)
16
- end
17
-
18
- def info
19
- Info.new(@service, @options)
20
- end
21
- memoize :info
22
-
23
- def no_service_message
24
- <<-EOL
25
- No #{@service.color(:green)} ecs service found.
26
- No CloudFormation stack named #{@stack_name.color(:green)} found.
27
- Are sure it exists?
28
- EOL
29
- end
30
-
31
- def full_service
32
- [@service, Ufo.env_extra].compact.join("-")
33
- end
34
- end
35
- end
data/lib/ufo/cancel.rb DELETED
@@ -1,23 +0,0 @@
1
- module Ufo
2
- class Cancel < Base
3
- def run
4
- stack = find_stack(@stack_name)
5
- unless stack
6
- puts "No #{@service} service to cancel."
7
- puts "No #{@stack_name} stack to cancel. Exiting"
8
- exit
9
- end
10
-
11
- puts "Canceling updates to #{@stack_name}."
12
- if stack.stack_status == "CREATE_IN_PROGRESS"
13
- cloudformation.delete_stack(stack_name: @stack_name)
14
- puts "Canceling stack creation."
15
- elsif stack.stack_status == "UPDATE_IN_PROGRESS"
16
- cloudformation.cancel_update_stack(stack_name: @stack_name)
17
- puts "Canceling stack update."
18
- else
19
- puts "The stack is not in a state to that is cancelable: #{stack.stack_status}"
20
- end
21
- end
22
- end
23
- end
data/lib/ufo/current.rb DELETED
@@ -1,104 +0,0 @@
1
- require 'fileutils'
2
- require 'yaml'
3
-
4
- module Ufo
5
- class Current
6
- def initialize(options={})
7
- Ufo.check_ufo_project!
8
- @options = options
9
- @file = ".ufo/current"
10
- @path = "#{Ufo.root}/#{@file}"
11
- end
12
-
13
- def run
14
- @options[:rm] ? rm : set
15
- end
16
-
17
- def rm
18
- FileUtils.rm_f(@path)
19
- puts "Current settings have been removed. Removed #{@file}"
20
- end
21
-
22
- def set
23
- if @options.empty?
24
- show
25
- else
26
- d = data # assign data to d to create local variable for merge to work
27
- d = d.merge(@options).delete_if do |_,v|
28
- v&.empty? || v == ['']
29
- end
30
- text = YAML.dump(d)
31
- IO.write(@path, text)
32
- puts "Current settings saved in .ufo/current"
33
- show
34
- end
35
- end
36
-
37
- def show
38
- if data.empty?
39
- puts <<-EOL
40
- There are no current settings. To set a current service run:
41
-
42
- ufo current --service my-service
43
- ufo current -h # for more examples
44
- EOL
45
- return
46
- end
47
-
48
- data.each do |key, value|
49
- puts "Current #{key}: #{value}"
50
- end
51
- end
52
-
53
- def data
54
- YAML.load(IO.read(@path)) rescue {}
55
- end
56
-
57
- def env_extra
58
- current = data["env_extra"]
59
- return current unless current&.empty?
60
- end
61
-
62
- def self.env_extra
63
- Current.new.env_extra
64
- end
65
-
66
- def services
67
- return data["services"] || []
68
- end
69
-
70
- # reads services, returns [] if not set
71
- def self.services
72
- Current.new.services
73
- end
74
-
75
- def service
76
- current = data["service"]
77
- return current unless current&.empty?
78
- end
79
-
80
- # reads service, returns nil if not set
81
- def self.service
82
- Current.new.service
83
- end
84
-
85
- # reads service, will exit if current service not set
86
- def self.service!(service=:current)
87
- return service if service != :current
88
-
89
- service = Current.service
90
- return service if service
91
-
92
- puts "ERROR: service must be specified.".color(:red)
93
- puts <<-EOL
94
- Example:
95
- ufo #{ARGV.first} SERVICE
96
- You can also set a current service to be remembered with:
97
- ufo current --service SERVICE
98
- EOL
99
- exit 1
100
- # if want to display full help menu:
101
- # Ufo::CLI.start(ARGV + ["-h"])
102
- end
103
- end
104
- end
@@ -1,24 +0,0 @@
1
- # More info: http://ufoships.com/docs/ufo-settings/
2
- # The base config is specially treated. It gets included the other environments automatically.
3
- # Yaml also directly supports merging with & and <<* syntax but doing it automatically
4
- # for a cleaner syntax.
5
- base:
6
- # image:
7
- # clean_keep: 30
8
- # ecr_keep: 30
9
- network_profile: default # .ufo/settings/network/default.yml file
10
- cfn_profile: default # .ufo/settings/cfn/default.yml file
11
-
12
- development:
13
- # cluster: dev
14
- # When you have AWS_PROFILE set to one of these values, ufo will switch to the desired
15
- # environment. This prevents you from switching AWS_PROFILE, forgetting to
16
- # also switch UFO_ENV, and accidentally deploying to production vs development.
17
- # aws_profiles:
18
- # - dev_profile1
19
- # - dev_profile2
20
-
21
- production:
22
- # cluster: prod
23
- # aws_profiles:
24
- # - prod_profile
@@ -1,39 +0,0 @@
1
- {
2
- "family": "<%= @family %>",
3
- "containerDefinitions": [
4
- {
5
- "name": "<%= @name %>",
6
- "image": "<%= @image %>",
7
- "cpu": <%= @cpu %>,
8
- <% if @memory %>
9
- "memory": <%= @memory %>,
10
- <% end %>
11
- <% if @memory_reservation %>
12
- "memoryReservation": <%= @memory_reservation %>,
13
- <% end %>
14
- <% if @container_port %>
15
- "portMappings": [
16
- {
17
- "containerPort": <%= @container_port %>,
18
- "protocol": "tcp"
19
- }
20
- ],
21
- <% end %>
22
- "command": <%= @command.to_json %>,
23
- <% if @environment %>
24
- "environment": <%= @environment.to_json %>,
25
- <% end %>
26
- <% if @awslogs_group %>
27
- "logConfiguration": {
28
- "logDriver": "awslogs",
29
- "options": {
30
- "awslogs-group": "<%= @awslogs_group %>",
31
- "awslogs-region": "<%= @awslogs_region || 'us-east-1' %>",
32
- "awslogs-stream-prefix": "<%= @awslogs_stream_prefix %>"
33
- }
34
- },
35
- <% end %>
36
- "essential": true
37
- }
38
- ]
39
- }
data/lib/ufo/destroy.rb DELETED
@@ -1,41 +0,0 @@
1
- module Ufo
2
- class Destroy < Base
3
- def bye
4
- unless are_you_sure?
5
- puts "Phew, that was close"
6
- return
7
- end
8
-
9
- stack = find_stack(@stack_name)
10
- unless stack
11
- puts "Stack #{@stack_name.color(:green)} does not exist."
12
- exit
13
- end
14
-
15
- if stack.stack_status =~ /_IN_PROGRESS$/
16
- puts "Cannot destroy service #{@service.color(:green)}"
17
- puts "Cannot delete stack #{@stack_name.color(:green)} in this state: #{stack.stack_status.color(:green)}"
18
- puts "If the stack is taking a long time, you can cancel the current operation with:"
19
- puts " ufo cancel #{@service}"
20
- return
21
- end
22
-
23
- cloudformation.delete_stack(stack_name: @stack_name)
24
- puts "Deleting CloudFormation stack with ECS resources: #{@stack_name}."
25
-
26
- return unless @options[:wait]
27
- start_time = Time.now
28
- status.wait
29
- took = Time.now - start_time
30
- puts "Time took for deletion: #{status.pretty_time(took).color(:green)}."
31
- end
32
-
33
- def are_you_sure?
34
- return true if @options[:sure]
35
- puts "You are about to destroy the #{@stack_name.color(:green)} stack. This contains the #{@service.color(:green)} service on the #{@cluster.color(:green)} cluster."
36
- print "Are you sure you want to do this? (y/N) "
37
- answer = $stdin.gets.strip
38
- answer =~ /^y/
39
- end
40
- end
41
- end
@@ -1,26 +0,0 @@
1
- class Ufo::Docker
2
- class Variables
3
- @@variables_path = "#{Ufo.root}/.ufo/settings/dockerfile_variables.yml"
4
-
5
- def initialize(full_image_name, options={})
6
- @full_image_name, @options = full_image_name, options
7
- end
8
-
9
- def update
10
- data = current_data
11
- data[Ufo.env] ||= {}
12
- data[Ufo.env]["base_image"] = @full_image_name
13
- pretty_path = @@variables_path.sub("#{Ufo.root}/", "")
14
- IO.write(@@variables_path, YAML.dump(data))
15
-
16
- unless @options[:mute]
17
- puts "The #{pretty_path} base_image has been updated with the latest base image:".color(:green)
18
- puts " #{@full_image_name}".color(:green)
19
- end
20
- end
21
-
22
- def current_data
23
- File.exist?(@@variables_path) ? YAML.load_file(@@variables_path) : {}
24
- end
25
- end
26
- end
@@ -1,79 +0,0 @@
1
- # Some of variables are from the Dockerfile and some are from other places.
2
- #
3
- # * helper.full_image_name - Docker image name to be used when a the docker image is build. This is defined in ufo/settings.yml.
4
- # * helper.dockerfile_port - Expose port in the Dockerfile. Only supports one exposed port, the first one that is encountered.
5
-
6
- # Simply aggregates a bunch of variables that is useful for the task_definition.
7
- module Ufo
8
- class DSL
9
- class Helper
10
- include Ufo::Util
11
- extend Memoist
12
-
13
- # Add helpers from .ufo/helpers folder
14
- def add_project_helpers
15
- helpers_dir = "#{Ufo.root}/.ufo/helpers"
16
- Dir.glob("#{helpers_dir}/**/*").each do |path|
17
- next unless File.file?(path)
18
- klass = path.gsub(%r{.*\.ufo/helpers/},'').sub(".rb",'').camelize
19
- self.class.send(:include, klass.constantize)
20
- end
21
- end
22
-
23
- ##############
24
- # helper variables
25
- def dockerfile_port
26
- dockerfile_path = "#{Ufo.root}/Dockerfile"
27
- if File.exist?(dockerfile_path)
28
- parse_for_dockerfile_port(dockerfile_path)
29
- end
30
- end
31
-
32
- def full_image_name
33
- # Dont need to use @options here. Helps simplify the Helper initialization.
34
- Docker::Builder.new({}).full_image_name
35
- end
36
-
37
- #############
38
- # helper methods
39
- def env(text)
40
- Vars.new(text: text).env
41
- end
42
- alias_method :env_vars, :env
43
-
44
- def env_file(path)
45
- Vars.new(file: path).env
46
- end
47
-
48
- def secrets(text)
49
- Vars.new(text: text).secrets
50
- end
51
-
52
- def secrets_file(path)
53
- Vars.new(file: path).secrets
54
- end
55
-
56
- def current_region
57
- default_region = 'us-east-1'
58
- return default_region if ENV['TEST']
59
-
60
- return ENV['UFO_AWS_REGION'] if ENV['UFO_AWS_REGION'] # highest precedence
61
- return ENV['AWS_REGION'] if ENV['AWS_REGION']
62
-
63
- region = `aws configure get region`.strip rescue default_region
64
- region.blank? ? default_region : region
65
- end
66
-
67
- def parse_for_dockerfile_port(dockerfile_path)
68
- lines = IO.read(dockerfile_path).split("\n")
69
- expose_line = lines.find { |l| l =~ /^EXPOSE / }
70
- if expose_line
71
- md = expose_line.match(/EXPOSE (\d+)/)
72
- port = md[1] if md
73
- end
74
- port.to_i if port
75
- end
76
-
77
- end
78
- end
79
- end
@@ -1,43 +0,0 @@
1
- module Ufo
2
- class DSL
3
- class Outputter
4
- def initialize(name, erb_result, options={})
5
- @name = name
6
- @erb_result = erb_result
7
- @options = options
8
- end
9
-
10
- def write
11
- output_path = "#{Ufo.root}/.ufo/output"
12
- FileUtils.rm_rf(output_path) if @options[:clean]
13
- FileUtils.mkdir(output_path) unless File.exist?(output_path)
14
-
15
- path = "#{output_path}/#{@name}.json".sub(/^\.\//,'')
16
- puts " #{path}" unless @options[:quiet]
17
- validate(@erb_result, path)
18
- data = JSON.parse(@erb_result)
19
- override_image(data)
20
- json = JSON.pretty_generate(data)
21
- File.open(path, 'w') {|f| f.write(json) }
22
- end
23
-
24
- def override_image(data)
25
- return data unless @options[:image_override]
26
- data["containerDefinitions"].each do |container_definition|
27
- container_definition["image"] = @options[:image_override]
28
- end
29
- end
30
-
31
- def validate(json, path)
32
- begin
33
- JSON.parse(json)
34
- rescue JSON::ParserError => e
35
- puts "#{e.class}: #{e.message}"
36
- puts "Invalid json. Output written to #{path} for debugging".color(:red)
37
- File.open(path, 'w') {|f| f.write(json) }
38
- exit 1
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,108 +0,0 @@
1
- require "erb"
2
- require "json"
3
-
4
- module Ufo
5
- class DSL
6
- class TaskDefinition
7
- attr_reader :task_definition_name
8
- def initialize(dsl, task_definition_name, options={}, &block)
9
- @dsl = dsl
10
- @task_definition_name = task_definition_name
11
- @block = block
12
- @options = options
13
- end
14
-
15
- # delegate helper method back up to dsl
16
- def helper
17
- @dsl.helper
18
- end
19
-
20
- def template_scope
21
- @template_scope ||= Ufo::TemplateScope.new(helper, @task_definition_name)
22
- end
23
-
24
- def build
25
- copy_instance_variables
26
- begin
27
- instance_eval(&@block)
28
- rescue Exception => e
29
- build_error_info(e)
30
- raise
31
- end
32
- RenderMePretty.result(source_path, context: template_scope)
33
- end
34
-
35
- # Provide a slightly better error message to user when the task definition
36
- # code block is not evaluated successfully.
37
- def build_error_info(e)
38
- puts "ERROR: evaluating block for task_definition #{@task_definition_name}".color(:red)
39
- # The first line of the backtrace has the info of the file name. Example:
40
- # ./.ufo/task_definitions.rb:24:in `block in evaluate_template_definitions'
41
- info = e.backtrace[0]
42
- filename = info.split(':')[0..1].join(':')
43
- puts "Filename: #{filename}".color(:red)
44
- end
45
-
46
-
47
- # Copy the instance variables from TemplateScope to TaskDefinition
48
- # so that config/variables are available in the task_definition blocks also.
49
- # Example:
50
- #
51
- # task_definition "my-app" do
52
- # # make config/variables available here also
53
- # end
54
- #
55
- # This allows possible collision but think it is worth it to have
56
- # variables available.
57
- def copy_instance_variables
58
- template_scope.instance_variables.each do |var|
59
- val = template_scope.instance_variable_get(var)
60
- instance_variable_set(var, val)
61
- end
62
- end
63
-
64
- # At this point instance_eval has been called and source has been possibly called
65
- def source(name)
66
- @source = name
67
- end
68
-
69
- def variables(vars={})
70
- vars.each do |var,value|
71
- # Warn when variable collides with internal variable, but dont warn
72
- # template_scope variables collision.
73
- if instance_variable_defined?("@#{var}") && !template_scope_instance_variable?(var)
74
- puts "WARNING: The instance variable @#{var} is already used internally with ufo. Please name you variable another name!"
75
- end
76
- template_scope.instance_variable_set("@#{var}", value)
77
- end
78
- end
79
-
80
- def template_scope_instance_variable?(var)
81
- template_scope.instance_variables.include?("@#{var}".to_sym)
82
- end
83
-
84
- def source_path
85
- if @source # this means that source has been called
86
- path = "#{Ufo.root}/.ufo/templates/#{@source}.json.erb"
87
- check_source_path(path)
88
- else
89
- # default source path
90
- path = File.expand_path("../../default/templates/main.json.erb", __FILE__)
91
- puts "#{task_definition_name} template definition using default template: #{path}" unless @options[:mute]
92
- end
93
- path
94
- end
95
-
96
- def check_source_path(path)
97
- unless File.exist?(path)
98
- friendly_path = path.sub("#{Ufo.root}/", '')
99
- puts "ERROR: Could not find the #{friendly_path} template. Are sure it exists? Check where you called source in ufo/task_definitions.rb"
100
- exit 1
101
- else
102
- puts "#{task_definition_name} template definition using project template: #{path}" unless @options[:mute]
103
- end
104
- path
105
- end
106
- end
107
- end
108
- end
data/lib/ufo/dsl.rb DELETED
@@ -1,96 +0,0 @@
1
- require 'ostruct'
2
-
3
- module Ufo
4
- class DSL
5
- extend Memoist
6
-
7
- def initialize(template_definitions_path, options={})
8
- @template_definitions_path = template_definitions_path
9
- @options = options
10
- @task_definitions = []
11
- @outputters = []
12
- end
13
-
14
- def run
15
- evaluate_template_definitions
16
- build_task_definitions
17
- write_outputs
18
- end
19
-
20
- # All we're doing at this point is saving blocks of code into memory
21
- # The instance_eval provides the task_definition and helper methods as they are part
22
- # of this class.
23
- def evaluate_template_definitions
24
- source_code = IO.read(@template_definitions_path)
25
- begin
26
- instance_eval(source_code, @template_definitions_path)
27
- rescue Exception => e
28
- if e.class == SystemExit # allow exit to happen normally
29
- raise
30
- else
31
- task_definition_error(e)
32
- puts "\nFull error:"
33
- raise
34
- end
35
- end
36
- end
37
-
38
- # Prints out a user friendly task_definition error message
39
- def task_definition_error(e)
40
- error_info = e.backtrace.first
41
- path, line_no, _ = error_info.split(':')
42
- line_no = line_no.to_i
43
- puts "Error evaluating #{path}:".color(:red)
44
- puts e.message
45
- puts "Here's the line in #{path} with the error:\n\n"
46
-
47
- contents = IO.read(path)
48
- content_lines = contents.split("\n")
49
- context = 5 # lines of context
50
- top, bottom = [line_no-context-1, 0].max, line_no+context-1
51
- spacing = content_lines.size.to_s.size
52
- content_lines[top..bottom].each_with_index do |line_content, index|
53
- line_number = top+index+1
54
- if line_number == line_no
55
- printf("%#{spacing}d %s\n".color(:red), line_number, line_content)
56
- else
57
- printf("%#{spacing}d %s\n", line_number, line_content)
58
- end
59
- end
60
- end
61
-
62
- def build_task_definitions
63
- puts "Generating Task Definitions:" unless @options[:quiet]
64
- clean_existing_task_definitions
65
- @task_definitions.each do |task|
66
- erb_result = task.build
67
- @outputters << Outputter.new(task.task_definition_name, erb_result, @options)
68
- end
69
- end
70
-
71
- def clean_existing_task_definitions
72
- # removing 1 file a a time instead of recursing removing the directory to be safe
73
- Dir.glob("#{Ufo.root}/.ufo/output/*").each do |path|
74
- FileUtils.rm_f(path)
75
- end
76
- end
77
-
78
- def write_outputs
79
- @outputters.each do |outputter|
80
- outputter.write
81
- end
82
- end
83
-
84
- # methods available in task_definitions
85
- def task_definition(name, &block)
86
- @task_definitions << TaskDefinition.new(self, name, @options, &block)
87
- end
88
-
89
- def helper
90
- helper = Helper.new
91
- helper.add_project_helpers
92
- helper
93
- end
94
- memoize :helper
95
- end
96
- end
data/lib/ufo/help/apps.md DELETED
@@ -1,12 +0,0 @@
1
- This command lists ECS services for an ECS cluster. It includes ECS services that were not created by ufo also. A `Ufo?` column value of `yes` indicates that the ECS service was created by ufo version 4 and above. If the service was created with ufo version 3 and below then it will show up as `no`.
2
-
3
- ## Examples
4
-
5
- $ ufo apps
6
- Listing ECS services in the development cluster.
7
- +--------------------------------------------------+-----------------+---------+-------------+------+
8
- | Service Name | Task Definition | Running | Launch type | Ufo? |
9
- +--------------------------------------------------+-----------------+---------+-------------+------+
10
- | development-demo-web-Ecs-7GAUAXH5F56M (demo-web) | demo-web:85 | 2 | FARGATE | yes |
11
- +--------------------------------------------------+-----------------+---------+-------------+------+
12
- $
@@ -1,3 +0,0 @@
1
- ## Examples
2
-
3
- ufo network init
@@ -1,16 +0,0 @@
1
- Provides completions words.
2
-
3
- ## Examples
4
-
5
- ufo completions ship service --mute
6
-
7
- Add this to your profile:
8
-
9
- eval $(ufo completions-script)
10
-
11
- Auto-completion example usage:
12
-
13
- ufo ship [TAB]
14
- ufo ship service [TAB]
15
- ufo ship service --mute[TAB]
16
-
@@ -1 +0,0 @@
1
- eval $(ufo completions_script)