Solum Guest Agent

Registered by Julien Vey on 2014-06-12

..
 This work is licensed under a Creative Commons Attribution 3.0 Unported
 License.

 http://creativecommons.org/licenses/by/3.0/legalcode

==========================================
Solum Guest Agent
==========================================

https://blueprints.launchpad.net/solum/+spec/solum-guestagent

After launching infrastructure stacks (build farms, git repositories), the
instances will need to be configured initially and receive commands. To do that
we need some sort of communication between Solum and the instances

Problem description
===================

when an infrastructure stack is launched, Solum will want to:

* Initially configure the instances launched
* Send command to the instances (build jobs...)
* Retrieve informations from the instances (job results...)

Proposed change
===============

To solve this, I propose that each instance of an infrastructure stack run a
guestagent, responsible for the communication and interactions between Solum
and the instances

Alternatives
------------

I see two alternatives:

* SSH Commands: all actions will be executed via SSH. Cons are that this is not
scalable. When Solum is HA, it means the instances will need the SSH keys of all
Solum services.

* Native API: If the tools we use are exposing native APIs, we could use it to
do the actions we need. Cons are: If the API does not expose what we need, we
are blocked.

Data model impact
-----------------

None

REST API impact
---------------

None

Security impact
---------------

Whether we choose a "per-tenant" or "solum-owned" build farm (or any
infrastructure stack), we need to make sure only Solum can control the agent.

Notifications impact
--------------------

None

Other end user impact
---------------------

None

Performance Impact
------------------

We will need to take care of the consumption of memory within the guest due to
the guestagent.

Other deployer impact
---------------------

Images for the infrastructure stack will need to come with the guestagent
installed

Developer impact
----------------

None

Implementation
==============

Assignee(s)
-----------

Primary assignee:
  vey-julien

Work Items
----------

* Create a new repository stackforce/solum-guestagent
* Create a skeleton of the guestagent

As a separate work:

* Create handler to manage Drone
* Create handler to manage Jenkins
* Create handler to manage Bash commands

Dependencies
============

Mutual dependencies between solum-guestagent and solum-build-farm

Testing
=======

A good idea, but might consume resources on the gate:

* Create a functional test that launches a simple infrastructure stack and try
to communicate with the agent

Documentation Impact
====================

Documentation to be added

References
==========

https://blueprints.launchpad.net/solum/+spec/solum-build-farm

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Julien Vey
Direction:
Needs approval
Assignee:
Julien Vey
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Adrian Otto on 2015-06-11
Completed by
Adrian Otto on 2015-06-11

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.