Upgrading Travis CI Enterprise 3.x

Backups #

Before upgrading, we strongly recommend making a backup of PostgreSQL database, Redis and RabbitMQ data.

It is recommended that your Travis CI Enterprise (TCIE) deployment recipes are automated. Thus backing up just data should be sufficient strategy to restore the TCIE 3.x installation from scratch and fill it with the data from the backup/dump files.

Encryption Key #

Without the encryption key you cannot access the information in your production database. To make sure that you can always recover your database, make a backup of this key.

Without the encryption key the information in the database is not recoverable.

To make a backup of encryption keys in TCIE 3.x, please follow these steps:

  1. Make sure you have appropriate access to the kubernetes cluster: you need credentials for kubectl and connection to [travis-api-pod]
  2. Run kubectl exec -it [travis-api-pod] cat /app/config/travis.yml |grep -A 2 encryption (using Travis API pod is recommended).
  3. Create a backup of the value returned by that command by either writing it down on a piece of paper or storing it on a different computer.

Updating your Travis CI Enterprise Platform #

Run kubectl kots admin-console -n [namspace] to access admin console on http://localhost:8800.

Click Check for updates in Version history menu:

Check for updates

If there’s a new version it will appear in all versions list. Click deploy to replace current installation with a new version:

All versions

There will be a small amount of downtime while an update is installed. For this reason we recommend that you perform each update during a maintenance window.

Updating Replicated on the Platform #

To update Replicated KOTS version on the Platform installation you’ll want to run following command:

curl https://kots.io/install | bash

Updating your Travis CI Enterprise Worker #

On Ubuntu 16.04 and later #

On Ubuntu 16.04 and later, travis-worker ships inside a Docker container. To update travis-worker, please follow the steps below.

  1. Configure the new image by editing the Docker tag in /etc/systemd/system/travis-worker.service.d/env.conf:
      [Service]
      Environment="TRAVIS_WORKER_SELF_IMAGE=travisci/worker:v4.6.1"
    
  2. Reload the configuration and restart the service:
      $ sudo systemctl daemon-reload
      $ sudo systemctl restart travis-worker
    

Restoring from Backups #

In the rare event something goes wrong and/or you’d like to restore from a backup, please use the following steps:

  1. Make sure you have backed up PostgreSQL database, Redis and RabbitMQ data - these services should be separate pods in Kubernetes cluster or run by you externally to TCIE 3.x installation
  2. Make a fresh install of Travis CI
  3. Restore the data in aforementioned tools in respective pods using their specific restore commands

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

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!