Apache VCL logo Apache Software Foundation logo
Apache current event

Configuration Management

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_schema.jpg|thumbnail,border=1! config:

configtype:

There are some initial, special names: ** subimage - used for clusters, specifies a subimage to be deployed; when deployed, configinstancevariable.value will be reservation.id of the subimage ** min - used in conjunction with subimage to specify a minimum number of those subimages ** max - used in conjunction with subimage to specify a maximum number of those subimages ** runbefore - used to relate to other configs to specify that this should be run before the ones specified in ‘value’ ** runafter - used to relate to other configs to specify that this should be run after the ones specified in ‘value’ ** getdata - ??

configinstance:This is similar to the config table, but is for deployed systems.* id - id of record

configinstancevariable:This is similar to the configvariable table, but is for deployed systems.* configinstanceid - config instance this is associated with (references configinstance.id)

configmap:This is for mapping configs to various resources or other items in VCL.* configid - config being mapped (references config.id)

configmaptype:

Initial types: ** image ** OStype ** provisioning

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:

config: configvariable: configmaptype: configmap: configinstance: configinstancevariable:
id name moduleid
5 VLAN 67
id name ownerid configtypeid data optional
77 VLAN 30 54 5 30 0
id name configid value required ask key datatype
486 VLAN 77 30 1 0 (empty) int
id name
1 image
configid subid configmaptypeid affiliationid disabled stage
77 524 1 6 0 post_load
id reservationid configid status
6854 2748 77 new
configinstanceid configvariableid value
6854 486 30

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:

config: configvariable: configmaptype: configmap: configinstance: configinstancevariable:
id name moduleid
2 subimage 58
id name ownerid configtypeid data optional
59 hadoop cluster 9 2 (empty) 0
id name configid value required ask key datatype
146 subimage 59 454 1 0 (empty) int
147 min 59 1 1 1 (empty) int
148 max 59 50 1 1 (empty) int
id name
1 image
configid subid configmaptypeid affiliationid disabled stage
59 453 1 5 0 start_load
id reservationid configid status
5023 2351 59 new
configinstanceid configvariableid value
5023 146 2352
5023 146 2353
5023 146 2354
5023 146 2355
5023 146 2356
5023 146 2357
5023 146 2358
5023 146 2359
5023 146 2360
5023 146 2361
5023 147 5
5023 148 10

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:

config: configvariable: configmaptype: configmap: configinstance: configinstancevariable:
id name moduleid
1 puppet 57
2 subimage 58
3 shellcommand 59
id name ownerid configtypeid data optional
76 SAS apps 15 2 (empty) 0
77 SAS midtier 15 2 (empty) 0
78 SAS meta config 15 1 (puppet manifest) 0
79 SAS apps config 15 1 (puppet manifest) 0
80 SAS midtier config 15 1 (puppet manifest) 0
81 SAS meta start 15 3 (startup commands) 0
82 SAS apps start 15 3 (startup commands) 0
83 SAS midtier start 15 3 (startup commands) 0
id name configid value required ask key datatype
268 subimage 76 729 1 0 (empty) int
269 subimage 77 730 1 0 (empty) int
270 runafter 78 268,269 1 0 (empty) int
271 runafter 79 270 1 0 (empty) int
272 runafter 80 271 1 0 (empty) int
273 runafter 81 272 1 0 (empty) int
274 runafter 82 273 1 0 (empty) int
275 runafter 83 274 1 0 (empty) int
id name
1 image
configid subid configmaptypeid affiliationid disabled stage
76 728 1 7 0 start_load
77 728 1 7 0 start_load
78 728 1 7 0 post_load
79 728 1 7 0 post_load
80 728 1 7 0 post_load
81 728 1 7 0 post_load
82 728 1 7 0 post_load
83 728 1 7 0 post_load
id reservationid configid status
6005 2466 76 new
6006 2466 77 new
6007 2466 78 new
6008 2466 79 new
6009 2466 80 new
6010 2466 81 new
6011 2466 82 new
6012 2466 83 new
configinstanceid configvariableid value
6005 268 2467
6006 269 2468
6007 270 6005,6006
6008 271 6007
6009 272 6008
6010 273 6009
6011 274 6010
6012 275 6011