The behavior of ufo can be configured with a
settings.yml file. A starter project
.ufo/settings.yml file is generated as part of the
ufo init command. There are can be multiple settings files. The options from the files get merged and respected in the following precedence:
- current folder - The current folder’s
.ufo/settings.ymlvalues take the highest precedence.
- user - The user’s
~/.ufo/settings.ymlvalues take the second highest precedence.
- default - The default settings bundled with the tool takes the lowest precedence.
Let’s take a look at an example
base: image: tongueroo/demo-ufo # clean_keep: 30 # cleans up docker images on your docker server. # ecr_keep: 30 # cleans up images on ECR and keeps this remaining amount. Defaults to keep all. # network_profile: default # .ufo/settings/network/default.yml file # cfn_profile: default # .ufo/settings/cfn/default.yml file development: # cluster: dev # uncomment if you want the cluster name be other than the default # the default is to match UFO_ENV. So UFO_ENV=development means the ECS # cluster will be name development # The aws_profile tightly binds UFO_ENV to AWS_PROFILE and vice-versa. # aws_profile: dev_profile production: # cluster: prod # aws_profile: prod_profile
The table below covers each setting:
|aws_profile||If you have the
|cfn_profile||The name of the cfn profile settings file to use. Maps to .ufo/settings/cfn/NAME.yml file. Will match an
|clean_keep||Docker images generated from ufo are cleaned up automatically for you at the end of
|cluster||By convention, the ECS cluster that ufo deploys to matches the
|ecr_keep||If you are using AWS ECR, then the ECR images can also be automatically cleaned up at the end of
|managed_security_groups||Create managed security groups for application ELBs. Defaults to true. If you disable it with false then no managed security groups will be created by UFO.|
|network_profile||The name of the network profile settings file to use. Maps to .ufo/settings/network/NAME.yml file. Will match an
An interesting option is
aws_profile. This allows you to tightly connect an AWS_PROFILE to a UFO_ENV. The details are in the Settings AWS_PROFILE docs.
ECS Cluster Convention
Normally, the ECS cluster defaults to whatever UFO_ENV is set to by convention. For example, when
UFO_ENV=production the ECS Cluster is
production and when
UFO_ENV=development the ECS Cluster is
development. There are several ways to override this behavior. This is detailed in the Settings Cluster docs.
Pro tip: Use the <- and -> arrow keys to move back and forward.