Author: buildbot
Date: Fri Jul 27 15:02:38 2012
New Revision: 827185
Log:
Staging update by buildbot for vcl
Added:
websites/staging/vcl/trunk/content/dev/configsystem.html
Removed:
websites/staging/vcl/trunk/content/configsystem.html
Modified:
websites/staging/vcl/trunk/content/ (props changed)
Propchange: websites/staging/vcl/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Jul 27 15:02:38 2012
@@ -1 +1 @@
-1366402
+1366404
Added: websites/staging/vcl/trunk/content/dev/configsystem.html
==============================================================================
--- websites/staging/vcl/trunk/content/dev/configsystem.html (added)
+++ websites/staging/vcl/trunk/content/dev/configsystem.html Fri Jul 27
15:02:38 2012
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+ <link href="/css/vcl.css" rel="stylesheet" type="text/css">
+ <title>Apache VCL - </title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+ <div id="sitetitle">
+ <table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td><a href="/index.html">Apache VCL</a></td>
+ <td><img src="/img/vcllogo.png" width="63" height="52"
align="right"></td>
+ </tr>
+ </table>
+ </div>
+
+ <div id="navigation">
+ <ul>
+<li>Information<ul>
+<li><a href="/info/about.html">What is VCL?</a></li>
+<li><a href="/info/features.html">Features</a></li>
+<li><a href="/info/architecture.html">Architecture</a></li>
+<li><a href="/info/use-cases.html">Use Cases</a></li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/info/license.html">License</a></li>
+<li><a href="/info/faq.html">FAQ</a></li>
+</ul>
+</li>
+<li><a href="/docs/index.html">Documentation</a><ul>
+<li><a href="/docs/using-vcl.html">Using VCL</a></li>
+<li><a href="/docs/image-creation.html">Image Creation</a></li>
+<li><a href="/docs/administration.html">Administration</a></li>
+<li><a href="/docs/installation.html">Installation</a></li>
+<li><a href="/docs/deployment-planning.html">Deployment Planning</a></li>
+</ul>
+</li>
+<li><a href="/comm/index.html">Community</a><ul>
+<li><a href="/comm/getting-involved.html">Getting Involved</a></li>
+<li><a href="/comm/mailing-lists.html">Mailing Lists</a></li>
+<li><a href="/comm/wiki.html">Wiki</a></li>
+<li><a href="/dev/index.html">Development</a><ul>
+<li><a href="/dev/jira.html">Issue Tracking</a></li>
+<li><a href="/dev/code-documentation.html">Code Documentation</a></li>
+<li><a href="/dev/roadmap.html">Roadmap</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="http://www.apache.org">Apache Software Foundation</a><ul>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Become a
Sponsor</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+
+ <div id="content">
+ <h1 class="title"></h1>
+ <h1 id="new-configuration-system">New Configuration System</h1>
+<p>This page describes a new configuration system that will be added to VCL
that can be used to dynamically configure deployed systems.</p>
+<h2 id="database-schema">Database schema</h2>
+<p>config:</p>
+<ul>
+<li>id - id of record</li>
+<li>name - name of record</li>
+<li>ownerid - owner of this record (reference to user.id)</li>
+<li>configtypeid - type of record (reference to configtype.id)</li>
+<li>data - any data associated with this (ex. puppet manifest)</li>
+<li>optional - 0/1 - when this config is mapped to something, can the user
specify to apply it or not</li>
+</ul>
+<p>configtype:</p>
+<ul>
+<li>id - id of record</li>
+<li>name - name of record</li>
+<li>moduleid - id of module that handles this type of record (reference to
module.id)</li>
+</ul>
+<blockquote>
+<p>initial types: puppet, subimage, shellcommand, perlfunction, software</p>
+</blockquote>
+<p>configvariable:</p>
+<ul>
+<li>id - id of record</li>
+<li>name - name of record</li>
+<li>configid - config this is associated with (reference to config.id)</li>
+<li>value - default value of this variable</li>
+<li>required - 0/1 - when mapped to something, is this variable always
applied</li>
+<li>ask - 0/1 - will the user be prompted for a value for this variable, or
will the default value always be used</li>
+<li>key - string in config.data to replace with the value of this variable</li>
+<li>
+<p>datatype - enum(int, multiint, string) - type of this variable so that the
frontend knows how to validate it</p>
+<p>There are some initial, special names:</p>
+<ul>
+<li>subimage - used for clusters, specifies a subimage to be deployed; when
deployed, configinstancevariable.value will be reservation.id of the
subimage</li>
+<li>min - used in conjunction with subimage to specify a minimum number of
those subimages</li>
+<li>max - used in conjunction with subimage to specify a maximum number of
those subimages</li>
+<li>runbefore - used to relate to other configs to specify that this should be
run before the ones specified in 'value'</li>
+<li>runafter - used to relate to other configs to specify that this should be
run after the ones specified in 'value'</li>
+<li>getdata - ??</li>
+</ul>
+</li>
+</ul>
+<p>configinstance:</p>
+<blockquote>
+<p>This is similar to the config table, but is for deployed systems.</p>
+</blockquote>
+<ul>
+<li>id - id of record</li>
+<li>reservationid - reservation this is associated with (references
reservation.id)</li>
+<li>configid - config entry being applied (references config.id)</li>
+<li>status - new/processing/completed??</li>
+</ul>
+<p>configinstancevariable:</p>
+<blockquote>
+<p>This is similar to the configvariable table, but is for deployed
systems.</p>
+</blockquote>
+<ul>
+<li>configinstanceid - config instance this is associated with (references
configinstance.id)</li>
+<li>configvariableid - config variable being applied (references
configvariable.id)</li>
+<li>value - similar to configvariable.value, but can be set by user to
different value if configvariable.ask is set to 1</li>
+</ul>
+<p>configmap:</p>
+<blockquote>
+<p>This is for mapping configs to various resources or other items in VCL.</p>
+</blockquote>
+<ul>
+<li>configid - config being mapped (references config.id)</li>
+<li>subid - id from specific resource table (ex. image.id)</li>
+<li>configmaptypeid - type of resource or other item in VCL this is mapped to
(references configmaptype.id)</li>
+<li>affiliationid - allows configs to only be mapped for a specific
affiliation, use the Global affilation to map to all (references
affiliation.id)</li>
+<li>disabled - 0/1 (a little complicated, normally 0) allows exceptions to a
config being applied; set to 1 if a config would be mapped due to a general
mapping, but want to disable for a specific instance (ex. if a config is
applied for everything deployed by a certain provisioning module, but you don't
want it applied for a certain image, you would have an entry in this table
mapping it to the provisioning module with disabled set to 0, then you would
also have an entry for the image with disabled set to 1)</li>
+<li>stage - start_load/post_load/(others?) which stage in the provisioning
process where this record should be applied</li>
+</ul>
+<p>configmaptype:</p>
+<ul>
+<li>id - id of this record</li>
+<li>
+<p>name - name of this record</p>
+<p>Initial types:</p>
+<ul>
+<li>image</li>
+<li>OStype</li>
+<li>provisioning</li>
+</ul>
+</li>
+</ul>
+<h2 id="examples">Examples</h2>
+<h3 id="hadoop-cluster-with-variable-amount-of-slave-nodes">Hadoop cluster
with variable amount of slave nodes</h3>
+<p>This example shows how a hadoop cluster can be requested with 5-10 slave
nodes.
+It can be useful to have the variable amount because 10 nodes may
+be desired, but you may want to cluster anyway if only 5 nodes are
+available or if 10 are requested, but 2 of them fail at deploy time.</p>
+<p>For this example, we'll use the following values from other tables:</p>
+<ul>
+<li>module.id for handling subimage config type: 58</li>
+<li>image.id for the Hadoop master image: 453</li>
+<li>image.id for the Hadoop slave image: 454</li>
+<li>affiliation.id for the desired affiliation: 5</li>
+<li>reservation.id for the Hadoop master image: 2351</li>
+<li>reservation.id for the Hadoop slave images: 2352-2361</li>
+<li>user.id that owns the configs: 9</li>
+</ul>
+<p>configtype:
+<table><tr>
+<th>id</th><th>name</th><th>moduleid</th>
+</tr><tr>
+<td>2</td><td>subimage</td><td>58</td>
+</tr></table></p>
+<p><br>
+config:
+<table><tr>
+<th>id</th><th>name</th><th>ownerid</th><th>configtypeid</th><th>data</th><th>optional</th>
+</tr><tr>
+<td>59</td><td>hadoop
cluster</td><td>9</td><td>2</td><td>(empty)</td><td>0</td>
+</tr></table></p>
+<p><br>
+configvariable:
+<table><tr>
+<th>id</th><th>name</th><th>configid</th><th>value</th><th>required</th><th>ask</th><th>key</th><th>datatype</th>
+</tr><tr>
+<td>146</td><td>subimage</td><td>59</td><td>454</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>147</td><td>min</td><td>59</td><td>1</td><td>1</td><td>1</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>148</td><td>max</td><td>59</td><td>50</td><td>1</td><td>1</td><td>(empty)</td><td>int</td>
+</tr></table></p>
+<p><br>
+configmaptype:
+<table><tr>
+<th>id</th><th>name</th>
+</tr><tr>
+<td>1</td><td>image</td>
+</tr></table></p>
+<p><br>
+configmap:
+<table><tr>
+<th>configid</th><th>subid</th><th>configmaptypeid</th><th>affiliationid</th><th>disabled</th><th>stage</th>
+</tr><tr>
+<td>59</td><td>453</td><td>1</td><td>5</td><td>0</td><td>start_load</td>
+</tr></table></p>
+<p><br>
+configinstance:
+<table><tr>
+<th>id</th><th>reservationid</th><th>configid</th><th>status</th>
+</tr><tr>
+<td>5023</td><td>2351</td><td>59</td><td>new</td>
+</tr></table></p>
+<p><br>
+configinstancevariable:
+<table><tr>
+<th>configinstanceid</th><th>configvariableid</th><th>value</th>
+</tr>
+<tr><td>5023</td><td>146</td><td>2352</td></tr>
+<tr><td>5023</td><td>146</td><td>2353</td></tr>
+<tr><td>5023</td><td>146</td><td>2354</td></tr>
+<tr><td>5023</td><td>146</td><td>2355</td></tr>
+<tr><td>5023</td><td>146</td><td>2356</td></tr>
+<tr><td>5023</td><td>146</td><td>2357</td></tr>
+<tr><td>5023</td><td>146</td><td>2358</td></tr>
+<tr><td>5023</td><td>146</td><td>2359</td></tr>
+<tr><td>5023</td><td>146</td><td>2360</td></tr>
+<tr><td>5023</td><td>146</td><td>2361</td></tr>
+<tr><td>5023</td><td>147</td><td>5</td></tr>
+<tr><td>5023</td><td>148</td><td>10</td></tr>
+</table></p>
+<h3 id="sas-cluster">SAS cluster</h3>
+<p>This example shows how to configure a SAS cluster of 3 nodes: meta,
midtier, and apps so that they are all deployed and then started in the correct
order.</p>
+<p>For this example, we'll use the following values from other tables:</p>
+<ul>
+<li>module.id for handling puppet config type: 57</li>
+<li>module.id for handling subimage config type: 58</li>
+<li>module.id for handling shellcommand config type: 59</li>
+<li>image.id for the SAS meta image: 728</li>
+<li>image.id for the SAS midtier image: 729</li>
+<li>image.id for the SAS apps image: 730</li>
+<li>affiliation.id for the desired affiliation: 7</li>
+<li>reservation.id for the SAS meta image: 2466</li>
+<li>reservation.id for the SAS midtier image: 2467</li>
+<li>reservation.id for the SAS apps image: 2468</li>
+<li>user.id that owns the configs: 15</li>
+</ul>
+<p>configtype:
+<table><tr>
+<th>id</th><th>name</th><th>moduleid</th>
+</tr><tr>
+<td>1</td><td>puppet</td><td>57</td>
+</tr><tr>
+<td>2</td><td>subimage</td><td>58</td>
+</tr><tr>
+<td>3</td><td>shellcommand</td><td>59</td>
+</tr></table></p>
+<p><br>
+config:
+<table><tr>
+<th>id</th><th>name</th><th>ownerid</th><th>configtypeid</th><th>data</th><th>optional</th>
+</tr><tr>
+<td>76</td><td>SAS apps</td><td>15</td><td>2</td><td>(empty)</td><td>0</td>
+</tr><tr>
+<td>77</td><td>SAS midtier</td><td>15</td><td>2</td><td>(empty)</td><td>0</td>
+</tr><tr>
+<td>78</td><td>SAS meta config</td><td>15</td><td>1</td><td>(puppet
manifest)</td><td>0</td>
+</tr><tr>
+<td>79</td><td>SAS apps config</td><td>15</td><td>1</td><td>(puppet
manifest)</td><td>0</td>
+</tr><tr>
+<td>80</td><td>SAS midtier config</td><td>15</td><td>1</td><td>(puppet
manifest)</td><td>0</td>
+</tr><tr>
+<td>81</td><td>SAS meta start</td><td>15</td><td>3</td><td>(startup
commands)</td><td>0</td>
+</tr><tr>
+<td>82</td><td>SAS apps start</td><td>15</td><td>3</td><td>(startup
commands)</td><td>0</td>
+</tr><tr>
+<td>83</td><td>SAS midtier start</td><td>15</td><td>3</td><td>(startup
commands)</td><td>0</td>
+</tr></table></p>
+<p><br>
+configvariable:
+<table><tr>
+<th>id</th><th>name</th><th>configid</th><th>value</th><th>required</th><th>ask</th><th>key</th><th>datatype</th>
+</tr><tr>
+<td>268</td><td>subimage</td><td>76</td><td>729</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>269</td><td>subimage</td><td>77</td><td>730</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>270</td><td>runafter</td><td>78</td><td>268,269</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>271</td><td>runafter</td><td>79</td><td>270</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>272</td><td>runafter</td><td>80</td><td>271</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>273</td><td>runafter</td><td>81</td><td>272</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>274</td><td>runafter</td><td>82</td><td>273</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr><tr>
+<td>275</td><td>runafter</td><td>83</td><td>274</td><td>1</td><td>0</td><td>(empty)</td><td>int</td>
+</tr></table></p>
+<p><br>
+configmaptype:
+<table><tr>
+<th>id</th><th>name</th>
+</tr><tr>
+<td>1</td><td>image</td>
+</tr></table></p>
+<p><br>
+configmap:
+<table><tr>
+<th>configid</th><th>subid</th><th>configmaptypeid</th><th>affiliationid</th><th>disabled</th><th>stage</th>
+</tr><tr>
+<td>76</td><td>728</td><td>1</td><td>7</td><td>0</td><td>start_load</td>
+</tr><tr>
+<td>77</td><td>728</td><td>1</td><td>7</td><td>0</td><td>start_load</td>
+</tr><tr>
+<td>78</td><td>728</td><td>1</td><td>7</td><td>0</td><td>post_load</td>
+</tr><tr>
+<td>79</td><td>728</td><td>1</td><td>7</td><td>0</td><td>post_load</td>
+</tr><tr>
+<td>80</td><td>728</td><td>1</td><td>7</td><td>0</td><td>post_load</td>
+</tr><tr>
+<td>81</td><td>728</td><td>1</td><td>7</td><td>0</td><td>post_load</td>
+</tr><tr>
+<td>82</td><td>728</td><td>1</td><td>7</td><td>0</td><td>post_load</td>
+</tr><tr>
+<td>83</td><td>728</td><td>1</td><td>7</td><td>0</td><td>post_load</td>
+</tr></table></p>
+<p><br>
+configinstance:
+<table><tr>
+<th>id</th><th>reservationid</th><th>configid</th><th>status</th></tr>
+<tr><td>6005</td><td>2466</td><td>76</td><td>new</td></tr>
+<tr><td>6006</td><td>2466</td><td>77</td><td>new</td></tr>
+<tr><td>6007</td><td>2466</td><td>78</td><td>new</td></tr>
+<tr><td>6008</td><td>2466</td><td>79</td><td>new</td></tr>
+<tr><td>6009</td><td>2466</td><td>80</td><td>new</td></tr>
+<tr><td>6010</td><td>2466</td><td>81</td><td>new</td></tr>
+<tr><td>6011</td><td>2466</td><td>82</td><td>new</td></tr>
+<tr><td>6012</td><td>2466</td><td>83</td><td>new</td></tr>
+</tr></table></p>
+<p><br>
+configinstancevariable:
+<table><tr>
+<th>configinstanceid</th><th>configvariableid</th><th>value</th>
+</tr>
+<tr><td>6005</td><td>268</td><td>2467</td></tr>
+<tr><td>6006</td><td>269</td><td>2468</td></tr>
+<tr><td>6007</td><td>270</td><td>6005,6006</td></tr>
+<tr><td>6008</td><td>271</td><td>6007</td></tr>
+<tr><td>6009</td><td>272</td><td>6008</td></tr>
+<tr><td>6010</td><td>273</td><td>6009</td></tr>
+<tr><td>6011</td><td>274</td><td>6010</td></tr>
+<tr><td>6012</td><td>275</td><td>6011</td></tr>
+</table></p>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2012 The Apache Software Foundation, Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
License, Version 2.0</a>.
+ <br />
+ Apache and the Apache feather logo are trademarks of The Apache
Software Foundation.
+ </p>
+ </div>
+ </div>
+
+</body>
+</html>