DevOpsKube
A Kubernetes "cluster" with all things SDLC (Software Development Life Cycle)/DevOps related.
Motivation
It was/is the dream of the team to be able to install such a stack easily on own Hardware and/or environment. Kubernetes seems like the natural choice for this.
Up until now there is no full DevOps Stack for vanilla Kubernetes. The following "solutions" can be found when googling:
- fabric8 - probably the closest to our requirements, and we already talk about some interaction between the two projects
- Harbur - mainly focused on docker and has no real kubernetes support
- Software Factory - from RedHat as well, based on OpenStack
- Marcel Birkner - a blog-post from codecentric (merely an blog-post with some docker containers)
- GoPaddle - seems to be focused on a full CI Environment to install Container on Kubernetes and uses eg. Jenkins, but is commercial and has a different focus then the above mentioned ones
None of the above mentioned stacks do fulfill our needs, therefor we decided to put this stack together to allow you to install a full SDLC stack on your own Kubernetes cluster.
Components
The following components are included in the current version:
- Redmine - Project Management/Issue Tracking
- Jenkins - Automation Server for CI and CD stuff
- TheNexus - Central Repository for Maven/Gradle/...
- SonarQube - Platform to manage code quality
- Gogs - central Git Repository
- Keycloak - central authentication server
To provide central data-storeage options we are using MySql for all components in need of a database.
Helper
Since a vanilla Kubernetes Cluster does not provide any Edge-Loadbalancer or an SSO-Component, we are going to provide documentation on how to setup the whole cluster including an Edge-Loadbalancer and other useful tools (eg. SSO Components). An initial set of Helpers are:
- Nginx Ingress - Load-Balancing for Kubernetes PODs
- Kube-Lego - Kube-Lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
For the use of a configurable set of PODs, we are using helm in its latest (not yet ready for production) incarnation (> 2.0.0-alpha5).
Contributions
Contributions to this project are very welcome. Please do not hesitate to fork this project and provide pull-requests. We try to integrate those asap.
Documentation is always nice, so pull-requests not only for code is welcome as well.
Contributions could be in the area of new features and/or bugs as well, please open a GitHub-Issue for this.
Documentation
This documentation is generated using MkDocs. If you are editing this documentation, please make sure, that the Documentation can be generated. Provide a Pull-Request, if all is fine. We are then updating the Documentation. For details on how to generate the documentation, see the build-docs.sh
script.