“look ma, no hands” · 2019-02-06 · jenkins job configuration jobdsl plugin (groovy) job...

62
© 2018 All Rights Reserved. 1 1 “Look ma, no hands” Jenkins Configuration-as-Code

Upload: others

Post on 15-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 11

“Look ma, no hands”Jenkins Configuration-as-Code

Page 2: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.© 2018 All Rights Reserved.

Name: Ewelina Wilkosz

Work: IT Consultant @ Praqma

Previous experience: Software Developer

@ Ericsson (6 years) in Krakow

Tools I work with: Jenkins (as Code), Git, Docker

Who are we?

@ewelinawilkosz @ewelinawilkosz [email protected]

Page 3: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.© 2018 All Rights Reserved.

Name: Nicolas De Loof

Work: Hacker @ CloudBees

Jenkins contributor & Docker Captain

Conference organizer and Video maker

Who are we?

@ndeloof @ndeloof [email protected]

Page 4: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

2018 is “ * as code”

Page 5: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 55

Infrastructure as Code

Environment as Code

Architecture as Code

CI/CD as Code

Page 6: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 6

● Jenkins infrastructure

● Jenkins job configuration

● Jenkins system configuration

Manage Jenkins as Code

6

Page 7: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 7

Jenkins infrastructure

7

Page 8: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 8

Jenkins infrastructure

Using external tools

● Jenkins CLI

● REST API

● Python-jenkins

● Jenkins-client (Java, golang)

● ...

8

Page 9: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 9

Jenkins infrastructure

Ansible, Chef, Puppet

Docker

9

Page 10: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 10

jobs configuration

10

Page 11: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 11

Jenkins job configuration

● JobDSL plugin (groovy)

● Job builder plugin (yaml)

● ...

● Jenkins Pipeline

○ Multibranch

○ Organizations folders

11

Page 12: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 12

JobDSLjob('gr8 example') { scm { github 'sheehan/job-dsl-gradle-example' } triggers { scm 'H/5 * * * *' } steps { gradle 'clean test' } publishers { archiveJunit 'build/test-results/**/*.xml' extendedEmail '[email protected]' }}

12

Page 13: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 13

Jenkins master configuration

13

Page 14: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

“Jenkins can be installed through native system packages, Docker, or run standalone by any machine with a Java Runtime Environment (JRE) installed…”

--- an enthusiast Jenkins user

Page 15: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

“… but it has to be configured manually”

--- a not so enthusiast Jenkins user

Page 16: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

looong scroll down

Page 17: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

And we don’t (always) like that

Page 18: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Page 19: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

So how do we solve it?

Page 20: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 20

Jenkins system configuration

● init.groovy● scriptler● scm-sync-configuration 😱

20

Page 21: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 2121

Page 22: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 22

We’re not alone

22

Page 23: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 2323

● JENKINS-31094 (system-config-dsl)

● XML templating (seen at JenkinsWorld 2017)

● Various Groovy bindings

● Praqma’s “JenkinsAsCodeReference”

● CloudBees CTO Office’s prototype

Page 24: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 24

& & to join forces

● Both had working prototypes last summer

● Praqma focusing on:

○ real world usage by customers

● CloudBees focusing on:

○ community adoption○ out-of-the box support for our products

⇒ https://github.com/jenkinsci/configuration-as-code-plugin

24

Page 25: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

Let’s make it as easy as possible

Page 26: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

jenkins:

systemMessage: "JCasC Demo"

numExecutors: 1

scmCheckoutRetryCount: 4

mode: NORMAL

securityRealm:

local:

allowsSignup: false

users:

- id: demoAdmin

password: ${adminpw}

jenkins.yaml

Page 27: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.© 2018 All Rights Reserved.

- Safety

- Traceability

- Speed

- Easy to use

- Easy to reuse

Main benefits

Page 28: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 2828

There are challenges- Manage configuration as human-readable config file(s)

- Self-describing model to reflect Web UI

- Configure all jenkins initial setup (including plugins)

- Support most (*) plugins without extra development effort

- Generate documentation and validation tools (schema)

Page 29: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 29

human-readable config file(s)

● Structured content

● Nothing language centric

○ No groovy / ruby / xx

● Readable and commentable

29

Page 30: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 30

YAML ...

Indentation matters

photo credit :Justin Palmer @Caged

30

Page 31: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 31

Web UI as implicit documentation

31

Config element in web UI

==

Config element in YAML

“ No need to be a Jenkins expert to do it right” -- Obi Wan Kenobi

Page 32: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 3232

Configure Jenkins in yamljenkins: securityRealm: ldap: configurations: - server: ldap.acme.com rootDN: dc=acme,dc=fr managerPasswordSecret: ${LDAP_PASSWORD} cache: size: 100 ttl: 10 userIdStrategy: CaseSensitive groupIdStrategy: CaseSensitive

tool: git: installations:

- name: git - path: /bin/git

Obvious, isn’t it ?

Page 33: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 33

No hand on keyboard

No click on web UI

to deploy

a fully working Jenkins master

Configure ALL jenkins initial setup

33

Page 34: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 34

Support ALL plugins

● No need to write glue code for every supported plugin

● Most(*) plugins supported out of the box

● Others can bundle adapter code

(*) could require some minor changes

34

!! we require configuration-as-code-support plugin to be installed, for now !!

Page 35: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 35

Generate documentation and validation tools

● Can validate without running a test master

● IDE support

35

Page 36: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

Here comes JCasC

Page 37: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.© 2018 All Rights Reserved.

https://github.com/jenkinsci/configuration-as-code-plugin

Implementation details and guide for plugin developers available in plugin’s github repository

Where to find it?!

Page 38: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 38

DEMO

38

Page 39: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 39

How it works

39

Page 40: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 40

Live Jenkins instance

40

Core + plugins

Data

model

● Yaml parser● Doc generator● Schema validator

Page 41: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 41

Introspection

Jenkins-core 2.xx + plugins [ git:3.7.0, ...]

● Jenkins root instance● Descriptors (global configuration)● + Special component with CasC support

=> hierarchical data model, trying to mimic Jenkins UI

41

Page 42: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 42

Requirements

Target components need to follow some basic design rules

We rely on UI data binding mechanism (@DataBound)

Component to directly parse StaplerRequest / JsonObject can’t be introspected

● Recommendations to plugin developersgithub.com/jenkinsci/configuration-as-code-plugin/blob/master/PLUGINS.md

● Pull requests on major plugins we want to supportgithub.com/jenkinsci/mailer-plugin/pull/39

42

Page 43: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 43

Doc/Schema GenerationJENKISN/plugin/configuration-as-code/

43

JENKINS/plugin/configuration-as-code/schema

Page 44: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 44

Corner cases

44

Some components hardly fit this model

For those we can develop dedicated Configurator adapter classes.

Page 45: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 45

Under the hood

45

Page 46: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 46

Root Elements → RootElementConfigurator

46

jenkins: securityRealm: ldap: configurations: - server: ldap.acme.com rootDN: dc=acme,dc=fr managerPasswordSecret: ${LDAP_PASSWORD} cache: size: 100 ttl: 10 userIdStrategy: CaseSensitive groupIdStrategy: CaseSensitive

tool: git: installations:

- name: git - path: /bin/git

Page 47: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 47

Root Element

● JenkinsConfigurator“jenkins” → Jenkins.instance root object

● GlobalConfigurationCategoryConfigurator“tools”, “security”, … → Descriptors grouped by categories

● DescriptorRootElementConfiguratorUncategorized Descriptors with a global configuration page“mailer”, ...

● CredentialsRootConfigurator“credentials” → Glue code for credentials plugin (more on this later)

47

Page 48: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 48

Child element → Attribute

48

jenkins: securityRealm: ldap: configurations: - server: ldap.acme.com rootDN: dc=acme,dc=fr managerPasswordSecret: ${LDAP_PASSWORD} cache: size: 100 ttl: 10 userIdStrategy: CaseSensitive groupIdStrategy: CaseSensitive

Page 49: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 49

Attribute

Configurator do describe a target component as a set of Attributes

Attribute handle :

● Name● Type (inferred by reflection on generics)● Multiplicity (Collection<x>)● Setting value

49

Page 50: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 50

Generic Attribute

writable JavaBean property | DataBound constructor parameter

public void setSecurityRealm(SecurityRealm securityRealm) {

SecurityRealm is an ExtensionPoint (abstract)

Configuration-as-Code need to identify implementation

50

jenkins: securityRealm: ldap:

Page 51: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 51

Extension point implementation

SecurityRealm is an ExtensionPoints => candidates implementations:

LegacySecurityRealm → @Symbol(“legacy”) → legacyHudsonPrivateSecurityRealm → @Symbol(“local”) → localActiveDirectorySecurityRealm → ActiveDirectory → activedirectoryLDAPSecurityRealm → LDAP → ldap

51

jenkins: securityRealm: ldap:

Page 52: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 52

Build target Component

@DataBoundConstructor public LDAPSecurityRealm( List<LDAPConfiguration> configurations, boolean disableMailAddressResolver, CacheConfiguration cache, IdStrategy userIdStrategy, IdStrategy groupIdStrategy)

+ DataBoundSetters

52

jenkins: securityRealm: ldap: configurations: ... cache: size: 100 ttl: 10 userIdStrategy: CaseSensitive groupIdStrategy: CaseSensitive

Page 53: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 53

Corner cases

● Setter method defined for internal needs / backward compatibilityWe exclude @Deprecated and @Restricted

● [WiP] Technical facing Property name : “labelString”We support @Symbol on setters

● Not a Describable / Internal model is … weird for end-userCustom Configurator | Attribute implementation

53

Page 54: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 54

Custom Configurator, a.k.a “Glue Code”

Sample : expose a user-friendly credentials model

54

credentials: system: domainCredentials: # global credentials - credentials: - certificate: scope: SYSTEM id: ssh_private_key password: ${SSH_KEY_PASSWORD} keyStoreSource: fileOnMaster: keyStoreFile: /docker/secret/id_rsa

CredentialsRootConfiguratorcustom code

A fake Attribute "system"to expose DomainCredentials (List)with custom setter implementation:

target.setDomainCredentialsMap(DomainCredentials.asMap(value)

)

Page 55: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 55

Status

55

Page 56: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 56

1.0 is there !

We welcome Feedback !

● jenkins-users mailing list● jenkinsci/configuration-as-code gitter● github issues

56

Page 57: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 57

Features

● Read configuration from local drive or url, REST API or CLI● Reload configuration (Manage Jenkins → Configuration as Code → Reload)● Export existing jenkins instance configuration into yaml (here be dragons)● Compatibility dashboard :

https://issues.jenkins-ci.org/secure/Dashboard.jspa?selectPageId=17346Please report issues with “jcasc-compatibility” label

+ Additionally docker demo setup (which can be easily adapted for different than demo purpose): https://github.com/Praqma/praqma-jenkins-casc

Page 58: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

© 2018 All Rights Reserved. 58

JEP-201

Make this THE configuration component for Jenkins community

https://github.com/jenkinsci/jep/blob/master/jep/201/README.adoc

58

Page 59: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

Give it a try

Report missing plugin support / broken features

Contribute test cases (easy) or fixes (not so easy :P)

Page 60: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

How to talk to us?

● github issues working well for reporting problems● we’re monitoring Jenkins Users, Jenkins Developers mailing lists

but...

● gitter channel is a place to go to: https://gitter.im/jenkinsci/configuration-as-code-plugin

60

Page 61: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Jenkins Configuration-as-Code© 2018 All Rights Reserved.

Jenkins Configuration-as-Code

Questions?

Page 62: “Look ma, no hands” · 2019-02-06 · Jenkins job configuration JobDSL plugin (groovy) Job builder plugin (yaml) ... Jenkins Pipeline Multibranch Organizations folders 11

Thank you!