Skip to content
tleavey edited this page Oct 26, 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 customize the Parameter Group for my RDS DB instance?

Yes via custom CloudFormation. Check out the example for enabling case insensitive table names.

Can I customize the Load Balancer attributes for my ELB?

Yes via custom CloudFormation. Check out the example for enabling sticky sessions.

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 than ECS inside your mu.yml. Check out the ec2-provider 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 delete the CloudFormation stack.

I can't find the command I'm looking for.

From the command line, enter mu help to see the list of available commands. You can also find more details on the CLI page.

Why "mu"? How is it pronounced?

mu (or μ) is the 12th letter of the greek alphabet and is often used to represent "micro", a unit prefix in the metric system. So mu is a reference to a microservice architecture.

mu is pronounced "mew" (:cat2:), not "moo" (:cow2:). Still unsure...listen!

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!