Go to file
Tomasz Sęk ca2817ad1d
Bump version to v0.0.3
2019-01-15 12:06:19 +01:00
assets Update docs, add assets directory 2019-01-10 22:08:42 +01:00
build Add reconcile loop of Jenkins base configuration 2018-12-06 09:29:38 +01:00
cicd Add .travis.yml and update pipelines 2019-01-10 22:24:03 +01:00
cmd/manager Bump operator-sdk to v0.2.0 2018-12-12 09:43:29 +01:00
deploy Update deploy/role.yaml 2019-01-11 14:03:36 +01:00
docs Set default Jenkins master pod resources requirements, this closes #4 2019-01-15 12:04:50 +01:00
pkg Set default Jenkins master pod resources requirements, this closes #4 2019-01-15 12:04:50 +01:00
test/e2e Set default Jenkins master pod resources requirements, this closes #4 2019-01-15 12:04:50 +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
.travis.yml Update .travis.yml 2019-01-10 22:35:43 +01:00
Gopkg.lock Improve e2e tests 2019-01-14 18:24:46 +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 Set default Jenkins master pod resources requirements, this closes #4 2019-01-15 12:04:50 +01:00
README.md Bump version to v0.0.3 2019-01-15 12:06:19 +01:00
VERSION.txt Bump version to v0.0.3 2019-01-15 12:06:19 +01:00
checkmake.ini Add checkmake config 2018-10-26 18:17:26 +02:00
config.env Change DOCKER_REGISTRY 2019-01-11 14:47:31 +01:00

README.md

Jenkins Operator

Version Build Status Go Report Card Docker Pulls

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. Security
  5. Developer Guide

Contribution

Feel free to file issues or pull requests.

TODO

Common:

  • simple API for generating Kubernetes events using one common format
  • code clean up and more tests

Base configuration:

  • TLS/SSL 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