CI as Code

Version:Starting with

Who needs it?

Development teams that use a GitOps approach where SCM is the single source of truth desire to manage their CI configurations in the same place.

The problem

A GitOps approach to CI is critical for auditability and the prevention of configuration drift. Configuration drift occurs when human changes are made to the cluster that are inconsistent with or not captured in the desired state. When configuration changes are made through git it’s easily discernible who introduced what changes and when. Without CloudBees Configuration as Code users are unable to audit configuration changes made via the user interface. Additionally, reproducing and automating controller creation is difficult, the chance of human error is high, and managing associated plugins is manual and difficult.

CloudBees can help

CloudBees is always evolving towards the vision of ‘continuous everything’. CloudBees CI supports this mission through CloudBees Configuration as Code.

The solution

CloudBees Configuration as Code simplifies the management of a CloudBees CI cluster by capturing the configuration of controllers in human-readable, declarative configuration files. By capturing the configuration in files, it can be treated as a first-class revision-controlled artifact and then applied to controllers. With CloudBees Configuration as Code, controllers and their associated plugins are centrally managed from operations center.

How we do it better

CloudBees Configuration as Code saves time, reduces error prone human interventions, and preserves git as the single source of truth for version control and auditability - especially on multi-controller installations. CloudBees CI provides a solution to manage Jenkins at scale as code.

CloudBees Configuration as Code is built using Jenkins Configuration as Code (JCasC) and introduces additional capabilities purpose-built for the enterprise and available only in CloudBees CI including:

  • Manage plugins as code which allows users to define, as code, the list of plugins that are installed in the controller.

  • Implement and use CloudBees Assurance and Beekeeper. All Tier 1 plugins for controllers in the CloudBees Assurance Program (CAP) are currently supported and configurable as code.

  • Manage all Configuration Bundles and associated controllers via the operations center. Create and manage Configuration Bundles which define the desired state of the team, managed or client controllers. New controllers can be created from these bundles. These bundles are listed in operations center and can be connected to SCMs. When changes are made to the Configuration Bundle, the controller associated with the bundle is updated.

Use cases

Developers can:

  • Add new teams.

  • Establish an audit trail automatically.

  • Reduce the risk of configuration and security violations.