An open-source CI/CD system for containerized applications that deploys to your Kubernetes cluster.
- Fixed build pipeline: Build, Test, Deploy
- Creates preview deployments for the last pushed commit of a pull request
- Deletes a preview deployment with the push of a button
- Deletes all preview deployments of a closed pull request (optional)
- Deploys to production for Build pipeline of the mainline
- Manual deployment trigger (optional)
- Sends Slack notifications for failed and successful deployments (optional)
Read the docs here: anjakammer.github.io/anya
anya is an abstraction of Brigade; it configures Brigade and provides a default build pipeline (DefaultScript). You find the DefaultScript in the chart: charts/anya/files/brigade.js
The DefaultScript is created as a configmap. The configmap name is used in the template for creating Brigade projects (charts/anya/templates/brigade-projects.yaml), so that every project uses this DefaultScript.
anya uses Helmsman for the deployment. It is planned to utilize Terraform instead.
The Makefile of this repository has the following functions:
make lintcalls the linter of helm, to check your the charts in here:charts/*make packagepackages all charts and pushes them to the anya chart repository.make helmsman-planDry-Run for the deployment with verbose outputmake helmsman-applyWill apply the deploymentmake purge-workerIf you cannot wait for vacuum to free your cluster from all Brigade jobs and builds - use this.make purge-previewsThis will delete all preview deployments, made by anya.make update-pipelineFor pipeline development without packaging. This function will update the DefaultScript in your cluster. Do not forget to package the chart to publish your changes permanently.make watch-jobsObserve all jobs that are currently running. Failed ones are displayed permanently, so you can spot them easily.