ufo 5.0.7 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +4 -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 +29 -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} +11 -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 +175 -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 +80 -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/{ps → cli/ps}/task.rb +22 -29
- data/lib/ufo/cli/ps.rb +190 -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 +76 -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 +82 -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 +187 -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 +22 -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 +18 -0
- data/lib/ufo/task_definition/erb.rb +78 -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 +244 -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
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# usage 'ruby s3-cert-chain-test.rb'
|
|
2
|
-
# see: https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/quick-start-guide.html
|
|
3
|
-
|
|
4
|
-
require 'aws-sdk-s3' # v2: require 'aws-sdk'
|
|
5
|
-
#Aws.use_bundled_cert!
|
|
6
|
-
|
|
7
|
-
s3 = Aws::S3::Resource.new(region: 'us-east-1')
|
|
8
|
-
|
|
9
|
-
s3.buckets.limit(50).each do |b|
|
|
10
|
-
puts "#{b.name}"
|
|
11
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE' 2>/dev/null)
|
|
4
|
-
echo 'What is the uri to your organizations root certificate chain?'
|
|
5
|
-
read -p 'org_root_chain: ' org_root_chain
|
|
6
|
-
echo "$org_root_chain"
|
|
7
|
-
curl "$org_root_chain" -o org_chain.txt
|
|
8
|
-
cat org_chain.txt >> "$cert_file"
|
|
9
|
-
mkdir -p "${cert_file%/*}"
|
|
10
|
-
security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
|
|
11
|
-
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"
|
data/lib/template/.env
DELETED
data/lib/template/.secrets
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Example starter execution role. Add the iam role permissions that the host needs here:
|
|
2
|
-
#
|
|
3
|
-
# More docs: https://ufoships.com/docs/iam-roles/
|
|
4
|
-
#
|
|
5
|
-
managed_iam_policy("AmazonSSMReadOnlyAccess")
|
|
6
|
-
managed_iam_policy("SecretsManagerReadWrite")
|
|
7
|
-
managed_iam_policy("service-role/AmazonECSTaskExecutionRolePolicy")
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Example starter task role. Add the iam role permissions that the container needs here:
|
|
2
|
-
#
|
|
3
|
-
# More docs: https://ufoships.com/docs/iam-roles/
|
|
4
|
-
#
|
|
5
|
-
# Examples:
|
|
6
|
-
#
|
|
7
|
-
# iam_policy("AmazonS3ReadOnlyAccess",
|
|
8
|
-
# Action: [
|
|
9
|
-
# "s3:Get*",
|
|
10
|
-
# "s3:List*"
|
|
11
|
-
# ],
|
|
12
|
-
# Effect: "Allow",
|
|
13
|
-
# Resource: "*"
|
|
14
|
-
# )
|
|
15
|
-
# iam_policy("CloudwatchWrite",
|
|
16
|
-
# Action: [
|
|
17
|
-
# "cloudwatch:PutMetricData",
|
|
18
|
-
# ],
|
|
19
|
-
# Effect: "Allow",
|
|
20
|
-
# Resource: "*"
|
|
21
|
-
# )
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# These params are passsed to the corresponding aws-sdk ecs client methods.
|
|
2
|
-
# AWS Docs example: https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ECS/Client.html#run_task-instance_method
|
|
3
|
-
#
|
|
4
|
-
# The network helper provides access to the .ufo/settings/network/[PROFILE].yml
|
|
5
|
-
#
|
|
6
|
-
# More docs: http://ufoships.com/docs/params/
|
|
7
|
-
|
|
8
|
-
# ufo task calls run_tasks.
|
|
9
|
-
#
|
|
10
|
-
# ufo task will assign these values appropriately based on the task
|
|
11
|
-
# definition being ran. So generally you should you can leave these settings
|
|
12
|
-
# alone.
|
|
13
|
-
#
|
|
14
|
-
# If it's a Fargate task definition, ufo task automatically adds the
|
|
15
|
-
# network_configuration and launch_type: FARGATE
|
|
16
|
-
# If it's a EC2 task definition with awsvpc network mode, ufo task
|
|
17
|
-
# automatically adds the network_configuration and security groups using
|
|
18
|
-
# the security groups from .ufo/settings/network/default.yml.
|
|
19
|
-
#
|
|
20
|
-
# run_task:
|
|
21
|
-
# # network_configuration is required for FARGATE
|
|
22
|
-
# network_configuration:
|
|
23
|
-
# awsvpc_configuration:
|
|
24
|
-
# subnets: <%%= network[:ecs_subnets].inspect %> # required
|
|
25
|
-
# security_groups: <%%= network[:ecs_security_groups].inspect %>
|
|
26
|
-
# # for fargate use: assign_public_ip: ENABLED
|
|
27
|
-
# # assign_public_ip: ENABLED # accepts ENABLED, DISABLED
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# Options allow you to customize any resources that ufo creates with
|
|
3
|
-
# CloudFormation. These options are inserting into the generated template.
|
|
4
|
-
# More info: https://ufoships.com/docs/customize-cloudformation
|
|
5
|
-
|
|
6
|
-
Elb:
|
|
7
|
-
Scheme: internet-facing
|
|
8
|
-
|
|
9
|
-
# https://docs.aws.amazon.com/fr_fr/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html
|
|
10
|
-
#
|
|
11
|
-
# When using SSL with network elb, the target group protocol is usually http still
|
|
12
|
-
# unless you also handle SSL termination at the app level.
|
|
13
|
-
TargetGroup:
|
|
14
|
-
Port: 80 # only used with ECS if awsvpc mode
|
|
15
|
-
# Protocol: TCP # valid values - application elb: HTTP HTTPS, network elb: TCP
|
|
16
|
-
# ufo sets defaults in cloudformation template
|
|
17
|
-
# application elb: HTTP
|
|
18
|
-
# network elb: TCP
|
|
19
|
-
# so we can keep this commented out, unless we need HTTPS at the app level
|
|
20
|
-
# Health check settings are supported by application load balancer only:
|
|
21
|
-
# HealthCheckPath: /up # health check
|
|
22
|
-
HealthCheckIntervalSeconds: 10 # default: 30. Network ELB can only take 10 or 30
|
|
23
|
-
HealthyThresholdCount: 2
|
|
24
|
-
UnhealthyThresholdCount: 2 # default: 10
|
|
25
|
-
# HealthCheckProtocol: HTTP # HTTP or HTTPS
|
|
26
|
-
# HealthCheckPort: traffic-port
|
|
27
|
-
TargetGroupAttributes:
|
|
28
|
-
- Key: deregistration_delay.timeout_seconds
|
|
29
|
-
Value: 10
|
|
30
|
-
|
|
31
|
-
# https://docs.aws.amazon.com/fr_fr/elasticloadbalancing/latest/APIReference/API_CreateListener.html
|
|
32
|
-
#
|
|
33
|
-
# This is the default listener and normally should listen to port 80.
|
|
34
|
-
Listener:
|
|
35
|
-
Port: 80
|
|
36
|
-
# For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocol is TCP.
|
|
37
|
-
# Protocol: TCP # valid values - application elb: HTTP HTTPS, network elb: TCP, TLS
|
|
38
|
-
# ufo sets these defaults:
|
|
39
|
-
# application elb: HTTP # unless port is 443
|
|
40
|
-
# application elb: HTTPS # if port is 443
|
|
41
|
-
# network elb: TCP # unless port is 443
|
|
42
|
-
# network elb: TLS # if port is 443
|
|
43
|
-
# Can keep protocol commented out,
|
|
44
|
-
# unless need to override the defaults.
|
|
45
|
-
# If using the listener to handle SSL
|
|
46
|
-
# Certificates:
|
|
47
|
-
# - CertificateArn: arn:aws:acm:us-east-1:111111111111:certificate/11111111-2222-3333-4444-555555555555
|
|
48
|
-
|
|
49
|
-
# An optional second listener can be created.
|
|
50
|
-
# If HTTPS and SSL is required then the listener_ssl config is what you should use.
|
|
51
|
-
# Application ELBs support SSL termination.
|
|
52
|
-
# Network load balancers do not and must pass the request through to the app
|
|
53
|
-
# to handle SSL termination.
|
|
54
|
-
#
|
|
55
|
-
# ufo creates an ssl listener when listener_ssl is set.
|
|
56
|
-
# ListenerSsl:
|
|
57
|
-
# Port: 443
|
|
58
|
-
# # Certificates:
|
|
59
|
-
# # - CertificateArn: arn:aws:acm:us-east-1:111111111111:certificate/11111111-2222-3333-4444-555555555555
|
|
60
|
-
# # Protocol: TCP # valid values - application elb: HTTP HTTPS, network elb: TCP, TLS
|
|
61
|
-
# # ufo handles setting the defaults:
|
|
62
|
-
# # application elb: HTTPS
|
|
63
|
-
# # network elb: TLS
|
|
64
|
-
|
|
65
|
-
# Configure dns to automatically be associated with the ELB dns name.
|
|
66
|
-
# Note, the route53 record set for the domain name must already exist.
|
|
67
|
-
# The {stack_name} variable gets replaced with the name of the CloudFormation stack name.
|
|
68
|
-
# Example: {stack_name} => demo-web
|
|
69
|
-
# Dns:
|
|
70
|
-
# Name: "{stack_name}.yourdomain."
|
|
71
|
-
# HostedZoneName: yourdomain. # dont forget the trailing period
|
|
72
|
-
# TTL: '60' # ttl has special upcase casing
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
vpc: <%= @options[:vpc_id] %>
|
|
3
|
-
ecs_subnets: # required: at least 2 subnets
|
|
4
|
-
<% @options[:ecs_subnets].each do |subnet| -%>
|
|
5
|
-
- <%= subnet %>
|
|
6
|
-
<% end -%>
|
|
7
|
-
elb_subnets: # defaults to same subnets as ecs_subnets when not set
|
|
8
|
-
<% @options[:elb_subnets].each do |subnet| -%>
|
|
9
|
-
- <%= subnet %>
|
|
10
|
-
<% end -%>
|
|
11
|
-
|
|
12
|
-
# Optional additional existing security group ids to add on top of the ones created by ufo.
|
|
13
|
-
# elb_security_groups:
|
|
14
|
-
# - sg-aaa
|
|
15
|
-
# ecs_security_groups:
|
|
16
|
-
# - sg-bbb
|
|
17
|
-
# - sg-ccc
|
|
18
|
-
|
|
19
|
-
# Also supports extra security groups specific to each ECS service
|
|
20
|
-
# ecs_security_groups:
|
|
21
|
-
# demo-web:
|
|
22
|
-
# - sg-bbb
|
|
23
|
-
# - sg-ccc
|
|
24
|
-
# demo-worker:
|
|
25
|
-
# - sg-bbb
|
|
26
|
-
# - sg-ccc
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# More info: http://ufoships.com/docs/ufo-settings/
|
|
2
|
-
# The base config is treated special. It gets included the other environments automatically.
|
|
3
|
-
# Yaml also directly supports merging with & and <<* syntax but doing it automatically
|
|
4
|
-
# for a cleaner syntax.
|
|
5
|
-
base:
|
|
6
|
-
image: <%= @image %>
|
|
7
|
-
# clean_keep: 30
|
|
8
|
-
# ecr_keep: 30
|
|
9
|
-
# network_profile: default # .ufo/settings/network/default.yml file
|
|
10
|
-
# cfn_profile: default # .ufo/settings/cfn/default.yml file
|
|
11
|
-
# If you want to have prettier name set for the ECS service name
|
|
12
|
-
# There are some cavaets with this. Updating properties on resources that require
|
|
13
|
-
# replacment might not work. For example, adding and removing a load balancer.
|
|
14
|
-
# In these cases, you must delete the entire ecs service and recreate it.
|
|
15
|
-
stack_naming: append_ufo_env # new default setting in ufo v5.0.6
|
|
16
|
-
auto_camelize: false # new default setting in ufo v5
|
|
17
|
-
|
|
18
|
-
development:
|
|
19
|
-
# cluster: development
|
|
20
|
-
# The aws_profile tightly binds UFO_ENV to AWS_PROFILE and vice-versa.
|
|
21
|
-
# aws_profile: dev_profile
|
|
22
|
-
|
|
23
|
-
production:
|
|
24
|
-
# cluster: production
|
|
25
|
-
# The aws_profile tightly binds UFO_ENV to AWS_PROFILE and vice-versa.
|
|
26
|
-
# aws_profile: prod_profile
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# There some built-in helpers that are automatically available in this file.
|
|
2
|
-
#
|
|
3
|
-
# Some of helpers get data from the Dockerfile and some are from other places.
|
|
4
|
-
# Here's a summary of the some helpers:
|
|
5
|
-
#
|
|
6
|
-
# helper.full_image_name
|
|
7
|
-
# helper.dockerfile_port
|
|
8
|
-
# helper.env_vars(text)
|
|
9
|
-
# helper.env_file(path)
|
|
10
|
-
# helper.current_region
|
|
11
|
-
#
|
|
12
|
-
# More info: http://ufoships.com/docs/helpers/
|
|
13
|
-
#
|
|
14
|
-
<% source_name = @options[:launch_type] == "fargate" ? "fargate" : "main" -%>
|
|
15
|
-
task_definition "<%= @app %>-web" do
|
|
16
|
-
source "<%= source_name %>" # will use ufo/templates/<%= source_name %>.json.erb
|
|
17
|
-
variables(
|
|
18
|
-
family: task_definition_name,
|
|
19
|
-
name: "web",
|
|
20
|
-
container_port: helper.dockerfile_port,
|
|
21
|
-
# Comment out awslogs_* if you do not want logs to be sent to CloudWatch.
|
|
22
|
-
# Strongly recommended to use CloudWatch/centralized logging.
|
|
23
|
-
# Ufo automatically creates the log group as part of deployment.
|
|
24
|
-
#
|
|
25
|
-
# More info on awslogs settings: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html
|
|
26
|
-
# The log stream takes the following format:
|
|
27
|
-
# prefix-name/container-name/ecs-task-id
|
|
28
|
-
# Here's an exmaple when you specify the prefix of "demo"
|
|
29
|
-
# demo/web/209e93b4-5523-4496-9a27-662fd151eb78
|
|
30
|
-
awslogs_group: ["ecs/<%= @app %>-web", Ufo.env_extra].compact.join('-'),
|
|
31
|
-
awslogs_stream_prefix: "<%= @app %>",
|
|
32
|
-
awslogs_region: helper.current_region,
|
|
33
|
-
# command: ["bin/web"] # IMPORTANT: change or create a bin/web file
|
|
34
|
-
)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
task_definition "<%= @app %>-worker" do
|
|
38
|
-
source "<%= source_name %>" # will use ufo/templates/<%= source_name %>.json.erb
|
|
39
|
-
variables(
|
|
40
|
-
family: task_definition_name,
|
|
41
|
-
name: "worker",
|
|
42
|
-
# Comment out awslogs_* if you do not want logs to be sent to CloudWatch.
|
|
43
|
-
awslogs_group: ["ecs/<%= @app %>-worker", Ufo.env_extra].compact.join('-'),
|
|
44
|
-
awslogs_stream_prefix: "<%= @app %>",
|
|
45
|
-
awslogs_region: helper.current_region,
|
|
46
|
-
# command: ["bin/worker"] # IMPORTANT: change or create a bin/worker file
|
|
47
|
-
)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
task_definition "<%= @app %>-clock" do
|
|
51
|
-
source "<%= source_name %>" # will use ufo/templates/<%= source_name %>.json.erb
|
|
52
|
-
variables(
|
|
53
|
-
family: task_definition_name,
|
|
54
|
-
name: "clock",
|
|
55
|
-
# Comment out awslogs_* if you do not want logs to be sent to CloudWatch.
|
|
56
|
-
awslogs_group: ["ecs/<%= @app %>-clock", Ufo.env_extra].compact.join('-'),
|
|
57
|
-
awslogs_stream_prefix: "<%= @app %>",
|
|
58
|
-
awslogs_region: helper.current_region,
|
|
59
|
-
# command: ["bin/clock"] # IMPORTANT: change or create a bin/clock file
|
|
60
|
-
)
|
|
61
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"family": "<%= @family %>",
|
|
3
|
-
"requiresCompatibilities": ["FARGATE"],
|
|
4
|
-
"networkMode": "awsvpc",
|
|
5
|
-
"cpu": "<%= @cpu %>",
|
|
6
|
-
"memory": "<%= @memory %>",
|
|
7
|
-
"containerDefinitions": [
|
|
8
|
-
{
|
|
9
|
-
"name": "<%= @name %>",
|
|
10
|
-
"image": "<%= @image %>",
|
|
11
|
-
<% if @container_port %>
|
|
12
|
-
"portMappings": [
|
|
13
|
-
{
|
|
14
|
-
"containerPort": <%= @container_port %>,
|
|
15
|
-
"protocol": "tcp"
|
|
16
|
-
}
|
|
17
|
-
],
|
|
18
|
-
<% end %>
|
|
19
|
-
"command": <%= @command.to_json %>,
|
|
20
|
-
<% if @environment %>
|
|
21
|
-
"environment": <%= @environment.to_json %>,
|
|
22
|
-
<% end %>
|
|
23
|
-
<% if @secrets %>
|
|
24
|
-
"secrets": <%= @secrets.to_json %>,
|
|
25
|
-
<% end %>
|
|
26
|
-
<% if @awslogs_group %>
|
|
27
|
-
"logConfiguration": {
|
|
28
|
-
"logDriver": "awslogs",
|
|
29
|
-
"options": {
|
|
30
|
-
"awslogs-group": "<%= @awslogs_group %>",
|
|
31
|
-
"awslogs-region": "<%= @awslogs_region || 'us-east-1' %>",
|
|
32
|
-
"awslogs-stream-prefix": "<%= @awslogs_stream_prefix %>"
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
<% end %>
|
|
36
|
-
"essential": true
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"family": "<%= @family %>",
|
|
3
|
-
"networkMode": "awsvpc",
|
|
4
|
-
"containerDefinitions": [
|
|
5
|
-
{
|
|
6
|
-
"name": "<%= @name %>",
|
|
7
|
-
"image": "<%= @image %>",
|
|
8
|
-
"cpu": <%= @cpu %>,
|
|
9
|
-
<% if @memory %>
|
|
10
|
-
"memory": <%= @memory %>,
|
|
11
|
-
<% end %>
|
|
12
|
-
<% if @memory_reservation %>
|
|
13
|
-
"memoryReservation": <%= @memory_reservation %>,
|
|
14
|
-
<% end %>
|
|
15
|
-
<% if @container_port %>
|
|
16
|
-
"portMappings": [
|
|
17
|
-
{
|
|
18
|
-
"containerPort": <%= @container_port %>,
|
|
19
|
-
"protocol": "tcp"
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
<% end %>
|
|
23
|
-
"command": <%= @command.to_json %>,
|
|
24
|
-
<% if @environment %>
|
|
25
|
-
"environment": <%= @environment.to_json %>,
|
|
26
|
-
<% end %>
|
|
27
|
-
<% if @secrets %>
|
|
28
|
-
"secrets": <%= @secrets.to_json %>,
|
|
29
|
-
<% end %>
|
|
30
|
-
<% if @awslogs_group %>
|
|
31
|
-
"logConfiguration": {
|
|
32
|
-
"logDriver": "awslogs",
|
|
33
|
-
"options": {
|
|
34
|
-
"awslogs-group": "<%= @awslogs_group %>",
|
|
35
|
-
"awslogs-region": "<%= @awslogs_region || 'us-east-1' %>",
|
|
36
|
-
"awslogs-stream-prefix": "<%= @awslogs_stream_prefix %>"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
<% end %>
|
|
40
|
-
"essential": true
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Example ufo/variables/base.rb
|
|
2
|
-
# More info on how variables work: http://ufoships.com/docs/variables/
|
|
3
|
-
@image = helper.full_image_name # includes the git sha tongueroo/demo-ufo:ufo-[sha].
|
|
4
|
-
@environment = helper.env_file(".env")
|
|
5
|
-
@secrets = helper.secrets_file(".secrets")
|
|
6
|
-
<% if @options[:launch_type] == "fargate" -%>
|
|
7
|
-
# Ensure that the cpu and memory values are a supported combination by Fargate.
|
|
8
|
-
# More info: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html"
|
|
9
|
-
<% end -%>
|
|
10
|
-
@cpu = 256
|
|
11
|
-
@memory = 512
|
|
12
|
-
@memory_reservation = 512
|
|
13
|
-
|
|
14
|
-
<% if @execution_role_arn_input -%>
|
|
15
|
-
@execution_role_arn = "<%= @execution_role_arn_input %>"
|
|
16
|
-
<% else -%>
|
|
17
|
-
# required for fargate
|
|
18
|
-
# @execution_role_arn = "..."
|
|
19
|
-
<% end -%>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Example ufo/variables/development.rb
|
|
2
|
-
# More info on how variables work: http://ufoships.com/docs/variables/
|
|
3
|
-
@cpu = 256
|
|
4
|
-
# Refer to https://github.com/tongueroo/ufo/issues/87 as to why the += is used
|
|
5
|
-
@environment += helper.env_vars(%Q[
|
|
6
|
-
RAILS_ENV=development
|
|
7
|
-
SECRET_KEY_BASE=secret
|
|
8
|
-
])
|
data/lib/template/Dockerfile
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
FROM ruby:2.5.1
|
|
2
|
-
|
|
3
|
-
WORKDIR /app
|
|
4
|
-
ADD Gemfile /app/Gemfile
|
|
5
|
-
ADD Gemfile.lock /app/Gemfile.lock
|
|
6
|
-
RUN bundle install --system
|
|
7
|
-
|
|
8
|
-
ADD . /app
|
|
9
|
-
RUN bundle install --system
|
|
10
|
-
|
|
11
|
-
EXPOSE 4567
|
|
12
|
-
|
|
13
|
-
# If you do not have a bin/web wrapper file, create one or update this command
|
|
14
|
-
RUN chmod a+x bin/web
|
|
15
|
-
CMD ["bin/web"]
|
data/lib/template/bin/deploy.tt
DELETED
data/lib/ufo/apps/cfn_map.rb
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
class Ufo::Apps
|
|
2
|
-
class CfnMap
|
|
3
|
-
extend Memoist
|
|
4
|
-
include Ufo::Stack::Helper
|
|
5
|
-
|
|
6
|
-
def initialize(options = {})
|
|
7
|
-
@options = options
|
|
8
|
-
@cluster = @options[:cluster] || default_cluster(options[:service])
|
|
9
|
-
@map = {}
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# Example:
|
|
13
|
-
# {"development-demo-web-Ecs-1L3WUTJFFM5JV"=>"demo-web"}
|
|
14
|
-
def map
|
|
15
|
-
return @map if @populated
|
|
16
|
-
|
|
17
|
-
populate_map!
|
|
18
|
-
@populated = true
|
|
19
|
-
@map
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def summaries
|
|
23
|
-
filter = %w[
|
|
24
|
-
UPDATE_COMPLETE
|
|
25
|
-
CREATE_COMPLETE
|
|
26
|
-
UPDATE_ROLLBACK_COMPLETE
|
|
27
|
-
UPDATE_IN_PROGRESS
|
|
28
|
-
UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
|
|
29
|
-
UPDATE_ROLLBACK_IN_PROGRESS
|
|
30
|
-
UPDATE_ROLLBACK_FAILED
|
|
31
|
-
UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
|
|
32
|
-
REVIEW_IN_PROGRESS
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
summaries = []
|
|
36
|
-
next_token = true
|
|
37
|
-
while next_token
|
|
38
|
-
resp = cloudformation.list_stacks(stack_status_filter: filter)
|
|
39
|
-
summaries += resp.stack_summaries
|
|
40
|
-
next_token = resp.next_token
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# look for stacks that beling that ufo create
|
|
44
|
-
summaries.select do |s|
|
|
45
|
-
s.template_description =~ /Ufo ECS stack/
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
memoize :summaries
|
|
49
|
-
|
|
50
|
-
def populate_map!
|
|
51
|
-
threads = []
|
|
52
|
-
summaries.each do |summary|
|
|
53
|
-
threads << Thread.new do
|
|
54
|
-
resp = cloudformation.describe_stack_resources(stack_name: summary.stack_name)
|
|
55
|
-
ecs_resource = resp.stack_resources.find do |resource|
|
|
56
|
-
resource.logical_resource_id == "Ecs"
|
|
57
|
-
end
|
|
58
|
-
# Example: "PhysicalResourceId": "arn:aws:ecs:us-east-1:111111111111:service/dev-demo-web-Ecs-1HRL8Y9F4D1CR"
|
|
59
|
-
ecs_service_name = ecs_resource.physical_resource_id.split('/').last
|
|
60
|
-
@map[ecs_service_name] = stack_name_to_service_name(summary.stack_name)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
threads.map(&:join)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def stack_name_to_service_name(stack_name)
|
|
67
|
-
stack_name.sub("#{@cluster}-",'')
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
data/lib/ufo/apps/cluster.rb
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
class Ufo::Apps
|
|
2
|
-
class Cluster
|
|
3
|
-
def self.all
|
|
4
|
-
new.all
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
def all
|
|
8
|
-
Ufo.check_ufo_project!
|
|
9
|
-
clusters = if settings[:service_cluster]
|
|
10
|
-
settings[:service_cluster].values
|
|
11
|
-
elsif settings[:cluster]
|
|
12
|
-
settings[:cluster]
|
|
13
|
-
else
|
|
14
|
-
Ufo.env
|
|
15
|
-
end
|
|
16
|
-
[clusters].flatten.compact
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
def settings
|
|
21
|
-
@settings ||= Ufo.settings
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
data/lib/ufo/apps/service.rb
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
class Ufo::Apps
|
|
2
|
-
class Service
|
|
3
|
-
extend Memoist
|
|
4
|
-
|
|
5
|
-
def initialize(service, options)
|
|
6
|
-
@service = service
|
|
7
|
-
@options = options
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def to_a
|
|
11
|
-
[name, task_definition, running, launch_type, ufo?]
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def task_definition
|
|
15
|
-
@service["task_definition"].split('/').last
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def launch_type
|
|
19
|
-
@service["launch_type"]
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def cfn_map
|
|
23
|
-
@cfn_map ||= CfnMap.new(@options).map
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def ufo?
|
|
27
|
-
yes = !!cfn_map[@service["service_name"]]
|
|
28
|
-
yes ? "yes" : "no"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def name
|
|
32
|
-
actual_service_name = @service["service_name"]
|
|
33
|
-
pretty_name = cfn_map[actual_service_name]
|
|
34
|
-
if pretty_name
|
|
35
|
-
"#{actual_service_name} (#{pretty_name})"
|
|
36
|
-
else
|
|
37
|
-
actual_service_name
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def running
|
|
42
|
-
@service["running_count"]
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def dns
|
|
46
|
-
return 'dns' if ENV['TEST']
|
|
47
|
-
elb = info.load_balancer(@service)
|
|
48
|
-
elb.dns_name if elb
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def info
|
|
52
|
-
Ufo::Info.new(@service)
|
|
53
|
-
end
|
|
54
|
-
memoize :info
|
|
55
|
-
end
|
|
56
|
-
end
|
data/lib/ufo/apps.rb
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
require 'text-table'
|
|
2
|
-
|
|
3
|
-
module Ufo
|
|
4
|
-
class Apps
|
|
5
|
-
extend Memoist
|
|
6
|
-
include Stack::Helper
|
|
7
|
-
|
|
8
|
-
def initialize(options)
|
|
9
|
-
@options = options
|
|
10
|
-
@clusters = @options[:cluster] || @options[:clusters]
|
|
11
|
-
@clusters = [@clusters].flatten.compact
|
|
12
|
-
if @clusters.empty?
|
|
13
|
-
@clusters = Cluster.all
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def list_all
|
|
18
|
-
@clusters.each do |cluster|
|
|
19
|
-
list(cluster)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def list(cluster)
|
|
24
|
-
begin
|
|
25
|
-
resp = ecs.list_services(cluster: cluster)
|
|
26
|
-
rescue Aws::ECS::Errors::ClusterNotFoundException => e
|
|
27
|
-
puts "ECS cluster #{cluster.color(:green)} not found."
|
|
28
|
-
return
|
|
29
|
-
end
|
|
30
|
-
arns = resp.service_arns.sort
|
|
31
|
-
|
|
32
|
-
puts "Listing ECS services in the #{cluster.color(:green)} cluster."
|
|
33
|
-
if arns.empty?
|
|
34
|
-
puts "No ECS services found in the #{cluster.color(:green)} cluster."
|
|
35
|
-
return
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
resp = ecs.describe_services(services: arns, cluster: cluster)
|
|
39
|
-
display_info(resp)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def display_info(resp)
|
|
43
|
-
table = Text::Table.new
|
|
44
|
-
table.head = ["Service Name", "Task Definition", "Running", "Launch type", "Ufo?"]
|
|
45
|
-
resp["services"].each do |s|
|
|
46
|
-
table.rows << service_info(s)
|
|
47
|
-
end
|
|
48
|
-
puts table unless ENV['TEST']
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# for specs
|
|
52
|
-
def service_info(s)
|
|
53
|
-
Service.new(s, @options).to_a
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
data/lib/ufo/aws_service.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
require "aws-sdk-cloudformation"
|
|
2
|
-
require "aws-sdk-cloudwatchlogs"
|
|
3
|
-
require "aws-sdk-ec2"
|
|
4
|
-
require "aws-sdk-ecr"
|
|
5
|
-
require "aws-sdk-ecs"
|
|
6
|
-
require "aws-sdk-elasticloadbalancingv2"
|
|
7
|
-
|
|
8
|
-
require "aws_mfa_secure/ext/aws" # add MFA support
|
|
9
|
-
|
|
10
|
-
module Ufo
|
|
11
|
-
module AwsService
|
|
12
|
-
def cloudformation
|
|
13
|
-
@cloudformation ||= Aws::CloudFormation::Client.new
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def cloudwatchlogs
|
|
17
|
-
@cloudwatchlogs ||= Aws::CloudWatchLogs::Client.new
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def ec2
|
|
21
|
-
@ec2 ||= Aws::EC2::Client.new
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def ecr
|
|
25
|
-
@ecr ||= Aws::ECR::Client.new
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def ecs
|
|
29
|
-
@ecs ||= Aws::ECS::Client.new
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def elb
|
|
33
|
-
@elb ||= Aws::ElasticLoadBalancingV2::Client.new
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|