Difference between revisions of "Load Balancer as a Service (LBaaS): OpenLDAP directory data organisation"

From stoney cloud
Jump to: navigation, search
[checked revision][checked revision]
(Load Balancer as a Service (LBaaS) - Configuration - Reseller - Account defaults)
(Load Balancer as a Service (LBaaS) - Account example)
 
(30 intermediate revisions by the same user not shown)
Line 292: Line 292:
 
* '''x<sup>1</sup>''': If <code>sstIsCompany</code> is set to <code>TRUE</code>, the <code>organizationName</code> must be set. Otherwise <code>givenName</code> and <code>surname</code> must be set.
 
* '''x<sup>1</sup>''': If <code>sstIsCompany</code> is set to <code>TRUE</code>, the <code>organizationName</code> must be set. Otherwise <code>givenName</code> and <code>surname</code> must be set.
  
==== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Notification settings ====
+
== Load Balancer as a Service (LBaaS) - Accounts ==
The sub tree stores the notification information for the Load Balancer as a Service (LBaaS) for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users. The idea is, that the reseller can receive notifications for a customer and react on the received information (for example, when the quota has been reached):
+
The sub tree for the accounts of the Load Balancer as a Service (LBaaS):
 
<source lang="ldif">
 
<source lang="ldif">
dn: ou=notifications,uid=4000000,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
+
dn: ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
 
objectclass: top
 
objectclass: organizationalUnit
 
objectclass: organizationalUnit
objectclass: sstNotificationObjectClass
+
ou: accounts
ou: notifications
+
description: The sub tree for the accounts of the Load Balancer as a Service (LBaaS).
description: The sub tree stores the notification information for the Load Balancer as a Service (LBaaS) for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users.
+
sstMailTo: Support stepping stone AG <support@stepping-stone.ch>
+
sstNotificationWarningOn: TRUE
+
sstNotificationWarning: quota
+
 
</source>
 
</source>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
 
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
 
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
! style="text-align:left; width: 120px" | Attribute
+
! style="text-align:left; width: 180px" | Attribute
 
! style="text-align:left; width: 220px" | Objectclass
 
! style="text-align:left; width: 220px" | Objectclass
 
! style="width: 80px"                  | Existance
 
! style="width: 80px"                  | Existance
 
! style="width: 80px"                  | Mandatory
 
! style="width: 80px"                  | Mandatory
 
! style="text-align:left;"              | Description
 
! style="text-align:left;"              | Description
 
  
 
|-
 
|-
Line 322: Line 317:
 
| The name of the leaf.
 
| The name of the leaf.
  
For the notification settings of the HAProxy based Load Balancer as a Service (LBaaS) this is: <code>notifications</code>.
+
In this case: <code>accounts</code>.
  
 
|-
 
|-
Line 331: Line 326:
 
| The description of the leaf.
 
| The description of the leaf.
  
For the notification settings of the HAProxy based Load Balancer as a Service (LBaaS) this is: <code>The sub tree stores the notification information for the Load Balancer as a Service (LBaaS) for the reseller Reseller Ltd. with the uid 4000000. This information is used independently of the notification settings of the users.</code>
+
In this case: <code>The sub tree for the accounts of the Load Balancer as a Service (LBaaS).</code>
 
+
|-
+
| sstMailTo
+
| sstNotificationObjectClass
+
| <center>MAY</center>
+
| <center>x</center>
+
| The description of the leaf.
+
 
+
For the configuration of the HAProxy based Load Balancer as a Service (LBaaS) this is: <code>Support stepping stone AG <support@stepping-stone.ch></code>
+
 
+
|-
+
| sstNotificationWarningOn
+
| sstNotificationObjectClass
+
| <center>MAY</center>
+
| <center>x<sup>1</sup></center>
+
| Are the resellers notification warnings turned on or not? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
+
 
+
Default is: <code>TRUE</code> (yes).
+
 
+
|-
+
| sstNotificationWarning
+
| sstNotificationObjectClass
+
| <center>MAY</center>
+
| <center>x<sup>1</sup></center>
+
| This multi-valued attribute will be used to turn single notifications on or off. The attribute <code>sstWikiWarningOn</code> must be set to <code>TRUE</code>.
+
 
+
Currently, the Load Balancer as a Service (LBaaS) only supports <code>quota</code> (the names correspond with the template dn).
+
  
 
|}
 
|}
Line 364: Line 332:
 
Legend:
 
Legend:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
* '''x<sup>1</sup>''': The attributes <code>sstNotificationWarningOn</code> and <code>sstNotificationWarning</code> are dependent on each other and must be combined via an AND operation.
 
  
==== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Account Settings ====
 
<span style="color: red">Work in progress ...</span>
 
  
The sub tree stores the information about what can be modified in which scope for the Load Balancer as a Service (LBaaS) for the reseller Reseller Ltd. with the uid 4000000:
+
=== Load Balancer as a Service (LBaaS) - Account example ===
<source lang="ldif">
+
The following example shows the OpenLDAP directory entry for the Load Balancer as a Service (LBaaS) account with the uid number 3730083:
dn: ou=settings,uid=4000000,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
+
objectclass: top
+
objectclass: organizationalUnit
+
objectclass: sstServiceSettingsObjectClass
+
ou: settings
+
description: This sub tree stores the information about what can be modified in which scope.
+
sstVolumeCapacityDefault: 1073741824
+
sstVolumeCapacityMin: 1073741824
+
sstVolumeCapacityMax: 536870912000
+
sstVolumeCapacityStep: 1073741824
+
sstNotificationWarningMediumChange: FALSE
+
sstNotificationWarningMediumAdd: TRUE
+
sstQuotaChange: FALSE
+
sstSendCredentialsTo: owner
+
sstMailFrom: Support stepping stone AG <support@stepping-stone.ch>
+
preferredLanguage: de-CH
+
</source>
+
  
Human readable format:
 
* sstVolumeCapacityDefault: 1 Gibibyte (GiB)
 
* sstVolumeCapacityMin: 1 Gibibyte (GiB)
 
* sstVolumeCapacityMax: 500 Gibibyte (GiB)
 
* sstVolumeCapacityStep: 1 Gibibyte (GiB)
 
 
The following table describes how to calculate the sstVolumeCapacity* attributes:
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Size'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Calculation'''
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Value'''
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Byte</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 1
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Kibibyte (KiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 2<sup>10</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1 024
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Mebibyte (MiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 2<sup>20</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1 048 576
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Gibibyte (GiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 2<sup>30</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1 073 741 824
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>5 Gibibyte (GiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 5 x 2<sup>30</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 5 368 709 120
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>10 Gibibyte (GiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 10 x 2<sup>30</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 10 737 418 240
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>100 Gibibyte (GiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 100 x 2<sup>30</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 107 374 182 400
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>500 Gibibyte (GiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 500 x 2<sup>30</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 536 870 912 000
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Tebibyte (TiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 2<sup>40</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1 099 511 627 776
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Pebibyte (PiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 2<sup>50</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1 125 899 906 842 624
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>1 Exbibyte (EiB)</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 2<sup>60</sup>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| 1 152 921 504 606 846 976
 
 
|}
 
 
The following table describes the different attributes:
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Self-Service'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Changeable'''</center>
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| ou
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstVolumeCapacityDefault
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstVolumeCapacityMin
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstVolumeCapacityMax
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstVolumeCapacityStep
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
* Arrow left / Arrow right: 1 Gigabyte (sstVolumeCapacityStep)
 
* Page up / Page down: 10 Gigabyte (10 x sstVolumeCapacityStep)
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningMediumChange
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Can a user change the notification warning medium? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). The default is <code>FALSE</code> (no).
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningMediumAdd
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Can a user add new notification warning mediums (<code>mobileTelephoneNumber</code> or <code>mail</code>? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). The default is <code>TRUE</code> (yes). Currently, only adding new <code>mail</code> addresses are supported.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstQuotaChange
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Can the user change the quota? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is FALSE (no).
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstSendCredentialsTo
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| To whom do we send the access data or credentials. At least one entry must exist. Possible values:
 
* <code>sstSendCredentialsTo: login</code>: The access data or credentials are sent to the person logged in.
 
* <code>sstSendCredentialsTo: owner</code>: The access data or credentials are sent to the owner (person), the service belongs to.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailFrom
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The mail address, from which the credentials are to be sent from. In the example from above, this value is '''Support stepping stone AG <support@stepping-stone.ch>'''.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| preferredLanguage
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The notification language, which will be used to used in the mails, that are sent to the reseller, according to [http://www.ietf.org/rfc/rfc1766.txt RFC 1766] ([http://www.iso.org/iso/english_country_names_and_code_elements ISO 3166-1-alpha-2 code]-[http://www.loc.gov/standards/iso639-2/php/code_list.php ISO 639-1 Code]. For example '''de-CH''' or '''en-GB'''.
 
 
 
|}
 
 
Legend:
 
* '''x''': Mandatory in all cases.
 
 
==== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Templates ====
 
<source lang="ldif">
 
This sub tree contains the templates for the Load Balancer as a Service (LBaaS) for the reseller Reseller Ltd. with the uid 4000000:
 
dn: ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
 
objectclass: organizationalUnit
 
ou: templates
 
description: This sub tree contains the templates for the Load Balancer as a Service (LBaaS) for the reseller Reseller Ltd. with the uid 4000000.
 
</source>
 
 
===== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Credentials templates =====
 
This sub tree contains the credentials templates for the Load Balancer as a Service (LBaaS):
 
<source lang="ldif">
 
dn: ou=credentials,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
 
objectclass: organizationalUnit
 
objectclass: sstTemplateSetup
 
ou: credentials
 
description: This leaf contains the credential templates for the Load Balancer as a Service (LBaaS).
 
sstMailFrom: Support stepping stone AG <support@stepping-stone.ch>
 
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail
 
sstMailTemplateFormatSource: txt
 
sstMailTemplateFormatTarget: txt
 
sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment
 
sstTemplateFormatSource: odt
 
sstTemplateFormatTarget: pdf
 
</source>
 
 
The following table describes the different attributes:
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Self-Service'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Changeable'''</center>
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| ou
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailFrom
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The mail address, from which the credentials are sent from. For example:
 
* <code>Support stepping stone AG <support@stepping-stone.ch></code>).
 
If this attribute does not exist, the
 
* <code>sstMailFrom</code>
 
from
 
* <code>ou=settings,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org</code>
 
must be taken.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTo
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| If this multi-valued attribute is set with one or mail address(es), then these recipients will receive the same information as the <code>login</code> user or the <code>owner</code>, depending on the value of <code>sstSendCredentialsTo</code> under <code>ou=settings,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org</code>. Normally, this attribute is not set for the credentials.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplate
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The template, that is used to create the mail that is sent to either the user logged in (<code>sstSendCredentialsTo: login</code>) or to the owner of then newly created service (<code>sstSendCredentialsTo: owner</code>. For example:
 
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateFormatSource
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the source template. Supported values:
 
* <code>txt</code>
 
* <code>html</code>
 
Place holder:
 
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.
 
Default would normally be <code>txt</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateFormatTarget
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the target. Supported values:
 
* <code>txt</code>
 
* <code>html</code>
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstTemplate
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The template, that is used to create the attachment that is sent with the mail. For example:
 
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstTemplateFormatSource
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the source template. Supported values:
 
* <code>txt</code>
 
* <code>odt</code>
 
Place holders:
 
* If we have <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.
 
* If we have <code>odt</code> as a source and <code>odt</code> or <code>pdf</code> as a target, then [https://github.com/IvanGuardado/PHP-Easy-Report PHP-Easy-Report] is used to replace the placeholders. These have the form of <code>&#123;&#123;placeholder&#125;&#125;</code>.<br />
 
 
The complete path and file name is a string concatenation of the values of the attributes <code>sstTemplate</code>, <code>preferredLanguage</code> and <code>sstTemplateFormatSource</code> (with a dot in between the values). For example:
 
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment</code>
 
* <code>preferredLanguage: en-GB</code>
 
* <code>sstTemplateFormatSource: odt</code>
 
This gives us:<br />
 
* <code>file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_attachment.en-GB.ode</code>
 
Default would normally be <code>odt</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstTemplateFormatTarget
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the target. Supported values:
 
* <code>txt</code>
 
* <code>odt</code>
 
* <code>pdf</code>
 
Note to Self-Service developer(s). Please be aware of the following issues when using [https://github.com/IvanGuardado/PHP-Easy-Report PHP-Easy-Report]:
 
* Minor: Spaces (and other special characters) in the document file names are going to be a problem since the names don't get escaped.
 
* Major: You must provide a manually-created unique temp-directory for the PHP-Easy-Report object, otherwise there will be race-conditions.
 
Default would normally be <code>pdf</code>.
 
 
|}
 
 
Legend:
 
* '''x''': Mandatory in all cases.
 
 
====== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Credentials templates email place holders (txt/html) ======
 
Address with an example:
 
<source lang="text">
 
{$company}                        stepping stone AG
 
{$salutation} {$name} {$surname}  Mr. Michael Eichenberger
 
{$address}                        Wasserwerkgasse79
 
{$country}-{$zip} {$location}      CH-3012 Bern
 
</source>
 
 
Date with an example:
 
<source lang="text">
 
{$day}                            11
 
{$month}                          August
 
{$year}                            2019
 
</source>
 
 
 
Storage Service with an example:
 
<source lang="text">
 
{$uid}                            4000124
 
{$password}                        XlWz4Qa#
 
</source>
 
 
 
Optional Values:
 
<source lang="text">
 
{$externalID}                      12345
 
</source>
 
 
====== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Credentials templates LibreOffice place holders (odt) ======
 
LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of <code>{$placeholder}</code> we have <code>&#123;&#123;placeholder&#125;&#125;</code>.
 
 
===== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Quota templates =====
 
Warns the user when the wiki is running out of space (quota).
 
 
This sub tree contains the quota templates for the Load Balancer as a Service (LBaaS):
 
<source lang="ldif">
 
dn: ou=quota,ou=templates,uid=4000000,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
 
objectclass: organizationalUnit
 
objectclass: sstTemplateSetup
 
ou: quota
 
description: This leaf contains the quota templates for the Load Balancer as a Service (LBaaS).
 
sstMailFrom: Support stepping stone AG <support@stepping-stone.ch>
 
sstMailTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail
 
sstMailTemplateFormatSource: txt
 
sstMailTemplateFormatTarget: txt
 
sstMailTemplateReseller: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller
 
sstMailTemplateFormatSource: txt
 
sstMailTemplateFormatTarget: txt
 
</source>
 
 
The following table describes the different attributes:
 
{| style="border-spacing:0;"
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Self-Service'''</center>
 
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Changeable'''</center>
 
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| ou
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| description
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailFrom
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The mail address, from which the quota mails are sent from. For example:
 
* <code>Support stepping stone AG <support@stepping-stone.ch></code>.
 
If this attribute does not exist, the
 
* <code>sstMailFrom</code>
 
from
 
* <code>ou=settings,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org</code>
 
must be taken.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTo
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| If this multi-valued attribute is set with one or mail address(es), then these recipients will receive the same information as the owner. Normally, this attribute is not set.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplate
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The template, that is used to create the mail that is sent to the owner of the service if <code>sstWikiWarningOn: TRUE</code> and <code>sstNotificationWarningMedium: mail</code>. If the <code>mail</code> is not set, you must look for the <code>mail</code> in the owners person entry under <code>uid=&lt;UID&gt;,ou=people,dc=stoney-cloud,dc=org</code>.
 
For example:
 
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/credentials/credentials_mail</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateFormatSource
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the source template. Supported values:
 
* <code>txt</code>
 
* <code>html</code>
 
Place holder:
 
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.
 
Default would normally be <code>txt</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateFormatTarget
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the target. Supported values:
 
* <code>txt</code>
 
* <code>html</code>
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateReseller
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The path and name to a template file, that is used to inform one or more people if the multi-valued attribute <code>sstMailTo</code> is set in the notifications sub tree of the reseller
 
* <code>ou=notifications,uid=&lt;UID&gt;,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
and if <code>sstNotificationWarning</code> is set to <code>quota</code>. In most cased, the attribute <code>sstMailTo</code> is set to the support organisations mail address. For example:
 
* <code>sstMailTo: Support stepping stone AG &lt;support@stepping-stone.ch&gt></code>
 
This way, the support organisation will be pre-informed for when the customer should call or write.
 
 
The information the recipients will receive, is the same as the owner, but will formatted according to:
 
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller</code>
 
* <code>sstMailTemplateResellerFormatSource: txt</code>
 
* <code>sstMailTemplateResellerFormatTarget: txt</code>
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateResellerFormatSource
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the source template. Supported values:
 
* <code>txt</code>
 
* <code>html</code>
 
Place holder:
 
* For both <code>txt</code> or <code>html</code> as a source and <code>txt</code> or <code>html</code>, the place holders have the form of <code>{$placeholder}</code>.
 
 
The complete path and file name is a string concatenation of the values of the attributes <code>sstTemplate</code>, <code>preferredLanguage</code> and <code>sstTemplateFormatSource</code> (with a dot in between the values). For example:
 
* <code>sstTemplate: file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller</code>
 
* <code>preferredLanguage: en-GB</code>
 
* <code>sstTemplateFormatSource: txt</code>
 
This gives us:<br />
 
* <code>file:///var/www/selfcare/htdocs/themes/selfcare.tombstone.ch/templates/services/storage/quota/quota_mail_reseller.en-GB.txt</code>
 
Default would normallb be <code>txt</code>.
 
 
|-
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstMailTemplateResellerFormatTarget
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>1</sup></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The format of the target. Supported values:
 
* <code>txt</code>
 
* <code>html</code>
 
Default would normallb be <code>txt</code>.
 
 
|}
 
 
Legend:
 
* '''x''': Mandatory in all cases.
 
* '''x<sup>1</sup>''': Must exist, if <code>sstMailTo</code> is set.
 
 
====== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Quota templates email place holders (txt/html) ======
 
An example:
 
<source lang="text">
 
{$salutation}      Mr.
 
{$surname}          Eichenberger
 
{$uid}              3723707
 
{$percent}          98
 
{$quota}            100
 
{$storage_size}    40
 
{$snapshot_size}    48
 
</source>
 
 
Optional Values:
 
<source lang="text">
 
{$externalID}      12345
 
</source>
 
 
====== Load Balancer as a Service (LBaaS) - Configuration - Reseller - Quota templates LibreOffice place holders (odt) ======
 
LibreOffice (odt) templates have the same place holders as the E-Mail (text/html) templates. The only thing that changes, are the definitions. Instead of <code>{$placeholder}</code> we have <code>&#123;&#123;placeholder&#125;&#125;</code>.
 
 
== Load Balancer as a Service (LBaaS) - Accounts ==
 
The sub tree for the accounts of the Load Balancer as a Service (LBaaS):
 
<source lang="ldif">
 
dn: ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
objectclass: top
 
objectclass: organizationalUnit
 
ou: accounts
 
description: The sub tree for the accounts of the Load Balancer as a Service (LBaaS).
 
</source>
 
 
=== Load Balancer as a Service (LBaaS) - Account example ===
 
The following example shows the OpenLDAP directory entry for the stoney wiki account with the uid number 3730083:
 
 
<source lang="ldif">
 
<source lang="ldif">
 
dn: uid=3730083,ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
dn: uid=3730083,ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
Line 954: Line 343:
 
objectclass: posixAccount
 
objectclass: posixAccount
 
objectclass: shadowAccount
 
objectclass: shadowAccount
objectclass: sstWiki
+
objectclass: sstLBaaS
 
objectclass: sstProvisioning
 
objectclass: sstProvisioning
 
objectclass: sstRelationship
 
objectclass: sstRelationship
Line 961: Line 350:
 
uidNumber: 3730083
 
uidNumber: 3730083
 
gidNumber: 3730083
 
gidNumber: 3730083
cn: 3730083.stoney-wiki.com
+
cn: 3730083
gecos: 3730083.stoney-wiki.com
+
gecos: Example Ltd. (www.example.com)                          # This appears in the 'getent passwd' output. Company name and the main fully qualified domain name (FQDN).
homeDirectory: /var/wiki/3/083/730/3730083
+
homeDirectory: /home/3730083
 
loginShell: /bin/false
 
loginShell: /bin/false
 
shadowFlag: 134539460
 
shadowFlag: 134539460
Line 970: Line 359:
 
shadowWarning: 7
 
shadowWarning: 7
 
sstIsActive: TRUE
 
sstIsActive: TRUE
sstNotificationWarningOn: TRUE
+
sstLBaaSFrontendURI: https://www.example.com/                  # Uniform Resource Identifier with optional label.
sstNotificationWarning: quota
+
sstLBaaSFrontendURI: https://example.com/                      # Uniform Resource Identifier with optional label.
sstNotificationWarningMedium: mail
+
sstLBaaSFrontendURI: https://api.example.com/                  # Uniform Resource Identifier with optional label.
sstInformPersonUID: 1000482
+
sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/  # Uniform Resource Identifier with optional label.
sstQuota: 42949672960
+
sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/  # Uniform Resource Identifier with optional label.
sstSoftwareVersion: 1.31.5
+
sstLBaaSHost: haproxy-001.os.stoney-cloud.com                  # Fully qualified domain name (FQDN).
sstFileUploadSize: 5368709120
+
sstLBaaSHost: haproxy-002.os.stoney-cloud.com                  # Fully qualified domain name (FQDN).
host: kvm-1110
+
 
sstProvisioningMode: add
 
sstProvisioningMode: add
 
sstProvisioningExecutionDate: 0
 
sstProvisioningExecutionDate: 0
Line 983: Line 371:
 
sstBelongsToResellerUID: 4000000
 
sstBelongsToResellerUID: 4000000
 
sstBelongsToCustomerUID: 4000001
 
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUID: 4000002
+
sstBelongsToServiceUID: 4000003                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/).
 +
sstBelongsToServiceUID: 4000004                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/).
 
</source>
 
</source>
 +
 +
The LDIF above can be queried via the cli command <code>getent passwd</code>:
 +
<syntaxhighlight lang='bash'>
 +
getent passwd 3730083
 +
</syntaxhighlight>
 +
 +
This will result in the following output:
 +
<syntaxhighlight lang='text'>
 +
# .----------------------------------------------------------------------------- login name
 +
# |    .----------------------------------------------------------------------- encrypted password indicator
 +
# |    | .--------------------------------------------------------------------- numerical user ID
 +
# |    | |      .------------------------------------------------------------- numerical group ID
 +
# |    | |      |      .----------------------------------------------------- gecos field (the typical format is a comma-delimited list)
 +
# |    | |      |      |                              .---------------------- user home directory
 +
# |    | |      |      |                              |            .-------- user command interpreter
 +
# |    | |      |      |                              |            |
 +
# |    | |      |      |                              |            |
 +
3730083:x:3730083:3730083:Example Ltd. (www.example.com):/home/3730083:/bin/false
 +
</syntaxhighlight>
  
 
The following table describes the different attributes:
 
The following table describes the different attributes:
{| style="border-spacing:0;"
+
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Attribute'''
+
! style="text-align:left; width: 180px" | Attribute
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| '''Objectclass'''
+
! style="text-align:left; width: 220px" | Objectclass
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Existence'''</center>
+
! style="width: 80px"                   | Existance
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Mandatory'''</center>
+
! style="width: 80px"                   | Mandatory
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Self-Service'''</center>
+
! style="text-align:left;"             | Description
| style="border-top:0.002cm solid #000000;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>'''Changeable'''</center>
+
| style="border:0.002cm solid #000000;padding:0.097cm;"| '''Description'''
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uid
+
| uid
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| account
+
| account
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| The unique identifier (uid). This attribute is created by the Self-Service interface by reading (and incrementing) the next free uid from <cod>cn=nextfreeuid,ou=administration,dc=stoney-cloud,dc=org</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The unique identifier (uid). This attribute is created by the Self-Service interface by reading (and incrementing) the next free uid from "cn=nextfreeuid,ou=administration,dc=stoney-cloud,dc=org".
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| userPassword
+
| userPassword
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| Identifies the entry's password and encryption method in the following format: <code>{encryption method}encrypted password</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
 
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Identifies the entry's password and encryption method in the following format: <code>{encryption method}encrypted password</code>. For example: {SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U. This password will be automatically set through the Self-Service interface. Afterwords, the password can be changed by the user (including the reseller and customer). The initial password is stored in clear text and is encrypted by the provisioning daemon.
+
For example: <code>{SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U</code>.
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| uidNumber
+
| uidNumber
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Related to the /etc/shadow file, this attribute specifies the user's login ID. Has the same value as the <code>uid</code>. For example: <code>3730083</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute specifies the user's login ID. Is the same as the '''uid'''. For example: '''3730083'''.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| gidNumber
+
| gidNumber
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Group ID number. Has the same value as the <code>uid</code>. For example: <code>3730083</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Group ID number. Is the same as the '''uid'''. For example: '''3730083'''.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| cn
+
| cn
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| As we don't use this attribute (but the attribute is mandatory), we set this to <code>uid</code> value. For example: <code>3730083</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Consists of the '''uid''' and the domain '''stoney-wiki.com'''. For example: '''3730083.stoney-wiki.com'''.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| gecos
+
| gecos
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
|  Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of <code>givenName</code> and <code>surname</code>, for example <code>Michael Eichenberger</code>. These values are taken from the owners entry (ou=people). For a service account, the attribute <code>sstDisplayName</code> from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a '''IA5String''' (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. Consists of the '''uid''' and the domain '''stoney-wiki.com'''. For example: '''3730083.stoney-wiki.com'''.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"|  Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of <code>givenName</code> and <code>surname</code>, for example <code>Michael Eichenberger</code>. These values are taken from the owners entry (ou=people). For a service account, the attribute <code>sstDisplayName</code> from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a '''IA5String''' (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. Consists of the '''uid''' and the domain '''stoney-wiki.com'''. For example: '''3730083.stoney-wiki.com'''.
+
 
You can use:<br />
 
You can use:<br />
 
<code>~ $ echo "Tüpfelhyänenöhrchen" | iconv -f 'utf-8' -t 'ASCII//TRANSLIT'</code><br />
 
<code>~ $ echo "Tüpfelhyänenöhrchen" | iconv -f 'utf-8' -t 'ASCII//TRANSLIT'</code><br />
Line 1,057: Line 453:
 
Please be aware, that some characters don't get converted properly ... For example: Ø and £. The characters $ and € work.
 
Please be aware, that some characters don't get converted properly ... For example: Ø and £. The characters $ and € work.
  
|-
+
This appears in the 'getent passwd' output. Company name and the main fully qualified domain name (FQDN). For example: <code>Example Ltd. (www.example.com)</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| homeDirectory
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid '''3730083'''.
+
<code>/var/wiki/g/efg/bcd/abcdefg</code><br/>
+
<code>/var/wiki/3/083/730/3730083</code>
+
This attribute is created by the Self-Service interface.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| loginShell
+
| homeDirectory
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| posixAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid <code>3730083</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The path to the login shell. The default is '''/bin/false''' and can no be changed.
+
  
|-
+
<code>/home/abcdefg</code><br/>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowFlag
+
<code>/home/3730083</code>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowAccount
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute is currently not used and is reserved for future use. The default is set to '''134539460''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowLastChange
+
| loginShell
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowAccount
+
| posixAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| The path to the login shell. The default is <code>/bin/false</code> and must not be changed.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute specifies number of days between January 1, 1970, and the date that the password was last modified. Must be set to the day, that the password was set (must be updated, when the password is changed). This attribute is created by the Self-Service interface.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowMax
+
| shadowFlag
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowAccount
+
| shadowAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Related to the <code>/etc/shadow</code> file, this attribute is currently not used and is reserved for future use. The default is set to <code>134539460</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute specifies the maximum number of days the password is valid. The default is '''99999''', which corresponds to about 273 years. In reality, this means, that the user does not need to change the password. This attribute is created by the Self-Service interface. The value is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowWarning
+
| shadowLastChange
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| shadowAccount
+
| shadowAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Related to the <code>/etc/shadow</code> file, this attribute specifies number of days between January 1, 1970, and the date that the password was last modified. Must be set to the day, that the password was set (must be updated, when the password is changed).  
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Related to the /etc/shadow file, this attribute specifies the number of days before the password expires that the user is warned. The default is '''7''' and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
|-
+
To create this value, you can use: <code>echo $(($(date --utc --date "$1" +%s)/86400))</code>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstIsActive
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Is the wiki account active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>TRUE</code> (yes) and is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningOn
+
| shadowMax
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| shadowAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Related to the <code>/etc/shadow</code> file, this attribute specifies the maximum number of days the password is valid. The default is <code>99999</code>, which corresponds to about 273 years. In reality, this means, that the user does not need to change the password.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Are the users notification warnings turned on or not? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is TRUE (yes) and is taken from the "ou=settings,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarning
+
| shadowWarning
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| shadowAccount
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Related to the <code>/etc/shadow</code> file, this attribute specifies the number of days before the password expires that the user is warned. The default is <code>7</code>.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute will be used to turn single notifications on or off. The attribute <code>sstWikiWarningOn</code> must be set to <code>TRUE</code>.
+
 
+
Currently, the Load Balancer as a Service (LBaaS) only supports <code>quota</code> (the names correspond with the template dn).
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNotificationWarningMedium
+
| sstIsActive
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| sstRelationship
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Is the Load Balancer as a Service (LBaaS) account active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). Default is <code>TRUE</code> (yes).
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The notification medium, either sms (points to the multi-valued attribute <code>mobileTelephoneNumber</code>) or mail (points to the multi-valued attribute <code>mail</code>). Currently, only mail is supported. This is the default is taken from the "ou=defaults,uid=<UID>,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org" entry.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstSoftwareVersion
+
| sstLBaaSFrontendURI
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| sstLBaaS
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) frontend servers in the form of a Uniform Resource Identifier with optional label. Some examples:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
* <code>https://www.example.com/</code>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
+
* <code>https://example.com/</code>
 +
* <code>https://api.example.com/</code>
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstFileUploadSize
+
| sstLBaaSBackendURI
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| sstLBaaS
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) backend servers in the form of a Uniform Resource Identifier with optional label. Some examples:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
* <code>https://sst-int-001.os.stoney-cloud.com/</code>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
+
* <code>https://sst-int-002.os.stoney-cloud.com/</code>
 
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| host
+
| sstLBaaSHost
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstWiki
+
| sstLBaaS
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) servers in the form of a fully qualified domain name. Some examples:
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
* <code>haproxy-001.os.stoney-cloud.com</code>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| TBD
+
* <code>haproxy-002.os.stoney-cloud.com</code>
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioningMode
+
| sstProvisioningMode
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioning
+
| sstProvisioning
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| The provisioning mode, either <code>add</code>, <code>modify</code> or <code>delete</code>. For a new account, this attribute must be set to <code>add</code>. See [[#Provisioning | Provisioning]] for details.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The provisioning mode, either <code>add</code>, <code>modify</code> or <code>delete</code>. For a new account, this attribute must be set to <code>add</code>. See [[#Provisioning | Provisioning]] for details.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioningExecutionDate
+
| sstProvisioningExecutionDate
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioning
+
| sstProvisioning
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| The date the provisioning shall occur in the form of [YYYY][MM][DD] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For a new account, this attribute must be set to '''0'''. See [[#Provisioning | Provisioning]] for details.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The date the provisioning shall occur in the form of [YYYY][MM][DD] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For a new account, this attribute must be set to '''0'''. See [[#Provisioning | Provisioning]] for details.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioningReturnValue
+
| sstProvisioningReturnValue
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioning
+
| sstProvisioning
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| <center></center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| The provisioning return value written by the [[stoney_wiki:_prov-wiki-mediawiki |prov-wiki-mediawiki]] daemon. '''0''' means success, '''>0''' means failure. See the prov-wiki-mediawiki [[stoney_wiki:_prov-wiki-mediawiki#Exit_Codes | Exit Codes]] for detailed information.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The provisioning return value written by the [[stoney_wiki:_prov-wiki-mediawiki |prov-wiki-mediawiki]] daemon. '''0''' means success, '''>0''' means failure. See the prov-wiki-mediawiki [[stoney_wiki:_prov-wiki-mediawiki#Exit_Codes | Exit Codes]] for detailed information.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioningState
+
| sstProvisioningState
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstProvisioning
+
| sstProvisioning
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| The provisioning state, either 0 or in the form of  [YYYY][MM][DD]T[hh][mm][ss] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For a new account, this attribute must be set to '''0'''. See [[#Provisioning | Provisioning]] for details.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| The provisioning state, either 0 or in the form of  [YYYY][MM][DD]T[hh][mm][ss] ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). For a new account, this attribute must be set to '''0'''. See [[#Provisioning | Provisioning]] for details.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToResellerUID
+
| sstBelongsToResellerUID
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"|
+
| sstRelationship
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Stores the reseller UID the leaf belongs to.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
+
| sstBelongsToCustomerUID
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| TBD
+
| sstRelationship
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUST</center>
+
| <center>MUST</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x</center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Stores the customer UID the leaf belongs to.
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to.
+
  
 
|-
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToPersonUID
+
| sstBelongsToServiceUID
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationship
+
| sstRelationship
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MAY</center>
+
| <center>MAY</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>x<sup>3</sup></center>
+
| <center>x</center>
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| Stores the service UID(s) this entry belongs to. The service belongs to the backend host(s) defined in the variable(s) (sstLBaaSBackendURI). This multi-valued attribute can point to multiple services (one or more LBaaS backends).
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center></center>
+
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:0.002cm solid #000000;padding:0.097cm;"| Stores the person UID the leaf belongs to.
+
  
 
|}
 
|}
Line 1,247: Line 590:
 
Legend:
 
Legend:
 
* '''x''': Mandatory in all cases.
 
* '''x''': Mandatory in all cases.
* '''x<sup>1</sup>''': Only show, if the number is larger than zero.
 
* '''x<sup>2</sup>''': Only show, if <code>sstWikiWarningOn</code> is set to <code>TRUE</code>.
 
* '''x<sup>3</sup>''': Either <code>sstBelongsToPersonUID</code> or <code>sstBelongsToServiceUID</code> must bei set.
 
  
 
== Load Balancer as a Service (LBaaS) - Groups ==
 
== Load Balancer as a Service (LBaaS) - Groups ==
Line 1,260: Line 600:
 
description: The sub tree for the groups of the Load Balancer as a Service (LBaaS).
 
description: The sub tree for the groups of the Load Balancer as a Service (LBaaS).
 
</source>
 
</source>
 +
 +
The following table describes the different attributes:
 +
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
 +
! style="text-align:left; width: 180px" | Attribute
 +
! style="text-align:left; width: 220px" | Objectclass
 +
! style="width: 80px"                  | Existance
 +
! style="width: 80px"                  | Mandatory
 +
! style="text-align:left;"              | Description
 +
 +
|-
 +
| ou
 +
| organizationalUnit
 +
| <center>MUST</center>
 +
| <center>x</center>
 +
| The name of the leaf.
 +
 +
In this case: <code>groups</code>.
 +
 +
|-
 +
| description
 +
| organizationalUnit
 +
| <center>MAY</center>
 +
| <center>x</center>
 +
| The description of the leaf.
 +
 +
In this case: <code>The sub tree for the groups of the Load Balancer as a Service (LBaaS).</code>
 +
 +
|}
 +
 +
Legend:
 +
* '''x''': Mandatory in all cases.
  
 
=== Load Balancer as a Service (LBaaS) - Group example ===
 
=== Load Balancer as a Service (LBaaS) - Group example ===
 +
The following example shows the OpenLDAP directory entry for the Load Balancer as a Service (LBaaS) group with the uid number 3730083:
 +
 
<source lang="ldif">
 
<source lang="ldif">
 
dn: cn=3730083,ou=groups,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
 
dn: cn=3730083,ou=groups,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
Line 1,269: Line 642:
 
cn: 3730083
 
cn: 3730083
 
gidNumber: 3730083
 
gidNumber: 3730083
sstIsActive: TRUE
 
 
sstBelongsToResellerUID: 4000000
 
sstBelongsToResellerUID: 4000000
 
sstBelongsToCustomerUID: 4000001
 
sstBelongsToCustomerUID: 4000001
sstBelongsToPersonUID: 4000002
+
sstBelongsToServiceUID: 4000003                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/).
 +
sstBelongsToServiceUID: 4000004                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/).
 
</source>
 
</source>
  
== Load Balancer as a Service (LBaaS) - SSL-certificates ==
+
The following table describes the different attributes:
The leaf entries for SSL-certificates of the Load Balancer as a Service (LBaaS) are located directly below the stoney wiki account entry.
+
{| border="1" style="border-collapse: collapse; font-size:80%;" width="100%" class="wikitable sortable"
 +
! style="text-align:left; width: 180px" | Attribute
 +
! style="text-align:left; width: 220px" | Objectclass
 +
! style="width: 80px"                  | Existance
 +
! style="width: 80px"                  | Mandatory
 +
! style="text-align:left;"              | Description
  
=== Load Balancer as a Service (LBaaS) - SSL-certificate example ===
+
|-
<source lang="ldif">
+
| cn
dn: uid=3732364,uid=3730083,ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
+
| posixGroup
objectclass: top
+
| <center>MUST</center>
objectclass: sstCertificate
+
| <center>x</center>
objectclass: sstProvisioning
+
| As we don't use this attribute (but the attribute is mandatory and is part of the dn), we set this to <code>uid</code> value. For example: <code>3730083</code>.
objectclass: sstRelationship
+
uid: 3732364
+
sstWebsiteURL: wiki.stepping-stone.ch
+
host: kvm-1110
+
sstIsActive: TRUE
+
sstProvisioningMode: add
+
sstProvisioningExecutionDate: 0
+
sstProvisioningState: 0
+
sstBelongsToResellerUID: 4000000
+
sstBelongsToCustomerUID: 4000001
+
sstBelongsToPersonUID: 4000002
+
</source>
+
  
== Load Balancer as a Service (LBaaS) - Provisioning ==
+
|-
See the [[stoney core: OpenLDAP provisioning|OpenLDAP provisioning]] page for the overview of the provisioning functionality and [[stoney wiki: prov-wiki-mediawiki]] the actual wiki provisioning.
+
| gidNumber
 +
| posixGroup
 +
| <center>MUST</center>
 +
| <center>x</center>
 +
| The numerical group ID of the Load Balancer as a Service (LBaaS) group.
 +
 
 +
|-
 +
| sstBelongsToResellerUID
 +
| sstRelationship
 +
| <center>MUST</center>
 +
| <center>x</center>
 +
| Stores the reseller UID the leaf belongs to.
 +
 
 +
|-
 +
| sstBelongsToCustomerUID
 +
| sstRelationship
 +
| <center>MUST</center>
 +
| <center>x</center>
 +
| Stores the customer UID the leaf belongs to.
 +
 
 +
|-
 +
| sstBelongsToServiceUID
 +
| sstRelationship
 +
| <center>MAY</center>
 +
| <center>x</center>
 +
| Stores the service UID(s) this entry belongs to. The service belongs to the backend host(s) defined in the variable(s) (sstLBaaSBackendURI). This multi-valued attribute can point to multiple services (one or more LBaaS backends).
 +
 
 +
|}
 +
 
 +
Legend:
 +
* '''x''': Mandatory in all cases.
  
 
= Links =
 
= Links =

Latest revision as of 09:18, 13 May 2022

Abstract

This document describes the OpenLDAP directory data organisation for the Load Balancer as a Service (LBaaS).

Data Organisation

The following chapters explain the data organisation of the stoney cloud OpenLDAP directory. In this case we are looking at the Load Balancer as a Service (LBaaS).

Load Balancer as a Service (LBaaS)

The sub tree ou=lbaas,ou=services,dc=stoney-cloud,dc=org contains all the HAProxy based Load Balancer as a Service (LBaaS) data. The following LDIF shows the lbaas LDAP entry for the Load Balancer as a Service (LBaaS):

dn: ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: lbaas
description: The sub tree for the HAproxy based Load Balancer as a Service (LBaaS).

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
ou organizationalUnit
MUST
x
The name of the leaf.

For the HAProxy based Load Balancer as a Service (LBaaS) this is: lbaas.

description organizationalUnit
MAY
x
The description of the leaf.

For the HAProxy based Load Balancer as a Service (LBaaS) the description ist is: The sub tree for the HAproxy based Load Balancer as a Service (LBaaS).

Legend:

  • x: Mandatory in all cases.

Load Balancer as a Service (LBaaS) - Configuration

The sub tree for the configuration of the Load Balancer as a Service (LBaaS):

dn: ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: configuration
description: The sub tree for the configuration of the HAProxy based Load Balancer as a Service (LBaaS).

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
ou organizationalUnit
MUST
x
The name of the leaf.

For the configuration of the HAProxy based Load Balancer as a Service (LBaaS) this is: configuration.

description organizationalUnit
MAY
x
The description of the leaf.

For the configuration of the HAProxy based Load Balancer as a Service (LBaaS) this is: The sub tree for the configuration of the HAProxy based Load Balancer as a Service (LBaaS).

Legend:

  • x: Mandatory in all cases.

Load Balancer as a Service (LBaaS) - Configuration - Provisioning daemon

See the Services description for the naming convention.

The sub tree for the configuration of the prov-lbaas-haproxy daemon:

dn: ou=prov-lbaas-haproxy,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
objectclass: sstServiceConfigurationObjectClass
ou: prov-lbaas-haproxy
description: The sub tree for the configuration of the prov-lbaas-haproxy provisioning daemon.
sstIsActive: TRUE

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
ou organizationalUnit
MUST
x
The name of the leaf.

For the HAProxy based Load Balancer as a Service (LBaaS) prov-lbaas-haproxy provisioning daemon this is: prov-lbaas-haproxy.

description organizationalUnit
MAY
x
The description of the leaf.

For the HAProxy based Load Balancer as a Service (LBaaS) prov-lbaas-haproxy provisioning daemon this is: The sub tree for the configuration of the prov-lbaas-haproxy provisioning daemon.

sstIsActive sstServiceConfigurationObjectClass
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

Legend:

  • x: Mandatory in all cases.

Load Balancer as a Service (LBaaS) - Configuration - Reseller

The sub tree for the reseller specific Load Balancer as a Service (LBaaS) settings:

dn: ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: reseller
description: The sub tree for the reseller specific configuration of the HAProxy based Load Balancer as a Service (LBaaS).

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
ou organizationalUnit
MUST
x
The name of the leaf.

For the reseller specific HAProxy based Load Balancer as a Service (LBaaS) service this is: reseller.

description organizationalUnit
MAY
x
The description of the leaf.

For the reseller specific HAProxy based Load Balancer as a Service (LBaaS) service this is: The sub tree for the configuration of the HAProxy based Load Balancer as a Service (LBaaS).

Legend:

  • x: Mandatory in all cases.

The sub tree for the specific Load Balancer as a Service (LBaaS) settings for the reseller Reseller Ltd. with the uid 4000000.

dn: uid=4000000,ou=reseller,ou=configuration,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstReseller
objectclass: sstServiceConfigurationObjectClass
uid: 4000000
organizationName: Reseller Ltd.
description: The sub tree for the specific Load Balancer as a Service (LBaaS) settings for the reseller Reseller Ltd. with the uid 4000000.
sstIsActive: TRUE
sstIsCompany: TRUE
sstIsDefault: TRUE
sstBelongsToResellerUID: 4000000

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
uid sstReseller
MUST
x
A unique integer value with 7 digits or more.

For example: uid: 4000000 corresponds with sstBelongsToResellerUID: 4000000.

organizationName sstReseller
MAY
x1
The company name.

For example: stepping stone AG.

givenName sstReseller
MAY
x1
Name.

For example: Hans.

surname sstReseller
MAY
x1
Surname.

For example: Muster.

description sstReseller
MAY
x
The description of the leaf.

For example: The sub tree for the specific Load Balancer as a Service (LBaaS) settings for the reseller Reseller Ltd. with the uid 4000000.

sstIsActive sstReseller
MUST
x
Is the entry active? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

sstIsCompany sstReseller
MUST
x
Do we have an organisation or a private person? Either TRUE (yes) or FALSE (no).

The default value is TRUE.

sstIsDefault sstServiceConfigurationObjectClass
MAY
x
Is this leaf a default entry? Either TRUE (yes) or FALSE (no). If sstIsDefault is set to TRUE, this entry acts as a fall back configuration. In other words: If a reseller doesn't have his own Load Balancer as a Service (LBaaS) configuration, then this one will be used.

As you would normally have only one default configuration per cloud, the default value is FALSE.

sstBelongsToResellerUID sstReseller
MUST
x
Stores the reseller UID the leaf belongs to. A unique value with 7 digits or more.

For example: sstBelongsToResellerUID: 4000000 corresponds with uid: 4000000.

Legend:

  • x: Mandatory in all cases.
  • x1: If sstIsCompany is set to TRUE, the organizationName must be set. Otherwise givenName and surname must be set.

Load Balancer as a Service (LBaaS) - Accounts

The sub tree for the accounts of the Load Balancer as a Service (LBaaS):

dn: ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: accounts
description: The sub tree for the accounts of the Load Balancer as a Service (LBaaS).

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
ou organizationalUnit
MUST
x
The name of the leaf.

In this case: accounts.

description organizationalUnit
MAY
x
The description of the leaf.

In this case: The sub tree for the accounts of the Load Balancer as a Service (LBaaS).

Legend:

  • x: Mandatory in all cases.


Load Balancer as a Service (LBaaS) - Account example

The following example shows the OpenLDAP directory entry for the Load Balancer as a Service (LBaaS) account with the uid number 3730083:

dn: uid=3730083,ou=accounts,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: account
objectclass: posixAccount
objectclass: shadowAccount
objectclass: sstLBaaS
objectclass: sstProvisioning
objectclass: sstRelationship
uid: 3730083
userPassword: {SSHA}E/KLUgeAtApAPQ7mG2GMddCxTE9m9QOS
uidNumber: 3730083
gidNumber: 3730083
cn: 3730083
gecos: Example Ltd. (www.example.com)                          # This appears in the 'getent passwd' output. Company name and the main fully qualified domain name (FQDN).
homeDirectory: /home/3730083
loginShell: /bin/false
shadowFlag: 134539460
shadowLastChange: 11108
shadowMax: 99999
shadowWarning: 7
sstIsActive: TRUE
sstLBaaSFrontendURI: https://www.example.com/                  # Uniform Resource Identifier with optional label.
sstLBaaSFrontendURI: https://example.com/                      # Uniform Resource Identifier with optional label.
sstLBaaSFrontendURI: https://api.example.com/                  # Uniform Resource Identifier with optional label.
sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/   # Uniform Resource Identifier with optional label.
sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/   # Uniform Resource Identifier with optional label.
sstLBaaSHost: haproxy-001.os.stoney-cloud.com                  # Fully qualified domain name (FQDN).
sstLBaaSHost: haproxy-002.os.stoney-cloud.com                  # Fully qualified domain name (FQDN).
sstProvisioningMode: add
sstProvisioningExecutionDate: 0
sstProvisioningState: 0
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToServiceUID: 4000003                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/).
sstBelongsToServiceUID: 4000004                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/).

The LDIF above can be queried via the cli command getent passwd:

getent passwd 3730083

This will result in the following output:

# .----------------------------------------------------------------------------- login name
# |     .----------------------------------------------------------------------- encrypted password indicator
# |     | .--------------------------------------------------------------------- numerical user ID
# |     | |       .------------------------------------------------------------- numerical group ID
# |     | |       |       .----------------------------------------------------- gecos field (the typical format is a comma-delimited list)
# |     | |       |       |                              .---------------------- user home directory
# |     | |       |       |                              |             .-------- user command interpreter
# |     | |       |       |                              |             |
# |     | |       |       |                              |             |
3730083:x:3730083:3730083:Example Ltd. (www.example.com):/home/3730083:/bin/false

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
uid account
MUST
x
The unique identifier (uid). This attribute is created by the Self-Service interface by reading (and incrementing) the next free uid from <cod>cn=nextfreeuid,ou=administration,dc=stoney-cloud,dc=org</code>.
userPassword posixAccount
MAY
x
Identifies the entry's password and encryption method in the following format: {encryption method}encrypted password.

For example: {SSHA}zBiT1dHAZh/8zbCeyocRVWhdP0j9xJ3U.

uidNumber posixAccount
MUST
x
Related to the /etc/shadow file, this attribute specifies the user's login ID. Has the same value as the uid. For example: 3730083.
gidNumber posixAccount
MUST
x
Group ID number. Has the same value as the uid. For example: 3730083.
cn posixAccount
MUST
x
As we don't use this attribute (but the attribute is mandatory), we set this to uid value. For example: 3730083.
gecos posixAccount
MAY
x
Named for historical reasons, the GECOS field is mandatory and is used to store extra information (such as the user's full name). Utilities such as finger or getent access this field to provide additional user information. For a personal account, this entry would consist of givenName and surname, for example Michael Eichenberger. These values are taken from the owners entry (ou=people). For a service account, the attribute sstDisplayName from the corresponding service would be used for the content of this attribute. Please be aware, that this attribute is a IA5String (OID=1.3.6.1.4.1.1466.115.121.1.26) IA5 (almost ASCII) character set (7-bit). Does NOT allow extended characters e.g. é, Ø, å etc. The Self-Service interface automatically creates the content of this attribute. Consists of the uid and the domain stoney-wiki.com. For example: 3730083.stoney-wiki.com.

You can use:
~ $ echo "Tüpfelhyänenöhrchen" | iconv -f 'utf-8' -t 'ASCII//TRANSLIT'
which gives you:
Tuepfelhyaenenoehrchen
or:
iconv("UTF-8", "ASCII//TRANSLIT", "Tüpfelhyänenöhrchen")
Please be aware, that some characters don't get converted properly ... For example: Ø and £. The characters $ and € work.

This appears in the 'getent passwd' output. Company name and the main fully qualified domain name (FQDN). For example: Example Ltd. (www.example.com).

homeDirectory posixAccount
MUST
x
The directory path corresponds with the 7 digit account uid. The following example describes, how the directory structure is built up for the account with the uid 3730083.

/home/abcdefg
/home/3730083

loginShell posixAccount
MAY
x
The path to the login shell. The default is /bin/false and must not be changed.
shadowFlag shadowAccount
MAY
x
Related to the /etc/shadow file, this attribute is currently not used and is reserved for future use. The default is set to 134539460.
shadowLastChange shadowAccount
MAY
x
Related to the /etc/shadow file, this attribute specifies number of days between January 1, 1970, and the date that the password was last modified. Must be set to the day, that the password was set (must be updated, when the password is changed).

To create this value, you can use: echo $(($(date --utc --date "$1" +%s)/86400))

shadowMax shadowAccount
MAY
x
Related to the /etc/shadow file, this attribute specifies the maximum number of days the password is valid. The default is 99999, which corresponds to about 273 years. In reality, this means, that the user does not need to change the password.
shadowWarning shadowAccount
MAY
x
Related to the /etc/shadow file, this attribute specifies the number of days before the password expires that the user is warned. The default is 7.
sstIsActive sstRelationship
MAY
x
Is the Load Balancer as a Service (LBaaS) account active? Either TRUE (yes) or FALSE (no). Default is TRUE (yes).
sstLBaaSFrontendURI sstLBaaS
MUST
x
This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) frontend servers in the form of a Uniform Resource Identifier with optional label. Some examples:
sstLBaaSBackendURI sstLBaaS
MUST
x
This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) backend servers in the form of a Uniform Resource Identifier with optional label. Some examples:
sstLBaaSHost sstLBaaS
MUST
x
This multi-valued attribute stores one or more Load Balancer as a Service (LBaaS) servers in the form of a fully qualified domain name. Some examples:
  • haproxy-001.os.stoney-cloud.com
  • haproxy-002.os.stoney-cloud.com
sstProvisioningMode sstProvisioning
MUST
x
The provisioning mode, either add, modify or delete. For a new account, this attribute must be set to add. See Provisioning for details.
sstProvisioningExecutionDate sstProvisioning
MUST
x
The date the provisioning shall occur in the form of [YYYY][MM][DD] (ISO 8601). For a new account, this attribute must be set to 0. See Provisioning for details.
sstProvisioningReturnValue sstProvisioning
MAY
The provisioning return value written by the prov-wiki-mediawiki daemon. 0 means success, >0 means failure. See the prov-wiki-mediawiki Exit Codes for detailed information.
sstProvisioningState sstProvisioning
MUST
x
The provisioning state, either 0 or in the form of [YYYY][MM][DD]T[hh][mm][ss] (ISO 8601). For a new account, this attribute must be set to 0. See Provisioning for details.
sstBelongsToResellerUID sstRelationship
MUST
x
Stores the reseller UID the leaf belongs to.
sstBelongsToCustomerUID sstRelationship
MUST
x
Stores the customer UID the leaf belongs to.
sstBelongsToServiceUID sstRelationship
MAY
x
Stores the service UID(s) this entry belongs to. The service belongs to the backend host(s) defined in the variable(s) (sstLBaaSBackendURI). This multi-valued attribute can point to multiple services (one or more LBaaS backends).

Legend:

  • x: Mandatory in all cases.

Load Balancer as a Service (LBaaS) - Groups

The sub tree for the groups of the Load Balancer as a Service (LBaaS):

dn: ou=groups,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: groups
description: The sub tree for the groups of the Load Balancer as a Service (LBaaS).

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
ou organizationalUnit
MUST
x
The name of the leaf.

In this case: groups.

description organizationalUnit
MAY
x
The description of the leaf.

In this case: The sub tree for the groups of the Load Balancer as a Service (LBaaS).

Legend:

  • x: Mandatory in all cases.

Load Balancer as a Service (LBaaS) - Group example

The following example shows the OpenLDAP directory entry for the Load Balancer as a Service (LBaaS) group with the uid number 3730083:

dn: cn=3730083,ou=groups,ou=lbaas,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: posixGroup
objectclass: sstRelationship
cn: 3730083
gidNumber: 3730083
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
sstBelongsToServiceUID: 4000003                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-001.os.stoney-cloud.com/).
sstBelongsToServiceUID: 4000004                                # The service belongs to the backend host defined in the variabe (sstLBaaSBackendURI: https://sst-int-002.os.stoney-cloud.com/).

The following table describes the different attributes:

Attribute Objectclass Existance Mandatory Description
cn posixGroup
MUST
x
As we don't use this attribute (but the attribute is mandatory and is part of the dn), we set this to uid value. For example: 3730083.
gidNumber posixGroup
MUST
x
The numerical group ID of the Load Balancer as a Service (LBaaS) group.
sstBelongsToResellerUID sstRelationship
MUST
x
Stores the reseller UID the leaf belongs to.
sstBelongsToCustomerUID sstRelationship
MUST
x
Stores the customer UID the leaf belongs to.
sstBelongsToServiceUID sstRelationship
MAY
x
Stores the service UID(s) this entry belongs to. The service belongs to the backend host(s) defined in the variable(s) (sstLBaaSBackendURI). This multi-valued attribute can point to multiple services (one or more LBaaS backends).

Legend:

  • x: Mandatory in all cases.

Links