Skip to content
This repository has been archived by the owner on Mar 8, 2022. It is now read-only.

Deployment Pipelines

bialesdaniel edited this page Jul 9, 2020 · 3 revisions

Overview

All the Noise page pipelines can be found here. The ones pertaining to the testing infrastructure are all prefixed with noisepage-test

Pipelines

The pipeline gets triggered on any commit a branch that is not staging or master. It simply checks out the code to figure out which subdirectories the changes are in. Based on the subdirectories that are changed it will trigger a downstream build and wait for that to finish.

Currently, this does nothing

Currently, this does nothing

This pipeline will build the docker container for the Django service and run the tests for the service. If the branch is test it will deploy the build to DockerHub based on the version number specified in the Jenkinsfile.

This pipeline is responsible for downloading and deploying the containers from DockerHub. It uses Ansible playbooks to orchestrate the deployment to the Kubernetes cluster.

  1. Creates the namespaces in Kubernetes if they do not already exist.
  2. Starts the TimescaleDB container
  • rolling update to the TimescaleDB container
  • start the TimescaleDB Kubernetes service if not running
  1. Starts the Django service container
  • perform any new database migrations
  • rolling update to the Django deployment
  • start the Django Kubernetes service if not running
  1. Starts the Grafana Container
  • rolling update to the Grafana container
  • start the Grafana Kubernetes service if not running
  • upload the dashboards from the Grafana directory

The deployments pipeline gets kicked off on any commit to the master or staging environments. It will also get run after the noisepage-test-performance-storage-service finishes a build on the test branch. Each branch corresponds to a deployment environment as follows:

branch environment
test testing
staging staging
master production