Jump to: navigation, search

Difference between revisions of "Rally/DeployEngines"

(Adding introduction)
(Fixed renamings and changed config formats)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
= Deploy engines: Introduction =
 
= Deploy engines: Introduction =
  
One of the core entities in Rally architecture are the '''''Deploy engines'''''. The task of a deploy engine is to control the process of deploying some OpenStack distribution like ''DevStack'' or ''FUEL'' before any benchmarking procedures take place. Every deploy engine should implement the following fairly simple interface:
+
One of the core entities in Rally architecture are the '''''Deploy engines'''''. The task of a deploy engine is to control the process of deploying some '''''OpenStack distribution''''' like ''DevStack'' or ''FUEL'' before any benchmarking procedures take place. Every deploy engine should implement the following fairly simple interface:
* ''constuctor'', which takes a ''deployment'' entity as its only parameter;
+
* '''''constuctor''''', which takes a '''''deployment''''' entity as its only parameter;
* ''deploy()'', which should deploy the appropriate OpenStack distribution given the cloud config from the ''deployment'' object the engine was initialized with (possibly using one of available [[ServerProviders|server providers]]). The method should also return a dictionary with endpoints of the deployed OpenStack distribution;
+
* '''''deploy()''''', which should deploy the appropriate OpenStack distribution given the cloud config from the ''deployment'' object the engine was initialized with (possibly using one of available [[ServerProviders|server providers]]). The method should also return a dictionary with endpoints of the deployed OpenStack distribution;
* ''cleanup()'', which should clean up the OpenStack deployment (again, possibly using one of available [[ServerProviders|server providers]]).
+
* '''''cleanup()''''', which should clean up the OpenStack deployment (again, possibly using one of available [[ServerProviders|server providers]]).
 +
 
 +
 
 +
Below you will find a short but informative description of deploy engines implemented in Rally.
 +
 
 +
 
  
 
=Available Deploy engines=
 
=Available Deploy engines=
  
==DummyEngine==
+
==ExistingCloud==
  
 
===Description===
 
===Description===
This engine does not deploy anything, but uses an existing OpenStack deployment. It may be useful in case you have a preconfigured OpenStack deployment ready for benchmark scenarios launching.
+
This engine in fact does not deploy anything, but uses an existing OpenStack installation. It may be useful in case you have a preconfigured OpenStack deployment ready to launch benchmark scenarios.
 
===Configuration Example===
 
===Configuration Example===
 
     {
 
     {
         "name": "DummyEngine",
+
         "type": "ExistingCloud",
         "cloud_config": {
+
         "endpoint": {
            "identity": {
+
                 "auth_url": "http://192.168.122.22:5000/v2.0/",
                "url": "http://192.168.122.22/",
+
                 "username": "admin",
                 "uri": "http://192.168.122.22:5000/v2.0/",
+
                 "password": "password",
                 "admin_username": "admin",
+
                 "tenant_name": "admin"
                 "admin_password": "password",
 
                 "admin_tenant_name": "demo"
 
            }
 
 
         }
 
         }
 
     }
 
     }
  
"identity" contains OpenStack cloud endpoints.
+
All you should specify in the config is the OpenStack cloud endpoint: the ''auth_url'' and also ''admin credentials'', including ''tenant name''. Rally will use the specified admin account to manage temporary non-admin tenants and users exploited while launching benchmark scenarios.
  
 
==DevstackEngine==
 
==DevstackEngine==
  
 
===Description===
 
===Description===
This engine deploys a Devstack cloud using the given Devstack repository. The ''localrc'' field of the Devstack engine configuration will be used to initialize the Devstack's ''localrc'' file. As this deploy engine is not a dummy one, it also needs a concrete [[ServerProviders|Server Provider]] to be specified in the config.
+
This engine deploys a Devstack cloud using the given Devstack repository.
  
 
===Configuration Example===
 
===Configuration Example===
 
     {
 
     {
         "name": "DevstackEngine",
+
         "type": "DevstackEngine",
 
         "localrc": {
 
         "localrc": {
 
             "ADMIN_PASSWORD": "secret",
 
             "ADMIN_PASSWORD": "secret",
Line 42: Line 44:
 
         },
 
         },
 
         "devstack_repo": "git://example.com/devstack/",
 
         "devstack_repo": "git://example.com/devstack/",
         "provider": ${PROVIDER_CONFIG}
+
         "type": {
 +
            "name": ''"${PROVIDER_NAME}"'',
 +
            ...
 
         }
 
         }
 
     }
 
     }
  
 
+
The ''localrc'' field of the Devstack engine configuration will be used to initialize the Devstack's ''localrc'' file. As this deploy engine does not use an existing cloud, it also needs a concrete [[Rally/ServerProviders|server provider]] specification: the type of the used provider (''${PROVIDER_NAME}''), followed by provider-specific fields configuration.
''${PROVIDER_CONFIG}'' - configuration of any available [[Rally/ServerProviders|server provider]].
 
  
 
=Note=
 
=Note=
 
More Deploy engines are to come in future releases, namely deploy engines for ''FUEL'', ''Tripple-O'' etc. Stay tuned.
 
More Deploy engines are to come in future releases, namely deploy engines for ''FUEL'', ''Tripple-O'' etc. Stay tuned.

Latest revision as of 09:27, 19 May 2014

Deploy engines: Introduction

One of the core entities in Rally architecture are the Deploy engines. The task of a deploy engine is to control the process of deploying some OpenStack distribution like DevStack or FUEL before any benchmarking procedures take place. Every deploy engine should implement the following fairly simple interface:

  • constuctor, which takes a deployment entity as its only parameter;
  • deploy(), which should deploy the appropriate OpenStack distribution given the cloud config from the deployment object the engine was initialized with (possibly using one of available server providers). The method should also return a dictionary with endpoints of the deployed OpenStack distribution;
  • cleanup(), which should clean up the OpenStack deployment (again, possibly using one of available server providers).


Below you will find a short but informative description of deploy engines implemented in Rally.


Available Deploy engines

ExistingCloud

Description

This engine in fact does not deploy anything, but uses an existing OpenStack installation. It may be useful in case you have a preconfigured OpenStack deployment ready to launch benchmark scenarios.

Configuration Example

   {
       "type": "ExistingCloud",
       "endpoint": {
               "auth_url": "http://192.168.122.22:5000/v2.0/",
               "username": "admin",
               "password": "password",
               "tenant_name": "admin"
       }
   }

All you should specify in the config is the OpenStack cloud endpoint: the auth_url and also admin credentials, including tenant name. Rally will use the specified admin account to manage temporary non-admin tenants and users exploited while launching benchmark scenarios.

DevstackEngine

Description

This engine deploys a Devstack cloud using the given Devstack repository.

Configuration Example

   {
       "type": "DevstackEngine",
       "localrc": {
           "ADMIN_PASSWORD": "secret",
           "NOVA_REPO": "git://example.com/nova/",
           ...
       },
       "devstack_repo": "git://example.com/devstack/",
       "type": {
           "name": "${PROVIDER_NAME}",
           ...
       }
   }

The localrc field of the Devstack engine configuration will be used to initialize the Devstack's localrc file. As this deploy engine does not use an existing cloud, it also needs a concrete server provider specification: the type of the used provider (${PROVIDER_NAME}), followed by provider-specific fields configuration.

Note

More Deploy engines are to come in future releases, namely deploy engines for FUEL, Tripple-O etc. Stay tuned.