Skip to content
Casey Lee edited this page Oct 2, 2017 · 20 revisions

How can multiple developers run the same app multiple times in the same account without affecting each other?

You can override the namespace, which is a prefix that mu uses on all CloudFormation stacks (default is mu). There are 3 ways to set the namespace, in order of precedence:

  • Via cli flag: mu -n foo env ls
  • Via environment variable: MU_NAMESPACE=foo
  • Via mu.yml: namespace: foo

Can I provide my own tags to apply to the resources that mu creates?

Yes! You can add a tags: map to the environments, services, databases and pipelines in your mu.yml

Can I manage the IAM roles myself rather than letting mu do it for me?

Yes! For more details, check out the IAM wiki page.

How can I customize the CloudFormation stacks that mu creates for my environment/service/database/pipeline?

You can provide custom CloudFormation YAML in your mu.yml that gets merged into the templates that mu creates. To learn more, check out Custom CloudFormation to learn more.

Can I reuse an existing VPC rather than having mu create one for me?

Yes! You can target an existing VPC in your mu.yml. Check out the vpc-target example to learn more.

Can mu manage a VPN for my VPC?

Yes! You can provide CloudFormation in your mu.yml to define the VPN. Check out the vpn example to learn more.

Can I use mu to deploy my app directly to EC2 instances rather than using Docker and ECS?

Yes! You can configure your environments to use EC2 and CodeDeploy rather thatn ECS inside your mu.yml. Check out the vpn example to learn more.

Why is there still a CloudFormation stack named mu-bucket-codepipeline after I terminated my pipeline?

The mu-bucket-codepipeline stack contains an S3 bucket for CodePipeline artifacts. It is shared by all pipelines that are deployed in a given region for an account. Therefore, since it is shared, it isn't safe to assume it can be deleted whenever a pipeline is terminated. Additionally, the bucket is likely not empty which would cause an error when CloudFormation tried to delete it. Alternatively, the bucket could have a DeletionPolicy of Retain, but that would cause a conflict the next time pipeline was created and the mu-bucket-codepipeline stack was recreated.

Therefore, the best approach was to retain the CloudFormation stack that managed the bucket. If you would like to delete the stack, then you should first empty the bucket with aws s3 rm s3://mu-codepipeline-<region>-<account_id> --recursive and then deleting the CloudFormation stack.

How can I contribute to mu?

Awesome! Check out the contributing guidelines to get involved.

I still need help. Where can I go to get my question answered?

Ask on Gitter!