OpenStack Plugin

OpenStack is an open source cloud software. The OpenStack plugin associates CI job model with OpenStack deployment model.

Models

  • Deployment: An entire OpenStack cluster

  • Node: A single node in an OpenStack deployment/cluster associated with a single deployment

  • Container: A container associated with a single node

  • Package: An RPM associated with either a single node or a single container

  • Service: A service associated with a single deployment

Deployment
├── Node
│   └── Container
│       └── Package
│   └── Package
├── Service

Usage

To use the OpenStack plugin with Cibyl, specify –plugin openstack or include it in the configuration file.

Spec

Note

This feature is only fully implemented with the Jenkins automation system.
It is partially supported with Zuul (The option will work but will not provide the complete specification)

cibyl spec JOB_NAME allows you to easily get the full OpenStack specification of a single job.

The idea behind it is to allow the user to quickly get information on which OpenStack services and features are covered by a single job so the user doesn’t have to go and deep dive into the job configuration and build artifacts to figure it out by himself.

An example of an output from running cibyl spec JOB_NAME:

Openstack deployment:
  Release: 17.0
  Infra type: virt
  Topology: compute:2,controller:3,ironic:2
  Network:
    IP version: 4
    Network backend: geneve
    ML2 driver: ovn
    Security group mechanism: native ovn
    DVR: True
    TLS everywhere: False
  Storage:
    Cinder backend: lvm
  Ironic:
    Ironic inspector: True
    Cleaning network: False

Arguments Matrix

The supported arguments in the different built-in sources

Argument / Source

Description

Jenkins

Zuul

ES

JJB

Zuul.d

–ip-version

The IP version used
by the deployment (4 or 6)

☑️

☑️

☑️

🔲

🔲

–release

OpenStack Release
(OSP and RDO supported)

☑️

☑️

🔲

🔲

🔲

–infra-type

The infrastructure on which
OS is deployed (e.g. ovb,
baremetal, virthost)

☑️

☑️

🔲

🔲

🔲

–topology

The combination of node
types deployed

☑️

☑️

☑️

🔲

🔲

–nodes

List of nodes on the topology.

☑️

☑️

🔲

🔲

🔲

–controllers

Number of controllers
(Can be also range: “>=3”)

☑️

☑️

🔲

🔲

🔲

–computes

Number of computes
(Can be also range: “>=3”)

☑️

☑️

🔲

🔲

🔲

–ml2-driver

Which ml2 driver does
the deployment use

☑️

☑️

🔲

🔲

🔲

–network-backend

What network protocol is
used (e.g. vxlan, vlan, …)

☑️

☑️

☑️

🔲

🔲

–cinder-backend

What cinder backend is
used (vlan, Ceph, Netapp, nfs)

☑️

☑️

☑️

🔲

🔲

–containers

List of containers running
on the hosts

☑️

🔲

🔲

–packages

Package installed by the
deployment

☑️

🔲

–services

Services installed by the
deployment

☑️

🔲

🔲

–test-setup

Source of test setup (rpm, git)

☑️

🔲

🔲

🔲

🔲