You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by bu...@apache.org on 2012/07/27 17:02:38 UTC

svn commit: r827185 - in /websites/staging/vcl/trunk/content: ./ configsystem.html dev/configsystem.html

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 &copy; 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>