Jenkins Configuration as code
Jenkins is the CI/CD tool that we use today.
Problem statement:
Jenkins maintainabliltiy:
Jenkins Installation/upgradation
Plugin installation/upgradation
Job Configuration:
Jobs are getting created manually in dev
Variable updates happen release on release
Every release we’ve to copy the job created/changed to the staging jenkins
Every GA release we’ve to cleanup entire jobs and publish to adopters
Proposed solution:
Run jenkins as a container in the machine, and mount the host volume (simplest)
Run jenkins in kubernetes cluster (so that automatically we can bring up clients for specific jobs, like for backup one set, deployment one set). This we’ll take as second step.
Keep Jenkins configuration in github, and use jenkins to update self ( via poll for change )
Tools / Methods available for CaC:
Jenkins Configuration as Code
https://www.jenkins.io/projects/jcasc/
https://github.com/jenkinsci/configuration-as-code-pluginUse Ansible Module to update jenkins
https://docs.ansible.com/ansible/latest/collections/community/general/jenkins_job_module.html
Â
Â