Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Apr 03 02:45
    cezarsa synchronize #2395
  • Apr 03 02:37
    cezarsa synchronize #2395
  • Apr 03 01:36

    cezarsa on betterversion

    provision/kubernetes: Remove '-… (compare)

  • Apr 01 17:14
    cezarsa synchronize #2395
  • Mar 31 21:32
    cezarsa opened #2395
  • Mar 31 19:56

    cezarsa on master

    router/rebuild: Only save rebui… (compare)

  • Mar 31 19:56
    cezarsa closed #2394
  • Mar 31 16:01
    cezarsa opened #2394
  • Mar 30 19:26

    cezarsa on master

    db: Add index for events collec… (compare)

  • Mar 30 19:25

    cezarsa on master

    provision/docker: Ignore errors… (compare)

  • Mar 30 19:25
    cezarsa closed #2393
  • Mar 30 18:39
    cezarsa opened #2393
  • Mar 24 22:10

    cezarsa on master

    Avoid unnecessary routes rebuil… (compare)

  • Mar 23 18:16

    cezarsa on master

    provision/kubernetes: Add more … router: Add progress messages t… (compare)

  • Mar 20 21:34

    cezarsa on master

    provision/kubernetes: Create ro… (compare)

  • Mar 20 14:02

    cezarsa on master

    Refactor deploy arguments to pr… Ensure tests use custom databas… router: list all addresses from… and 8 more (compare)

  • Mar 20 14:02
    cezarsa closed #2392
  • Mar 20 13:47
    cezarsa synchronize #2392
  • Mar 19 21:11
    cezarsa synchronize #2392
  • Mar 19 17:42
    tancou commented #2324
how can we add multiple machine to tsuru and rebalance the application or autoscale
@LabsRhombus_twitter we recommend the use of kubernetes with the tsuru

@JohnAnt Today we have as example the Api of Tsuru running in 6 VMs of

CPU Cores 4
CPU (in MHz) 1530
Memory (in MB) 4096

We manage more than 2000 apps and more than 5000 docker containers

@JohnAnt In this scenario the processing usually does not reach 50% of the CPU of the machines

I am trying to integrate Gandalf with the Tsuru service for deploying apps through git

X - Tsuru dev environment with tsuru api, client and its components.
Y - git repository server in cloud 

Tsuru API - hosted as container in X
Gandalf container with webserver hosted as container in X
in the Gandalf container "GANDALF_HOST" is set as "Y"

When I create a new application from tsuru client -

I get this message - new repository created at git@y:<proj_name>.git
and there is also repository folder created at the bare location : /var/lib/gandalf/repository
But the repository is not being created in the Git remote server

How and where should we setup the gandalf? am I missing any step? and should gandalf be hosted in the same server as our git ?
and how should we set "repo-manager" and "git:api-server" in tsuru.conf?

Guilherme Rezende
@shreeraman96 gandalf is a git server, you don't need an extra git repository
repo-manager: gandalf
git:api-server: http://gandalf-host:port
Kasra Fakhari
Hi. Is there an implementation available for traefik router? I'd like to implement it using tsuru Router API specification. If someone knows about an implementation or intrested in contribution, let me know. I'll be happy to hear your idea.
Guilherme Rezende
@kasra73 Hi. I don't know any implementation of traefik router for tsuru, but looks like an amazing contribution.
Magno Torres
@kasra73 the modern/better way to do that is using the router api: https://docs.tsuru.io/stable/reference/router-api.html
Chase Pierce
Kasra Fakhari
Hi. I have developed traefik router integration using cosul backend using koa and type script. Here is the repository on github:
It's tsuru ready! I mean you can simply deploy it using tsuru nodejs platform then add the url to your tsuru.conf
    type: hipache
    domain: example.com
    type: api
    api-url: http://traefik-router.example.com
Kasra Fakhari
I also make some changes in swagger api specification based on the k8s router implementation.
Rodolfo Stangherlin
Hi. Is the https://hub.docker.com/r/tsuru/gandalf image ready for production? I am trying to use it, but I don't know why is it not working...
Emerson Rocha


Hi. Is the https://hub.docker.com/r/tsuru/gandalf image ready for production? I am trying to use it, but I don't know why is it not working...

Hi Rodolfo! I'm very new to Tsuru, just done a MVP some weeks ago, but I'm moving to create a 3 Node Tsuru cluster from scratch plus lots of documentation in Portuguese for end users.

Gandalf was one thing I skipped on MVP because turns out that I found tsuru-client very poweful to start. But if you want some help with this (and at least be able to test if I implement soon the Gandalf) I could try put Gandalf first on my priorities. And since I'm documenting everything in the open, could useful for you too.

If you still need help can private message me here on on Twitter.

Emerson Rocha

On tsuru version 1.7.0-rc1, I'm having some problem to log as admin immediately after the creation.

I will try a bit better to find if was not some mistake on configurations, etc, but if persist I will report on the main repository.

For now I have this issue here EticaAI/aguia-pescadora#6 (in portuguese, but google translate should work fine) to document my progress if someone interested to see it earlier. The same repository have all information.

Guilherme Rezende
@rodolfo3 yes the image is ready for production. What problem are you having?
Rodolfo Stangherlin
@guilhermebr I got it working - it was my fault configuring it...
but I'm having problems using logstash for metrics and logs. My logstash log says:
[2019-07-02T22:37:22,754][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch. {:status=>400, :action=>["index", {:_id=>nil, :_index=>".measure-tsuru-2019.07.02", :_type=>"host_netrx", :routing=>nil}, #<LogStash::Event:0x2f0eda1b>], :response=>{"index"=>{"_index"=>".measure-tsuru-2019.07.02", "_type"=>"host_netrx", "_id"=>"t1nVtGsBR4vbPSvq22hZ", "status"=>400, "error"=>{"type"=>"illegal_argument_exception", "reason"=>"Rejecting mapping update to [.measure-tsuru-2019.07.02] as the final mapping would have more than 1 type: [host_cpu_wait, host_netrx]"}}}}
Rodolfo Stangherlin

my first error is:

[2019-07-03T18:40:33,840][ERROR][logstash.outputs.elasticsearch] Failed to install template. {:message=>"Got response code '400' contacting Elasticsearch at URL 'https://vpc-tsuru2-apps-gialqmcwk4rsjmg4adsylan7la.us-east-1.es.amazonaws.com:443/_template/tsuru-template'", :class=>"LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError", :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client/manticore_adapter.rb:80:in `perform_request'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:291:in `perform_request_to_url'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:278:in `block in perform_request'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:373:in `with_connection'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:277:in `perform_request'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client/pool.rb:285:in `block in Pool'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client.rb:352:in `template_put'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/http_client.rb:86:in `template_install'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/template_manager.rb:28:in `install'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/template_manager.rb:16:in `install_template'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/common.rb:129:in `install_template'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-9.4.0-java/lib/logstash/outputs/elasticsearch/common.rb:50:in `block in setup_after_successful_connection'"]

I'm trying with ES 5.6 and 6.0

Rodolfo Stangherlin
I removed the geoip section from the template and it works on ES 5.6. But the dashboard does not shows data for the node. It saves addr as,,, ::1, fe80::88b:edff:fe0a:6c88, fe80::42:d5ff:fe79:3d5d, fe80::2022:6cff:fe3a:4463. The dashboard searches for {'addr.keyword': [u'ip-10-0-3-227.ec2.internal']}}... is this a bug?
Rodolfo Stangherlin

also, when I trigger the autoscale (using tsuru node-autoscale-run), I get a rebalance from a host to the same host:

Moved unit 3dd(...)b7f -> 1d3(...)351 for "mobile-api-stg" from ip-10-0-3-63.ec2.internal -> ip-10-0-3-63.ec2.internal

Is there some config to avoid it?

should I stop to use docker and start to use kubernetes?
Gleicon Moraes
Hi does anyone have tried or can point to a write up on setting tsuru + k3s ?
Emerson Rocha

@gleicon Actually thats a great question! I'm not sure if someone else at least tried to replace Kubernetes with K3S to work with Tsuru, but this is something I personally would start testing.

One of my reasons to consider using Kubernetes (or if later is possible, k3s) is that seems to be much easier to deal with strategies to handle files (aka volumes) integrated with Kubernetes (or since is compatible, k3s) than with vanila docker. (even the first reference about k3s is my comment here, https://github.com/tsuru/tsuru/issues/2063#issuecomment-506250179, @gleicon ). I'm not saying that is bad use on vanila docker, just that maybe for usage with bigger setups, or different users, etc, kubernetes could be easier

I will take at least a few weeks to start test with k3s because I'm testing before with Kuberbetes (I'm new here, and also I'm new to Kubernetes), so I'm unable to give a fast response for you about if it works or not with k3s for now. I will leave for someone else that maybe already know Tsuru + Kubernetes to try replace with K3S.

Yehudi Brito
How do I dynamically add auto scaling to the unit?
Magno Torres
You can use the tsuru autoscale service: https://github.com/tsuru/tsuru-autoscale
Patrezze Alvarenga

Upgrade Tsuru Server from 1.6.2 to 1.7.4


Docker Version: 19.03.1
Linux Distribution: Ubuntu 16.04 LTS
Kubernetes Cluster: No

The result of tsurud migrate --dry is OK.

Opening config file: /etc/tsuru/tsuru.conf
Done reading config file: /etc/tsuru/tsuru.conf
Using "mongodb" database "tsuru" from the server "mongodb://######".
Running "migrate-apps-kubernetes-crd"... OK
Running "migrate-app-image-exposed-ports"... OK

tsurud migrate

Opening config file: /etc/tsuru/tsuru.conf
Done reading config file: /etc/tsuru/tsuru.conf
Using "mongodb" database "tsuru" from the server "mongodb://######".
Error: multiple errors reported (34):
error #0: no cluster
error #1: no cluster
error #2: no cluster
error #3: no cluster
error #4: no cluster
error #5: no cluster
error #6: no cluster
error #7: no cluster
error #8: no cluster
error #9: no cluster
error #10: no cluster
error #11: no cluster
error #12: no cluster
error #13: no cluster
error #14: no cluster
error #15: no cluster
error #16: no cluster
error #17: no cluster
error #18: no cluster
error #19: no cluster
error #20: no cluster
error #21: no cluster
error #22: no cluster
error #23: no cluster
error #24: no cluster
error #25: no cluster
error #26: no cluster
error #27: no cluster
error #28: no cluster
error #29: no cluster
error #30: no cluster
error #31: no cluster
error #32: no cluster
error #33: no cluster
Running "migrate-apps-kubernetes-crd"...

tsurud migrate-list

The migrate-apps-kubernetes-crd and migrate-app-image-exposed-ports appear as not executed.

| Name                                   | Mandatory? | Executed? |
| migrate-docker-images                  | true       | true      |
| migrate-pool                           | true       | true      |
| migrate-set-pool-to-app                | true       | true      |
| migrate-service-proxy-actions          | true       | true      |
| migrate-bs-envs                        | true       | true      |
| migrate-events-deploy                  | true       | true      |
| migrate-events-healer                  | true       | true      |
| migrate-rc-events                      | true       | true      |
| migrate-router-unique                  | true       | true      |
| migrate-app-plan-router-to-app-router  | true       | true      |
| migrate-pool-teams-to-pool-constraints | true       | true      |
| migrate-app-service-envs               | true       | true      |
| migrate-app-plan-id-to-plan-name       | true       | true      |
| migrate-roles                          | false      | true      |
| migrate-apps-kubernetes-crd            | true       | false     |
| migrate-app-image-exposed-ports        | true       | false     |

I got errors with tsurud migrate. Is it necessary to fix? If I ignore them, does it have any impact?

William Kibira

Hello everyone , i've been trying to get tsuru set up on a cluster and when it tries to check for the availability of the Tsuru API the connection fails .
I'm trying to get it to install gandalf in the very first installation

      repo-manager: gandalf

I'm using the generic driver for the installation

Deploying tsuru config...
Deploying compose file in cluster manager...
Updating service tsuru_planb (id: 7w6ugx0usv8w4odxijohjs4mj)
Updating service tsuru_registry (id: cie9whbjr3s533e3xc1q71nyb)
Updating service tsuru_tsuru (id: 712oagr7yysncjbhd8pi6isuv)
Updating service tsuru_redis (id: 4uwrmorxpmo0vwb0svgafx2f7)
Updating service tsuru_mongo (id: v5ktthl9j3qhck2swqdnw1lv4)
Waiting for Tsuru API to become responsive at "http://XXX.XXX.XXX.XXX:8080"...
Error: failed to connect to http://XXX.XXX.XXX.XXX:8080: Maximum number of retries (60) exceeded: Get http://XXX.XXX.XXX.XXX:8080: dial tcp XXX.XXX.XXX.XXX:8080: connect: connection refused
I've replaced the IP Address with XXX.XXX.XXX.XXX in the log
why choose tsuru over flynn?
i'm a new bie, please explain.
Guilherme Rezende
@patrezze it's ok since you don't have any kubernetes cluster.
Magno Torres
@willtanium_gitlab gandalf is just a nice to have command nowadays in tsuru, as we have the command tsuru app-deploy, and you can even deploy a docker image with that (-i). This connect error looks like a ACL/permission missing
Magno Torres
@admicro talking about tsuru, it's a really stable and powerful PaaS. We attend thousands of critical apps, with a workflow deeply thought to avoid downtime, and dealing automatically with operational issues like restart, container move after problems in the previously host, etc. We use exactly the version available in github (there isn't an enterprise/paid version) and is really easy to extend it with new languages(just a new dockerfile). We manage applications with millions of unique visitors and with really little administrative issues
going through the documentation for running the test https://docs.tsuru.io/stable/contributing/index.html#running-the-tests it says that mongodb and redis need to be installed. Which docker image normally people are using to run mongodb and redis ?
anyone can help with my question ? Thanks
Kasra Fakhari
@nanikjava Hi. Official docker images are most tested and reliable docker images. They start with an underline as namespace in docker hub. For redis database, you can use bitnami image with additional security features.
Thanks @kasra73
will try it out and if it works will submit PR to update the documentation with instruction
Kasra Fakhari
You can also use docker-compose yaml file included in tsuru source code for testing and development purposes.
I've submitted PR to fix this issue tsuru/tsuru#2364 .. PR is tsuru/tsuru#2365
Rodolfo Stangherlin
Anyone using tsuru and EKS? I'm an error trying to setup it. I get ec2:CreateInternetGateway You are not authorized to perform this operation running tsuru-eks2 kubernetes --create-data='driver=amazonelasticcontainerservice' --create-data="access-key=*****" --create-data="secret-key=*****" --create-data="region=us-east-1" --pool=eks, but the owner of this key has "ec2:*" permission...
well, it works with "*" permission, but I think this may be insecure...
Rodolfo Stangherlin

I'm still trying to add the eks cluster to my tsuru setup. I'm getting the Unauthorized error:


I create the cluster using tsuru cluster-add, it works (it is running on aws side), but I got this on logs:

2020/02/03 19:17:38 ERROR: failure running HTTP request POST /1.3/provisioner/clusters (500): error creating clientset: error generating token: NoCredentialProviders: no valid providers in chain. Deprecated.

and the cluster is not on tsuru anymore.

I don't know what am I doing wrong. Any tips to debug this?
or documentation about it?