Frequently Asked Questions
- How do environment variables work?
- How does the quota system work?
- How does routing work?
- How are Git repositories managed?
This document is an attempt to explain concepts you’ll face when deploying andmanaging applications using tsuru. To request additional explanations you canopen an issue on our issue tracker, talk to us at #tsuru @ freenode.net or opena thread on our mailing list.
How do environment variables work?
All configurations in tsuru are handled by the use of environment variables. Ifyou need to connect with a third party service, e.g. twitter’s API, you areprobably going to need some extra configurations, like client_id. In tsuru, youcan export those as environment variables, visible only by your application’sprocesses.
When you bind your application into a service, most likely you’ll need tocommunicate with that service in some way. Services can export environmentvariables by telling tsuru what they need, so whenever you bind yourapplication with a service, its API can return environment variables for tsuruto export on your application’s units.
How does the quota system work?
Quotas are handled per application and user. Every user has a quota number forapplications. For example, users may have a default quota of 2 applications, sowhenever a user tries to create more than two applications, he/she will receivea quota exceeded error. There are also per applications quota. This one limitsthe maximum number of units that an application may have.
How does routing work?
tsuru has a router interface, which makes it extremely easy to change the wayrouting works with any provisioner. There are two ready-to-go routers: oneusing planb and another with galeb.
Note
as of 0.10.0 version tsuru supports more than one router. You can havea default router, configured by “docker:router” and you can define a customrouter by plan
How are Git repositories managed?
tsuru uses Gandalf to manage gitrepositories. Every time you create an application, tsuru will ask Gandalf tocreate a related git bare repository for you to push in.
This is the remote tsuru gives you when you create a new app. Everytime youperform a git push, Gandalf intercepts it, check if you have the requiredauthorization to write into the application’s repository, and then lets thepush proceeds or returns an error message.