Enterprise High Availability Mode
Travis CI Enterprise 3.x #
Travis CI Enterprise (TCIE) 3.x typically runs in a Kubernetes cluster with one or multiple workers. Services are split into several pods in the cluster. This enables a High Availability setup out of the box which you can customize based on your needs.
Install the Platform in High Availability Mode #
Please make sure to configure your Kubernetes cluster with redundant pods for each service and secure appropriate resources and configuration (see below) to run it or choose to self-host several services. You must modify several service configurations to achieve High Availability and adjust them to your requirements.
Select one of the options depending on your planned setup, deployment, data backup policies, the volume of users, and the number of build jobs. See also the regular installation instructions for TCIE 3.x.
Self-hosting services for High Availability Mode #
You may need to consider self-hosting of
- Redis, RabbitMQ and Postgres instances along with it’s mirrors/redundant instances
- Common Logs Target Location
Once TCIE 3.x is installed, go to the Dashboard, Configs, and format self-hosted options according to your planned setup. See an example of a self-hosted configuration for database access in TCIE 3.x below:
Similar configuration options are available for self-hosted logs, Insights, Redis, and Rabbit MQ. The self-hosted solution for these services allows you to fully deploy and configure their High-Availability compliant setup as per your requirements.
Kubernetes cluster services #
Another option is to modify the configuration for the aforementioned services (PostgreSQL, Redis, and RabbitMQ), considering service-specific details. These details can be found in the tools documentation. Since there are multiple possible variations, we suggest only general guidelines that should be treated as a starting point for developing your specific high-availability configuration.
-
Postgresql: most probably you may want to start looking at primary/standby service pods behind a service load balancing the traffic. Automatic failover switching is at your discretion.
-
Redis: you may want to look at setup with Redis Master, Sentinel, and Replicas with Sentinel as an entry point for every pod utilizing Redis
-
RabbitMQ: RabbitMQ has an extensive guide for clustering, which may help you select an appropriate solution for your case.
Please mind that in basic installation logs are put on stdout of each pod, therefore you will still need redirect them to a common logs target location and store them using a tool of your choice.
Install the Worker in High Availability Mode (all versions) #
The worker installation works the same as for non-HA installations, as do the build environment compatibility defaults per the Enterprise version. Check out the docs for which version of Enterprise handles different OS’s(TCIE 2.x or TCIE 3.x and other information regarding the installation. You must retrieve your RabbitMQ password from your installation rather than from the Travis CI Enterprise Admin Dashboard.
Contact Enterprise Support #
To get in touch with us, please write a message to enterprise@travis-ci.com. If possible, please include as much of the following as you can:
- Description of the problem - what are you observing?
- Which steps did you try already?
- A support bundle (see table below on how to obtain it)
- Log files from all workers (They can be found at
/var/log/upstart/travis-worker.log
- please include as many as you can retrieve). - If a build failed or errored, a text file of the build log
TCI Enterprise version | Support bundle |
---|---|
3.x | Run kubectl kots admin-console -n [namespace] to access admin console on http://localhost:8800 Support bundle generation instruction is available in ‘troubleshoot’ menu or directly at: http://localhost:8800/app/tci-enterprise-kots/troubleshoot A command for generating support bundle will appear after selecting: If you'd prefer, [click here]() to get a command to manually generate a support bundle. |
2.x+ | You can get it from https://<your-travis-ci-enterprise-domain>:8800/support |
Since the announcement in Q3 2020, the most up to date version of Travis CI Enterprise is 3.x line. There are not any new releases for version 2.2 and the support patches has been limited since March 2021 as well. For existing users of Travis CI 2.x we strongly recommend upgrading to the latest Travis CI Enterprise 3.x.
Have you made any customizations to your setup? While we may be able to see some information (such as hostname, IaaS provider, and license expiration), there are many other things we cannot see which could lead to something not working. Therefore, we would like to ask you to also answer the questions below in your support request (if applicable):
- How many machines are you using / what is your Kubernetes cluster setup?
- Do you use configuration management tools (Chef, Puppet)?
- Which other services do interface with Travis CI Enterprise?
- Which Version Control system (VCS) do you use together with Travis CI Enterprise (e.g. github.com, GitHub Enterprise, or BitBucket Cloud)?
- If you are using GitHub Enterprise, which version of it?
We are looking forward to helping!