Jenkins Operator
Go to our documentation website for more information, with examples and guides.
What's the Jenkins Operator?
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. It was built with immutability and declarative configuration as code in mind.
Out of the box it provides:
- integration with Kubernetes (Jenkins kubernetes-plugin)
- pipelines as code (Jenkins pipelines)
- extensibility via groovy scripts (similar to Jenkins script console) or (configuration as code plugin)
- secure defaults and hardening (see the security section of the documentation)
Problem statement and goals
The main reason why we decided to implement 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:
- installing plugins with incompatible versions or security vulnerabilities
- better configuration as code
- security and hardening out of the box
- make errors more visible for end users
- backup and restore for jobs history
- orphaned jobs with no JNLP connection
- handle graceful shutdown properly
- proper end to end tests for Jenkins lifecycle
Documentation
Go to our documentation website for more information.
Selected content:
- Installation
- Getting Started
- How it works
- Security
- Developer Guide
- Jenkins Custom Resource Definition scheme
Common Jenkins issues and workarounds
- Multibranch pipelines and backup issues: jenkinsci#104 (comment)
Community & Contribution
There is a dedicated channel #jenkins-operator
on virtuslab-oss.slack.com (Invite form)
Feel free to file issues or pull requests.
Before any big pull request please consult the maintainers to ensure a common direction.
Presentations
About the authors
This project was originally developed by VirtusLab and the following CONTRIBUTORS.