SlideShare a Scribd company logo
Jenkins User Conference           Herzelia, July 5 2012   #jenkinsconf

                                                          July 5, 2012




                     The Challenge:

                 Testing the oVirt Project
     Eyal Edri
     Software Engineer
     Red Hat Virtualization Management

     2012


                                   1
Jenkins User Conference                                   #jenkinsconf

Agenda                                                    July 5, 2012

 ●   Introduction
 ●   The Problem – How to test a Virtualization project
 ●   The Solution – Integration & Provisioning
 ●   The Building Blocks
      ●   oVirt – the open virtualization project
      ●   Puppet – configuration management
      ●   Foreman – machine life cycle management
 ●   Jenkins job test case
 ●   Videos & screenshots
 ●   Summary
 ●   Q&A


                                          2
Jenkins User Conference                                     #jenkinsconf

Introduction                                                July 5, 2012

 ●   Tired of spending time installing Jenkins slaves all
     day?
 ●   Can't get budget from your manager to buy new hosts?
 ●   Do you sleep in the network room waiting for hosts to
     be installed?
 ●   Does your jenkins environment keep growing ?


       You need a Provisioning
       Framework!



                                 3
Jenkins User Conference                                 #jenkinsconf

The Complexity of testing a virtualization project...   July 5, 2012


   Physical & Virtual
         Servers                     Multiple teams
                                     collaboration and
                                     effort (IT, ENG, QA,
                                     Integration)




                 Hours of manual work
                               4
Jenkins User Conference                                                   #jenkinsconf

Small complexity matrix for testing oVirt/RHEVM                          July 5, 2012


                         OVIRT              RHEVM 3.0            RHEVM 3.1
 Project Version   Ovirt 3.1           RHEVM 3.0              RHEVM 3.1
 Host OS           Fedora 16/17        RHEL 6.2/6.3           RHEL 6.3
 Manager OS        Fedora 16           RHEL 6.2/6.3           RHEL 6.3
 Engine git        gerrit.ovirt.org    rhevm:master           engine:build
 Jboss Version     7.1 AS              5.1.2 EAP              6.0 EAP
 JDK Vesrion       OpenJDK 1.7.0       Sun JDK 6.0            OpenJDK 1.7.0
 Maven Version     3.0.X               2.2.1                  3.0.x
 Vdsm-* rpm        4.9.6-0.63.git258c.. 4.9-112.10.el6.x86_64 4.9.6-6.el6.x86_64
 Libvirt-* rpm     0.9.10-2.fc16       0.9.4-23.el6_2.4       0.9.10-9.el6



                                       5
Jenkins User Conference                             #jenkinsconf

Why bother changing our CI testing framework?       July 5, 2012




 Time Consuming

                                           Costly

                          Error Prone

                                6
Jenkins User Conference                                            #jenkinsconf

The Solution: Framework Introduction                               July 5, 2012


  ●       We combined Foreman, Puppet & oVirt with custom
          python code to build a testing framework for Jenkins.

      ●    Foreman was used for provisioning the hosts or VMs
      ●    Puppet configured hosts with our needed profiles.
      ●    oVirt enabled us to create VMs for running the tests.




                                         7
Jenkins User Conference          #jenkinsconf

Framework: Building Blocks       July 5, 2012




                             8
Jenkins User Conference                                   #jenkinsconf

Puppet: Configuration Management                          July 5, 2012


                Client – Server implementation


                    GIT




  'Adding users', 'installing       Facter produces a profile of
  packages', and 'updating          each host, and makes system
  server configurations'            information available to Puppet
                                    as variables.

                                9
Jenkins User Conference                                   #jenkinsconf

Puppet: Resources                                         July 5, 2012


  ●   The fundamental unit of modeling in Puppet is a resource.
  ●   Resources can be: a file, a service, a package, or
      perhaps even a custom resource that you have developed.




                                  10
Jenkins User Conference                  #jenkinsconf

Foreman: Machine Life Cycle Management   July 5, 2012




                           11
Jenkins User Conference                     #jenkinsconf

oVirt: Create and Manage Virtual Machines   July 5, 2012

 ●   Large scale, centralized
     management solution for server
     and desktop virtualization
 ●   an opensource alternative to
     vCenter/vSphere
 ●   Has multiple APIs:
      ●   Python SDK
      ●   Ruby gem
      ●   Ovirt CLI
      ●   REST




                                      12
Jenkins User Conference                                 #jenkinsconf

Revising the purpose...                                 July 5, 2012


 So what was the goal of this framework...
 To be able to test a complex virtualization project
 in Jenkins with limited resources, time and effort.       v

  And do it in a reproducible and scalable way.


 OK,
 So how do all these projects integrate with Jenkins?




                               13
Jenkins User Conference                                   #jenkinsconf

Jenkins Integration: Foreman Plugin                      July 5, 2012

 ●   You guessed it... ,it had to be a Jenkins plugin.
 ●   A Jenkins Foreman Plugin that will enable any job to
     request a resource (host or vm) with a specific profile.




                                 14
Jenkins User Conference                                  #jenkinsconf

Jenkins Foreman Plugin Mock-up: configure screen         July 5, 2012

 ●   Configure foreman server details in Jenkins.
 ●   All cloud related info will be set inside foreman




                                  15
Jenkins User Conference        #jenkinsconf

Foreman Plugin Mock             July 5, 2012




                           16
Jenkins User Conference                              #jenkinsconf

The Bare (metal) Essentials...                       July 5, 2012

  ●   Foreman 'Physical Hosts Pool Feature'



                                          RESERVED




                                              FREE




                                 17
Jenkins User Conference        #jenkinsconf

Provision Host CLI             July 5, 2012




                          18
Jenkins User Conference                                  #jenkinsconf

Host Pool: show profiles                                July 5, 2012

   ●   Show me the list of available profiles to use (which
       are in fact 'host-groups' in foreman)




                                 19
Jenkins User Conference                                  #jenkinsconf

Framework: Screen-shots – Command Line Interface        July 5, 2012

 ●   Show me the list of available hosts in pool currently
     free for use




                                20
Jenkins User Conference                                #jenkinsconf

Provision Host: show reserved hosts                    July 5, 2012

  ●   Show me the list of reserved hosts in pool currently
      used. (due to job/debug/error/static assignment)




                                21
Jenkins User Conference                                              #jenkinsconf

Framework: Screen-shots – Command Line Interface                     July 5, 2012

 ●   Request 1 host with profile 'P-RHEL63-CANDIDATE'

         Client requests '1' physical host with 'RHEL 6.3' profile

                Foreman finds 'cinteg27' server avaliable


      Foreman applies new profile to the server & start provisioning

                     Client polls foreman for status


                    Client verifies ssh access to host


           Host is ready to use with new profile (RESERVED)

                                     22
Jenkins User Conference                                                                             #jenkinsconf

Example Flow Diagram                                                                                July 5, 2012

       2     Patch is reviewed, verified
             and approved                                       3     merge patch in the ovirt-engine master
           Gerrit code Review                                         branch




                                                                                        Poll SCM




                                                            4       Found new commit -> trigger job A

  oVirt contributor
                          1     Sends a git patch in ovirt-engine for review




                                                          23
Jenkins User Conference            #jenkinsconf

Example Flow Diagram in Jenkins    July 5, 2012
        JOB A              JOB B




                             24
Jenkins User Conference           #jenkinsconf

DEMO                              July 5, 2012


   LIVE DEMO
  ●   Foreman provisioning
  ●   Ovirt UI
  ●   Foreman CLI code




                             25
Jenkins User Conference                  #jenkinsconf

Videos Examples                          July 5, 2012


   Foreman web server provisioning..
  ●   installing webserver via foreman




                               26
Jenkins User Conference              #jenkinsconf

oVirt: How does it look like?        July 5, 2012




                                27
Jenkins User Conference                #jenkinsconf

Framework: Screen-shots - Hosts view   July 5, 2012




                             28
Jenkins User Conference                                 #jenkinsconf

Framework: Screen-shots - Host-group view               July 5, 2012

   Build a host-group by selecting existing puppet classes




                               29
Jenkins User Conference                      #jenkinsconf

Framework: Screen-shots - Hosts Statistics   July 5, 2012




                              30
Jenkins User Conference                                 #jenkinsconf

Present & Future                                        July 5, 2012


  ●   Jenkins Foreman plugin
  ●   Foreman (Jenkins) slaves manager plugin
  ●   Jenkins Custom Testing Plugin
  ●   Control Jenkins jobs via puppet (job as a resource)
  ●   Extending Jenkinsapi python library




                                31
Jenkins User Conference                                         #jenkinsconf

Summary: Join the fun – Contribute!                             July 5, 2012

   ●    You can get into the action and join any of those
        projects, patches are welcome :)


       Foreman                https://github.com/theforeman/foreman

       oVirt                  http://www.ovirt.org/project/community/

   Puppet                     http://www.ovirt.org/project/community/




                                  32
Jenkins User Conference                           #jenkinsconf

Summary: Links                                    July 5, 2012



  ●   http://ovirt.org
  ●   http://theforeman.org
  ●   http://puppetlabs.com/community/overview/
  ●   http://jenkins-ci.org
  ●   https://github.com/eedri/foreman




                               33
Jenkins User Conference        #jenkinsconf

Q&A                            July 5, 2012




      Still awake..? Good!

        Any Questions?




                          34
Jenkins User Conference        #jenkinsconf

Summary: Thanks                July 5, 2012




       Platinum
       Sponsors




       Silver
       Sponsor




                          35
Jenkins User Conference                           #jenkinsconf

Still got questions?                              July 5, 2012




                  Eyal edri
                  eedri@redhat.com


                  irc.freenode.net
                  #ovirt, #theforeman, #jenkins




                              36

More Related Content

What's hot

Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
John Ferguson Smart Limited
 
Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins Plugin
Satish Prasad
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
Ankur Goyal
 
The Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch SadogurskyThe Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch Sadogursky
jaxconf
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on Kubernetes
Neven Cvetković
 
Softsphere - Development for administrators
Softsphere - Development for administratorsSoftsphere - Development for administrators
Softsphere - Development for administratorsBill Buchan
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The Basics
John Smith
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
Kohsuke Kawaguchi
 

What's hot (8)

Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Implementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins PluginImplementing CI CD UiPath Using Jenkins Plugin
Implementing CI CD UiPath Using Jenkins Plugin
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
The Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch SadogurskyThe Brave New World of Continuous Release - Baruch Sadogursky
The Brave New World of Continuous Release - Baruch Sadogursky
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on Kubernetes
 
Softsphere - Development for administrators
Softsphere - Development for administratorsSoftsphere - Development for administrators
Softsphere - Development for administrators
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The Basics
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
 

Viewers also liked

Understand ovirt
Understand ovirtUnderstand ovirt
Understand ovirt
Li Jiansheng
 
Ovirt deep dive
Ovirt deep diveOvirt deep dive
Ovirt deep dive
Li Jiansheng
 
oVirt社区最新活跃度
oVirt社区最新活跃度oVirt社区最新活跃度
oVirt社区最新活跃度
Li Jiansheng
 
oVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features OverviewoVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features Overview
Allon Mureinik
 
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginoVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
Oved Ourfali
 
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Allon Mureinik
 
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Allon Mureinik
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
Sean Cohen
 
oVirt and OpenStack
oVirt and OpenStackoVirt and OpenStack
oVirt and OpenStack
Dave Neary
 

Viewers also liked (9)

Understand ovirt
Understand ovirtUnderstand ovirt
Understand ovirt
 
Ovirt deep dive
Ovirt deep diveOvirt deep dive
Ovirt deep dive
 
oVirt社区最新活跃度
oVirt社区最新活跃度oVirt社区最新活跃度
oVirt社区最新活跃度
 
oVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features OverviewoVirt 3.5 Storage Features Overview
oVirt 3.5 Storage Features Overview
 
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginoVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
oVirt UI Plugin Infrastructure and the oVirt-Foreman plugin
 
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)Live Storage Migration in oVirt (Open Storage Meetup May 2013)
Live Storage Migration in oVirt (Open Storage Meetup May 2013)
 
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
Disaster Recovery Strategies Using oVirt's new Storage Connection Management ...
 
Kvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storageKvm forum 2013 - future integration points for oVirt storage
Kvm forum 2013 - future integration points for oVirt storage
 
oVirt and OpenStack
oVirt and OpenStackoVirt and OpenStack
oVirt and OpenStack
 

Similar to The challenge - testing the oVirt project

JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with Jenkins
XebiaLabs
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkins
mrooney7828
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
Julien Carsique
 
Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014
Vincent Latombe
 
How Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server JenkinsHow Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server Jenkins
Nuxeo
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DAnton Weiss
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
Nigel Charman
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
CloudBees
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
camunda services GmbH
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
Yardena Meymann
 
JUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with JenkinsJUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with Jenkins
E. Camden Fisher
 
Running productioninstance 1-localcopy
Running productioninstance 1-localcopyRunning productioninstance 1-localcopy
Running productioninstance 1-localcopyCloudBees
 
Containers not just for production nov8
Containers not just for production nov8Containers not just for production nov8
Containers not just for production nov8
HARITHA HARI
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Henri Gomez
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
Max Klymyshyn
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
Brian Dawson
 
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QAFest
 
Training web @GITS
Training web @GITSTraining web @GITS
Training web @GITS
Rakhmatullah Yoga
 

Similar to The challenge - testing the oVirt project (20)

Jenkins 1
Jenkins 1Jenkins 1
Jenkins 1
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with Jenkins
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkins
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
 
Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014Going literate in Amadeus JUC Berlin June 25th 2014
Going literate in Amadeus JUC Berlin June 25th 2014
 
How Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server JenkinsHow Nuxeo uses the open-source continuous integration server Jenkins
How Nuxeo uses the open-source continuous integration server Jenkins
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
 
JUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with JenkinsJUC NYC 2012: Yale Build and Deployment with Jenkins
JUC NYC 2012: Yale Build and Deployment with Jenkins
 
Running productioninstance 1-localcopy
Running productioninstance 1-localcopyRunning productioninstance 1-localcopy
Running productioninstance 1-localcopy
 
Containers not just for production nov8
Containers not just for production nov8Containers not just for production nov8
Containers not just for production nov8
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-CodeSD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
 
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
QA Fest 2019. Boni Garcia. Web and Mobile testing with Selenium, JUnit 5, and...
 
Training web @GITS
Training web @GITSTraining web @GITS
Training web @GITS
 

Recently uploaded

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

The challenge - testing the oVirt project

  • 1. Jenkins User Conference Herzelia, July 5 2012 #jenkinsconf July 5, 2012 The Challenge: Testing the oVirt Project Eyal Edri Software Engineer Red Hat Virtualization Management 2012 1
  • 2. Jenkins User Conference #jenkinsconf Agenda July 5, 2012 ● Introduction ● The Problem – How to test a Virtualization project ● The Solution – Integration & Provisioning ● The Building Blocks ● oVirt – the open virtualization project ● Puppet – configuration management ● Foreman – machine life cycle management ● Jenkins job test case ● Videos & screenshots ● Summary ● Q&A 2
  • 3. Jenkins User Conference #jenkinsconf Introduction July 5, 2012 ● Tired of spending time installing Jenkins slaves all day? ● Can't get budget from your manager to buy new hosts? ● Do you sleep in the network room waiting for hosts to be installed? ● Does your jenkins environment keep growing ? You need a Provisioning Framework! 3
  • 4. Jenkins User Conference #jenkinsconf The Complexity of testing a virtualization project... July 5, 2012 Physical & Virtual Servers Multiple teams collaboration and effort (IT, ENG, QA, Integration) Hours of manual work 4
  • 5. Jenkins User Conference #jenkinsconf Small complexity matrix for testing oVirt/RHEVM July 5, 2012 OVIRT RHEVM 3.0 RHEVM 3.1 Project Version Ovirt 3.1 RHEVM 3.0 RHEVM 3.1 Host OS Fedora 16/17 RHEL 6.2/6.3 RHEL 6.3 Manager OS Fedora 16 RHEL 6.2/6.3 RHEL 6.3 Engine git gerrit.ovirt.org rhevm:master engine:build Jboss Version 7.1 AS 5.1.2 EAP 6.0 EAP JDK Vesrion OpenJDK 1.7.0 Sun JDK 6.0 OpenJDK 1.7.0 Maven Version 3.0.X 2.2.1 3.0.x Vdsm-* rpm 4.9.6-0.63.git258c.. 4.9-112.10.el6.x86_64 4.9.6-6.el6.x86_64 Libvirt-* rpm 0.9.10-2.fc16 0.9.4-23.el6_2.4 0.9.10-9.el6 5
  • 6. Jenkins User Conference #jenkinsconf Why bother changing our CI testing framework? July 5, 2012 Time Consuming Costly Error Prone 6
  • 7. Jenkins User Conference #jenkinsconf The Solution: Framework Introduction July 5, 2012 ● We combined Foreman, Puppet & oVirt with custom python code to build a testing framework for Jenkins. ● Foreman was used for provisioning the hosts or VMs ● Puppet configured hosts with our needed profiles. ● oVirt enabled us to create VMs for running the tests. 7
  • 8. Jenkins User Conference #jenkinsconf Framework: Building Blocks July 5, 2012 8
  • 9. Jenkins User Conference #jenkinsconf Puppet: Configuration Management July 5, 2012 Client – Server implementation GIT 'Adding users', 'installing Facter produces a profile of packages', and 'updating each host, and makes system server configurations' information available to Puppet as variables. 9
  • 10. Jenkins User Conference #jenkinsconf Puppet: Resources July 5, 2012 ● The fundamental unit of modeling in Puppet is a resource. ● Resources can be: a file, a service, a package, or perhaps even a custom resource that you have developed. 10
  • 11. Jenkins User Conference #jenkinsconf Foreman: Machine Life Cycle Management July 5, 2012 11
  • 12. Jenkins User Conference #jenkinsconf oVirt: Create and Manage Virtual Machines July 5, 2012 ● Large scale, centralized management solution for server and desktop virtualization ● an opensource alternative to vCenter/vSphere ● Has multiple APIs: ● Python SDK ● Ruby gem ● Ovirt CLI ● REST 12
  • 13. Jenkins User Conference #jenkinsconf Revising the purpose... July 5, 2012 So what was the goal of this framework... To be able to test a complex virtualization project in Jenkins with limited resources, time and effort. v And do it in a reproducible and scalable way. OK, So how do all these projects integrate with Jenkins? 13
  • 14. Jenkins User Conference #jenkinsconf Jenkins Integration: Foreman Plugin July 5, 2012 ● You guessed it... ,it had to be a Jenkins plugin. ● A Jenkins Foreman Plugin that will enable any job to request a resource (host or vm) with a specific profile. 14
  • 15. Jenkins User Conference #jenkinsconf Jenkins Foreman Plugin Mock-up: configure screen July 5, 2012 ● Configure foreman server details in Jenkins. ● All cloud related info will be set inside foreman 15
  • 16. Jenkins User Conference #jenkinsconf Foreman Plugin Mock July 5, 2012 16
  • 17. Jenkins User Conference #jenkinsconf The Bare (metal) Essentials... July 5, 2012 ● Foreman 'Physical Hosts Pool Feature' RESERVED FREE 17
  • 18. Jenkins User Conference #jenkinsconf Provision Host CLI July 5, 2012 18
  • 19. Jenkins User Conference #jenkinsconf Host Pool: show profiles July 5, 2012 ● Show me the list of available profiles to use (which are in fact 'host-groups' in foreman) 19
  • 20. Jenkins User Conference #jenkinsconf Framework: Screen-shots – Command Line Interface July 5, 2012 ● Show me the list of available hosts in pool currently free for use 20
  • 21. Jenkins User Conference #jenkinsconf Provision Host: show reserved hosts July 5, 2012 ● Show me the list of reserved hosts in pool currently used. (due to job/debug/error/static assignment) 21
  • 22. Jenkins User Conference #jenkinsconf Framework: Screen-shots – Command Line Interface July 5, 2012 ● Request 1 host with profile 'P-RHEL63-CANDIDATE' Client requests '1' physical host with 'RHEL 6.3' profile Foreman finds 'cinteg27' server avaliable Foreman applies new profile to the server & start provisioning Client polls foreman for status Client verifies ssh access to host Host is ready to use with new profile (RESERVED) 22
  • 23. Jenkins User Conference #jenkinsconf Example Flow Diagram July 5, 2012 2 Patch is reviewed, verified and approved 3 merge patch in the ovirt-engine master Gerrit code Review branch Poll SCM 4 Found new commit -> trigger job A oVirt contributor 1 Sends a git patch in ovirt-engine for review 23
  • 24. Jenkins User Conference #jenkinsconf Example Flow Diagram in Jenkins July 5, 2012 JOB A JOB B 24
  • 25. Jenkins User Conference #jenkinsconf DEMO July 5, 2012 LIVE DEMO ● Foreman provisioning ● Ovirt UI ● Foreman CLI code 25
  • 26. Jenkins User Conference #jenkinsconf Videos Examples July 5, 2012 Foreman web server provisioning.. ● installing webserver via foreman 26
  • 27. Jenkins User Conference #jenkinsconf oVirt: How does it look like? July 5, 2012 27
  • 28. Jenkins User Conference #jenkinsconf Framework: Screen-shots - Hosts view July 5, 2012 28
  • 29. Jenkins User Conference #jenkinsconf Framework: Screen-shots - Host-group view July 5, 2012 Build a host-group by selecting existing puppet classes 29
  • 30. Jenkins User Conference #jenkinsconf Framework: Screen-shots - Hosts Statistics July 5, 2012 30
  • 31. Jenkins User Conference #jenkinsconf Present & Future July 5, 2012 ● Jenkins Foreman plugin ● Foreman (Jenkins) slaves manager plugin ● Jenkins Custom Testing Plugin ● Control Jenkins jobs via puppet (job as a resource) ● Extending Jenkinsapi python library 31
  • 32. Jenkins User Conference #jenkinsconf Summary: Join the fun – Contribute! July 5, 2012 ● You can get into the action and join any of those projects, patches are welcome :) Foreman https://github.com/theforeman/foreman oVirt http://www.ovirt.org/project/community/ Puppet http://www.ovirt.org/project/community/ 32
  • 33. Jenkins User Conference #jenkinsconf Summary: Links July 5, 2012 ● http://ovirt.org ● http://theforeman.org ● http://puppetlabs.com/community/overview/ ● http://jenkins-ci.org ● https://github.com/eedri/foreman 33
  • 34. Jenkins User Conference #jenkinsconf Q&A July 5, 2012 Still awake..? Good! Any Questions? 34
  • 35. Jenkins User Conference #jenkinsconf Summary: Thanks July 5, 2012 Platinum Sponsors Silver Sponsor 35
  • 36. Jenkins User Conference #jenkinsconf Still got questions? July 5, 2012 Eyal edri eedri@redhat.com irc.freenode.net #ovirt, #theforeman, #jenkins 36