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:
||If you have the
||The name of the cfn profile settings file to use. Maps to .ufo/settings/cfn/NAME.yml file|
||Docker images generated from ufo are cleaned up automatically for you at the end of
||By convention, the ECS cluster that ufo deploys to matches the
||If you are using AWS ECR, then the ECR images can also be automatically cleaned up at the end of
||The name of the network profile settings file to use. Maps to .ufo/settings/network/NAME.yml file|
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.