ufo 5.0.7 → 6.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.cody/README.md +19 -0
- data/.cody/acceptance/bin/build.sh +90 -0
- data/.cody/acceptance/buildspec.yml +10 -0
- data/.cody/acceptance/project.rb +11 -0
- data/.cody/acceptance/role.rb +28 -0
- data/.cody/shared/script/install/ufo.sh +40 -0
- data/.cody/shared/script/install.sh +5 -0
- data/.github/workflows/main.yml +28 -0
- data/CHANGELOG.md +15 -1
- data/Gemfile +0 -2
- data/README.md +1 -32
- data/lib/templates/docker/Dockerfile +4 -0
- data/lib/templates/helper/%underscore_name%_helper.rb.tt +6 -0
- data/lib/templates/init/.ufo/config/web/base.rb +6 -0
- data/lib/templates/init/.ufo/config/web/dev.rb +6 -0
- data/lib/templates/init/.ufo/config/web/prod.rb +6 -0
- data/lib/templates/init/.ufo/config.rb.tt +39 -0
- data/lib/templates/init/.ufo/resources/iam_roles/execution_role.rb +23 -0
- data/lib/templates/init/.ufo/resources/iam_roles/task_role.rb +20 -0
- data/lib/templates/init/.ufo/resources/task_definitions/web.yml +31 -0
- data/lib/templates/init/.ufo/vars/base.rb +20 -0
- data/lib/templates/init/.ufo/vars/dev.rb +4 -0
- data/lib/templates/init/.ufo/vars/prod.rb +4 -0
- data/lib/ufo/aws_services.rb +118 -0
- data/lib/ufo/booter.rb +27 -0
- data/lib/ufo/cfn/base.rb +7 -0
- data/lib/ufo/cfn/deploy.rb +54 -0
- data/lib/ufo/{stack → cfn/stack}/builder/base.rb +12 -23
- data/lib/ufo/cfn/stack/builder/conditions.rb +25 -0
- data/lib/ufo/{stack → cfn/stack}/builder/outputs.rb +2 -2
- data/lib/ufo/cfn/stack/builder/parameters.rb +34 -0
- data/lib/ufo/cfn/stack/builder/resources/base.rb +4 -0
- data/lib/ufo/cfn/stack/builder/resources/dns.rb +47 -0
- data/lib/ufo/{stack/builder/resources/ecs.rb → cfn/stack/builder/resources/ecs_service.rb} +24 -10
- data/lib/ufo/cfn/stack/builder/resources/elb.rb +35 -0
- data/lib/ufo/cfn/stack/builder/resources/iam_roles/base.rb +32 -0
- data/lib/ufo/cfn/stack/builder/resources/iam_roles/execution_role.rb +4 -0
- data/lib/ufo/cfn/stack/builder/resources/iam_roles/task_role.rb +4 -0
- data/lib/ufo/cfn/stack/builder/resources/listener.rb +65 -0
- data/lib/ufo/cfn/stack/builder/resources/listener_ssl.rb +44 -0
- data/lib/ufo/cfn/stack/builder/resources/scaling/base.rb +5 -0
- data/lib/ufo/cfn/stack/builder/resources/scaling/policy.rb +27 -0
- data/lib/ufo/cfn/stack/builder/resources/scaling/role.rb +33 -0
- data/lib/ufo/cfn/stack/builder/resources/scaling/target.rb +22 -0
- data/lib/ufo/cfn/stack/builder/resources/security_group/base.rb +4 -0
- data/lib/ufo/{stack → cfn/stack}/builder/resources/security_group/ecs.rb +4 -4
- data/lib/ufo/{stack → cfn/stack}/builder/resources/security_group/ecs_rule.rb +2 -2
- data/lib/ufo/{stack → cfn/stack}/builder/resources/security_group/elb.rb +5 -6
- data/lib/ufo/{stack → cfn/stack}/builder/resources/target_group.rb +4 -4
- data/lib/ufo/{stack → cfn/stack}/builder/resources/task_definition/reconstructor.rb +4 -4
- data/lib/ufo/{stack → cfn/stack}/builder/resources/task_definition.rb +4 -4
- data/lib/ufo/cfn/stack/builder/resources.rb +24 -0
- data/lib/ufo/cfn/stack/builder.rb +30 -0
- data/lib/ufo/{stack → cfn/stack}/custom_properties.rb +21 -5
- data/lib/ufo/cfn/stack/params.rb +51 -0
- data/lib/ufo/{stack → cfn/stack}/status.rb +2 -2
- data/lib/ufo/cfn/stack/template.rb +8 -0
- data/lib/ufo/cfn/stack/vars.rb +110 -0
- data/lib/ufo/cfn/stack/vpc.rb +31 -0
- data/lib/ufo/cfn/stack.rb +170 -0
- data/lib/ufo/cli/base.rb +18 -0
- data/lib/ufo/cli/build.rb +30 -0
- data/lib/ufo/cli/cancel.rb +18 -0
- data/lib/ufo/cli/central/update.rb +87 -0
- data/lib/ufo/cli/central.rb +12 -0
- data/lib/ufo/cli/clean.rb +17 -0
- data/lib/ufo/cli/destroy.rb +31 -0
- data/lib/ufo/{docker.rb → cli/docker.rb} +18 -18
- data/lib/ufo/cli/exec.rb +82 -0
- data/lib/ufo/cli/help/central/update.md +20 -0
- data/lib/ufo/{help → cli/help}/completion.md +0 -0
- data/lib/ufo/{help → cli/help}/completion_script.md +0 -0
- data/lib/ufo/cli/help/destroy.md +9 -0
- data/lib/ufo/cli/help/docker/base.md +39 -0
- data/lib/ufo/{help → cli/help}/docker/build.md +9 -9
- data/lib/ufo/{help → cli/help}/docker/clean.md +8 -8
- data/lib/ufo/{help → cli/help}/docker/compile.md +0 -0
- data/lib/ufo/cli/help/docker/name.md +16 -0
- data/lib/ufo/{help → cli/help}/docker/push.md +0 -0
- data/lib/ufo/cli/help/docker.md +6 -0
- data/lib/ufo/{help → cli/help}/help.md +1 -1
- data/lib/ufo/cli/help/init.md +27 -0
- data/lib/ufo/{help → cli/help}/logs.md +5 -4
- data/lib/ufo/cli/help/ps.md +12 -0
- data/lib/ufo/cli/help/releases.md +15 -0
- data/lib/ufo/cli/help/rollback.md +40 -0
- data/lib/ufo/cli/help/scale.md +7 -0
- data/lib/ufo/cli/help/ship.md +41 -0
- data/lib/ufo/cli/help/stop.md +3 -0
- data/lib/ufo/cli/help.rb +62 -0
- data/lib/ufo/{logs.rb → cli/logs.rb} +13 -6
- data/lib/ufo/cli/new/concerns.rb +16 -0
- data/lib/ufo/cli/new/helper.rb +24 -0
- data/lib/ufo/cli/new/init.rb +68 -0
- data/lib/ufo/{sequence.rb → cli/new/sequence.rb} +26 -4
- data/lib/ufo/cli/new.rb +10 -0
- data/lib/ufo/cli/opts.rb +35 -0
- data/lib/ufo/cli/ps/errors.rb +132 -0
- data/lib/ufo/{ps → cli/ps}/task.rb +32 -34
- data/lib/ufo/cli/ps.rb +164 -0
- data/lib/ufo/{releases.rb → cli/releases.rb} +4 -4
- data/lib/ufo/{rollback.rb → cli/rollback.rb} +24 -12
- data/lib/ufo/cli/scale.rb +83 -0
- data/lib/ufo/cli/ship.rb +28 -0
- data/lib/ufo/cli/status.rb +8 -0
- data/lib/ufo/cli/stop.rb +49 -0
- data/lib/ufo/{tasks.rb → cli/tasks.rb} +2 -2
- data/lib/ufo/{upgrade.rb → cli/upgrade.rb} +2 -2
- data/lib/ufo/cli.rb +83 -172
- data/lib/ufo/command.rb +56 -1
- data/lib/ufo/concerns/autoscaling.rb +11 -0
- data/lib/ufo/concerns/names.rb +9 -0
- data/lib/ufo/concerns.rb +26 -0
- data/lib/ufo/config/inits.rb +13 -0
- data/lib/ufo/config.rb +190 -0
- data/lib/ufo/core.rb +32 -44
- data/lib/ufo/docker/builder.rb +44 -40
- data/lib/ufo/docker/cleaner.rb +9 -12
- data/lib/ufo/docker/compiler.rb +10 -4
- data/lib/ufo/docker/concerns.rb +7 -0
- data/lib/ufo/docker/dockerfile.rb +13 -9
- data/lib/ufo/docker/pusher.rb +13 -25
- data/lib/ufo/docker/state.rb +63 -0
- data/lib/ufo/ecr/auth.rb +8 -7
- data/lib/ufo/ecr/cleaner.rb +10 -14
- data/lib/ufo/ext/core/module.rb +31 -0
- data/lib/ufo/ext/core/nil_class.rb +11 -0
- data/lib/ufo/ext.rb +2 -0
- data/lib/ufo/{role → iam_role}/builder.rb +1 -1
- data/lib/ufo/{role → iam_role}/dsl.rb +8 -2
- data/lib/ufo/{role → iam_role}/registry.rb +1 -1
- data/lib/ufo/info.rb +23 -4
- data/lib/ufo/layering/layer.rb +95 -0
- data/lib/ufo/layering.rb +23 -0
- data/lib/ufo/log_group.rb +18 -10
- data/lib/ufo/logger/formatter.rb +13 -0
- data/lib/ufo/logger.rb +32 -0
- data/lib/ufo/names.rb +69 -0
- data/lib/ufo/param.rb +2 -1
- data/lib/ufo/task_definition/builder.rb +7 -0
- data/lib/ufo/task_definition/context.rb +45 -0
- data/lib/ufo/task_definition/erb/base.rb +18 -0
- data/lib/ufo/task_definition/erb/json.rb +28 -0
- data/lib/ufo/task_definition/erb/yaml.rb +25 -0
- data/lib/ufo/task_definition/erb.rb +83 -0
- data/lib/ufo/task_definition/helpers/aws_data_helper.rb +18 -0
- data/lib/ufo/task_definition/helpers/core.rb +50 -0
- data/lib/ufo/task_definition/helpers/ssm/fetcher.rb +39 -0
- data/lib/ufo/task_definition/helpers/ssm.rb +8 -0
- data/lib/ufo/task_definition/helpers/stack_output.rb +23 -0
- data/lib/ufo/{dsl/helper → task_definition/helpers}/vars.rb +40 -19
- data/lib/ufo/task_definition/helpers/vpc.rb +48 -0
- data/lib/ufo/task_definition/helpers.rb +5 -0
- data/lib/ufo/task_definition.rb +19 -0
- data/lib/ufo/upgrade/upgrade3.rb +1 -1
- data/lib/ufo/upgrade/upgrade4.rb +3 -3
- data/lib/ufo/utils/execute.rb +30 -0
- data/lib/ufo/utils/logging.rb +7 -0
- data/lib/ufo/utils/pretty.rb +18 -0
- data/lib/ufo/utils/squeezer.rb +1 -1
- data/lib/ufo/utils/sure.rb +23 -0
- data/lib/ufo/version.rb +1 -1
- data/lib/ufo/yaml/loader.rb +48 -0
- data/lib/ufo/yaml/validator.rb +51 -0
- data/lib/ufo/yaml.rb +13 -0
- data/lib/ufo.rb +12 -2
- data/spec/spec_helper.rb +4 -26
- data/spec/{lib → ufo}/ecr_auth_spec.rb +0 -0
- data/spec/{lib → ufo}/ecr_cleaner_spec.rb +0 -2
- data/spec/{lib/role → ufo/iam_role}/builder_spec.rb +5 -5
- data/spec/{lib/role → ufo/iam_role}/dsl_spec.rb +3 -3
- data/spec/{lib → ufo}/logs_spec.rb +2 -2
- data/ufo.gemspec +9 -3
- metadata +245 -341
- data/.circleci/bin/commit_docs.sh +0 -26
- data/.circleci/config.yml +0 -78
- data/.gitmodules +0 -0
- data/docs/.gitignore +0 -5
- data/docs/CNAME +0 -1
- data/docs/Gemfile +0 -4
- data/docs/LICENSE +0 -21
- data/docs/README.md +0 -20
- data/docs/_config.yml +0 -75
- data/docs/_docs/aws-ecs-task-execution-role.md +0 -28
- data/docs/_docs/conventions.md +0 -47
- data/docs/_docs/extras/codebuild-iam-role.md +0 -46
- data/docs/_docs/extras/dockerfile-erb.md +0 -60
- data/docs/_docs/extras/ecs-network-mode.md +0 -37
- data/docs/_docs/extras/load-balancer.md +0 -83
- data/docs/_docs/extras/minimal-deploy-iam.md +0 -79
- data/docs/_docs/extras/notification-arns.md +0 -21
- data/docs/_docs/extras/redirection-support.md +0 -27
- data/docs/_docs/extras/route53-support.md +0 -27
- data/docs/_docs/extras/security-groups.md +0 -36
- data/docs/_docs/extras/ssl-support.md +0 -20
- data/docs/_docs/faq.md +0 -100
- data/docs/_docs/fargate.md +0 -5
- data/docs/_docs/helpers.md +0 -24
- data/docs/_docs/iam-roles.md +0 -112
- data/docs/_docs/install.md +0 -25
- data/docs/_docs/more/auto-completion.md +0 -24
- data/docs/_docs/more/automated-cleanup.md +0 -14
- data/docs/_docs/more/customize-cloudformation.md +0 -35
- data/docs/_docs/more/migrations.md +0 -25
- data/docs/_docs/more/run-in-pieces.md +0 -30
- data/docs/_docs/more/single-task.md +0 -25
- data/docs/_docs/more/stuck-cloudformation.md +0 -29
- data/docs/_docs/more/why-cloudformation.md +0 -21
- data/docs/_docs/next-steps.md +0 -16
- data/docs/_docs/quick-start-ec2.md +0 -86
- data/docs/_docs/secrets.md +0 -135
- data/docs/_docs/settings/aws_profile.md +0 -36
- data/docs/_docs/settings/cfn.md +0 -12
- data/docs/_docs/settings/cluster.md +0 -66
- data/docs/_docs/settings/manage-security-groups.md +0 -24
- data/docs/_docs/settings/network.md +0 -45
- data/docs/_docs/settings.md +0 -55
- data/docs/_docs/ssl_errors.md +0 -40
- data/docs/_docs/structure.md +0 -41
- data/docs/_docs/tutorial-ufo-docker-build.md +0 -61
- data/docs/_docs/tutorial-ufo-init.md +0 -86
- data/docs/_docs/tutorial-ufo-ship.md +0 -95
- data/docs/_docs/tutorial-ufo-ships.md +0 -38
- data/docs/_docs/tutorial-ufo-tasks-build.md +0 -177
- data/docs/_docs/tutorial.md +0 -14
- data/docs/_docs/ufo-current.md +0 -49
- data/docs/_docs/ufo-env-extra.md +0 -22
- data/docs/_docs/ufo-env.md +0 -46
- data/docs/_docs/ufo-logs.md +0 -49
- data/docs/_docs/ufo-task-params.md +0 -43
- data/docs/_docs/ufo-tasks-register.md +0 -21
- data/docs/_docs/upgrading/upgrade4.5.md +0 -52
- data/docs/_docs/upgrading/upgrade4.md +0 -48
- data/docs/_docs/upgrading/upgrade5.md +0 -19
- data/docs/_docs/upgrading.md +0 -13
- data/docs/_docs/variables.md +0 -55
- data/docs/_includes/about.html +0 -19
- data/docs/_includes/banner/foot.html +0 -2
- data/docs/_includes/banner/head.html +0 -5
- data/docs/_includes/cfn-customize.md +0 -53
- data/docs/_includes/commands.html +0 -80
- data/docs/_includes/contact.html +0 -17
- data/docs/_includes/contact_disqus.html +0 -16
- data/docs/_includes/contact_static.html +0 -17
- data/docs/_includes/content.html +0 -26
- data/docs/_includes/css/bootstrap.min.css +0 -7
- data/docs/_includes/css/main.css +0 -501
- data/docs/_includes/css/quotes.css +0 -102
- data/docs/_includes/css/syntax.css +0 -65
- data/docs/_includes/css/table.css +0 -53
- data/docs/_includes/css/timeline.css +0 -201
- data/docs/_includes/css/ufo.css +0 -218
- data/docs/_includes/edit-on-github.html +0 -11
- data/docs/_includes/example.html +0 -63
- data/docs/_includes/footer.html +0 -44
- data/docs/_includes/google_analytics.html +0 -10
- data/docs/_includes/head.html +0 -32
- data/docs/_includes/header.html +0 -15
- data/docs/_includes/js.html +0 -32
- data/docs/_includes/js_disqus.html +0 -21
- data/docs/_includes/modals.html +0 -40
- data/docs/_includes/nav.html +0 -27
- data/docs/_includes/prev_next.md +0 -19
- data/docs/_includes/quotes.html +0 -19
- data/docs/_includes/reference.md +0 -5
- data/docs/_includes/repo_push_access.md +0 -11
- data/docs/_includes/subnav.html +0 -78
- data/docs/_includes/summary.html +0 -22
- data/docs/_includes/ufo-ship-options.md +0 -12
- data/docs/_includes/uses.html +0 -19
- data/docs/_layouts/default.html +0 -13
- data/docs/_layouts/style.css +0 -6
- data/docs/_reference/ufo-apps.md +0 -37
- data/docs/_reference/ufo-cancel.md +0 -24
- data/docs/_reference/ufo-completion.md +0 -46
- data/docs/_reference/ufo-completion_script.md +0 -27
- data/docs/_reference/ufo-current.md +0 -93
- data/docs/_reference/ufo-deploy.md +0 -76
- data/docs/_reference/ufo-destroy.md +0 -36
- data/docs/_reference/ufo-docker-base.md +0 -71
- data/docs/_reference/ufo-docker-build.md +0 -91
- data/docs/_reference/ufo-docker-clean.md +0 -44
- data/docs/_reference/ufo-docker-compile.md +0 -19
- data/docs/_reference/ufo-docker-help.md +0 -15
- data/docs/_reference/ufo-docker-name.md +0 -37
- data/docs/_reference/ufo-docker-push.md +0 -49
- data/docs/_reference/ufo-docker.md +0 -38
- data/docs/_reference/ufo-init.md +0 -125
- data/docs/_reference/ufo-logs.md +0 -40
- data/docs/_reference/ufo-network-help.md +0 -15
- data/docs/_reference/ufo-network-init.md +0 -39
- data/docs/_reference/ufo-network.md +0 -26
- data/docs/_reference/ufo-ps.md +0 -56
- data/docs/_reference/ufo-releases.md +0 -40
- data/docs/_reference/ufo-resources.md +0 -44
- data/docs/_reference/ufo-rollback.md +0 -61
- data/docs/_reference/ufo-scale.md +0 -50
- data/docs/_reference/ufo-ship.md +0 -129
- data/docs/_reference/ufo-ships.md +0 -68
- data/docs/_reference/ufo-status.md +0 -23
- data/docs/_reference/ufo-stop.md +0 -31
- data/docs/_reference/ufo-task.md +0 -56
- data/docs/_reference/ufo-tasks-build.md +0 -178
- data/docs/_reference/ufo-tasks-help.md +0 -15
- data/docs/_reference/ufo-tasks-register.md +0 -29
- data/docs/_reference/ufo-tasks.md +0 -35
- data/docs/_reference/ufo-upgrade-help.md +0 -15
- data/docs/_reference/ufo-upgrade-v2to3.md +0 -15
- data/docs/_reference/ufo-upgrade-v33to34.md +0 -15
- data/docs/_reference/ufo-upgrade-v3to4.md +0 -27
- data/docs/_reference/ufo-upgrade-v43to45.md +0 -15
- data/docs/_reference/ufo-upgrade.md +0 -29
- data/docs/_reference/ufo-version.md +0 -23
- data/docs/articles.md +0 -14
- data/docs/bin/web +0 -4
- data/docs/css/font-awesome/css/font-awesome.css +0 -1566
- data/docs/css/font-awesome/css/font-awesome.min.css +0 -4
- data/docs/css/font-awesome/fonts/FontAwesome.otf +0 -0
- data/docs/css/font-awesome/fonts/fontawesome-webfont.eot +0 -0
- data/docs/css/font-awesome/fonts/fontawesome-webfont.svg +0 -504
- data/docs/css/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
- data/docs/css/font-awesome/fonts/fontawesome-webfont.woff +0 -0
- data/docs/docs.md +0 -29
- data/docs/img/docs/cloudformation-resources.png +0 -0
- data/docs/img/logos/boltops-logo-full.png +0 -0
- data/docs/img/logos/boltops-logo.png +0 -0
- data/docs/img/logos/ufo-logo-2.png +0 -0
- data/docs/img/logos/ufo-logo.png +0 -0
- data/docs/img/logos/ufo-site-header.png +0 -0
- data/docs/img/logos/ufo.jpg +0 -0
- data/docs/img/tutorials/ecs-console-task-definitions.png +0 -0
- data/docs/img/tutorials/ecs-console-ufo-ship.png +0 -0
- data/docs/img/tutorials/ecs-console-ufo-ships.png +0 -0
- data/docs/index.html +0 -10
- data/docs/js/bootstrap.js +0 -2114
- data/docs/js/bootstrap.min.js +0 -6
- data/docs/js/cbpAnimatedHeader.js +0 -44
- data/docs/js/cbpAnimatedHeader.min.js +0 -11
- data/docs/js/classie.js +0 -80
- data/docs/js/contact_me.js +0 -70
- data/docs/js/contact_me_static.js +0 -23
- data/docs/js/freelancer.js +0 -37
- data/docs/js/jqBootstrapValidation.js +0 -912
- data/docs/js/jquery-1.11.0.js +0 -4
- data/docs/js/jquery.easing.min.js +0 -44
- data/docs/js/nav.js +0 -53
- data/docs/quick-start.md +0 -133
- data/docs/reference.md +0 -29
- data/docs/style.css +0 -3
- data/docs/utils/ssl-doctor.rb +0 -89
- data/docs/utils/test-aws-api-access.rb +0 -11
- data/docs/utils/update-cert-chains.sh +0 -11
- data/lib/template/.env +0 -3
- data/lib/template/.secrets +0 -5
- data/lib/template/.ufo/iam_roles/execution_role.rb +0 -7
- data/lib/template/.ufo/iam_roles/task_role.rb +0 -21
- data/lib/template/.ufo/params.yml.tt +0 -27
- data/lib/template/.ufo/settings/cfn/default.yml.tt +0 -72
- data/lib/template/.ufo/settings/network/default.yml.tt +0 -26
- data/lib/template/.ufo/settings.yml.tt +0 -26
- data/lib/template/.ufo/task_definitions.rb.tt +0 -61
- data/lib/template/.ufo/templates/fargate.json.erb +0 -39
- data/lib/template/.ufo/templates/main.json.erb +0 -43
- data/lib/template/.ufo/variables/base.rb.tt +0 -19
- data/lib/template/.ufo/variables/development.rb +0 -8
- data/lib/template/.ufo/variables/production.rb +0 -7
- data/lib/template/Dockerfile +0 -15
- data/lib/template/bin/deploy.tt +0 -7
- data/lib/ufo/apps/cfn_map.rb +0 -70
- data/lib/ufo/apps/cluster.rb +0 -24
- data/lib/ufo/apps/service.rb +0 -56
- data/lib/ufo/apps.rb +0 -56
- data/lib/ufo/aws_service.rb +0 -36
- data/lib/ufo/base.rb +0 -35
- data/lib/ufo/cancel.rb +0 -23
- data/lib/ufo/current.rb +0 -104
- data/lib/ufo/default/settings.yml +0 -24
- data/lib/ufo/default/templates/main.json.erb +0 -39
- data/lib/ufo/destroy.rb +0 -41
- data/lib/ufo/docker/variables.rb +0 -26
- data/lib/ufo/dsl/helper.rb +0 -79
- data/lib/ufo/dsl/outputter.rb +0 -43
- data/lib/ufo/dsl/task_definition.rb +0 -108
- data/lib/ufo/dsl.rb +0 -96
- data/lib/ufo/help/apps.md +0 -12
- data/lib/ufo/help/balancer.md +0 -3
- data/lib/ufo/help/completions.md +0 -16
- data/lib/ufo/help/completions_script.md +0 -1
- data/lib/ufo/help/current.md +0 -65
- data/lib/ufo/help/deploy.md +0 -38
- data/lib/ufo/help/destroy.md +0 -9
- data/lib/ufo/help/docker/base.md +0 -49
- data/lib/ufo/help/docker/name.md +0 -16
- data/lib/ufo/help/docker.md +0 -6
- data/lib/ufo/help/init.md +0 -91
- data/lib/ufo/help/network/init.md +0 -13
- data/lib/ufo/help/ps.md +0 -27
- data/lib/ufo/help/releases.md +0 -16
- data/lib/ufo/help/resources.md +0 -20
- data/lib/ufo/help/rollback.md +0 -35
- data/lib/ufo/help/scale.md +0 -26
- data/lib/ufo/help/ship.md +0 -95
- data/lib/ufo/help/ships.md +0 -35
- data/lib/ufo/help/stop.md +0 -7
- data/lib/ufo/help/task.md +0 -27
- data/lib/ufo/help/tasks/build.md +0 -158
- data/lib/ufo/help/tasks/register.md +0 -14
- data/lib/ufo/help/tasks.md +0 -7
- data/lib/ufo/help/upgrade/v3to4.md +0 -3
- data/lib/ufo/help.rb +0 -9
- data/lib/ufo/init.rb +0 -119
- data/lib/ufo/network/fetch.rb +0 -48
- data/lib/ufo/network/helper.rb +0 -23
- data/lib/ufo/network/init.rb +0 -26
- data/lib/ufo/network.rb +0 -21
- data/lib/ufo/ps.rb +0 -129
- data/lib/ufo/scale.rb +0 -28
- data/lib/ufo/setting/profile.rb +0 -44
- data/lib/ufo/setting/security_groups.rb +0 -22
- data/lib/ufo/setting.rb +0 -75
- data/lib/ufo/settings.rb +0 -20
- data/lib/ufo/ship.rb +0 -103
- data/lib/ufo/stack/builder/conditions.rb +0 -23
- data/lib/ufo/stack/builder/parameters.rb +0 -45
- data/lib/ufo/stack/builder/resources/base.rb +0 -4
- data/lib/ufo/stack/builder/resources/dns.rb +0 -17
- data/lib/ufo/stack/builder/resources/elb.rb +0 -45
- data/lib/ufo/stack/builder/resources/listener.rb +0 -42
- data/lib/ufo/stack/builder/resources/listener_ssl.rb +0 -16
- data/lib/ufo/stack/builder/resources/roles/base.rb +0 -22
- data/lib/ufo/stack/builder/resources/roles/execution_role.rb +0 -4
- data/lib/ufo/stack/builder/resources/roles/task_role.rb +0 -4
- data/lib/ufo/stack/builder/resources/security_group/base.rb +0 -4
- data/lib/ufo/stack/builder/resources.rb +0 -20
- data/lib/ufo/stack/builder.rb +0 -26
- data/lib/ufo/stack/context.rb +0 -253
- data/lib/ufo/stack/helper.rb +0 -55
- data/lib/ufo/stack/template_body.rb +0 -13
- data/lib/ufo/stack.rb +0 -213
- data/lib/ufo/status.rb +0 -56
- data/lib/ufo/stop.rb +0 -49
- data/lib/ufo/task.rb +0 -225
- data/lib/ufo/tasks/builder.rb +0 -40
- data/lib/ufo/tasks/register.rb +0 -90
- data/lib/ufo/template_scope.rb +0 -57
- data/lib/ufo/util.rb +0 -69
- data/spec/lib/apps_spec.rb +0 -20
- data/spec/lib/builder_spec.rb +0 -23
- data/spec/lib/cli_spec.rb +0 -73
- data/spec/lib/completion_spec.rb +0 -18
- data/spec/lib/ps_spec.rb +0 -14
- data/spec/lib/register_spec.rb +0 -49
- data/spec/lib/setting_spec.rb +0 -18
- data/spec/lib/ship_spec.rb +0 -46
- data/spec/lib/stack/status_spec.rb +0 -76
- data/spec/lib/stop_spec.rb +0 -13
- data/spec/lib/task_spec.rb +0 -54
data/lib/ufo/help/current.md
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
Sets a current service to remember so you do not have to provide the service name all the time. This shortens the commands
|
2
|
-
|
3
|
-
ufo ship demo-web # before
|
4
|
-
ufo current --service demo-web
|
5
|
-
ufo ship # after
|
6
|
-
|
7
|
-
The state information is written to `.ufo/current`.
|
8
|
-
|
9
|
-
## Examples
|
10
|
-
|
11
|
-
### summary
|
12
|
-
|
13
|
-
ufo current --service demo-web --env-extra 1
|
14
|
-
ufo current --service demo-web --env-extra 1 --services demo-web demo-worker
|
15
|
-
ufo current --service demo-web --env-extra ''
|
16
|
-
ufo current --service demo-web
|
17
|
-
ufo current --env-extra '1'
|
18
|
-
|
19
|
-
### service
|
20
|
-
|
21
|
-
To set current service:
|
22
|
-
|
23
|
-
ufo current --service demo-web
|
24
|
-
ufo current --service demo-worker
|
25
|
-
ufo current --service demo-web
|
26
|
-
|
27
|
-
To view current service, run `ufo current` without any arguments.
|
28
|
-
|
29
|
-
$ ufo current
|
30
|
-
Current service: demo-web
|
31
|
-
|
32
|
-
To remove current service:
|
33
|
-
|
34
|
-
ufo current --service ''
|
35
|
-
|
36
|
-
### env-extra
|
37
|
-
|
38
|
-
To also set a current `UFO_ENV_EXTRA`.
|
39
|
-
|
40
|
-
ufo current --env-extra 1
|
41
|
-
|
42
|
-
The extra env setting will be reflected:
|
43
|
-
|
44
|
-
$ ufo current
|
45
|
-
Current service: demo-web
|
46
|
-
Current env_extra: 1
|
47
|
-
|
48
|
-
The `UFO_ENV_EXTRA` variable takes higher precedence than the current setting in the saved file.
|
49
|
-
|
50
|
-
To unset:
|
51
|
-
|
52
|
-
ufo current --env-extra ''
|
53
|
-
|
54
|
-
### services
|
55
|
-
|
56
|
-
The ufo ships command builds one docker image and deploys it to multiple ECS services. You can also have ufo remember what services to use with the current command.
|
57
|
-
|
58
|
-
ufo current --services demo-web demo-worker
|
59
|
-
ufo ships # will depoy to both demo-web and demo-worker
|
60
|
-
|
61
|
-
### rm all
|
62
|
-
|
63
|
-
To remove all current settings use the `--rm` option.
|
64
|
-
|
65
|
-
ufo current --rm
|
data/lib/ufo/help/deploy.md
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
It is useful to sometimes deploy only the task definition without re-building it. Say for example, you are debugging the task definition and just want to directly edit the `.ufo/output/demo-web.json` definition. You can accomplish this with the `ufo deploy` command. The `ufo deploy` command will deploy the task definition in `.ufo/output` unmodified. Example:
|
2
|
-
|
3
|
-
ufo deploy demo-web
|
4
|
-
|
5
|
-
The above command does the following:
|
6
|
-
|
7
|
-
1. register the `.ufo/output/demo-web.json` task definition to ECS untouched.
|
8
|
-
2. deploys it to ECS by updating the service
|
9
|
-
|
10
|
-
## ufo tasks build
|
11
|
-
|
12
|
-
To regenerate a `.ufo/output/demo-web.json` definition:
|
13
|
-
|
14
|
-
ufo tasks build
|
15
|
-
|
16
|
-
## ufo ship
|
17
|
-
|
18
|
-
The `ufo deploy` command does less than the `ufo ship` command. Normally, it is recommended to use `ufo ship` over the `ufo deploy` command to do everything in one step:
|
19
|
-
|
20
|
-
1. build the Docker image
|
21
|
-
2. register the ECS task definition
|
22
|
-
3. update the ECS service
|
23
|
-
|
24
|
-
The `ufo ships`, `ufo ship`, `ufo deploy` command support the same options. The options are presented here again for convenience:
|
25
|
-
|
26
|
-
{% include ufo-ship-options.md %}
|
27
|
-
|
28
|
-
## Creating mutiple environments in parallel
|
29
|
-
|
30
|
-
If you would like to create multiple enviroments quickly in parallel, the `--no-wait` and `--build` option can help speed up the process. Example:
|
31
|
-
|
32
|
-
ufo ship # at least once
|
33
|
-
for i in {1..3}; do
|
34
|
-
UFO_ENV_EXTRA=$i ufo deploy --no-wait --build
|
35
|
-
done
|
36
|
-
|
37
|
-
A more detailed post is available here: [How to Create Unlimited Extra Environments
|
38
|
-
](https://blog.boltops.com/2018/07/12/ufo-how-to-create-unlimited-extra-environments).
|
data/lib/ufo/help/destroy.md
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
## Examples
|
2
|
-
|
3
|
-
Ufo provides a quick way to destroy an ECS service. This is effectively the same thing as deleting the CloudFormation stack.
|
4
|
-
|
5
|
-
ufo destroy demo-web
|
6
|
-
|
7
|
-
If you would like to bypass the prompt, you can use the `--sure` option.
|
8
|
-
|
9
|
-
ufo destroy demo-web --sure
|
data/lib/ufo/help/docker/base.md
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
The docker cache task builds a docker image using the `Dockerfile.base` file and
|
2
|
-
updates the FROM `Dockerfile` image with the generated image from `Dockerfile.base`.
|
3
|
-
|
4
|
-
## Summarized Example
|
5
|
-
|
6
|
-
ufo docker base
|
7
|
-
ufo docker base --no-push # do not push the image to the registry
|
8
|
-
|
9
|
-
Docker image `tongueroo/demo-ufo:base-2016-10-21T15-50-57-88071f5` built.
|
10
|
-
|
11
|
-
## Concept
|
12
|
-
|
13
|
-
Docker is fantastic and has given developers more power and control over the OS their application runs on. Sometimes building Docker images can be slow though. Docker layer caching technology helps immensely to speed up the process as Docker will only rebuild layers that require rebuilding. But sometimes one little dependency changes it results in having to rebuild many layers.
|
14
|
-
|
15
|
-
The `ufo docker base` commands allows you to build an Docker image from `Dockerfile.base` to be used as a cache and in the FROM instruction in the main `Dockerfile`. This base Docker cache image technique speeds up development substantially if you have dependencies like gems in your project. Let's say you have 20 gems in your project and are actively developing your project. You are experimenting with 3 different gems, adding and removing them while you are investigating the best gem to use. Without the Docker image cache that already has all of your other gems installed each time you adjust `Gemfile` it would have to wait until all the gems from scratch again installed again.
|
16
|
-
|
17
|
-
There are pros and cons of using this approach. Remember there are 2 hard problems in computer science: 1. Naming and 2. Caching. The main con about this approach is if you forget to update the base Docker image you will have cached artifacts that will not disappear unless you rebuild the base Docker image. While some folks are completely against introducing this cache layer, some have found it being a huge win in speeding up their Docker development workflow. If you are using this technique it is recommended that you set up some automation that rebuilds the base Docker image at least nightly.
|
18
|
-
|
19
|
-
## Demo
|
20
|
-
|
21
|
-
To demonstrate this command, there's a `docker-cache` branch in the [tongueroo/demo-ufo](https://github.com/tongueroo/demo-ufo/tree/docker-cache) repo.
|
22
|
-
|
23
|
-
Let's see the command in action:
|
24
|
-
|
25
|
-
ufo docker base
|
26
|
-
Building docker image with:
|
27
|
-
docker build -t tongueroo/demo-ufo:base-2017-06-12T14-36-44-2af505e -f Dockerfile.base .
|
28
|
-
...
|
29
|
-
Pushed tongueroo/demo-ufo:base-2017-06-12T14-36-44-2af505e docker image. Took 28s.
|
30
|
-
The Dockerfile FROM statement has been updated with the latest base image:
|
31
|
-
tongueroo/demo-ufo:base-2017-06-12T14-36-44-2af505e
|
32
|
-
|
33
|
-
Some of the output has been excluded so we can focus on the important parts to point out. First notice that the commmand simply shells out to the docker command and calls:
|
34
|
-
|
35
|
-
docker build -t tongueroo/demo-ufo:base-2017-06-12T14-36-44-2af505e -f Dockerfile.base .
|
36
|
-
|
37
|
-
It is using the docker `-f Dockerfile.base` option to build the base image. It names the image with `tongueroo/demo-ufo:base-2017-06-12T14-36-44-2af505e`. The image tag contains useful information: the timestamp when the image was built and the exact git sha of the code. The image gets push to a registry immediately.
|
38
|
-
|
39
|
-
## Dockerfile FROM updated
|
40
|
-
|
41
|
-
Notice at the very end, the *current* `Dockerfile`'s FROM statement has been updated with the newly built base Docker image automatically. This saves you from forgetting to copying and pasting it the `Dockerfile` yourself.
|
42
|
-
|
43
|
-
If you're using a [Dockerfile.erb](https://ufoships.com/docs/extras/dockerfile-erb/), then ufo will update the `.ufo/settings/dockerfile_variables.yml` file instead. It assumes you're using a Dockerfile.erb that looks something like this:
|
44
|
-
|
45
|
-
```Dockerfile
|
46
|
-
FROM <%= @base_image %>
|
47
|
-
# ...
|
48
|
-
CMD ["bin/web"]
|
49
|
-
```
|
data/lib/ufo/help/docker/name.md
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
It is sometimes handy to grab the name of the Docker image that was just generated. Let's say ou needed the image name so you can feed it into another script that you have. The command `ufo docker name` returns the image of the most recently built Docker image.
|
2
|
-
|
3
|
-
## Examples
|
4
|
-
|
5
|
-
ufo docker build # stores the docker image name in the .ufo/data folder
|
6
|
-
ufo docker name # fetches image name from .ufo/data folder
|
7
|
-
|
8
|
-
An example image name would look something like this: `tongueroo/demo-ufo:ufo-2018-02-15T19-29-06-88071f5`
|
9
|
-
|
10
|
-
Note, the `.ufo/data` folder is an internal data folder and it's structure can change in future releases.
|
11
|
-
|
12
|
-
If you want to generate a brand new name for whatever purpose, you can use the `--generate` flag. The generate does not write to the `.ufo/data` folder. It only generates a fresh name to stdout. If you run it multiple times, it will generate new names. You can notice this by seeing that the timestamp will always update:
|
13
|
-
|
14
|
-
ufo docker name --generate # example: tongueroo/demo-ufo:ufo-2018-02-15T10-00-00-88071f5
|
15
|
-
ufo docker name --generate # example: tongueroo/demo-ufo:ufo-2018-02-15T10-00-08-88071f5
|
16
|
-
ufo docker name --generate # example: tongueroo/demo-ufo:ufo-2018-02-15T10-00-16-88071f5
|
data/lib/ufo/help/docker.md
DELETED
data/lib/ufo/help/init.md
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
The `ufo init` command provides a way to quickly setup a project to be ufo ready. It creates a ufo folder with all the starter supporting files in order to use ufo. This page demonstrates how to use `ufo init`. The command requires the `--image` option. If the `--app` option is not provided, then it is inferred and set as the parent folder name. Example:
|
2
|
-
|
3
|
-
cd demo
|
4
|
-
ufo init --image tongueroo/demo-ufo # same as --app demo
|
5
|
-
|
6
|
-
## Examples
|
7
|
-
|
8
|
-
For this example we will use [tongueroo/demo-ufo](https://github.com/tongueroo/demo-ufo) which is a small test sinatra app. Let's run the command in our newly clone project.
|
9
|
-
|
10
|
-
$ git clone https://github.com/tongueroo/demo-ufo.git demo
|
11
|
-
$ cd demo
|
12
|
-
$ ufo init --image=tongueroo/demo-ufo
|
13
|
-
Setting up ufo project...
|
14
|
-
create .ufo/settings.yml
|
15
|
-
create .ufo/task_definitions.rb
|
16
|
-
create .ufo/templates/main.json.erb
|
17
|
-
create .ufo/variables/base.rb
|
18
|
-
create .ufo/variables/development.rb
|
19
|
-
create .ufo/variables/production.rb
|
20
|
-
create Dockerfile
|
21
|
-
create bin/deploy
|
22
|
-
append .gitignore
|
23
|
-
Starter ufo files created.
|
24
|
-
|
25
|
-
## More Short Examples
|
26
|
-
|
27
|
-
ufo init --image httpd
|
28
|
-
ufo init --image 123456789012.dkr.ecr.us-west-2.amazonaws.com/myimage
|
29
|
-
ufo init --image tongueroo/demo-ufo --launch-type fargate --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole
|
30
|
-
ufo init --image httpd --vpc-id vpc-123
|
31
|
-
|
32
|
-
## Important options
|
33
|
-
|
34
|
-
The `app` is that application name that you want to show up on the ECS dashboard. It is encouraged to have the app name be a single word. If the option is not provided, the app name is inferred and is the parent folder name.
|
35
|
-
|
36
|
-
The `image` is the base portion of image name that will be pushed to the docker registry, ie: DockerHub or AWS ECR. The image should **not** include the tag since the tag is generated upon a `ufo ship`. For example:
|
37
|
-
|
38
|
-
tongueroo/demo-ufo => tongueroo/demo-ufo:ufo-2018-02-08T21-04-02-3c86158
|
39
|
-
|
40
|
-
The generated `tongueroo/demo-ufo:ufo-2018-02-08T21-04-02-3c86158` image name gets pushed to the docker registry.
|
41
|
-
|
42
|
-
The `--vpc-id`, `--ecs-subnets`, and `--elb-subnets` options are optional but very useful. If not specified then ufo will use the default vpc for the network settings like subnets and security groups, which might not be what you want.
|
43
|
-
|
44
|
-
## Directory Structure
|
45
|
-
|
46
|
-
The standard directory structure of the `.ufo` folder that was created looks like this:
|
47
|
-
|
48
|
-
ufo
|
49
|
-
├── output
|
50
|
-
├── settings.yml
|
51
|
-
├── task_definitions.rb
|
52
|
-
├── templates
|
53
|
-
│ └── main.json.erb
|
54
|
-
└── variables
|
55
|
-
├── base.rb
|
56
|
-
├── production.rb
|
57
|
-
└── development.rb
|
58
|
-
|
59
|
-
For a explanation of the folders and files refer to [Structure]({% link _docs/structure.md %}).
|
60
|
-
|
61
|
-
## Fargate Support
|
62
|
-
|
63
|
-
For ECS Fargate, the ECS task definition structure is a bit different. To initialize a project to support Fargate use the `--launch-type fargate` option. You'll be prompted for a execution role arn. This value gets added to the generated `.ufo/variables/base.rb` and used in the `.ufo/templates/main.json.erb`.
|
64
|
-
|
65
|
-
ufo init --image tongueroo/demo-ufo --app demo --launch-type fargate
|
66
|
-
|
67
|
-
You can also generate the init ufo files and bypass the prompt by providing the `--execution-role-arn` option upfront.
|
68
|
-
|
69
|
-
ufo init --image tongueroo/demo-ufo --app demo --launch-type fargate --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole
|
70
|
-
|
71
|
-
For more information and a demo of Fargate support, check out the [Quick Start: Fargate Docs]({% link quick-start.md %}).
|
72
|
-
|
73
|
-
## Custom Templates
|
74
|
-
|
75
|
-
If you would like the `ufo init` command to use your own custom templates, you can achieve this with the `--template` and `--template-mode` options. Example:
|
76
|
-
|
77
|
-
ufo init --image=tongueroo/demo-ufo --template=tongueroo/ufo-custom-template
|
78
|
-
|
79
|
-
This will clone the repo on GitHub into the `~/.ufo/templates/tongueroo/ufo-custom-template` and use that as an additional template source. The default `--template-mode=additive` mode means that if there's a file in `tongueroo/ufo-custom-template` that exists it will use that in place of the default template files.
|
80
|
-
|
81
|
-
If you do not want to use any of the original default template files within the ufo gem at all, you can use the `--template-mode=replace` mode. Replace mode will only use templates from the provided `--template` option. Example:
|
82
|
-
|
83
|
-
ufo init --image=tongueroo/demo-ufo --template=tongueroo/ufo-custom-template --template-mode=replace
|
84
|
-
|
85
|
-
You can also specific the full GitHub url. Example:
|
86
|
-
|
87
|
-
ufo init --image=tongueroo/demo-ufo --template=https://github.com/tongueroo/ufo-custom-template
|
88
|
-
|
89
|
-
If you would like to use a local template that is not on GitHub, then created a top-level folder in `~/.ufo/templates` without a subfolder. Example:
|
90
|
-
|
91
|
-
ufo init --image=tongueroo/demo-ufo --template=my-custom # uses ~/.ufo/templates/my-custom
|
@@ -1,13 +0,0 @@
|
|
1
|
-
## Examples
|
2
|
-
|
3
|
-
ufo network init # will use default vpc and subnets
|
4
|
-
ufo network init --vpc-id vpc-123
|
5
|
-
ufo network init --vpc-id vpc-123 --subnets subnet-aaa subnet-bbb
|
6
|
-
|
7
|
-
If the `--vpc-id` option is set and the `--subnets` is not, then ufo generates files with all the associated subnets from the specified vpc id.
|
8
|
-
|
9
|
-
You can also specify name of the settings file to create with the `--filename` option. Example.
|
10
|
-
|
11
|
-
ufo network init --vpc-id vpc-123 --filename dev
|
12
|
-
|
13
|
-
The above command creates a `.ufo/settings/network/dev.yml` file. You might want to then update your `.ufo/settings.yml` file and update the `network_profile` config to reference it.
|
data/lib/ufo/help/ps.md
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
## Examples
|
2
|
-
|
3
|
-
$ ufo ps
|
4
|
-
=> Service: demo-web
|
5
|
-
Service name: development-demo-web-Ecs-7GAUAXH5F56M
|
6
|
-
Status: ACTIVE
|
7
|
-
Running count: 2
|
8
|
-
Desired count: 2
|
9
|
-
Launch type: FARGATE
|
10
|
-
Task definition: demo-web:85
|
11
|
-
Elb: develop-Elb-1M74CLRS2G0Z4-686742146.us-east-1.elb.amazonaws.com
|
12
|
-
+----------+------+-------------+----------------+---------+-------+
|
13
|
-
| Id | Name | Release | Started | Status | Notes |
|
14
|
-
+----------+------+-------------+----------------+---------+-------+
|
15
|
-
| f590ee5e | web | demo-web:85 | 47 minutes ago | RUNNING | |
|
16
|
-
| fb60ba9f | web | demo-web:85 | 45 minutes ago | RUNNING | |
|
17
|
-
+----------+------+-------------+----------------+---------+-------+
|
18
|
-
|
19
|
-
Skip the summary info:
|
20
|
-
|
21
|
-
$ ufo ps --no-summary
|
22
|
-
+----------+------+-------------+----------------+---------+-------+
|
23
|
-
| Id | Name | Release | Started | Status | Notes |
|
24
|
-
+----------+------+-------------+----------------+---------+-------+
|
25
|
-
| f590ee5e | web | demo-web:85 | 48 minutes ago | RUNNING | |
|
26
|
-
| fb60ba9f | web | demo-web:85 | 45 minutes ago | RUNNING | |
|
27
|
-
+----------+------+-------------+----------------+---------+-------+
|
data/lib/ufo/help/releases.md
DELETED
data/lib/ufo/help/resources.md
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Displays information about the service.
|
2
|
-
|
3
|
-
## Examples
|
4
|
-
|
5
|
-
$ ufo resources demo-web
|
6
|
-
Resources:
|
7
|
-
Ecs - AWS::ECS::Service:
|
8
|
-
arn:aws:ecs:us-east-1:111111111111:service/dev-demo-web-Ecs-KN8OVQ7L2N40
|
9
|
-
EcsSecurityGroupRule - AWS::EC2::SecurityGroupIngress:
|
10
|
-
EcsSecurityGroupRule
|
11
|
-
EcsSecurityGroup - AWS::EC2::SecurityGroup:
|
12
|
-
sg-63c17228
|
13
|
-
Elb - AWS::ElasticLoadBalancingV2::LoadBalancer:
|
14
|
-
arn:aws:elasticloadbalancing:us-east-1:111111111111:loadbalancer/app/dev-hi-Elb-1KEVRDILLSUC9/0b9434b7a9a66fb7
|
15
|
-
ElbSecurityGroup - AWS::EC2::SecurityGroup:
|
16
|
-
sg-11b1025a
|
17
|
-
Listener - AWS::ElasticLoadBalancingV2::Listener:
|
18
|
-
arn:aws:elasticloadbalancing:us-east-1:111111111111:listener/app/dev-hi-Elb-1KEVRDILLSUC9/0b9434b7a9a66fb7/1996f1f252d7ba2e
|
19
|
-
TargetGroup - AWS::ElasticLoadBalancingV2::TargetGroup:
|
20
|
-
arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/dev-h-Targe-1VUFA8577XWT7/7e67276c182fdc87
|
data/lib/ufo/help/rollback.md
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
## Examples
|
2
|
-
|
3
|
-
You only need to specific the task definition version number, though you can specify the name also
|
4
|
-
|
5
|
-
ufo rollback demo-web 1
|
6
|
-
ufo rollback demo-web demo-web:1
|
7
|
-
|
8
|
-
To see recent task definitions:
|
9
|
-
|
10
|
-
ufo releases
|
11
|
-
|
12
|
-
If you set a current service with `ufo current`, then the commands get shorten:
|
13
|
-
|
14
|
-
ufo rollback demo-web:1
|
15
|
-
ufo rollback 1
|
16
|
-
|
17
|
-
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.
|
18
|
-
|
19
|
-
## Using image name
|
20
|
-
|
21
|
-
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:
|
22
|
-
|
23
|
-
...
|
24
|
-
"container_definitions": [
|
25
|
-
{
|
26
|
-
"name": "web",
|
27
|
-
"image": "tongueroo/demo-ufo:ufo-2018-06-21T15-03-52-ac60240",
|
28
|
-
"cpu": 256,
|
29
|
-
...
|
30
|
-
|
31
|
-
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:
|
32
|
-
|
33
|
-
ufo rollback tongueroo/demo-ufo:ufo-2018-06-21T15-03-52-ac60240
|
34
|
-
ufo rollback 2018-06-21T15-03-52
|
35
|
-
ufo rollback ac60240
|
data/lib/ufo/help/scale.md
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
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:
|
2
|
-
|
3
|
-
$ ufo scale 3
|
4
|
-
Scale demo-web service in development cluster to 3
|
5
|
-
|
6
|
-
It is useful to use `ufo ps` to check the status.
|
7
|
-
|
8
|
-
$ ufo ps
|
9
|
-
=> Service: demo-web
|
10
|
-
Service name: development-demo-web-Ecs-7GAUAXH5F56M
|
11
|
-
Status: ACTIVE
|
12
|
-
Running count: 2
|
13
|
-
Desired count: 3
|
14
|
-
Launch type: FARGATE
|
15
|
-
Task definition: demo-web:85
|
16
|
-
Elb: develop-Elb-1M74CLRS2G0Z4-686742146.us-east-1.elb.amazonaws.com
|
17
|
-
+----------+------+-------------+----------------+--------------+-------+
|
18
|
-
| Id | Name | Release | Started | Status | Notes |
|
19
|
-
+----------+------+-------------+----------------+--------------+-------+
|
20
|
-
| 8f95ef9d | web | demo-web:85 | PENDING | PROVISIONING | |
|
21
|
-
| f590ee5e | web | demo-web:85 | 50 minutes ago | RUNNING | |
|
22
|
-
| fb60ba9f | web | demo-web:85 | 48 minutes ago | RUNNING | |
|
23
|
-
+----------+------+-------------+----------------+--------------+-------+
|
24
|
-
$
|
25
|
-
|
26
|
-
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.
|
data/lib/ufo/help/ship.md
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
The main command you use when using ufo is: `ufo ship`. This command:
|
2
|
-
|
3
|
-
1. builds the docker image
|
4
|
-
2. registers the generated ECS task definition
|
5
|
-
3. deploys the definition to AWS ECS
|
6
|
-
|
7
|
-
Basic usage is:
|
8
|
-
|
9
|
-
ufo ship demo-web
|
10
|
-
|
11
|
-
The ECS service gets created if the service does not yet exist on the cluster.
|
12
|
-
|
13
|
-
### Conventions
|
14
|
-
|
15
|
-
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:
|
16
|
-
|
17
|
-
ufo ship demo-web-1 --task demo-web
|
18
|
-
|
19
|
-
## Options in Detail
|
20
|
-
|
21
|
-
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:
|
22
|
-
|
23
|
-
{% include ufo-ship-options.md %}
|
24
|
-
|
25
|
-
As you can see there are plenty of options for `ufo ship`. Let's demonstrate usage of them in a few examples.
|
26
|
-
|
27
|
-
### Load Balancer
|
28
|
-
|
29
|
-
ECS services can be associated with a Load Balancer upon creation. Ufo can automatically create a load balancer. The options:
|
30
|
-
|
31
|
-
1. Automatically create the ELB.
|
32
|
-
2. Provide a target group from an existing ELB.
|
33
|
-
3. No ELB is created.
|
34
|
-
|
35
|
-
Here are examples for each of them:
|
36
|
-
|
37
|
-
ufo ship demo-web --elb=true
|
38
|
-
|
39
|
-
# Use existing target group from pre-created ELB:
|
40
|
-
ufo ship demo-web --elb=arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/target-name/2378947392743
|
41
|
-
|
42
|
-
# Disable creating elb and prompt:
|
43
|
-
ufo ship demo-web --elb=false
|
44
|
-
|
45
|
-
Note, if the docker container's name is web then the `--elb` flag defaults to true automatically.
|
46
|
-
|
47
|
-
If you need to create a network load balancer with pre-allocated EIPs, you can use `--elb-eip-ids`, example:
|
48
|
-
|
49
|
-
ufo deploy demo-web --elb-eip-ids eipalloc-a8de9ca1 eipalloc-a8de9ca2
|
50
|
-
|
51
|
-
More info available at the [load balancer docs](http://ufoships.com/docs/load-balancer/).
|
52
|
-
|
53
|
-
### Deploying Task Definition without Docker Build
|
54
|
-
|
55
|
-
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.
|
56
|
-
|
57
|
-
### Not Waiting for Deployments to Complete
|
58
|
-
|
59
|
-
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:
|
60
|
-
|
61
|
-
ufo ship demo-web --no-wait
|
62
|
-
|
63
|
-
The `--no-wait` option is useful for creating multiple environments:: [How to Create Unlimited Extra Environments
|
64
|
-
](https://blog.boltops.com/2018/07/12/ufo-how-to-create-unlimited-extra-environments).
|
65
|
-
|
66
|
-
### Route 53 DNS Support
|
67
|
-
|
68
|
-
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:
|
69
|
-
|
70
|
-
dns:
|
71
|
-
name: "{stack_name}.mydomain.com."
|
72
|
-
hosted_zone_name: mydomain.com. # dont forget the trailing period
|
73
|
-
|
74
|
-
Refer to [Route53 Support](http://ufoships.com/docs/route53-support/) for more info.
|
75
|
-
|
76
|
-
### Cleaning up Docker Images Automatically
|
77
|
-
|
78
|
-
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.
|
79
|
-
|
80
|
-
docker ship demo-web --ecr-keep 2
|
81
|
-
|
82
|
-
You should see something like this:
|
83
|
-
|
84
|
-
Cleaning up docker images...
|
85
|
-
Running: docker rmi tongueroo/demo-ufo:ufo-2017-06-12T06-46-12-a18aa30
|
86
|
-
|
87
|
-
If you are using DockerHub or another registry, ufo does not automatically clean up images.
|
88
|
-
|
89
|
-
### Scheduling Strategy
|
90
|
-
|
91
|
-
You can set the ECS scheduling strategy dynamically. Here's an example:
|
92
|
-
|
93
|
-
ufo ship --scheduling-strategy daemon
|
94
|
-
|
95
|
-
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.
|
data/lib/ufo/help/ships.md
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
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:
|
2
|
-
|
3
|
-
1. web - serves web requests.
|
4
|
-
2. worker - processes background jobs.
|
5
|
-
3. clock - schedules background jobs.
|
6
|
-
|
7
|
-
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:
|
8
|
-
|
9
|
-
ufo ships demo-web demo-worker demo-clock
|
10
|
-
|
11
|
-
## Shell expansion
|
12
|
-
|
13
|
-
Since the ECS service names are provided as a list you can shorten the command by using bash shell expansion 😁
|
14
|
-
|
15
|
-
ufo ships hi-{web,worker,clock}
|
16
|
-
|
17
|
-
If you're new to shell expansion, run this to understand why above works just as well:
|
18
|
-
|
19
|
-
$ echo hi-{web,worker,clock}
|
20
|
-
demo-web demo-worker demo-clock
|
21
|
-
|
22
|
-
## Overriding convention
|
23
|
-
|
24
|
-
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:
|
25
|
-
|
26
|
-
ufo ships demo-web-1:demo-web demo-clock-1 demo-worker-1
|
27
|
-
ufo ships demo-web-1:my-task demo-clock-1:another-task demo-worker-1:third-task
|
28
|
-
|
29
|
-
## ufo ships Options
|
30
|
-
|
31
|
-
The `ufo ships`, `ufo ship`, `ufo deploy` command support the same options. The options are presented here again for convenience:
|
32
|
-
|
33
|
-
{% include ufo-ship-options.md %}
|
34
|
-
|
35
|
-
Note: The `--task` option is not used with the `ufo ships` command.
|
data/lib/ufo/help/stop.md
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
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.
|
2
|
-
|
3
|
-
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.
|
4
|
-
|
5
|
-
The command looks for any extra old ongoing deployments and stops the tasks associated with them. This can cause errors for any inflight requests.
|
6
|
-
|
7
|
-
ufo stop demo-web
|
data/lib/ufo/help/task.md
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
The `ufo task` commands:
|
2
|
-
|
3
|
-
1. Builds the docker image
|
4
|
-
2. Registers the ECS task definition
|
5
|
-
3. Runs the command
|
6
|
-
|
7
|
-
## Examples
|
8
|
-
|
9
|
-
You can use the `--command` or `-c` option to override the Docker container command.
|
10
|
-
|
11
|
-
ufo task hi-migrate # default command
|
12
|
-
ufo task demo-web --command bin/migrate
|
13
|
-
ufo task demo-web --command bin/with_env bundle exec rake db:migrate:redo VERSION=xxx
|
14
|
-
ufo task demo-web -c uptime
|
15
|
-
ufo task demo-web -c pwd
|
16
|
-
|
17
|
-
## Skipping Docker and Task Registration
|
18
|
-
|
19
|
-
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:
|
20
|
-
|
21
|
-
ufo task demo-web -c uptime # build at least once
|
22
|
-
ufo task demo-web --task-only -c ls # skip docker for speed
|
23
|
-
ufo task demo-web --task-only -c pwd # skip docker for speed
|
24
|
-
|
25
|
-
## Params
|
26
|
-
|
27
|
-
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/
|