Apache VCL logo Apache Software Foundation logo
Apache current event

New Configuration System

This page describes a new configuration system that will be added to VCL that can be used to dynamically configure deployed systems.

Database schema

config:

configtype:

initial types: puppet, subimage, shellcommand, perlfunction, software

configvariable:

configinstance:

This is similar to the config table, but is for deployed systems.

configinstancevariable:

This is similar to the configvariable table, but is for deployed systems.

configmap:

This is for mapping configs to various resources or other items in VCL.

configmaptype:

Examples

Assigning a VLAN to an image

This example shows how to assign a VLAN to an image.

For this example, we’ll use the following values from other tables:

configtype:

idnamemoduleid
5VLAN67

config:
idnameowneridconfigtypeiddataoptional
77VLAN 30545300

configvariable:
idnameconfigidvaluerequiredaskkeydatatype
486VLAN773010(empty)int

configmaptype:
idname
1image

configmap:
configidsubidconfigmaptypeidaffiliationiddisabledstage
77524160post_load

configinstance:
idreservationidconfigidstatus
6854274877new

configinstancevariable:
configinstanceidconfigvariableidvalue
685448630

Hadoop cluster with variable amount of slave nodes

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.

For this example, we’ll use the following values from other tables:

configtype:

idnamemoduleid
2subimage58

config:
idnameowneridconfigtypeiddataoptional
59hadoop cluster92(empty)0

configvariable:
idnameconfigidvaluerequiredaskkeydatatype
146subimage5945410(empty)int
147min59111(empty)int
148max595011(empty)int

configmaptype:
idname
1image

configmap:
configidsubidconfigmaptypeidaffiliationiddisabledstage
59453150start_load

configinstance:
idreservationidconfigidstatus
5023235159new

configinstancevariable:
configinstanceidconfigvariableidvalue
50231462352
50231462353
50231462354
50231462355
50231462356
50231462357
50231462358
50231462359
50231462360
50231462361
50231475
502314810

SAS cluster

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.

For this example, we’ll use the following values from other tables:

configtype:

idnamemoduleid
1puppet57
2subimage58
3shellcommand59

config:
idnameowneridconfigtypeiddataoptional
76SAS apps152(empty)0
77SAS midtier152(empty)0
78SAS meta config151(puppet manifest)0
79SAS apps config151(puppet manifest)0
80SAS midtier config151(puppet manifest)0
81SAS meta start153(startup commands)0
82SAS apps start153(startup commands)0
83SAS midtier start153(startup commands)0

configvariable:
idnameconfigidvaluerequiredaskkeydatatype
268subimage7672910(empty)int
269subimage7773010(empty)int
270runafter78268,26910(empty)int
271runafter7927010(empty)int
272runafter8027110(empty)int
273runafter8127210(empty)int
274runafter8227310(empty)int
275runafter8327410(empty)int

configmaptype:
idname
1image

configmap:
configidsubidconfigmaptypeidaffiliationiddisabledstage
76728170start_load
77728170start_load
78728170post_load
79728170post_load
80728170post_load
81728170post_load
82728170post_load
83728170post_load

configinstance:
idreservationidconfigidstatus
6005246676new
6006246677new
6007246678new
6008246679new
6009246680new
6010246681new
6011246682new
6012246683new

configinstancevariable:
configinstanceidconfigvariableidvalue
60052682467
60062692468
60072706005,6006
60082716007
60092726008
60102736009
60112746010
60122756011