Implementation of Continuous Integration for Linux Images

Similar documents
Continuous integration & continuous delivery. COSC345 Software Engineering

DEVOPS COURSE CONTENT

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

#jenkinsconf. Managing jenkins with multiple components project. Jenkins User Conference Israel. Presenter Name Ohad Basan

Step 1: Setup a Gitlab account

A WEB-BASED SOLUTION TO VISUALIZE OPERATIONAL MONITORING LINUX CLUSTER FOR THE PROTODUNE DATA QUALITY MONITORING CLUSTER

Linux and Configuration Support Section

GitLab-CI for FPGA development at LHCb 21/11/2018 CERN ELECTRONICS USERS GROUP - GITLAB CI FOR FPGAS 1

Stephan Hochdörfer //

Using DC/OS for Continuous Delivery

Quick Start Guide to Compute Canada Cloud Service

INSTALLATION RUNBOOK FOR Iron.io + IronWorker

ovirt and Docker Integration

docker & HEP: containerization of applications for development, distribution and preservation

UP! TO DOCKER PAAS. Ming

A comparison of performance between KVM and Docker instances in OpenStack

Continuous Integration using Docker & Jenkins

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

LGTM Enterprise System Requirements. Release , August 2018

Lab 4: Configuring node.js apps with ATP

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Software configuration management

Automated Installation Guide for CentOS (PHP 7.x)

Red Hat Virtualization 4.2

Kuber-what?! Learn about Kubernetes

The OpenStack Project Continuous Integration System. Elizabeth K.

Experiences with OracleVM 3.3

Be smart. Think open source.

Jenkins User Conference Israel. #jenkinsconf. CI / Liveperson. Gidi Samuels. July 16, #jenkinsconf

StratusLab Cloud Distribution Installation. Charles Loomis (CNRS/LAL) 3 July 2014

Bioshadock. O. Sallou - IRISA Nettab 2016 CC BY-CA 3.0

Continuous Integration and Delivery with Spinnaker

A continuous integration system for MPD Root: Deployment and setup in GitLab

D6.1.1 Version 1.0 Author USV Dissemination PU Date 27/01/2014

Red Hat Satellite 6.4

SALOME Maintenance Procedure. Frédéric Pons (Open Cascade) Roman Nikolaev (Open Cascade)

Transparent Service Migration to the Cloud Clone existing VMs to CloudStack/OpenStack templates without user downtime. CloudOpen Seattle 2015

This tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef.

Using the vrealize Orchestrator Salt Plug- in

Deployment Guide for Nuage Networks VSP

GitLab-CI and Docker Registry

Deployment Guide for Nuage Networks VSP

INDIGO PAAS TUTORIAL. ! Marica Antonacci RIA INFN-Bari

Release Pipelines in Microsoft Ecosystems

Red Hat Development Suite 2.2

Centreon SSH Connector Documentation

System Integration and Testing Project Proposal

Red Hat Development Suite 2.1

Flush Dns Settings Linux Redhat 5 Step Step

Red Hat OpenStack Platform 13

Building Scaleable Cloud Infrastructure using the Red Hat OpenStack Platform

Internet2 Technology Exchange 2018 October, 2018 Kris Steinhoff

Testbed-12 TEAM Engine Virtualization User Guide

Building/Running Distributed Systems with Apache Mesos

SUSE Manager and Salt

swiftenv Documentation

Linux Administration

Redhat OpenStack 5.0 and PLUMgrid OpenStack Networking Suite 2.0 Installation Hands-on lab guide

Accelerate OpenStack* Together. * OpenStack is a registered trademark of the OpenStack Foundation

Infrastructure-as-Code and CI Infrastructure at Open Stack A look at one of the largest CI systems and system administration

User Workspace Management

USING GIT FOR AUTOMATION AND COLLABORATION JUSTIN ELLIOTT - MATT HANSEN PENN STATE UNIVERSITY

Citrix CloudPlatform (powered by Apache CloudStack) Version Patch D Release Notes. Revised July 02, :15 pm Pacific

The Road to Digital Transformation: Increase Agility Building and Managing Cloud Infrastructure. Albert Law Solution Architect Manager

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

Container Orchestration on Amazon Web Services. Arun

AALOK INSTITUTE. DevOps Training

Drupal Command Line Instructions Windows 7 List All Users >>>CLICK HERE<<<

KubeNow Documentation

How to Build CSARs. Tim Waizenegger. University of Stuttgart Universitätsstr Stuttgart Germany.

How to Take the CI/CD Plunge

Zenoss Resource Manager Upgrade Guide

OpenStack Havana All-in-One lab on VMware Workstation

Monitoring Cisco NFVI Performance

Tunir Documentation. Release Kushal Das

DevOps Course Content

Multi-Arch Layered Image Build System

Git Basi, workflow e concetti avanzati (pt2)

Zenoss Resource Manager Upgrade Guide

How to Setup a Development Environment for ONAP

BUILDING A GPU-FOCUSED CI SOLUTION

Building A Better Test Platform:

Geant4 on Azure using Docker containers

TangeloHub Documentation

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

Singularity tests at CC-IN2P3 for Atlas

AZURE CONTAINER INSTANCES

Red Hat OpenStack Platform 14

Presented By: Gregory M. Kurtzer HPC Systems Architect Lawrence Berkeley National Laboratory CONTAINERS IN HPC WITH SINGULARITY

Operating and managing an Atomic container-based infrastructure

Introduction to OpenStack

Kardia / Centrallix VM Appliance Quick Reference

EPHEMERAL DEVOPS: ADVENTURES IN MANAGING SHORT-LIVED SYSTEMS

OPENSTACK CLOUD RUNNING IN A VIRTUAL MACHINE. In Preferences, add 3 Host-only Ethernet Adapters with the following IP Addresses:

Introduction to cloud computing

Cloud Foundry and OpenStack

CERN: LSF and HTCondor Batch Services

New Tools Used by the Scientific Linux Team

Red Hat JBoss Developer Studio 10.4 Installation Guide

Red Hat Satellite Server 6.2 Pattern

Transcription:

Implementation of Continuous Integration for Linux Images Jérôme Belleman, Linux Support Team HEPiX Fall 2017 Implementation of CI for Linux Images 2

Context HEPiX Fall 2017 Implementation of CI for Linux Images 3

Operating System Image Production Linux Support Team make images Built with Koji E.g. accessible from OpenStack: % openstack image list +-----------------+--------------------------------+ ID Name +-----------------+--------------------------------+ 29262 d...3 c8fc9 CC7 - x86_64 [2017-04 -06] d8c28e... a9015b SLC6 - x86_64 [2017-04 -06] f1c040...0 c92c4 SLC6 - i686 [2017-04 -06] b2b7ba... e5c9c3 CC7 TEST - x86_64 [2017-04 -06]... HEPiX Fall 2017 Implementation of CI for Linux Images 4

It s Critical That... We build images quickly We build images autonomously We make sure images work flawlessly HEPiX Fall 2017 Implementation of CI for Linux Images 5

Testing Out Images Perform some manual checks: Try starting a VM Try logging into it Check Puppet reports Check cloud-init logs A list of tests HEPiX Fall 2017 Implementation of CI for Linux Images 6

We Need To... Automate test execution Perform more thorough tests Be able to manage tests HEPiX Fall 2017 Implementation of CI for Linux Images 7

Towards a Variety of Tests HEPiX Fall 2017 Implementation of CI for Linux Images 8

So Far... Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 9

A Job to Build an Image Runs koji image-build Once a day check if already built today Downloads the image from Koji Uploads the image into OpenStack HEPiX Fall 2017 Implementation of CI for Linux Images 10

A Job to Create a Test VM Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 11

A Test VM Purpose: A prerequisite A test in its own right Not much in Docker image before_script: Copy.repo files Install e.g. OpenStack RPMs What it does: Run openstack server create HEPiX Fall 2017 Implementation of CI for Linux Images 12

A Job to Create a Test VM Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 13

CentOS Functional Tests https://github.com/centos/sig-core-t_functional Utilities (bzip2, curl, grep,... ) System bits (kernel, cron, iptables,... ) Services (MySQL, Apache,... ) Compilers (GCC, JDK,... ) File system (root files,... ) X Window... HEPiX Fall 2017 Implementation of CI for Linux Images 14

Sample Runs HEPiX Fall 2017 Implementation of CI for Linux Images 15

Jobs To Run Each Test before_script: Install SSH Keytab/private key from secret variable Wait until we can SSH SSH and install git Clone CentOS functional tests What they do: SSH and./runtests.sh $TESTNAME HEPiX Fall 2017 Implementation of CI for Linux Images 16

.gitlab-ci.yml job_ template : & job_ template script : - ssh root@ $TESTNODE "./ runtests. sh $CI_ JOB_ NAME " p_gcc : <<: * job_ template stage : development p_git : <<: * job_ template stage : development p_java -1.6.0 - openjdk : <<: * job_ template stage : development HEPiX Fall 2017 Implementation of CI for Linux Images 17

Scaling with Tests Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 18

Scaling with Tests Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 18

Scaling with Tests Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 18

Which Granularity? A fresh VM for each CI job Problem of destructive tests A fresh VM for each test? Really? HEPiX Fall 2017 Implementation of CI for Linux Images 19

Test VM Pool Workflows...... to schedule test VMs in OpenStack project... to manage VM life cycle CI Runner VM instead? But special privileges. HEPiX Fall 2017 Implementation of CI for Linux Images 20

Interesting Tests Access to AFS, EOS, CVMFS,... RPM health collectd Attaching Cinder volumes Performance HEPiX Fall 2017 Implementation of CI for Linux Images 21

A Wider Outreach HEPiX Fall 2017 Implementation of CI for Linux Images 22

Allow End-Users to...... run their own tests...... against their own images HEPiX Fall 2017 Implementation of CI for Linux Images 23

Allow End-Users to Run Their Tests Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] GitLab CI OpenStack koji image-build server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 24

Allow End-Users to Run Their Tests Koji CC7 - x86_64 [2017-04-06] SLC6 - x86_64 [2017-04-06] User Repository GitLab CI koji image-build OpenStack Merge Request server create ssh./runtests.sh HEPiX Fall 2017 Implementation of CI for Linux Images 24

User Interface Merge requests either way From a CLI? imageci run ' CC7 - x86_64 [2017-09 -20] ' mysql Directly from their git repository? HEPiX Fall 2017 Implementation of CI for Linux Images 25

Querying Results GitLab API Clear views From CLI? imageci results ' CC7 - x86_64 [2017-09 -20] ' mysql Or simply... HEPiX Fall 2017 Implementation of CI for Linux Images 26

Sample Runs HEPiX Fall 2017 Implementation of CI for Linux Images 27

Concerns and Opportunities Jobs running for too long How many jobs can we run? Work to adapt CentOS functional tests Testing Docker images HEPiX Fall 2017 Implementation of CI for Linux Images 28

home.cern