Educational purpose repo. Contains:
- Simple python flask app with Prometheus exporter
- Tests for simple module "buzz generator"
- Simple dockerfile to build image
- Terraform infrastructure description for Linode provider
- Ansible playbook to setup Jenkins slave nodes
- Jenkins multibranch pipline.
- Build and test on each push for every branch
- On manual execution for given branch launches app on a staging node
- On push to main branch makes artifact (image), pushes artifact to registry and starts new canary rollout with that artifact
Repo contains 4 branches:
- main - aka release branch
- jenkins - jenkins related branch with pipline and scripts
- infrastructure - infrastructure related branch with terraform and ansible configs
- feature-branch - aka development branch