Meego Wiki
Views

Release Infrastructure/BOSS/Roadmap

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
m
(Immediate Priorities => Immediate Roadmap)
Line 207: Line 207:
Supporting BOSS on MeeGo.com allows us to manage system administration issues such as reliability and visibility.
Supporting BOSS on MeeGo.com allows us to manage system administration issues such as reliability and visibility.
-
=== Immediate Priorities===
+
=== Immediate Roadmap ===
==== Bugzilla integration (Target: Pre SF2011)====
==== Bugzilla integration (Target: Pre SF2011)====

Revision as of 13:33, 8 May 2011

This page provides some technical scope for the core BOSS components.

BOSS Core covers:

  • BOSS (A ruote worker daemon and RabbitMQ integration)
  • SkyNET (daemontools based participant pool manager)
  • BOSS-viewer (System management Web UI)
  • Standard workflow
  • OBS integration (Robotic integrator)

Additional systems such as REVS and IMG are handled independently.

Contents

BOSS Scope / Technical Roadmap

Out-of-the Box Goals

  • (x) Install guide for : BOSS, SkyNET, BOSS-Viewer, OBS plugin
  • (x) Sample Process
  • (x) Sample Participant
  • (x) Sample Launcher

BOSS Installable Components

BOSS engine

  • (x) Packaged for Suse
  • (x) Packaged for Debian
  • (x) Rewrite to use daemontools to manage ruote worker instead of daemon-kit
  • ( ) Move to Redis based storage (for replication and general HA)
  • (x) Support participant registration process
  • (x) Support start/stop
  • (x) Support boss.config ini file

Web based monitor/control

  • (x) Packaged for Suse
  • (x) Packaged for Debian
  • ( ) Logging view
  • ( ) Anonymous view
  • (x) admin user control
  • ( ) normal user control
  • ( ) Rails based to allow OBS integration

SkyNET Features:

Document design and functionality

  • ( ) System overview
  • (x) Installation
  • (.) Access control behaviour (given user-owned participants)

Feature complete CLI for:

  • (x) Packaged for Suse
  • (x) Packaged for Debian
  • (x) Install Participant
  • ( ) Uninstall Participant
  • (x) Start / Stop Participant
  • (x) System start/shutdown
  • (x) Register participant
  • (x) List of participants with 'active/registered'
  • ( ) Info command (location, installation package, yaml derived description)
  • ( ) Improved upgrade support (reload if running, reinstall, rebuild templates)
  • ( ) Ruby client to make it more relevant upstream
  • ( ) Skynet unix group so normal users can activate participants

Python Participant (Exo) library

  • (x) Packaged for Suse
  • (x) Packaged for Debian
  • (x) Workitem handling
  • ( ) Workitem Control handling (cancel/status)
  • ( ) Lifecycle handling

Python ruote client library

  • (x) Ruote workitem support
  • (x) Simple workitem useage
  • ( ) Migration to Pika for AMQP
  • ( ) Use SSL with RabbitMQ http://www.rabbitmq.com/ssl.html
  • ( ) Support cancel/pause/resume
  • ( ) Complete documentation
  • ( ) 100% test coverage

REST API to participant status

Note combining 'install' and 'run' and 'root' is a security issue.

  • ( ) Packaged for Suse
  • ( ) Packaged for Debian
  • ( ) GET : status
  • ( ) PUT : install
  • ( ) POST : Running=True/False
  • ( ) DELETE : uninstall

Clustering ability (ie see multiple SkyNETs in one view)

  • ( ) Follows on from REST

Process Management:

Ruote On Rails:

An web framework for workflow interaction

  • ( ) Packaged for Suse
  • ( ) Packaged for Debian
  • ( ) Integrate with OBS

Standard Workflow

  • (x) Develop and document CI workflow
  • (x) Integrate robogrator to OBS (per project workflows)
  • ( ) Extend robogrator process/event manager
  • (.) Store workflows in database (Redis) for remote access
  • ( ) Allow multiple projects to share process components
  • ( ) Improve documentation
  • ( ) Best practice guidelines
  • ( ) Participant libraries :
  • (.) Package QA checks
  • ( ) git
  • (.) OBS Project
  • (.) OBS Requests
  • (.) REVS
  • ( ) OTS
  • (.) IMG
  • (.) Bugzilla

User Interaction Participant

  • ( ) Packaged for Suse
  • ( ) Packaged for Debian
  • ( ) Simple standalone web query
  • ( ) Integrate with OBS
  • (.) Extend to irc/jabber

Test and debugging framework

  • ( ) Policy / best practice
  • ( ) Trace and profile support

Notification Framework

  • ( ) Possibly use Hermes
  • (x) irc notifier
  • ( ) jabber notifier
  • ( ) email notifier
  • ( ) link to backend user preferences
  • ( ) configure per-project (tree?)

OBS

UI

  • ( ) Integrate BOSSS workflow into OBS UI

State model

  • ( ) Define state for projects/repos/packages
  • ( ) Define state for requests
  • ( ) ensure OBS events api is supported upstream

High Level Outstanding Areas

Security

  • (x) Run participants as configurable users
  • (x) Run participants on remote machines
  • ( ) Granular AMQP participant / access control
  • ( ) Enable SSL AMQP connections
  • ( ) Use client certs for authentication
  • ( ) Ruote message signing system

Management

  • ( ) Monitoring processes
  • ( ) Monitoring participants
  • ( ) Upgrading

Documentation

  • ( ) Best practice
  • ( ) Wiki
  • ( ) Presentation
  • ( ) Reference (BOSS process driven from src)

Dashboard

The entire BOSS area needs to have a coherent UI view.

  • ( ) Project status summary
  • ( ) Package status

BOSS Management

Setting Direction

The BOSS roadmap is, of course, driven by customer needs. The technical scope and current statment of capabilities outlined above were identified during work on earlier projects within Nokia; but the order of implementation depends on prioritisation - and that will be driven by upcoming users.

Support MeeGo N900 DE Project

The DE project is an active customer whose needs are representative of general CI and release engineering BOSS customers. By focusing on them we ensure that BOSS development is both driven and driven in the right direction.

Support MeeGo:Apps

MeeGo Apps is a community project which has a more user-facing process. This allows BOSS development to integrate into other UI systems.

MeeGo.com Deployment

Supporting BOSS on MeeGo.com allows us to manage system administration issues such as reliability and visibility.

Immediate Roadmap

Bugzilla integration (Target: Pre SF2011)

  • (.) Process definition
  • (.) Identity relevant changelog data
  • (.) Extract bugs and comment
  • (.) Change bug state

Repo publish process

  • (.) Triggered by time
  • ( ) Triggered by irc bot
  • ( ) Freeze repo building
  • ( ) Rsync
  • ( ) Publish
  • ( ) Notify

Monitoring

  • (.) Process viewing
  • ( ) Alerts on process failure

Image Generation

  • ( ) DE Image generation

VCS integration

  • ( ) VCS monitor for gitorious and github

BOSS UI Process Integration

  • ( ) Depends on Robogrator v2 for network DB
  • ( ) Tab to view current process definitions active in a project

Author: David Greaves

Date: 2011-05-08 13:54:12 BST

HTML generated by org-mode 7.3 in emacs 23

Personal tools