Your SlideShare is downloading. ×
The challenge - testing the oVirt project
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

The challenge - testing the oVirt project

3,417
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,417
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
50
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 #jenkinsconfAgenda 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 #jenkinsconfIntroduction July 5, 2012 ● Tired of spending time installing Jenkins slaves all day? ● Cant 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 #jenkinsconfThe 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 #jenkinsconfSmall 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 #jenkinsconfWhy bother changing our CI testing framework? July 5, 2012 Time Consuming Costly Error Prone 6
  • 7. Jenkins User Conference #jenkinsconfThe 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 #jenkinsconfFramework: Building Blocks July 5, 2012 8
  • 9. Jenkins User Conference #jenkinsconfPuppet: 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 #jenkinsconfPuppet: 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 #jenkinsconfForeman: Machine Life Cycle Management July 5, 2012 11
  • 12. Jenkins User Conference #jenkinsconfoVirt: 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 #jenkinsconfRevising 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 #jenkinsconfJenkins 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 #jenkinsconfJenkins 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 #jenkinsconfForeman Plugin Mock July 5, 2012 16
  • 17. Jenkins User Conference #jenkinsconfThe Bare (metal) Essentials... July 5, 2012 ● Foreman Physical Hosts Pool Feature RESERVED FREE 17
  • 18. Jenkins User Conference #jenkinsconfProvision Host CLI July 5, 2012 18
  • 19. Jenkins User Conference #jenkinsconfHost 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 #jenkinsconfFramework: 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 #jenkinsconfProvision 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 #jenkinsconfFramework: 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 #jenkinsconfExample 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 #jenkinsconfExample Flow Diagram in Jenkins July 5, 2012 JOB A JOB B 24
  • 25. Jenkins User Conference #jenkinsconfDEMO July 5, 2012 LIVE DEMO ● Foreman provisioning ● Ovirt UI ● Foreman CLI code 25
  • 26. Jenkins User Conference #jenkinsconfVideos Examples July 5, 2012 Foreman web server provisioning.. ● installing webserver via foreman 26
  • 27. Jenkins User Conference #jenkinsconfoVirt: How does it look like? July 5, 2012 27
  • 28. Jenkins User Conference #jenkinsconfFramework: Screen-shots - Hosts view July 5, 2012 28
  • 29. Jenkins User Conference #jenkinsconfFramework: Screen-shots - Host-group view July 5, 2012 Build a host-group by selecting existing puppet classes 29
  • 30. Jenkins User Conference #jenkinsconfFramework: Screen-shots - Hosts Statistics July 5, 2012 30
  • 31. Jenkins User Conference #jenkinsconfPresent & 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 #jenkinsconfSummary: 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 #jenkinsconfSummary: 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 #jenkinsconfQ&A July 5, 2012 Still awake..? Good! Any Questions? 34
  • 35. Jenkins User Conference #jenkinsconfSummary: Thanks July 5, 2012 Platinum Sponsors Silver Sponsor 35
  • 36. Jenkins User Conference #jenkinsconfStill got questions? July 5, 2012 Eyal edri eedri@redhat.com irc.freenode.net #ovirt, #theforeman, #jenkins 36