Giter Club home page Giter Club logo

qa-jenkins-onmetal's Introduction

qa-jenkins-onmetal

OSIC Ops/QA Automation PoC for Rolling Upgrade CI/CD

CI/CD Flow

CIflow Full Details

Elements

  • Jenkins Master
  • Jenkins Agents
  • Jenkins Pipelines:
    • OSA Upgrade Liberty to Mitaka - via run_upgrade.sh
    • OSA Upgrade Mitaka to Newton-master - via run_upgrade.sh
    • OSA Rolling Upgrade Mitaka to Newton-master - Rolling Upgrade: Nova, Swift and Keystone (run_upgrade.sh breakdown)
    • See Details HERE
  • Rackspace OnMetal IO v2
  • OSA Deployment
  • OSA Upgrade
  • Test Suites:
    • Tempest smoke test suiteHERE
    • Persistent resources test suite.
    • API uptime test suite. HERE
    • During upgrade test suite

Further details about the CI model and test suites. See https://github.com/osic/osic-upgrade-test

Jenkins Installation

Install_Jenkins_Master Install_Jenkins_Slave_Agents

Jenkins Slave Agents Additional Configuration

Since Jenkins slaves agents will fire the complete OnMetal solution it requires to install:

  • Rackspace Public Cloud (RPC) Credentials .raxpub file in the repo directory formatted like this:

    [rackspace_cloud]
    username = your-cloud.username
    api_key = e1b835d65f0311e6a36cbc764e00c842
  • Packages

  • SSH Key Pair

mkdir /root/.ssh
ssh-keygen -q -t rsa -N "" -f /root/.ssh/id_rsa

Usage

Optional
# NOT Confirmed
ansible-playbook setup_jenkins.yaml
OnMetal OSA Deployment - Performed by Jenkins Pipeline

Automation HERE

Ansible available tags are iad and dfw. Which refers to Rackspace Regions: DFW=Dallas-fort-Worth, IAD=Northern-Virginia without tags resources are created in both regions

# Get Rackspace OnMetal IO v2 - need RPC credentials - 1 Physical Server
ansible-playbook build_onmetal.yaml --tags 'iad'

# Verify onMetal server data via rax CLI
ansible-playbook -i hosts get_onmetal_facts.yaml --tags 'iad'

# Install packages on the onMetal server
ansible-playbook -i hosts prepare_onmetal.yaml

# Apply server OS patches
ansible-playbook -i hosts set_onmetal_cpu.yaml

# Setup onMetal server - additional configurations
ansible-playbook -i hosts configure_onmetal.yaml

# Create the VMs on top of onMetal server
ansible-playbook -i hosts create_lab.yaml

# Prepare VMs for OSA installation
ansible-playbook -i hosts prepare_for_osa.yaml

# Deploy OpenStack via OSA
ansible-playbook -i hosts deploy_osa.yaml
OnMetal OSA Upgrade - Performed by Jenkins Pipeline
# via run_upgrade.sh
ansible-playbook -i hosts -e "openstack_release=${release}" upgrade_osa.yaml

# rolling upgrade - project stepping
# TBD
OnMetal Cleanup - Performed by Jenkins Pipeline
# Cleanup
ansible-playbook -i hosts destroy_virtual_machines.yaml

# Cleanup
ansible-playbook -i hosts destroy_virtual_networks.yaml

# Cleanup
ansible-playbook -i hosts destroy_lab_state_file.yaml

# Cleanup - Release RPC resources
ansible-playbook -i hosts destroy_onmetal.yaml --tags 'iad'

qa-jenkins-onmetal's People

Contributors

mrhillsman avatar castulo avatar dlux avatar jlwhite709 avatar

Watchers

James Cloos avatar Steve Heyman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.