Using Pools
Overview
Pool is used by provisioners to group nodes and know if an application can bedeployed in these nodes. Users can choose which pool to deploy in tsuruapp-create.
Tsuru has three types of pool: team, public and default.
Team’s pool are segregated by teams, and cloud administrator should setteams in this pool manually. This pool are just accessible by team’smembers.
Public pools are accessible by any user.
Default pool is where apps are deployed when app’s team owner don’t have a poolassociated with it or when app’s creator don’t choose any public pool. Ideallythis pool is for experimentation and low profile apps, like service dashboardand “in development” apps. You can just have one default pool. This is the oldfallback pool, but with a explicit flag.
Adding a pool
In order to create a pool, you should invoke tsuru pool-add:
- $ tsuru pool-add pool1
If you want to create a public pool you can do:
- $ tsuru pool-add pool1 -p
If you want a default pool, you can create it with:
- $ tsuru pool-add pool1 -d
You can overwrite default pool by setting the flag -f:
- $ tsuru pool-add new-default-pool -d -f
Adding teams to a pool
Then you can use tsuru pool-constraint-set to add teams to the pool thatyou’ve just created:
- $ tsuru pool-constraint-set pool1 team team1 team2 --append
- $ tsuru pool-constraint-set pool2 team team3 --append
Listing pools
To list pools you do:
- $ tsuru pool-list
- +-------+-------------+
- | Pools | Teams |
- +-------+-------------+
- | pool1 | team1 team2 |
- | pool2 | team3 |
- +-------+-------------+
Removing a pool
If you want to remove a pool, use tsuru pool-remove:
- $ tsuru pool-remove pool1
Removing teams from a pool
You can remove one or more teams from a pool using the command tsuru pool-constraint-set:
- $ tsuru pool-constraint-set pool1 team team1 --blacklist
- $ tsuru pool-constraint-set pool1 team team1 team2 team3 --blacklist
Removing services from a pool
You can remove one or more services from a pool using the command tsuru pool-constraint-set:
- $ tsuru pool-constraint-set <pool> service <service1> <service2> <serviceN> --blacklist
- $ tsuru pool-constraint-set dev_pool service mongo_prod mysql_prod --blacklist
Moving apps between pools and teams
You can move apps from poolA to poolB and from teamA to teamB even when they dont have permission to see each other’s pools, this is made by using tsuru app-update:
- $ tsuru app-update -a <app> -t <teamB> -o <poolB>
By default the app will be set to both teams, so teamA can still see the app just in case that the user may have made some mistake. If you wish to remove the old teamA from the app, It’s possible using tsuru app-revoke:
- $ tsuru app-revoke teamA -a <app>