ufo 5.0.5 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (455) 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 +11 -1
  11. data/Gemfile +0 -2
  12. data/README.md +2 -31
  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 +13 -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 +245 -340
  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 -4
  179. data/docs/CNAME +0 -1
  180. data/docs/Gemfile +0 -3
  181. data/docs/LICENSE +0 -21
  182. data/docs/README.md +0 -20
  183. data/docs/_config.yml +0 -73
  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/cfn-customize.md +0 -53
  239. data/docs/_includes/commands.html +0 -80
  240. data/docs/_includes/contact.html +0 -17
  241. data/docs/_includes/contact_disqus.html +0 -16
  242. data/docs/_includes/contact_static.html +0 -17
  243. data/docs/_includes/content.html +0 -26
  244. data/docs/_includes/css/bootstrap.min.css +0 -7
  245. data/docs/_includes/css/main.css +0 -501
  246. data/docs/_includes/css/quotes.css +0 -102
  247. data/docs/_includes/css/syntax.css +0 -65
  248. data/docs/_includes/css/table.css +0 -53
  249. data/docs/_includes/css/timeline.css +0 -201
  250. data/docs/_includes/css/ufo.css +0 -218
  251. data/docs/_includes/edit-on-github.html +0 -11
  252. data/docs/_includes/example.html +0 -63
  253. data/docs/_includes/footer.html +0 -51
  254. data/docs/_includes/google_analytics.html +0 -10
  255. data/docs/_includes/head.html +0 -32
  256. data/docs/_includes/header.html +0 -15
  257. data/docs/_includes/js.html +0 -32
  258. data/docs/_includes/js_disqus.html +0 -21
  259. data/docs/_includes/modals.html +0 -40
  260. data/docs/_includes/nav.html +0 -27
  261. data/docs/_includes/prev_next.md +0 -19
  262. data/docs/_includes/quotes.html +0 -19
  263. data/docs/_includes/reference.md +0 -5
  264. data/docs/_includes/repo_push_access.md +0 -11
  265. data/docs/_includes/subnav.html +0 -78
  266. data/docs/_includes/summary.html +0 -22
  267. data/docs/_includes/ufo-ship-options.md +0 -12
  268. data/docs/_includes/uses.html +0 -19
  269. data/docs/_layouts/default.html +0 -11
  270. data/docs/_layouts/style.css +0 -6
  271. data/docs/_reference/ufo-apps.md +0 -37
  272. data/docs/_reference/ufo-cancel.md +0 -24
  273. data/docs/_reference/ufo-completion.md +0 -46
  274. data/docs/_reference/ufo-completion_script.md +0 -27
  275. data/docs/_reference/ufo-current.md +0 -93
  276. data/docs/_reference/ufo-deploy.md +0 -76
  277. data/docs/_reference/ufo-destroy.md +0 -36
  278. data/docs/_reference/ufo-docker-base.md +0 -71
  279. data/docs/_reference/ufo-docker-build.md +0 -91
  280. data/docs/_reference/ufo-docker-clean.md +0 -44
  281. data/docs/_reference/ufo-docker-compile.md +0 -19
  282. data/docs/_reference/ufo-docker-help.md +0 -15
  283. data/docs/_reference/ufo-docker-name.md +0 -37
  284. data/docs/_reference/ufo-docker-push.md +0 -49
  285. data/docs/_reference/ufo-docker.md +0 -38
  286. data/docs/_reference/ufo-init.md +0 -125
  287. data/docs/_reference/ufo-logs.md +0 -40
  288. data/docs/_reference/ufo-network-help.md +0 -15
  289. data/docs/_reference/ufo-network-init.md +0 -39
  290. data/docs/_reference/ufo-network.md +0 -26
  291. data/docs/_reference/ufo-ps.md +0 -56
  292. data/docs/_reference/ufo-releases.md +0 -40
  293. data/docs/_reference/ufo-resources.md +0 -44
  294. data/docs/_reference/ufo-rollback.md +0 -61
  295. data/docs/_reference/ufo-scale.md +0 -50
  296. data/docs/_reference/ufo-ship.md +0 -129
  297. data/docs/_reference/ufo-ships.md +0 -68
  298. data/docs/_reference/ufo-status.md +0 -23
  299. data/docs/_reference/ufo-stop.md +0 -31
  300. data/docs/_reference/ufo-task.md +0 -56
  301. data/docs/_reference/ufo-tasks-build.md +0 -178
  302. data/docs/_reference/ufo-tasks-help.md +0 -15
  303. data/docs/_reference/ufo-tasks-register.md +0 -29
  304. data/docs/_reference/ufo-tasks.md +0 -35
  305. data/docs/_reference/ufo-upgrade-help.md +0 -15
  306. data/docs/_reference/ufo-upgrade-v2to3.md +0 -15
  307. data/docs/_reference/ufo-upgrade-v33to34.md +0 -15
  308. data/docs/_reference/ufo-upgrade-v3to4.md +0 -27
  309. data/docs/_reference/ufo-upgrade-v43to45.md +0 -15
  310. data/docs/_reference/ufo-upgrade.md +0 -29
  311. data/docs/_reference/ufo-version.md +0 -23
  312. data/docs/articles.md +0 -14
  313. data/docs/bin/web +0 -4
  314. data/docs/css/font-awesome/css/font-awesome.css +0 -1566
  315. data/docs/css/font-awesome/css/font-awesome.min.css +0 -4
  316. data/docs/css/font-awesome/fonts/FontAwesome.otf +0 -0
  317. data/docs/css/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  318. data/docs/css/font-awesome/fonts/fontawesome-webfont.svg +0 -504
  319. data/docs/css/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  320. data/docs/css/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  321. data/docs/docs.md +0 -29
  322. data/docs/img/docs/cloudformation-resources.png +0 -0
  323. data/docs/img/logos/boltops-logo-full.png +0 -0
  324. data/docs/img/logos/boltops-logo.png +0 -0
  325. data/docs/img/logos/ufo-logo-2.png +0 -0
  326. data/docs/img/logos/ufo-logo.png +0 -0
  327. data/docs/img/logos/ufo-site-header.png +0 -0
  328. data/docs/img/logos/ufo.jpg +0 -0
  329. data/docs/img/tutorials/ecs-console-task-definitions.png +0 -0
  330. data/docs/img/tutorials/ecs-console-ufo-ship.png +0 -0
  331. data/docs/img/tutorials/ecs-console-ufo-ships.png +0 -0
  332. data/docs/index.html +0 -10
  333. data/docs/js/bootstrap.js +0 -2114
  334. data/docs/js/bootstrap.min.js +0 -6
  335. data/docs/js/cbpAnimatedHeader.js +0 -44
  336. data/docs/js/cbpAnimatedHeader.min.js +0 -11
  337. data/docs/js/classie.js +0 -80
  338. data/docs/js/contact_me.js +0 -70
  339. data/docs/js/contact_me_static.js +0 -23
  340. data/docs/js/freelancer.js +0 -37
  341. data/docs/js/jqBootstrapValidation.js +0 -912
  342. data/docs/js/jquery-1.11.0.js +0 -4
  343. data/docs/js/jquery.easing.min.js +0 -44
  344. data/docs/js/nav.js +0 -53
  345. data/docs/quick-start.md +0 -133
  346. data/docs/reference.md +0 -29
  347. data/docs/style.css +0 -3
  348. data/docs/utils/ssl-doctor.rb +0 -89
  349. data/docs/utils/test-aws-api-access.rb +0 -11
  350. data/docs/utils/update-cert-chains.sh +0 -11
  351. data/lib/template/.env +0 -3
  352. data/lib/template/.secrets +0 -5
  353. data/lib/template/.ufo/iam_roles/execution_role.rb +0 -7
  354. data/lib/template/.ufo/iam_roles/task_role.rb +0 -21
  355. data/lib/template/.ufo/params.yml.tt +0 -27
  356. data/lib/template/.ufo/settings/cfn/default.yml.tt +0 -72
  357. data/lib/template/.ufo/settings/network/default.yml.tt +0 -26
  358. data/lib/template/.ufo/settings.yml.tt +0 -26
  359. data/lib/template/.ufo/task_definitions.rb.tt +0 -61
  360. data/lib/template/.ufo/templates/fargate.json.erb +0 -39
  361. data/lib/template/.ufo/templates/main.json.erb +0 -43
  362. data/lib/template/.ufo/variables/base.rb.tt +0 -19
  363. data/lib/template/.ufo/variables/development.rb +0 -8
  364. data/lib/template/.ufo/variables/production.rb +0 -7
  365. data/lib/template/Dockerfile +0 -15
  366. data/lib/template/bin/deploy.tt +0 -7
  367. data/lib/ufo/apps/cfn_map.rb +0 -70
  368. data/lib/ufo/apps/cluster.rb +0 -24
  369. data/lib/ufo/apps/service.rb +0 -56
  370. data/lib/ufo/apps.rb +0 -56
  371. data/lib/ufo/aws_service.rb +0 -36
  372. data/lib/ufo/base.rb +0 -35
  373. data/lib/ufo/cancel.rb +0 -23
  374. data/lib/ufo/current.rb +0 -104
  375. data/lib/ufo/default/settings.yml +0 -24
  376. data/lib/ufo/default/templates/main.json.erb +0 -39
  377. data/lib/ufo/destroy.rb +0 -41
  378. data/lib/ufo/docker/variables.rb +0 -26
  379. data/lib/ufo/dsl/helper.rb +0 -79
  380. data/lib/ufo/dsl/outputter.rb +0 -43
  381. data/lib/ufo/dsl/task_definition.rb +0 -108
  382. data/lib/ufo/dsl.rb +0 -96
  383. data/lib/ufo/help/apps.md +0 -12
  384. data/lib/ufo/help/balancer.md +0 -3
  385. data/lib/ufo/help/completions.md +0 -16
  386. data/lib/ufo/help/completions_script.md +0 -1
  387. data/lib/ufo/help/current.md +0 -65
  388. data/lib/ufo/help/deploy.md +0 -38
  389. data/lib/ufo/help/destroy.md +0 -9
  390. data/lib/ufo/help/docker/base.md +0 -49
  391. data/lib/ufo/help/docker/name.md +0 -16
  392. data/lib/ufo/help/docker.md +0 -6
  393. data/lib/ufo/help/init.md +0 -91
  394. data/lib/ufo/help/network/init.md +0 -13
  395. data/lib/ufo/help/ps.md +0 -27
  396. data/lib/ufo/help/releases.md +0 -16
  397. data/lib/ufo/help/resources.md +0 -20
  398. data/lib/ufo/help/rollback.md +0 -35
  399. data/lib/ufo/help/scale.md +0 -26
  400. data/lib/ufo/help/ship.md +0 -95
  401. data/lib/ufo/help/ships.md +0 -35
  402. data/lib/ufo/help/stop.md +0 -7
  403. data/lib/ufo/help/task.md +0 -27
  404. data/lib/ufo/help/tasks/build.md +0 -158
  405. data/lib/ufo/help/tasks/register.md +0 -14
  406. data/lib/ufo/help/tasks.md +0 -7
  407. data/lib/ufo/help/upgrade/v3to4.md +0 -3
  408. data/lib/ufo/help.rb +0 -9
  409. data/lib/ufo/init.rb +0 -119
  410. data/lib/ufo/network/fetch.rb +0 -48
  411. data/lib/ufo/network/helper.rb +0 -23
  412. data/lib/ufo/network/init.rb +0 -26
  413. data/lib/ufo/network.rb +0 -21
  414. data/lib/ufo/ps.rb +0 -129
  415. data/lib/ufo/scale.rb +0 -28
  416. data/lib/ufo/setting/profile.rb +0 -39
  417. data/lib/ufo/setting/security_groups.rb +0 -22
  418. data/lib/ufo/setting.rb +0 -75
  419. data/lib/ufo/settings.rb +0 -20
  420. data/lib/ufo/ship.rb +0 -103
  421. data/lib/ufo/stack/builder/conditions.rb +0 -23
  422. data/lib/ufo/stack/builder/parameters.rb +0 -45
  423. data/lib/ufo/stack/builder/resources/base.rb +0 -4
  424. data/lib/ufo/stack/builder/resources/dns.rb +0 -17
  425. data/lib/ufo/stack/builder/resources/elb.rb +0 -45
  426. data/lib/ufo/stack/builder/resources/listener.rb +0 -42
  427. data/lib/ufo/stack/builder/resources/listener_ssl.rb +0 -16
  428. data/lib/ufo/stack/builder/resources/roles/base.rb +0 -22
  429. data/lib/ufo/stack/builder/resources/roles/execution_role.rb +0 -4
  430. data/lib/ufo/stack/builder/resources/roles/task_role.rb +0 -4
  431. data/lib/ufo/stack/builder/resources/security_group/base.rb +0 -4
  432. data/lib/ufo/stack/builder/resources.rb +0 -20
  433. data/lib/ufo/stack/builder.rb +0 -26
  434. data/lib/ufo/stack/context.rb +0 -253
  435. data/lib/ufo/stack/helper.rb +0 -48
  436. data/lib/ufo/stack/template_body.rb +0 -13
  437. data/lib/ufo/stack.rb +0 -213
  438. data/lib/ufo/status.rb +0 -56
  439. data/lib/ufo/stop.rb +0 -49
  440. data/lib/ufo/task.rb +0 -225
  441. data/lib/ufo/tasks/builder.rb +0 -40
  442. data/lib/ufo/tasks/register.rb +0 -90
  443. data/lib/ufo/template_scope.rb +0 -57
  444. data/lib/ufo/util.rb +0 -69
  445. data/spec/lib/apps_spec.rb +0 -20
  446. data/spec/lib/builder_spec.rb +0 -23
  447. data/spec/lib/cli_spec.rb +0 -73
  448. data/spec/lib/completion_spec.rb +0 -18
  449. data/spec/lib/ps_spec.rb +0 -14
  450. data/spec/lib/register_spec.rb +0 -49
  451. data/spec/lib/setting_spec.rb +0 -18
  452. data/spec/lib/ship_spec.rb +0 -46
  453. data/spec/lib/stack/status_spec.rb +0 -76
  454. data/spec/lib/stop_spec.rb +0 -13
  455. data/spec/lib/task_spec.rb +0 -54
@@ -1,52 +0,0 @@
1
- ---
2
- title: Upgrading to Version 4.5
3
- short_title: Version 4.5
4
- order: 2
5
- categories: upgrading
6
- nav_order: 40
7
- ---
8
-
9
- In ufo version 4.4 and 4.5, the default cloudformation stack names used by ufo were changed.
10
-
11
- * In versions 4.3 and below, the cluster name is prepended to the service name.
12
- * In version 4.4, the cluster name is appended to the service name.
13
- * In version 4.5, the Ufo.env name is appended to the service name.
14
-
15
- By convention, the cluster name defaults to UFO_ENV. So, by default there is not difference between cluster name and UFO_ENV. However, if you were using the cluster option then there will be a difference. Here's a table to help explain:
16
-
17
- Version | UFO_ENV | Cluster Name | Stack Name
18
- --- | --- | --- | ---
19
- 4.3 and below | development | mycluster | mycluster-demo-web
20
- 4.4 | development | mycluster | demo-web-mycluster
21
- 4.5 | development | mycluster | demo-web-development
22
-
23
- You must upgrade to using the new stack and delete the old stack manually. You can delete the old stack with the CloudFormation console by selecting the old stack, clicking Actions, and *Delete Stack*.
24
-
25
- ## Upgrading Instructions
26
-
27
- To upgrade from version 4.3 to 4.5 you can run:
28
-
29
- ufo upgrade v43to45
30
-
31
- This updates your `.ufo/settings.yml` file to include `stack_naming: append_ufo_env` which removes a warning message and 20 second delay when you deploy. Example:
32
-
33
- .ufo/settings.yml:
34
-
35
- ```yaml
36
- base:
37
- stack_naming: append_ufo_env
38
- ```
39
-
40
- If you would still like to keep the old behavior, you can use:
41
-
42
- Version | Setting
43
- --- | ---
44
- 4.3 and below | stack_naming: prepend_cluster
45
- 4.4 | stack_naming: append_cluster
46
- 4.5 | stack_naming: append_ufo_env
47
-
48
- ## Reasoning
49
-
50
- CloudFormation names the resources it creates with the beginning portion of the stack name. When the stack name prepends the environment then resources like ELBs a little bit harder to identify since they might be named something like this `product-Elb-K0LFFQ9LK50W`. It makes it harder to distinguish ELBs from different apps created by ufo.
51
-
52
- {% include prev_next.md %}
@@ -1,48 +0,0 @@
1
- ---
2
- title: Upgrading to Version 4.0
3
- short_title: Version 4.0
4
- order: 3
5
- categories: upgrading
6
- nav_order: 41
7
- ---
8
-
9
- A major change in ufo from version 3 to 4 is that the ECS service is now created by CloudFormation. If you have an existing ECS service deployed by ufo version 3, when you deploy your app again with ufo version 4, there will be a new additional ECS service created. Here is the recommended upgrade path.
10
-
11
- ## Upgrade Steps Summary
12
-
13
- The upgrade path recommended here should result in zero downtime. It is effectively a blue/green deployment with a DNS switchover.
14
-
15
- 1. Run `ufo upgrade v3to4` in your project folder.
16
- 2. Check the changed files.
17
- 3. Run `ufo ship SERVICE`.
18
- 4. Confirm your new service is working. `ufo ps` and `ufo apps` is useful.
19
- 5. Switch the DNS to the new service's endpoint.
20
- 6. Confirm everything on the new service works.
21
- 7. Destroy the old ECS service with the ECS console. Do not destroy it with `ufo destroy` as the `ufo destroy` command will destroy the newly created service.
22
-
23
- Note, with ufo version 4, load balancers are supported and automatically created for web services. If you want to use the existing load balancer, you can do so by specifying `--elb existing-target-group-arn`.
24
-
25
- ### ufo upgrade v3to4
26
-
27
- It is recommended that you run the `ufo upgrade v3to4` command with the network options specified. Please substitute the command with the vpc id and subnets for your setup. Example:
28
-
29
- $ ufo upgrade v3to4 --vpc-id vpc-111 --ecs-subnets subnet-111 subnet-222 --elb-subnets subnet-333 subnet-444 --force
30
- Upgrading structure of your current project to the new ufo version 4 project structure
31
- append .dockerignore
32
- append .gitignore
33
- force .ufo/params.yml
34
- create .ufo/settings/cfn/default.yml
35
- create .ufo/settings/network/default.yml
36
- Upgrade complete.
37
-
38
- If you run the upgrade command without specified options, then ufo will detect and use the default vpc and subnets, which might not be what you want. Inspect the files and verify that they are what you desired.
39
-
40
- ### Verify changed files
41
-
42
- File | Changes
43
- --- | ---
44
- .ufo/params.yml | The create_service and update_service sections have been removed. The options handed by CloudFormation and can be customized with `.ufo/settings/cfn/default.yml`. If you have used these options for Fargate support, you no longer need to worry about them. The generated CloudFormation template detects if the task definition uses Fargate and handles it for you.
45
- .ufo/settings/cfn/default.yml | Starter cfn settings file.
46
- .ufo/settings/network/default.yml | This generated file will have the vpc and subnets that you specified above. You can change them directly in this file to control what network settings ufo uses.
47
-
48
- {% include prev_next.md %}
@@ -1,19 +0,0 @@
1
- ---
2
- title: Upgrading to Version 5
3
- short_title: Version 5
4
- order: 1
5
- categories: upgrading
6
- nav_order: 39
7
- ---
8
-
9
- In ufo v5, the ufo went from underscore key names in the [cfn settings files]({% link _docs/settings/cfn.md %}) to camelized key names. So the auto_camelize behavior is disabled for newly `ufo init` projects. This mean ufo is backwards compatiable. You can enable the v5 behavior with `auto_camelize: false`. If you have not adjusted this setting, then ufo should still work with your current `.ufo` files.
10
-
11
- ## Upgrading Instructions
12
-
13
- If you want to upgrade to the latest ufo v5 default behavior.
14
-
15
- 1. Adjust your .ufo/settings/cfn files so that the keys are camelized
16
- 2. Add to your .ufo/settings.yml `auto_camelize: false`
17
- 3. Deploy and verify that your ECS app stil works
18
-
19
- {% include prev_next.md %}
@@ -1,13 +0,0 @@
1
- ---
2
- title: Upgrading
3
- nav_order: 38
4
- ---
5
-
6
- <ul>
7
- {% assign docs = site.docs | where: "categories","upgrading" | sort: "order" %}
8
- {% for doc in docs -%}
9
- <li><a href='{{doc.url}}'>{{doc.title}}</a></li>
10
- {% endfor %}
11
- </ul>
12
-
13
- {% include prev_next.md %}
@@ -1,55 +0,0 @@
1
- ---
2
- title: Shared Variables
3
- nav_order: 18
4
- ---
5
-
6
- Often, you end up using the set of common variables across your task definitions for a project. Ufo supports a shared variables concept to support this. You specify variables files in the `.ufo/variables` folder and they are made available to your `.ufo/task_definitions.rb` as well as your `.ufo/templates` files.
7
-
8
- For example, given `variables/base.rb`:
9
-
10
- ```
11
- @image = helper.full_image_name # includes the git sha tongueroo/demo-ufo:ufo-[sha].
12
- @cpu = 128
13
- @memory_reservation = 256
14
- @environment = helper.env_file(".env")
15
- ```
16
-
17
- You can now use `@image` in your `.ufo/templates/main.json.erb` without having to declare them in the `.ufo/task_definitions.rb` file explicitly. Variables are automatically made available to all templates and the `task_definition.rb` file.
18
-
19
- ## Layering
20
-
21
- Shared variables also support a concept called layering. The `variables/base.rb` file is treated specially and will always be evaluated. Additionally, ufo will also evaluate the `variables/[UFO_ENV].rb` according to what UFO_ENV's value is. Thanks to layering, you can easily override variables to suit different environments like `production` or `development`. For example:
22
-
23
- `.ufo/variables/base.rb`:
24
-
25
- ```ruby
26
- @image = helper.full_image_name # includes the git sha tongueroo/demo-ufo:ufo-[sha].
27
- @cpu = 128
28
- @memory_reservation = 256
29
- @environment = helper.env_file(".env")
30
- ```
31
-
32
- When `ufo ship` is ran with `UFO_ENV=production` the `variables/production.rb` will be evaluated and layered on top of the variables defined in `base.rb`:
33
-
34
- `.ufo/variables/production.rb`:
35
-
36
- ```ruby
37
- @environment = helper.env_vars(%Q[
38
- RAILS_ENV=production
39
- SECRET_KEY_BASE=secret
40
- ])
41
- ```
42
-
43
- When `ufo ship` is ran with `UFO_ENV=development` the `variables/development.rb` will be evaluated and layered on top of the variables defined in `base.rb`:
44
-
45
-
46
- `.ufo/variables/development.rb`:
47
-
48
- ```ruby
49
- @environment = helper.env_vars(%Q[
50
- RAILS_ENV=development
51
- SECRET_KEY_BASE=secret
52
- ])
53
- ```
54
-
55
- {% include prev_next.md %}
@@ -1,19 +0,0 @@
1
- <!-- About Section -->
2
- <section class="success" id="about">
3
- <div class="container">
4
- <div class="row">
5
- <div class="col-lg-12 text-center">
6
- <h2>About</h2>
7
- <hr class="star-light">
8
- </div>
9
- </div>
10
- <div class="row">
11
- <div class="col-lg-4 col-lg-offset-2">
12
- <p>Ufo is a tool that makes building and shipping Docker containers to AWS ECS easy. At a basic level, ufo builds the docker container image, registers that image to ECS as a task definition, and then deploys that task definition to ECS by updating the service. Ufo provides a <code>ufo ship</code> command that deploys your code to ECS.</p>
13
- </div>
14
- <div class="col-lg-4">
15
- <p>Ufo was built directly from real life production use cases after seeing the same patterns repeated over and over. Ufo allows you to write the AWS task definition json format file in ERB, an easy templating language. This allows you to reuse the ufo tool with multiple applications and only put the truly application specific business logic in each app code base.</p>
16
- </div>
17
- </div>
18
- </div>
19
- </section>
@@ -1,53 +0,0 @@
1
- The properties in the file `.ufo/settings/cfn/default.yml` map directly to ufo's CloudFormation resources. It allows you to customize the resources. The keys get transform to CamelCase keys to work with the CloudFormation template.
2
-
3
- ### Example of Customization
4
-
5
- Let's customize the `AWS::ElasticLoadBalancingV2::TargetGroup` resource created by CloudFormation. We'll adjust the `deregistration_delay.timeout_seconds` to `8`. Here's the relevant section of the `.ufo/settings/cfn/default.yml`
6
-
7
- ```
8
- TargetGroup:
9
- ...
10
- TargetGroupAttributes:
11
- - Key: deregistration_delay.timeout_seconds
12
- Value: 8
13
- ```
14
-
15
- The value will be injected to the generated CloudFormation template under the corresponding "TargetGroup Properties". The generated template looks something like this:
16
-
17
- ```
18
- TargetGroup:
19
- Properties:
20
- ...
21
- TargetGroupAttributes:
22
- - Key: deregistration_delay.timeout_seconds
23
- Value: 8
24
- ...
25
- ```
26
-
27
- In this way, you can customize and override any properties associated with resources created by the ufo CloudFormation stack.
28
-
29
- Here's a list of the resources in the [cfn/stack.yml](https://github.com/tongueroo/ufo/blob/master/lib/cfn/stack.yml) that you can customize:
30
-
31
- * Ecs
32
- * EcsSecurityGroup
33
- * EcsSecurityGroupRule
34
- * Elb
35
- * ElbSecurityGroup
36
- * Listener
37
- * TargetGroup
38
-
39
- ## Layering Support
40
-
41
- The `base.yml` profile files always get evaluated and env-specific ENV.yml file are layered or merged together. This miminizes duplication. For example, these files are merged:
42
-
43
- * .ufo/settings/cfn/base.yml
44
- * .ufo/settings/cfn/development.yml
45
-
46
- The settings in `development.yml` override the settings in `base.yml`. Here's another example:
47
-
48
- * .ufo/settings/network/base.yml
49
- * .ufo/settings/network/development.yml
50
-
51
- Note, this feature is available in v5.0.5+.
52
-
53
- For the most up to date list check out the [cfn/stack.yml](https://github.com/tongueroo/ufo/blob/master/lib/cfn/stack.yml) source code directly.
@@ -1,80 +0,0 @@
1
- <!-- About Section -->
2
- <section id="about">
3
- <div class="container">
4
- <div class="row">
5
- <div class="col-lg-6">
6
- <h3>Commands</h3>
7
- <div class="commands">
8
- {% highlight sh %}
9
- ufo ship
10
- ufo ps
11
- ufo current
12
- ufo apps
13
- ufo scale
14
- ufo docker build
15
- ufo tasks build
16
- ufo rollback
17
- ufo destroy
18
- {% endhighlight %}
19
- </div>
20
- </div>
21
- <div class="col-lg-6">
22
- <h3>variables/base.rb</h3>
23
- <div class="commands">
24
- {% highlight ruby %}
25
- @image = helper.full_image_name # includes the git sha tongueroo/demo-ufo:ufo-[sha].
26
- @cpu = 128
27
- @memory_reservation = 256
28
- @environment = helper.env_vars(%Q{
29
- RAILS_ENV=production
30
- SITE=awesome
31
- })
32
- {% endhighlight %}
33
- </div>
34
- </div>
35
- </div>
36
- <div class="row">
37
- <div class="col-lg-6">
38
- <h3>templates/main.json.erb</h3>
39
- <div class="commands">
40
- {% highlight json %}
41
- {
42
- "family": "<%= @family %>",
43
- "containerDefinitions": [
44
- {
45
- "name": "<%= @name %>",
46
- "image": "<%= @image %>",
47
- <% if @cpu %>
48
- "cpu": <%= @cpu %>,
49
- <% end %>
50
- "command": <%= @command.to_json %>,
51
- <% if @environment %>
52
- "environment": <%= @environment.to_json %>,
53
- <% end %>
54
- "essential": true
55
- }
56
- ]
57
- }
58
- {% endhighlight %}
59
- </div>
60
- </div>
61
- <div class="col-lg-6">
62
- <h3>template_definitions.rb</h3>
63
- <div class="commands">
64
- {% highlight ruby %}
65
- task_definition "example-web" do
66
- source "main"
67
- variables(
68
- family: task_definition_name,
69
- name: "web",
70
- awslogs_group: "ecs/example-web",
71
- awslogs_stream_prefix: "example",
72
- command: ["bin/web"]
73
- )
74
- end
75
- {% endhighlight %}
76
- </div>
77
- </div>
78
- </div>
79
- </div>
80
- </section>
@@ -1,17 +0,0 @@
1
- <!-- Contact Section -->
2
- <section class="success" id="contact">
3
- <div class="container">
4
- <div class="row">
5
- <div class="col-lg-12 text-center">
6
- <h2>Learn More</h2>
7
- <hr class="star-primary">
8
- </div>
9
- </div>
10
- <div class="row">
11
- <div class="col-lg-12 text-center">
12
- <div id="success"></div>
13
- <a id="next" href="{% link quick-start.md %}" class="btn btn-primary btn-xl">Quick Start</a>
14
- </div>
15
- </div>
16
- </div>
17
- </section>
@@ -1,16 +0,0 @@
1
- <!-- Contact Section -->
2
- <section id="contact">
3
- <div class="container">
4
- <div class="row">
5
- <div class="col-lg-12 text-center">
6
- <h2>Contact me</h2>
7
- <hr class="star-primary">
8
- </div>
9
- </div>
10
- <div class="row">
11
- <div class="col-lg-8 col-lg-offset-2">
12
- <div id="disqus_thread"></div><!-- /#disqus_thread -->
13
- </div>
14
- </div>
15
- </div>
16
- </section>
@@ -1,17 +0,0 @@
1
- <!-- Contact Section -->
2
- <section class="success" id="contact">
3
- <div class="container">
4
- <div class="row">
5
- <div class="col-lg-12 text-center">
6
- <h2>Learn More</h2>
7
- <hr class="star-primary">
8
- </div>
9
- </div>
10
- <div class="row">
11
- <div class="col-lg-12 text-center">
12
- <div id="success"></div>
13
- <button type="submit" class="btn btn-xl">Send Message</button>
14
- </div>
15
- </div>
16
- </div>
17
- </section>
@@ -1,26 +0,0 @@
1
- {% if page.url == "/" %}
2
-
3
- {{ content }}
4
-
5
- {% else %}
6
-
7
- <!-- Main section -->
8
- <section id="main">
9
- <div class="container">
10
- <div class="row">
11
- {% if page.reference %}
12
- <div class="col-md-9 reference-nav">
13
- <a href="/reference">Back to Reference Index</a>
14
- </div>
15
- {% endif %}
16
- <div class="col-md-9 content-body">
17
- <h1>{{ page.title }}</h1>
18
- {{ content }}
19
- {% include edit-on-github.html %}
20
- </div>
21
- {% include subnav.html %}
22
- </div>
23
- </div>
24
- </section>
25
-
26
- {% endif %}