Jump to: navigation, search

Difference between revisions of "Trove-Guest-Agent-Upgrades"

m
m
Line 6: Line 6:
 
=== Goals ===
 
=== Goals ===
 
# Version the RPC API and tie it to the API version (see nova for examples)
 
# Version the RPC API and tie it to the API version (see nova for examples)
* This is to help prevent no backward compatibility problems between the Trove API and the guest  
+
#* This is to help prevent no backward compatibility problems between the Trove API and the guest  
 
# Implement a notification based upgrade path for guest agent
 
# Implement a notification based upgrade path for guest agent
 
# Allow for different upgrade strategies (swift, jenkins, local disk, rysnc, etc)
 
# Allow for different upgrade strategies (swift, jenkins, local disk, rysnc, etc)

Revision as of 23:09, 27 February 2014

TODO: draft up the design here DN 2014-02-27

Introduction

This article describes the design for the Guest Agent upgrades in Trove. Currently Guest Agent upgrades are implemented through external deployment tools that push new code to each guest instance. Usually the same deployment tools for upgrading the control plane handle guest agent upgrades. This can create a bottle neck on the deployment infrastructure.

Goals

  1. Version the RPC API and tie it to the API version (see nova for examples)
    • This is to help prevent no backward compatibility problems between the Trove API and the guest
  2. Implement a notification based upgrade path for guest agent
  3. Allow for different upgrade strategies (swift, jenkins, local disk, rysnc, etc)

Description

Configuration

New properties will be add to the trove configs to allow:

  1. Enabling/Disabling Guest Agent Upgrades
  2. Specifying an upgrade strategy

Affected Trove Components

  • python-troveclient (optional)
  • trove admin API
  • guest agent

Workflow

  1. An external process will create a upgrade package or artifact
  2. An Admin user will notify a Guest Agent through the Trove Management API
  3. The Guest Agent will process the RPC message created by the API call and handle the upgrade accordingly