Go to file
antoniaklja 0cdd577085 Update docs 2019-01-10 18:01:04 +01:00
build Add reconcile loop of Jenkins base configuration 2018-12-06 09:29:38 +01:00
cicd Fix pipeline 2019-01-10 16:46:07 +01:00
cmd/manager Bump operator-sdk to v0.2.0 2018-12-12 09:43:29 +01:00
deploy Add RBAC for Jenkins master pod 2019-01-10 16:50:44 +01:00
doc Update docs 2019-01-10 17:59:31 +01:00
pkg Add RBAC for Jenkins master pod 2019-01-10 16:50:44 +01:00
test/e2e Code refactoring 2019-01-09 06:20:08 +01:00
version Add reconcile loop of Jenkins base configuration 2018-12-06 09:29:38 +01:00
.gitignore Add reconcile loop of Jenkins base configuration 2018-12-06 09:29:38 +01:00
Gopkg.lock Add base configuration groovy scripts job 2019-01-10 14:44:30 +01:00
Gopkg.toml Update seedjob and jenkins client 2018-12-20 16:36:11 +01:00
LICENSE Initial commit 2018-10-19 16:20:19 +02:00
Makefile Update Makefile 2019-01-10 17:11:01 +01:00
README.md Update docs 2019-01-10 18:01:04 +01:00
VERSION.txt Add reconcile loop of Jenkins base configuration 2018-12-06 09:29:38 +01:00
checkmake.ini Add checkmake config 2018-10-26 18:17:26 +02:00
config.env Add Makefile goals for minikube 2018-11-05 15:59:26 +01:00
jenkins-credentials.png Update docs 2019-01-10 17:42:38 +01:00
jenkins-operator-draft.png Update README.md and add initial jenkins-operator draft 2018-12-27 20:35:56 +01:00
jenkins-seed.png Update docs 2019-01-10 17:59:31 +01:00
jenkins.png Update docs 2019-01-10 17:27:21 +01:00
phases.png Update README.md and add how it works section 2019-01-05 20:22:14 +01:00
reconcile.png Update README.md and add how it works section 2019-01-05 20:22:14 +01:00

README.md

Jenkins Operator

What's Jenkins Operator?

Jenkins operator it's a Kubernetes native operator which fully manages Jenkins on Kubernetes. It was built with immutability and declarative configuration as code in mind.

It provides out of the box:

  • integration with Kubernetes
  • pipelines as code
  • extensibility via groovy scripts or configuration as code plugin
  • security and hardening

Problem statement and goals

The main reason why we decided to write the jenkins-operator is the fact that we faced a lot of problems with standard Jenkins deployment. We want to make Jenkins more robust, suitable for dynamic and multi-tenant environments.

Some of the problems we want to solve:

  • volumes handling (AWS EBS volume attach/detach issue when using PVC)
  • installing plugins with incompatible versions or security vulnerabilities
  • better configuration as code
  • lack of end to end tests
  • handle graceful shutdown properly
  • security and hardening out of the box
  • orphaned jobs with no jnlp connection
  • make errors more visible for end users
  • backup and restore for jobs history

Documentation

  1. Installation
  2. Getting Started
  3. How it works
  4. Developer Guide

Contribution

Feel free to file issues or pull requests.

TODO

Common:

  • simple API for generating Kubernetes events using one common format
  • create Jenkins Jobs View for all jobs managed by the operator
  • code clean up and more tests

Base configuration:

User configuration:

  • backup and restore for Jenkins jobs running as standalone job (AWS, GCP, Azure)
  • trigger backup job before pod deletion using preStop k8s hooks
  • verify Jenkins configuration events