Go to file
Luigi Operoso 60b8ee56de
fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784)
* fix(seed): fix #742, workaround #698
Original fix proposal: https://github.com/jenkinsci/kubernetes-operator/issues/742#issuecomment-1304398590

* fix(install-plugin.sh): fix #758, #739
* the fix was original attempted here:
  https://github.com/jenkinsci/kubernetes-operator/pull/764 but was not
  working correctly due to 2-3 additional changes which needed to be
  done
* removed the openshift check because the env is not mention anywhere
  and also the new jenkins-plugin-cli does not a specific command for
  openshift. Finally this does not make any sense in general, the only
  problem in ocp will be the user id that will be mapped to a random uid
  but that's another story. The command to install the plugins should
  remain the same across different k8s flavours.

* fix(doc/test): fix /usr/bin/tini in any doc and validation

* fix(jenkins): remove AdminWhitelistRule to avoid jvm stack trace, see: https://www.jenkins.io/doc/book/security/controller-isolation/jep-235/#api-compatibility

* fix(seed): fix seed img built on a previous jvm, fix #761

* fix(plugin): update the base plugin to work with the newest version of
jenkins:lts

* fix(run): fix #778

* fix(backup): add a trap to remove the tmp dir if the tar fail, also fix: #770

* test(chart): update chart values for testing, will revert before merge

* fix(configmap): leftover

* fix(tests): fix seed job test

* fix(e2e)

* fix(e2e): helm

* fix(operator): update the temporary img to reflect latests changes

* Fix Helm e2e tests

* add trap in case of unwanted exit and make shellcheck happy

* chore(plugin): update git ver to 5.0.0

* fix(backup): always force delete the backup directory

* chore(operator): update the temporary img to reflect latest changes

* chore(jenkins): upgrade jenkins latest lts
2023-01-12 17:29:30 +01:00
.devbots Configure bot for labelling new issues as needing triage (#597) 2021-07-16 11:45:43 +02:00
.github chore: add release workflow (#750) 2022-06-21 15:36:22 +02:00
api/v1alpha2 Update and use install-plugins.sh (#756) 2022-06-28 19:14:31 +02:00
assets Add Jenkins Online Meetup - Jenkins Kubernetes Operator presentation 2020-05-11 21:10:12 +02:00
backup/pvc fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
chart fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
cicd Updated guide to 0.5.0 (#501) 2021-02-02 12:26:26 +01:00
config fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
controllers #554 Remove Deprecated JVM opts (#569) 2021-05-20 17:22:00 +02:00
deploy Increase memory, to prevent OOM killing (#774) 2023-01-08 19:42:18 +01:00
docs fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
hack Upgrade operator-sdk to 1.3.0 without e2e tests 2021-01-19 15:47:05 +01:00
internal lint with golangci-lint 2020-05-06 16:22:52 +02:00
pkg fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
test fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
version lint with golangci-lint 2020-05-06 16:22:52 +02:00
website fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
.dockerignore Upgrade operator-sdk to 1.3.0 without e2e tests 2021-01-19 15:47:05 +01:00
.gitignore Bump backup PVC version to v0.1.1 2021-05-06 11:17:51 +02:00
.golangci.yml Add seedJobAgentImage into CRD (#754) 2022-06-29 17:23:23 +02:00
CODE_OF_CONDUCT.md Update project and repo documents (#621) 2021-08-12 10:58:54 +02:00
CONTRIBUTING.md Update project and repo documents (#621) 2021-08-12 10:58:54 +02:00
Dockerfile Build multi-arch images (#693) 2022-02-15 14:51:29 +01:00
LICENSE.md CC license 2020-11-26 15:46:49 +01:00
Makefile chore: add release workflow (#750) 2022-06-21 15:36:22 +02:00
PROJECT Added validation webhook,cert-manager,and updated Makefile. 2021-08-27 14:29:50 +02:00
README.md Bump version to v0.7.1 2022-06-20 21:53:45 +02:00
ROADMAP.md Update project and repo documents (#621) 2021-08-12 10:58:54 +02:00
SECURITY.md Update Supporting Docs 2020-04-14 16:59:23 +05:30
SUPPORT.md Update Supporting Docs 2020-04-14 16:59:23 +05:30
VERSION.txt Bump version to v0.7.1 2022-06-20 21:53:45 +02:00
checkmake.ini Add checkmake config 2018-10-26 18:17:26 +02:00
config.base.env Upgrade operator-sdk to 1.3.0 without e2e tests 2021-01-19 15:47:05 +01:00
config.crc.env Fix minikube-run and crc-run makefile goals 2020-01-28 10:11:01 +01:00
config.docker-desktop.env Added config + instructions for testing on Docker Desktop (#668) 2021-10-20 14:03:26 +02:00
config.minikube.env fix(operator): Attempt to fix all the major issues present atm against the newest jenkins lts version (#784) 2023-01-12 17:29:30 +01:00
config.openshift.env Adding OpenShift doc 2020-04-29 14:47:28 +02:00
gen-crd-api-config.json Updated links and versions of plugins. 2020-10-01 15:39:40 +02:00
go.mod Remove cron validation (#748) 2022-06-20 20:13:35 +02:00
go.sum Implemented validation logic for the webhook (#593) 2021-08-30 08:21:52 +02:00
main.go Prepare for Security Validator release (#680) 2021-12-07 08:23:58 +01:00
variables.mk chore: enable manual run of nightly builds with possibility of skipping tests (#712) 2022-02-10 18:03:08 +01:00

README.md

Jenkins Operator

Version Build status Go Report Card Docker Pulls

logo

What's the Jenkins Operator?

The Jenkins Operator is a Kubernetes Native Operator which manages operations for Jenkins on Kubernetes. It has been built with Immutability and declarative Configuration as Code in mind.

Preliminaries

Considering that this Operator is created for managing instances for Jenkins, it is important to understand what

Jenkins Pipelines use Scripts written in Groovy which aid in the CasC aspect of Jenkins.

Jenkins uses plugins like CasC to extend it's solution space by carrying out Jobs of different kinds and providing a composable infrastructure for your CI/CD.

Out of the box it provides:

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:

Documentation

Go to our documentation website for more information.

Selected content:

  1. How it works
  2. Getting Started
  3. Security
  4. Troubleshooting
  5. Developer Guide
  6. FAQ
  7. Jenkins Custom Resource Definition Schema

Common Issues and Workarounds

Community

Main channel of communication on topics related to Jenkins Operator is Jenkins Operator Category on Jenkins Community Discourse.

Here you can ask questions about the project, discuss best practices on using it, and talk to other users of the Operator, contributors and project's maintainers.

We also have a dedicated channel called #jenkins-operator on virtuslab-oss.slack.com. Fill out (Invite form) and come say hi!

Snapshots between releases

We are trying our best to resolve issues quickly, but they have to wait to be released. If you can't wait for an official docker image release and acknowledge the risk, you can use our unofficial images, which are built nightly.

You can find the project's Docker Hub repository here.

Look for the images with tag "{git-hash}", where {git-hash} is the hash of the master commit that interests you.

Contribution

Feel free to file issues or pull requests, but please consult CONTRIBUTING document beforehand.

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.