top of page

Jenkins Overview


Jenkins Definition


Jenkins is an open-source Continuous Integration server written in Java for orchestrating a chain of actions to achieve the Continuous Integration process in an automated fashion. Jenkins supports the complete development life cycle of software from building, testing, documenting the software, deploying, and other stages of the software development life cycle.



Jenkins Process


  • First, a developer commits the code to the source code repository. Meanwhile, the Jenkins server checks the repository at regular intervals for changes.

  • Soon after a commit occurs, the Jenkins server detects the changes that have occurred in the source code repository. Jenkins will pull those changes and will start preparing a new build.

  • If the build fails, then the concerned team will be notified.

  • If the build is successful, then Jenkins deploys the build in the test server.

  • After testing, Jenkins generates feedback and then notifies the developers about the build and test results.

  • It will continue to check the source code repository for changes made in the source code and the whole process keeps on repeating.


Jenkins Distributed Architecture


Jenkins uses a Master-Slave architecture to manage distributed builds. In this architecture, Master and Slave communicate through TCP/IP protocol.


Jenkins Master

  • Your main Jenkins server is the Master. The Master’s job is to handle:

  • Scheduling build jobs.

  • Dispatching builds to the slaves for the actual execution.

  • Monitor the slaves (possibly taking them online and offline as required).

  • Recording and presenting the build results.

  • A Master instance of Jenkins can also execute build jobs directly.


Jenkins Slave

A Slave is a Java executable that runs on a remote machine. Following are the characteristics of Jenkins Slaves:

  • It hears requests from the Jenkins Master instance.

  • Slaves can run on a variety of operating systems.

  • The job of a Slave is to do as they are told to, which involves executing build jobs dispatched by the Master.

  • You can configure a project to always run on a particular Slave machine or a particular type of Slave machine, or simply let Jenkins pick the next available Slave.


Secure Jenkins


Here the few method to secure Jenkins


  • Make sure that the global security is on.

  • Check if Jenkins is integrated with my company’s user directory with an appropriate plugin.

  • Ensure that the matrix/Project matrix is enabled to fine-tune access.

  • Automate the process of setting rights/privileges in Jenkins with custom version controlled script.

  • Limit physical access to Jenkins data/folders.

  • Periodically run security audits on the same.

Kubernetes Cluster - RBAC Examples

Creating Service Account Run the following command to add a new service account called king: $ kubectl create serviceaccount king serviceaccount/king created Find the name of the secret that stores t

Kubernetes - Role-based access control (RBAC)

Kubernetes RBAC The Kubernetes API provides access to sensitive data, including deployment details, persistent storage settings, and secrets. Over the years, the Kubernetes community has provided seve

Kubernetes Cheat Sheet

This page contains a list of commonly used kubectl commands and flags. Kubectl apply - Creating objects # create resource(s) kubectl apply -f ./my-manifest.yaml # create from multiple files kubectl a

Comments


bottom of page