Overview
The thread pipeline is a continuous delivery pipeline for Banno/Digital infrastructure. It aims to deploy various types of changes, including:
- Kubernetes app version deploys & configuration deploys (app cpu, memory, env variables, etc)
- Marathon app version deploys & configuration deploys (app cpu, memory, env variables, etc)
Note: The thread pipeline does not support terraform, vault, or postgres deploy changes (yet).
The pipeline configuration is found in the Jenkinsfile.
Purpose
Sometimes there are production deployments that are left hanging but are still needed. Builds in Jenkins can fail for vairous reasons but commonly the build jobs expire, timeout, or there is a network connectivity error. It is needed then, to re-run the production deployment manually (which assumes it succeeded in the lower environments) but failed on its way to production. This pipeline aims to help mitigate the process as opposed to manual script deploys by humans.
Use
The pipeline requires the email subject title (thread) of the deployment and it assumes there is an email thread that has been previously sent out and approved. The pipeline will not deploy un-approved email deploy threads.

Canaries
In addition the thread pipeline also supports k8s canary deploys, similar to how it behaves in the app pipeline.
How it works
The scripts are retrieved from the email thread body and are passed in for Jenkins to run. Only the deploy scripts for k8s and marathon are enabled to execute. If there are multiple deploy scripts in a deploy email, the pipeline will attempt to run them sequentially.
Troubleshooting
-no threads error: there wasn’t a deploy email thread found; double check the subject title spelling and check if the email was sent out to approvers -not approved: the deploy email has not been approved