OpenStack logo

OpenStack Infrastructure
An Introduction to StackForge


Monty Taylor <mordred@inaugust.com>
James E. Blair <jeblair@openstack.org>
Jeremy Stanley <fungi@yuggoth.org>
Clark Boylan <cboylan@sapwetik.org>

OpenStack

Is open source software for building private and public clouds.

Projects

https://wiki.openstack.org/wiki/Projects

Contributors

Consistent Tooling

Developer Infrastructure

  • Code review and VCS
    • Gerrit
    • Git
    • git-review
    • reviewday
  • Test/build automation
    • devstack-gate
    • Jenkins
    • JJB
    • Zuul
  • Repository mirrors
    • Apache
    • Cgit
    • GitHub
    • PyPI packages
  • Job logs, artifacts
    • logs site
    • Logstash
  • Documentation/publication
    • Sphinx
    • Wiki
  • Releases/pre-releases
    • PyPI uploads
    • tarballs
  • IRC
    • eavesdrop
    • gerritbot
    • meetbot
    • statusbot
  • Project blogs
    • Foundation
    • Planet
  • Collaboration
    • Mailing lists
    • Lodgeit paste
    • Etherpad
  • Authentication
    • CLA
    • membership
    • Launchpad SSO
  • Feature/bug tracking
    • LP blueprints
    • LP bugs

Development Environment

Project Gating

Everything Is Automated

Process Flow

Gerrit

Gerrit

Git Review

corvus@shiprock:~/git/neutron$ git commit -a
[new-versionpy ddf1dce] Base version.py on glance.
 3 files changed, 28 insertions(+), 107 deletions(-)
 delete mode 100644 version.py

corvus@shiprock:~/git/neutron$ git review
remote: Resolving deltas:   0% (0/3)
remote: 
remote: New Changes:
remote:   https://review.openstack.org/3072
remote: 
To ssh://corvus@review.openstack.org:29418/openstack/neutron.git
 * [new branch]      HEAD -> refs/for/master/bug/916018

Interrelated Integration Testing

Devstack-Gate Problems

Devstack-Gate Solutions

Zuul

Bottlenecking

Zuul Simulation

StackForge

Adding your project

# git clone git://git.openstack.org/openstack-infra/config
# cd config
# git review -s

Four main files

review.projects.yaml.erb

stackforge/$project.config

config/projects.yaml<

layout.yaml

Pipelines

Commit and submit

Tag Based Releases

devstack integration

- job-template:
    name: '{pipeline}-requirements-integration-dsvm'
    node: '{node}'

    wrappers:
      - timeout:
          timeout: 120
          fail: true
      - timestamps

    builders:
      - devstack-checkout
      - shell: |
          #!/bin/bash -xe
          export PYTHONUNBUFFERED=true
          export DEVSTACK_GATE_TEMPEST=0
          export DEVSTACK_GATE_EXERCISES=0
          export DEVSTACK_GATE_REQS_INTEGRATION=1
          function gate_hook {{
              bash $GATE_SCRIPT_DIR/devstack-vm-gate.sh && \
              bash -xe $BASE/new/pbr/tools/integration.sh $PROJECTS
          }}
          export -f gate_hook
          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
          ./safe-devstack-vm-gate-wrap.sh
      - link-logs

    publishers:
      - devstack-logs
      - console-log

Not just python

- project:
    name: gearman-plugin
    maven-group-id: org.jenkins-ci.plugins
    github-org: openstack-infra
    node: precise
    tarball-site: tarballs.openstack.org

    jobs:
      - jenkins-plugin-jobs

Extra Special Needs

Thanks!

These slides available at: http://docs.openstack.org/infra/publications/