Files
awesome-kubernetes/docs/jenkins.md
Inaki Fernandez c7af82aab2 reorg
2020-05-22 15:20:49 +02:00

31 KiB
Raw Blame History

Jenkins & CloudBees

Jenkins

Jenkins Is The Way

Groovy

Awesome Jenkins

Jenkins Cheat Sheet

Online Learning

Jenkins Configuration as Code Solutions. 3 available DSLs

  • Job DSL was one of the first popular plugins for Jenkins which allows managing configuration as code and many other plugins dealing with this aspect have been created since then, most notably the Jenkins Pipeline and Configuration as Code plugins. It is important to understand the differences between these plugins and Job DSL for managing Jenkins configuration efficiently.
  • In consequence 3 DSLs are available to configure jenkins as code:
  • Tip: Don't stay with manually configured freestyle jobs. Use JobDSL wrapper if you can't use Pipeline.

DSL 1. Job DSL Plugin. From Freestyle jobs to Declarative Pipeline

DSL 2. Jenkins Pipeline. Pipeline as Code with Jenkins

Extending with Shared Libraries

DSL 3. Jenkins Configuration as Code (JCasC)

Jenkins Architecture. Performance and Scalability

Ansible and Jenkins. Running Ansible Playbooks From Jenkins

Jenkins Tools

Jenkins Plugins

Selection of Jenkins Plugins

Plugin Development. Jenkins Plugin Parent POM 4.0

  • Plugin Development
  • Plugin Development: Dependency Management
  • Parent POM for Jenkins Plugins. Plugin POM 4.0 This new parent POM is decoupled from the core Jenkins project, both from the Maven and repository perspectives.
  • 4.0 changelog
  • Maven is widely used for Jenkins plugin development, more than 90% of plugins use it. In order to simplify plugin development, the Jenkins project offers a standard Parent POM which defines the recommended build, verification and release flow. Such parent POM helps us to ensure quality of the Jenkins plugins. In April 2020 we released a new major release of the parent POM which includes a number of important and sometimes incompatible changes: Jenkins core Bill of materials, full migration to SpotBugs, etc.
  • In this presentation James Nord will talk about the changes introduced in Plugin POM 4.0. What do plugin developers and users get by upgrading? How to upgrade? What obstacles to expect, and how to resolve them?

Jenkins Blue Ocean

Cloudbees Flow

Monitoring jenkins

Jenkins and Spring Boot

Kubernetes Native Jenkins Operator

  • github.com/jenkinsci/kubernetes-operator: 🌟 Kubernetes platform was released ten years after the first version of Hudson project. It means Jenkins couldnt be designed to run on top of it. Jenkins Operator tries to bridge that gap.

CloudBees Rollout and Feature Flags

Feature Flags in CloudBees Enterprise On-Premise

  • CloudBees Releases Another Industry First: Feature Flagging for On-Premise Use 🌟
    • SAN JOSE, CA. May 5, 2020 CloudBees, Inc., the enterprise software delivery company, today announced a new release of CloudBees Feature Flags that enables developers to manage production deployments of new functionality in a controlled manner with an on-premise feature manager. The new offering strengthens CloudBees leadership in the continuous integration/continuous delivery (CI/CD) space by extending users ability to leverage feature flag technology in both on-premise and cloud environments. CloudBees Feature Flags is from the company and application formerly known as Rollout, acquired last year by CloudBees.
    • Feature flags have emerged as popular tools for deploying new features with the added advantage of enabling risk-free experimentation and fast results. As organizations enhance applications with rich new capabilities, many use feature flags to preview features for select audiences, with the ability to pull them back quickly if the functionality is not successful. In a recent survey, 97% of respondents say that it is important for their organization to implement new application features quickly, yet 65% say it is difficult for their organization to do so safely. CloudBees Feature Flags enables developers to easily release new features with confidence, reduce risk in doing so and manage large numbers of feature flags at scale.
    • “Very soon, all features will be released behind a feature flag. Its a natural evolution in continuous delivery. CloudBees has led the way in feature flag technology, making it a core part of our overall offering,” said Sacha Labourey, CEO and co-founder, CloudBees. “With this release, we are providing the same functionality for on-premise environments that previously had only been available as a cloud-based service. We are committed to the ongoing integration, automation and governance of feature flags within the software delivery lifecycle and giving users choice in selecting the best environment for their project on-premise or cloud.”
    • CloudBees Feature Flags integrates with the companys deep CI/CD capabilities, giving organizations the most comprehensive feature management capabilities in the software development life cycle (SDLC). The ability to use feature flagging in an on-premise environment also opens up new avenues for usage in industries, such as government, finance, pharmaceuticals, utilities and healthcare, where there can be a mix of on-premise and cloud environments.
    • “We recognize that many companies are realizing the benefits of feature flags,” said Moritz Plassnig, senior vice president and general manager, Software Delivery Management and Software Delivery Automation Cloud at CloudBees. “By flagging features, they no longer have to sacrifice innovation to lower risk. We felt that it was critical to offer this technology to any company working in on-premise or hybrid environments.”

Jervis: Jenkins as a service

  • Jervis is Sam Gleske's vision of a good way to roll out Jenkins as a service in very large organizations.
  • SCM Filter Jervis YAML Plugin This plugin is intended for Jenkins infrastructure relying on jervis to deliver software in a self-service manner. This plugin can also be used for Travis CI YAML.

Jenkins X

Jenkins X is a specialized Jenkins for Kubernetes: This is how it works from a bird eye the CI/CD: a developer creates a branch, then Jenkins X creates a ephemeral namespace with that branch. The developer tests it and once it is ok, a PR is created, then, the branch is deployed in staging. When I merge it, it goes to QA, and with a manual command "jx promote" it goes to production. Jenkins X deletes automatically after N hours the branch namespace.

jenkins and openshift

jenkins hub CD