Hi all, My name is Tomasz Sęk and I work in Virtuslab <https://virtuslab.com> company as a senior DevOps engineer. I'm the main maintainer of https://github.com/VirtusLab/jenkins-operator project. We've been provide Jenkins for customers(programmer teams) in our custom Kubernetes distribution for two years. As we discussed with Nicolas I would like to describe our implementation and talk about plans, and possible improvements we can make.
Architecture: - how it's works <https://github.com/VirtusLab/jenkins-operator/blob/master/docs/how-it-works.md> - language golang 1.10(Kubernetes uses it) - we use operator-sdk <https://github.com/operator-framework/operator-sdk> - try to not use custom docker images and support jenkins/jenkins:lts, of course user can define own docker master image - use plugins to manage Jenkins(jcasc, job backups - to store on AWS S3 we use aws-java-sdk ...) - every single plugin and it's depended plugins have to be installed with specific version, auto update have to be turn off(we had many situations where after plugins update Jenkins can't build any job) - use Kubernetes plugin to build jobs(every new job spins up new pod in Kubernetes, you can scale yours build through Kubernetes) - make backup of jobs history before Jenkins master pod deletion and restore it in new pod - use job-dsl-plugin for managing jobs definitions - encapsulate configuration of Jenkins in jobs(it make errors visible to users) Plans: - implement more backup mechanisms(PVC, Azure Blob Storage, GCP) - TLS/SSL for Jenkins Master(to secure connection jenkins-operator->jenkins master API) - improve JNLP agent to handle Jenkins master pod restarts Improvements: In current solution only one Jenkins master can be run at the same time, the old goes down then the new one can be created. I thought we can spin up new Jenkins master pod when the old one have to be killed and then switch traffic to the new one. Feel free to ask questions. I will prepare JEP draft. Best regards, Tomasz -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/fd5679b9-e782-4a61-898f-5fc795ca140c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
