ufo 5.0.7 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,40 +0,0 @@
1
- ---
2
- title: ufo releases
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo releases SERVICE
9
-
10
- ## Description
11
-
12
- Show possible 'releases' or task definitions for the service.
13
-
14
- ## Example
15
-
16
- $ ufo releases
17
- Recent task definitions for this service:
18
- demo-web:86
19
- demo-web:85
20
- demo-web:84
21
- demo-web:83
22
- demo-web:82
23
- demo-web:81
24
- demo-web:80
25
- demo-web:79
26
- demo-web:78
27
- demo-web:77
28
- demo-web:76
29
- $
30
-
31
-
32
- ## Options
33
-
34
- ```
35
- [--verbose], [--no-verbose]
36
- [--mute], [--no-mute]
37
- [--noop], [--no-noop]
38
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
39
- ```
40
-
@@ -1,44 +0,0 @@
1
- ---
2
- title: ufo resources
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo resources SERVICE
9
-
10
- ## Description
11
-
12
- The ECS service resources.
13
-
14
- Displays information about the service.
15
-
16
- ## Examples
17
-
18
- $ ufo resources demo-web
19
- Resources:
20
- Ecs - AWS::ECS::Service:
21
- arn:aws:ecs:us-east-1:111111111111:service/dev-demo-web-Ecs-KN8OVQ7L2N40
22
- EcsSecurityGroupRule - AWS::EC2::SecurityGroupIngress:
23
- EcsSecurityGroupRule
24
- EcsSecurityGroup - AWS::EC2::SecurityGroup:
25
- sg-63c17228
26
- Elb - AWS::ElasticLoadBalancingV2::LoadBalancer:
27
- arn:aws:elasticloadbalancing:us-east-1:111111111111:loadbalancer/app/dev-hi-Elb-1KEVRDILLSUC9/0b9434b7a9a66fb7
28
- ElbSecurityGroup - AWS::EC2::SecurityGroup:
29
- sg-11b1025a
30
- Listener - AWS::ElasticLoadBalancingV2::Listener:
31
- arn:aws:elasticloadbalancing:us-east-1:111111111111:listener/app/dev-hi-Elb-1KEVRDILLSUC9/0b9434b7a9a66fb7/1996f1f252d7ba2e
32
- TargetGroup - AWS::ElasticLoadBalancingV2::TargetGroup:
33
- arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/dev-h-Targe-1VUFA8577XWT7/7e67276c182fdc87
34
-
35
-
36
- ## Options
37
-
38
- ```
39
- [--verbose], [--no-verbose]
40
- [--mute], [--no-mute]
41
- [--noop], [--no-noop]
42
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
43
- ```
44
-
@@ -1,61 +0,0 @@
1
- ---
2
- title: ufo rollback
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo rollback SERVICE VERSION
9
-
10
- ## Description
11
-
12
- Rolls back to older task definition.
13
-
14
- ## Examples
15
-
16
- You only need to specific the task definition version number, though you can specify the name also
17
-
18
- ufo rollback demo-web 1
19
- ufo rollback demo-web demo-web:1
20
-
21
- To see recent task definitions:
22
-
23
- ufo releases
24
-
25
- If you set a current service with `ufo current`, then the commands get shorten:
26
-
27
- ufo rollback demo-web:1
28
- ufo rollback 1
29
-
30
- Note, task definitions get created by many ways with more than just `ufo ship`. So it the previous version might not be the latest version number minus one.
31
-
32
- ## Using image name
33
-
34
- Another way to specify the version for rollback is with the container definition's image value. Here's the portion of the ecs task definition that you would look for:
35
-
36
- ...
37
- "container_definitions": [
38
- {
39
- "name": "web",
40
- "image": "tongueroo/demo-ufo:ufo-2018-06-21T15-03-52-ac60240",
41
- "cpu": 256,
42
- ...
43
-
44
- You only need to specify enough for a match to be found. Ufo searches the 30 most recent task definitions. So all of these would work:
45
-
46
- ufo rollback tongueroo/demo-ufo:ufo-2018-06-21T15-03-52-ac60240
47
- ufo rollback 2018-06-21T15-03-52
48
- ufo rollback ac60240
49
-
50
-
51
- ## Options
52
-
53
- ```
54
- [--wait], [--no-wait] # Wait for deployment to complete
55
- # Default: true
56
- [--verbose], [--no-verbose]
57
- [--mute], [--no-mute]
58
- [--noop], [--no-noop]
59
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
60
- ```
61
-
@@ -1,50 +0,0 @@
1
- ---
2
- title: ufo scale
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo scale SERVICE COUNT
9
-
10
- ## Description
11
-
12
- Scale the ECS service.
13
-
14
- Ufo provides a command to scale up and down an ECS service quickly. It is a simple wrapper for `aws ecs update-service --service xxx ----desired-count xxx`. Here's an example of how you use it:
15
-
16
- $ ufo scale 3
17
- Scale demo-web service in development cluster to 3
18
-
19
- It is useful to use `ufo ps` to check the status.
20
-
21
- $ ufo ps
22
- => Service: demo-web
23
- Service name: development-demo-web-Ecs-7GAUAXH5F56M
24
- Status: ACTIVE
25
- Running count: 2
26
- Desired count: 3
27
- Launch type: FARGATE
28
- Task definition: demo-web:85
29
- Elb: develop-Elb-1M74CLRS2G0Z4-686742146.us-east-1.elb.amazonaws.com
30
- +----------+------+-------------+----------------+--------------+-------+
31
- | Id | Name | Release | Started | Status | Notes |
32
- +----------+------+-------------+----------------+--------------+-------+
33
- | 8f95ef9d | web | demo-web:85 | PENDING | PROVISIONING | |
34
- | f590ee5e | web | demo-web:85 | 50 minutes ago | RUNNING | |
35
- | fb60ba9f | web | demo-web:85 | 48 minutes ago | RUNNING | |
36
- +----------+------+-------------+----------------+--------------+-------+
37
- $
38
-
39
- While scaling via this method is quick and convenient the [ECS Service AutoScaling](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html) that is built into ECS is a much more powerful way to manage scaling your ECS service.
40
-
41
-
42
- ## Options
43
-
44
- ```
45
- [--verbose], [--no-verbose]
46
- [--mute], [--no-mute]
47
- [--noop], [--no-noop]
48
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
49
- ```
50
-
@@ -1,129 +0,0 @@
1
- ---
2
- title: ufo ship
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo ship SERVICE
9
-
10
- ## Description
11
-
12
- Builds and ships container image to the ECS service.
13
-
14
- The main command you use when using ufo is: `ufo ship`. This command:
15
-
16
- 1. builds the docker image
17
- 2. registers the generated ECS task definition
18
- 3. deploys the definition to AWS ECS
19
-
20
- Basic usage is:
21
-
22
- ufo ship demo-web
23
-
24
- The ECS service gets created if the service does not yet exist on the cluster.
25
-
26
- ### Conventions
27
-
28
- By convention, the task and service names match. If you need to override this convention, then you can use the task option. For example, if you want to ship to the `demo-web-1` service and use the `demo-web` task, run:
29
-
30
- ufo ship demo-web-1 --task demo-web
31
-
32
- ## Options in Detail
33
-
34
- The command has a decent amount of options, you can see the options available with `ufo ship -h`. The table below covers some of the options in detail:
35
-
36
- {% include ufo-ship-options.md %}
37
-
38
- As you can see there are plenty of options for `ufo ship`. Let's demonstrate usage of them in a few examples.
39
-
40
- ### Load Balancer
41
-
42
- ECS services can be associated with a Load Balancer upon creation. Ufo can automatically create a load balancer. The options:
43
-
44
- 1. Automatically create the ELB.
45
- 2. Provide a target group from an existing ELB.
46
- 3. No ELB is created.
47
-
48
- Here are examples for each of them:
49
-
50
- ufo ship demo-web --elb=true
51
-
52
- # Use existing target group from pre-created ELB:
53
- ufo ship demo-web --elb=arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/target-name/2378947392743
54
-
55
- # Disable creating elb and prompt:
56
- ufo ship demo-web --elb=false
57
-
58
- Note, if the docker container's name is web then the `--elb` flag defaults to true automatically.
59
-
60
- If you need to create a network load balancer with pre-allocated EIPs, you can use `--elb-eip-ids`, example:
61
-
62
- ufo deploy demo-web --elb-eip-ids eipalloc-a8de9ca1 eipalloc-a8de9ca2
63
-
64
- More info available at the [load balancer docs](http://ufoships.com/docs/load-balancer/).
65
-
66
- ### Deploying Task Definition without Docker Build
67
-
68
- Let's you want skip the docker build phase and only want use ufo to deploy a task definition. You can do this with the `ufo deploy` command. Refer to [ufo deploy](http://ufoships.com/reference/ufo-deploy/) for more info.
69
-
70
- ### Not Waiting for Deployments to Complete
71
-
72
- By default when ufo updates the ECS service with the new task definition, it does so synchronuously. It'll wait until the CloudFormation stack finishes. You can make it asynchronuously with the `--no-wait` option:
73
-
74
- ufo ship demo-web --no-wait
75
-
76
- The `--no-wait` option is useful for creating multiple environments:: [How to Create Unlimited Extra Environments
77
- ](https://blog.boltops.com/2018/07/12/ufo-how-to-create-unlimited-extra-environments).
78
-
79
- ### Route 53 DNS Support
80
-
81
- Ufo can automatically create a "pretty" route53 record an set it to the created ELB dns name. This is done in by configuring the `.ufo/settings/network/[profile].yml` file. Example:
82
-
83
- dns:
84
- name: "{stack_name}.mydomain.com."
85
- hosted_zone_name: mydomain.com. # dont forget the trailing period
86
-
87
- Refer to [Route53 Support](http://ufoships.com/docs/route53-support/) for more info.
88
-
89
- ### Cleaning up Docker Images Automatically
90
-
91
- Since ufo builds the Docker image every time there's a deployment, you eventually will end up with a long list of Docker images. Ufo automatically cleans up older docker images at the end of the deploy process if you are using AWS ECR. By default ufo keeps the most recent 30 Docker images. This can be adjusted with the `--ecr-keep` option.
92
-
93
- docker ship demo-web --ecr-keep 2
94
-
95
- You should see something like this:
96
-
97
- Cleaning up docker images...
98
- Running: docker rmi tongueroo/demo-ufo:ufo-2017-06-12T06-46-12-a18aa30
99
-
100
- If you are using DockerHub or another registry, ufo does not automatically clean up images.
101
-
102
- ### Scheduling Strategy
103
-
104
- You can set the ECS scheduling strategy dynamically. Here's an example:
105
-
106
- ufo ship --scheduling-strategy daemon
107
-
108
- You can change the scheduling strategy by explicitly specifying it. Otherwise, the scheduling strategy state is maintained for future deployments, so you do not have to specify it repeatedly. The default scheduling strategy is replica.
109
-
110
-
111
- ## Options
112
-
113
- ```
114
- [--ecr-keep=N] # ECR specific cleanup of old images. Specifies how many images to keep. Only runs if the images are ECR images. Defaults keeps all images.
115
- [--elb=ELB] # Decides to create elb, not create elb or use existing target group.
116
- [--elb-eip-ids=one two three] # EIP Allocation ids to use for network load balancer.
117
- [--elb-type=ELB_TYPE] # ELB type: application or network. Keep current deployed elb type when not specified.
118
- [--scheduling-strategy=SCHEDULING_STRATEGY] # Scheduling strategy to use for the service. IE: replica, daemon
119
- [--stop-old-tasks], [--no-stop-old-tasks] # Stop old tasks as part of deployment to speed it up
120
- [--task=TASK] # ECS task name, to override the task name convention.
121
- [--wait], [--no-wait] # Wait for deployment to complete
122
- # Default: true
123
- [--image-override=IMAGE_OVERRIDE] # Override image in task definition for quick testing
124
- [--verbose], [--no-verbose]
125
- [--mute], [--no-mute]
126
- [--noop], [--no-noop]
127
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
128
- ```
129
-
@@ -1,68 +0,0 @@
1
- ---
2
- title: ufo ships
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo ships [LIST_OF_SERVICES]
9
-
10
- ## Description
11
-
12
- Builds and ships same container image to multiple ECS services.
13
-
14
- The `ufo ships` command allows you to deploy the *same* Docker image and task definition to multiple ECS services. It is a common pattern to have the same code base running on different roles. For example, say you have an application with 3 roles:
15
-
16
- 1. web - serves web requests.
17
- 2. worker - processes background jobs.
18
- 3. clock - schedules background jobs.
19
-
20
- Instead of using the [ufo ship]({% link _reference/ufo-ship.md %}) and build and deploying the code 3 times you can instead use `ufo ships`. This will result in the *same* Docker image and *same* task definition being deployed to all 3 services. Example usage:
21
-
22
- ufo ships demo-web demo-worker demo-clock
23
-
24
- ## Shell expansion
25
-
26
- Since the ECS service names are provided as a list you can shorten the command by using bash shell expansion 😁
27
-
28
- ufo ships hi-{web,worker,clock}
29
-
30
- If you're new to shell expansion, run this to understand why above works just as well:
31
-
32
- $ echo hi-{web,worker,clock}
33
- demo-web demo-worker demo-clock
34
-
35
- ## Overriding convention
36
-
37
- As explained in detail in [Conventions]({% link _docs/conventions.md %}) the task definition and service name are the same by convention. This convention also applies for each of the services being shipped in the list. The task definition and service names match for each of the services in the list. If you would like to override the convention as part of the ships command then you use a special syntax. In the special syntax the service and task definition is separated by a colon. Examples:
38
-
39
- ufo ships demo-web-1:demo-web demo-clock-1 demo-worker-1
40
- ufo ships demo-web-1:my-task demo-clock-1:another-task demo-worker-1:third-task
41
-
42
- ## ufo ships Options
43
-
44
- The `ufo ships`, `ufo ship`, `ufo deploy` command support the same options. The options are presented here again for convenience:
45
-
46
- {% include ufo-ship-options.md %}
47
-
48
- Note: The `--task` option is not used with the `ufo ships` command.
49
-
50
-
51
- ## Options
52
-
53
- ```
54
- [--ecr-keep=N] # ECR specific cleanup of old images. Specifies how many images to keep. Only runs if the images are ECR images. Defaults keeps all images.
55
- [--elb=ELB] # Decides to create elb, not create elb or use existing target group.
56
- [--elb-eip-ids=one two three] # EIP Allocation ids to use for network load balancer.
57
- [--elb-type=ELB_TYPE] # ELB type: application or network. Keep current deployed elb type when not specified.
58
- [--scheduling-strategy=SCHEDULING_STRATEGY] # Scheduling strategy to use for the service. IE: replica, daemon
59
- [--stop-old-tasks], [--no-stop-old-tasks] # Stop old tasks as part of deployment to speed it up
60
- [--task=TASK] # ECS task name, to override the task name convention.
61
- [--wait], [--no-wait] # Wait for deployment to complete
62
- [--image-override=IMAGE_OVERRIDE] # Override image in task definition for quick testing
63
- [--verbose], [--no-verbose]
64
- [--mute], [--no-mute]
65
- [--noop], [--no-noop]
66
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
67
- ```
68
-
@@ -1,23 +0,0 @@
1
- ---
2
- title: ufo status
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo status SERVICE
9
-
10
- ## Description
11
-
12
- Status of ECS service. Essentially, status of CloudFormation stack
13
-
14
-
15
- ## Options
16
-
17
- ```
18
- [--verbose], [--no-verbose]
19
- [--mute], [--no-mute]
20
- [--noop], [--no-noop]
21
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
22
- ```
23
-
@@ -1,31 +0,0 @@
1
- ---
2
- title: ufo stop
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo stop SERVICE
9
-
10
- ## Description
11
-
12
- Stop tasks from old deployments. Can speed up deployments with network load balancer.
13
-
14
- ECS deployments can sometimes take a while. One reason could be because the old ECS tasks can take some time to drain and removed. The recommended way to speed this draining process up is configuring the `deregistration_delay.timeout_seconds` to a low value. You can configured this in `.ufo/settings/cfn/default.yml`. For more info refer to http://ufoships.com/docs/settings-cfn/ This setting works well for Application Load Balancers.
15
-
16
- However, for Network Load Balancers, it seems like the deregistration_delay is not currently being respected. In this case, it take an annoying load time and this command can help speed up the process.
17
-
18
- The command looks for any extra old ongoing deployments and stops the tasks associated with them. This can cause errors for any inflight requests.
19
-
20
- ufo stop demo-web
21
-
22
-
23
- ## Options
24
-
25
- ```
26
- [--verbose], [--no-verbose]
27
- [--mute], [--no-mute]
28
- [--noop], [--no-noop]
29
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
30
- ```
31
-
@@ -1,56 +0,0 @@
1
- ---
2
- title: ufo task
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo task TASK_DEFINITION
9
-
10
- ## Description
11
-
12
- Run a one-time task.
13
-
14
- The `ufo task` commands:
15
-
16
- 1. Builds the docker image
17
- 2. Registers the ECS task definition
18
- 3. Runs the command
19
-
20
- ## Examples
21
-
22
- You can use the `--command` or `-c` option to override the Docker container command.
23
-
24
- ufo task hi-migrate # default command
25
- ufo task demo-web --command bin/migrate
26
- ufo task demo-web --command bin/with_env bundle exec rake db:migrate:redo VERSION=xxx
27
- ufo task demo-web -c uptime
28
- ufo task demo-web -c pwd
29
-
30
- ## Skipping Docker and Task Registration
31
-
32
- The `--task-only` option is useful. By default, the `ufo task` command will build the docker image and then register a new task definition. The docker build process usually is the part that takes the most time. You can skip the docker build process after building it at least once. This is a faster way to run a bunch of commands with the same Docker image. Example:
33
-
34
- ufo task demo-web -c uptime # build at least once
35
- ufo task demo-web --task-only -c ls # skip docker for speed
36
- ufo task demo-web --task-only -c pwd # skip docker for speed
37
-
38
- ## Params
39
-
40
- You can control and customize the params that get sent to the ECS run_task call with a `config/params.yml` file. More info here: https://ufoships.com/docs/ufo-task-params/
41
-
42
-
43
- ## Options
44
-
45
- ```
46
- [--task-only], [--no-task-only] # Skip docker and task register steps. Only run the task.
47
- w, [--wait], [--no-wait] # Wait for task to finish.
48
- t, [--timeout=N] # How long to wait for task to finish.
49
- # Default: 600
50
- c, [--command=one two three] # Override the command used for the container
51
- [--verbose], [--no-verbose]
52
- [--mute], [--no-mute]
53
- [--noop], [--no-noop]
54
- [--cluster=CLUSTER] # Cluster. Overrides .ufo/settings.yml.
55
- ```
56
-
@@ -1,178 +0,0 @@
1
- ---
2
- title: ufo tasks build
3
- reference: true
4
- ---
5
-
6
- ## Usage
7
-
8
- ufo tasks build
9
-
10
- ## Description
11
-
12
- Build task definitions.
13
-
14
- ## Summarized Example
15
-
16
- ufo tasks build
17
-
18
- Builds all the task defintiions. Note all the existing ufo/output generated task defintions are wiped out.
19
-
20
- ## Explanation
21
-
22
- The command `ufo tasks build` generates the task definitions locally and writes them to the `output/` folder. There are 2 files that it uses in order to produce the raw AWS task definitions files.
23
-
24
- 1. ufo/templates/main.json.erb
25
- 2. ufo/task_definitions.rb
26
-
27
- Here's an example of each of them:
28
-
29
- **main.json.erb**:
30
-
31
- {
32
- "family": "<%= @family %>",
33
- "containerDefinitions": [
34
- {
35
- "name": "<%= @name %>",
36
- "image": "<%= @image %>",
37
- "cpu": <%= @cpu %>,
38
- <% if @memory %>
39
- "memory": <%= @memory %>,
40
- <% end %>
41
- <% if @memory_reservation %>
42
- "memoryReservation": <%= @memory_reservation %>,
43
- <% end %>
44
- <% if @container_port %>
45
- "portMappings": [
46
- {
47
- "containerPort": "<%= @container_port %>",
48
- "protocol": "tcp"
49
- }
50
- ],
51
- <% end %>
52
- "command": <%= @command.to_json %>,
53
- <% if @environment %>
54
- "environment": <%= @environment.to_json %>,
55
- <% end %>
56
- <% if @awslogs_group %>
57
- "logConfiguration": {
58
- "logDriver": "awslogs",
59
- "options": {
60
- "awslogs-group": "<%= @awslogs_group %>",
61
- "awslogs-region": "<%= @awslogs_region || 'us-east-1' %>",
62
- "awslogs-stream-prefix": "<%= @awslogs_stream_prefix %>"
63
- }
64
- },
65
- <% end %>
66
- "essential": true
67
- }
68
- ]
69
- }
70
-
71
- **task_definitions.rb**:
72
-
73
- ```ruby
74
- task_definition "demo-web" do
75
- source "main" # will use ufo/templates/main.json.erb
76
- variables(
77
- family: task_definition_name,
78
- name: "web",
79
- container_port: helper.dockerfile_port,
80
- command: ["bin/web"]
81
- )
82
- end
83
-
84
- task_definition "demo-worker" do
85
- source "main" # will use ufo/templates/main.json.erb
86
- variables(
87
- family: task_definition_name,
88
- name: "worker",
89
- command: ["bin/worker"]
90
- )
91
- end
92
-
93
- task_definition "demo-clock" do
94
- source "main" # will use ufo/templates/main.json.erb
95
- variables(
96
- family: task_definition_name,
97
- name: "clock",
98
- command: ["bin/clock"]
99
- )
100
- end
101
- ```
102
-
103
- The shared variables are set in the variables folder:
104
-
105
- **ufo/variables/base.rb**:
106
-
107
- ```ruby
108
- @image = helper.full_image_name # includes the git sha tongueroo/demo-ufo:ufo-[sha].
109
- @cpu = 128
110
- @memory_reservation = 256
111
- @environment = helper.env_file(".env")
112
- ```
113
-
114
- **ufo/variables/production.rb**:
115
-
116
- ```ruby
117
- @environment = helper.env_vars(%Q{
118
- RAILS_ENV=production
119
- SECRET_KEY_BASE=secret
120
- })
121
- ```
122
-
123
- Ufo combines the `main.json.erb` template, `task_definitions.rb` definitions, and variables in the `.ufo/variables` folder. It then generates the raw AWS formatted task definition in the `output` folder.
124
-
125
- To build the task definitions:
126
-
127
- ufo tasks build
128
-
129
- You should see output similar to below:
130
-
131
- $ ufo tasks build
132
- Building Task Definitions...
133
- Generating Task Definitions:
134
- ufo/output/demo-web.json
135
- ufo/output/demo-worker.json
136
- ufo/output/demo-clock.json
137
- Task Definitions built in ufo/output.
138
- $
139
-
140
- Let's take a look at one of the generated files: `.ufo/output/demo-web.json`.
141
-
142
- {
143
- "family": "demo-web",
144
- "containerDefinitions": [
145
- {
146
- "name": "web",
147
- "image": "tongueroo/demo-ufo:ufo-2017-06-11T22-22-32-a18aa30",
148
- "cpu": 128,
149
- "memoryReservation": 256,
150
- "portMappings": [
151
- {
152
- "containerPort": "3000",
153
- "protocol": "tcp"
154
- }
155
- ],
156
- "command": [
157
- "bin/web"
158
- ],
159
- "environment": [
160
- {
161
- "name": "RAILS_ENV",
162
- "value": "staging"
163
- }
164
- ],
165
- "essential": true
166
- }
167
- ]
168
- }
169
-
170
- If you need to modify the task definition template to suite your own needs it is super simple, just edit `main.json.erb`. No need to dive deep into internal code that builds up the task definition with some internal structure. It is all there for you to fully control.
171
-
172
-
173
- ## Options
174
-
175
- ```
176
- [--image-override=IMAGE_OVERRIDE] # Override image in task definition for quick testing
177
- ```
178
-