Changes

Jump to: navigation, search
/* OpenStack (service) - Projects (tenants) - Examples */
= Data Organisation =
The following chapters explain the data organisation of the [https://www.openstack.org/ OpenStack] based stoney cloud OpenLDAP directory, in this case we looking at the [https://www.stoney-cloud.com/ stoney cloud] service.
== IaaS OpenStack (Infrastructure as a Serviceservice) ==The subtree sub tree <code>ou=openstack,ou=service,dc=stoney-cloud,dc=org </code> contains all the OpenStack based stoney cloud service data. The following LDIF shows the '''iaas''' entry for the stoney cloud service:
<source lang="ldif">
dn: ou=openstack,ou=services,dc=stoney-cloud,dc=org
</source>
=== OpenStack (service) - Configuration ===
<source lang="ldif">
dn: ou=configuration,ou=openstack,ou=services,dc=stoney-cloud,dc=org
</source>
==== Configuration OpenStack (resellersservice) - Configuration - Resellers ====
<source lang="ldif">
dn: ou=reseller,ou=configuration,ou=openstack,ou=services,dc=stoney-cloud,dc=org
</source>
=== OpenStack (service) - Domains (resellers) ===
<source lang="ldif">
dn: ou=domains,ou=openstack,ou=services,dc=stoney-cloud,dc=org
</source>
==== OpenStack (service) - Domains (resellers) - Domain (OpenStack Default Domain) example ====
This is a very special domain and is created during the bootstrapping phase of the OpenStack installation. Therefore we '''never''' provision this domain and we '''do not''' add the <code>objectclass: sstProvisioning</code> to this domain.
<source lang="ldif">
sstBillable: FALSE
sstConsolidatedBill: FALSE
sstRegion: duedingen_test
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
</source>
==== OpenStack (service) - Domains (resellers) - Domain (OpenStack Service Provider Domain) example ====
This is also quite a special domain, as it collects the cloud administrators of the OpenStack based stoney cloud. It is added manually just after the bootstrapping phase. Therefore we '''never''' provision this domain and we '''do not''' add the <code>objectclass: sstProvisioning</code> to this domain.
<source lang="ldif">
sstOpenStackId: abcdef2477be64c099500224864999998
sstOpenStackName: Service Provider
description: Service Provider stepping stone GmbHAG
sstIsActive: TRUE
sstIsIaaSDomain: FALSE
sstBillable: FALSE
sstConsolidatedBill: FALSE
sstRegion: duedingen_test
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
</source>
==== OpenStack (service) - Domains (resellers) - Domain (reseller) example ====The following LDIF example shows a typical OpenSTack OpenStack Domain.
<source lang="ldif">
dn: uid=4000000,ou=domains,ou=openstack,ou=services,dc=stoney-cloud,dc=org
sstIsIaaSDomain: FALSE
sstBillable: TRUE
sstNonBillableItem: network_id:f7f865e8-a745-455c-80cf-b0a4ea09323c
sstCancellationDate: 20201231
sstConsolidatedBill: FALSE
sstRegion: duedingen_test
sstProvisioningMode: added
sstProvisioningExecutionDate: 0
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackDomain
| 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>3</sup></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 OpenStack Domain id as returned from the OpenStack API.
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBillable
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRelationshipsstOpenStackDomain
| 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:0.002cm solid #000000;padding:0.097cm;"| It the entry billable? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). All hierarchical levels must have <code>sstBillable: TRUE</code> to actually have an invoice generated and sent. If the attribute <code>sstBillable</code> doesn't exist, the default is <code>TRUE</code>. This way, we are forced to set a reseller, customer or product manually to <code>sstBillable: FALSE</code> if we want to avoid sending them an invoice.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNonBillableItem
| 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>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:0.002cm solid #000000;padding:0.097cm;"| This multi-valued attribute lists the items, that aren't billable, even if <code>sstBillable</code> is set to <code>TRUE</code>. The following example presumes, that the reseller with <code>sstBelongsToResellerUID: 4000000</code> has their own floating ip range with the OpenStack with the <code>network_id</code> <code>f7f865e8-a745-455c-80cf-b0a4ea09323c</code>.
 
Example: <code>sstNonBillableItem: network_id:f7f865e8-a745-455c-80cf-b0a4ea09323c</code>
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCancellationDate
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackDomain
| 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:0.002cm solid #000000;padding:0.097cm;"| The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: '''20201231'''.
 
The attribute <code>sstCancellationDate</code> is used in a logical AND combination with <code>sstIsActive</code>. With other words: Once the cancellation date has passed, it overrides the <code>sstIsActive</code> value.
|-
The default value is <code>FALSE</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRegion
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackDomain
| 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:0.002cm solid #000000;padding:0.097cm;"| The region tells us, were the infrastructure (domains, projects, networks, servers and more) is to be provisioned. Currently duedingen_production and duedingen_test are
supported. The default region is duedingen_production.
 
The default value is <code>duedingen_production</code>.
|-
* '''x<sup>1</sup>''': Set <code>sstProvisioningMode</code> to either <code>added</code>, <code>modified</code> or <code>deleted</code> if modifying the entry manually.
* '''x<sup>2</sup>''': Use <code>date --utc "+%Y%m%dT%H%M%SZ"</code> to set the attribute <code>sstProvisioningState</code> if modifying the entry manually.
* '''x<sup>3</sup>''': Set by Terraform after the successful provisioning.
=== OpenStack (service) - Projects (tenants) ===
<source lang="ldif">
dn: ou=projects,ou=openstack,ou=services,dc=stoney-cloud,dc=org
</source>
==== Project OpenStack (tenantservice) examples - Projects (tenants) - Examples ====
Due to the OpenStack project (tenant) organisation, we can have multiple tenants per domain (reseller) and customers. The following LDIF example show the first project of the customer Customer Ltd. with the <code>sstBelongsToCustomerUID: 4000001</code> belonging to the reseller Reseller Ltd. with the <code>sstBelongsToResellerUID: 4000000</code>:
<source lang="ldif">
sstIsIaaSProject: FALSE
sstBillable: TRUE
sstCancellationDate: 20201231
sstConsolidatedBill: FALSE
sstRegion: duedingen_test
sstProvisioningMode: added
sstProvisioningExecutionDate: 0
sstBillable: TRUE
sstConsolidatedBill: FALSE
sstRegion: duedingen_test
sstProvisioningMode: added
sstProvisioningExecutionDate: 0
| 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;"| It the entry billable? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). All hierarchical levels must have <code>sstBillable: TRUE</code> to actually have an invoice generated and sent. If the attribute <code>sstBillable</code> doesn't exist, the default is <code>TRUE</code>. This way, we are forced to set a reseller, customer or product manually to <code>sstBillable: FALSE</code> if we want to avoid sending them an invoice.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCancellationDate
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
| 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:0.002cm solid #000000;padding:0.097cm;"| The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: '''20201231'''.
 
The attribute <code>sstCancellationDate</code> is used in a logical AND combination with <code>sstIsActive</code>. With other words: Once the cancellation date has passed, it overrides the <code>sstIsActive</code> value.
|-
The default value is <code>FALSE</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRegion
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
| 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:0.002cm solid #000000;padding:0.097cm;"| The region tells us, were the infrastructure (domains, projects, networks, servers and more) is to be provisioned. Currently duedingen_production and duedingen_test are
supported. The default region is duedingen_production.
 
The default value is <code>duedingen_production</code>.
|-
| 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<sup>4</sup></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 <code>0</code> or in the form of <code>[YYYY][MM][DD]T[hh][mm][ss]Z</code> ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). Z is the zone designator for the zero UTC offset. For a new OpenStack DomainProject, this attribute must be set to '''0'''. After the successful provisioning, the value is set to the time of the provisioning. For example: <code>sstProvisioningState: 20180819T083208Z</code>. See the [[stoney_core:_OpenLDAP_provisioning | stoney core: OpenLDAP provisioning]] page for details.
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToDomainID
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackProject
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| <center>MUSTMAY</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>5</centersup>
| 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 OpenStack domain id the project belongs to.
* '''x<sup>3</sup>''': Set <code>sstProvisioningMode</code> to either <code>added</code>, <code>modified</code> or <code>deleted</code> if modifying the entry manually.
* '''x<sup>4</sup>''': Use <code>date --utc "+%Y%m%dT%H%M%SZ"</code> to set the attribute <code>sstProvisioningState</code> if modifying the entry manually.
* '''x<sup>5</sup>''': The attribute <code>sstBelongsToDomainID</code> is optional, as it will be set during the provisioning of the OpenStack project via OpenTofu (Terraform).
=== OpenStack (service) - Units (instances) ===
<source lang="ldif">
dn: ou=units,ou=openstack,ou=services,dc=stoney-cloud,dc=org
</source>
==== Unit OpenStack (instanceservice) examples - Units (instances) - Examples ====
<source lang="ldif">
dn: uid=4100002,ou=units,ou=openstack,ou=services,dc=stoney-cloud,dc=org
objectclass: sstProvisioning
objectclass: sstRelationship
objectclass: sstConfigurationManagement
uid: 4100002
sstOpenStackId: 9ecb5bfdd4564f6ca52bba1e869eeea4
sstDisplayName: sst-int-001: stepping stone GmbHAG: CentOS 7 (Odoo)description: The leaf for the OpenStack server sst-int-001: stepping stone GmbHAG: CentOS 7 (Odoo).sstOperatingSystem: Linux
sstNetworkHostname: sst-int-001
sstNetworkDomainName: os.stoney-cloud.com
sstIsActive: TRUE
sstBillable: TRUE
sstCancellationDate: 20201231
sstProvisioningMode: added
sstProvisioningExecutionDate: 0
sstProvisioningState: 20180819T083208Z
sstBusinessLogicRoleName: erp_odoo
sstRegion: duedingen_production
sstEnvironment: production
sstBelongsToProjectID: 5a3a4fd5d6e94a87815131be42d8e6d9
sstBelongsToResellerUID: 4000000
| 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:0.002cm solid #000000;padding:0.097cm;"| The OpenStack project human readable display name as returned from the OpenStack API.
For example: <code>"name" : "sst-int-001: stepping stone GmbH: CentOS 7 (Odoo)description"</code>. This gives us the LDAP entry: <code>sstDisplayName: sst-int-001: stepping stone GmbHAG: CentOS 7 (Odoo)</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;"| The description is built up as follows: <code>The leaf for the OpenStack server <sstDisplayName>.</code>.
For example: <code>The leaf for the OpenStack server sst-int-001: stepping stone GmbHAG: CentOS 7 (Odoo).</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOperatingSystem| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackUnit| 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:0.002cm solid #000000;padding:0.097cm;"| A manually executed maintenance window for Windows systems is significantly more time-consuming than for Linux. Therefore we need to know the operating system. Possible values are * <code>sstOperatingSystem: Linux</code>* <code>sstOperatingSystem: Windows</code>. This attribute is only relevant, if <code>sstServiceAutomated</code> is set to <code>FALSE</code> (under <code>ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>). See the [[stoney_maintenance:_OpenLDAP_directory_data_organisation#Maintenance_Units |Maintenance units]] documentation.
|-
| 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;"| It the entry billable? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). All hierarchical levels must have <code>sstBillable: TRUE</code> to actually have an invoice generated and sent. If the attribute <code>sstBillable</code> doesn't exist, the default is <code>TRUE</code>. This way, we are forced to set a reseller, customer or product manually to <code>sstBillable: FALSE</code> if we want to avoid sending them an invoice.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCancellationDate
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackUnit
| 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:0.002cm solid #000000;padding:0.097cm;"| The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: '''20201231'''.
 
The attribute <code>sstCancellationDate</code> is used in a logical AND combination with <code>sstIsActive</code>. With other words: Once the cancellation date has passed, it overrides the <code>sstIsActive</code> value.
|-
| 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<sup>3</sup></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 <code>0</code> or in the form of <code>[YYYY][MM][DD]T[hh][mm][ss]Z</code> ([http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]). Z is the zone designator for the zero UTC offset. For a new OpenStack DomainUnit, this attribute must be set to '''0'''. After the successful provisioning, the value is set to the time of the provisioning. For example: <code>sstProvisioningState: 20180819T083208Z</code>. See the [[stoney_core:_OpenLDAP_provisioning | stoney core: OpenLDAP provisioning]] page for details.  |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBusinessLogicRoleName| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstConfigurationManagement| 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:0.002cm solid #000000;padding:0.097cm;"| The Puppet role (business logic). For example: <code>sstBusinessLogicRoleName: erp_odoo</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRegion| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstConfigurationManagement| 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:0.002cm solid #000000;padding:0.097cm;"| The geographical region. For example: <code>sstRegion: duedingen_production</code> or <code>sstRegion: cn_azure_china_east_2</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstEnvironment| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstConfigurationManagement| 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:0.002cm solid #000000;padding:0.097cm;"| The Puppet environment. For example: <code>sstEnvironment: production</code>, <code>sstEnvironment: integration</code>, <code>sstEnvironment: test</code> or individual feature branches.
|-
| 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:0.002cm solid #000000;padding:0.097cm;"| The OpenStack domain project id the project belongs to.
For example: <code>sstBelongsToDomainIDsstBelongsToProjectID: 5a3a4fd5d6e94a87815131be42d8e6d9</code>.
|-
* '''x<sup>3</sup>''': Use <code>date --utc "+%Y%m%dT%H%M%SZ"</code> to set the attribute <code>sstProvisioningState</code> if modifying the entry manually.
=== OpenStack (service) - Image backups ===<source lang="ldif">dn: ou=backups,ou=openstack,ou=services,dc=stoney-cloud,dc=org objectclass: topobjectclass: organizationalUnitou: backupsdescription: The sub tree for the image backups of the units (instances) in the OpenStack based stoney cloud service.</source> ==== OpenStack (service) - Image backups - Examples ====<source lang="ldif">dn: uid=4100004,ou=backups,ou=openstack,ou=services,dc=stoney-cloud,dc=orgobjectclass: topobjectclass: sstOpenStackImageBackupobjectclass: sstRelationshipuid: 4100004sstDisplayName: sst-int-001: stepping stone AG: CentOS 7 (Odoo)description: The leaf for the image backup of the OpenStack instance 'sst-int-001: stepping stone AG: CentOS 7 (Odoo)'.sstBackupIterations: 1sstBackupLastSuccessfulBackup: computer:20130923T063554ZsstIsActive: TRUEsstBillable: TRUEsstCancellationDate: 20201231sstBelongsToProjectID: 5a3a4fd5d6e94a87815131be42d8e6d9sstBelongsToUnitID: 9ecb5bfdd4564f6ca52bba1e869eeea4sstBelongsToResellerUID: 4000000sstBelongsToCustomerUID: 4000001sstBelongsToServiceUID: 4000002</source> Please visit the [[Account Naming]] page and the [[Customer VM Naming Convention]] for the <code>sstNetworkHostnameFormat</code>. 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;"| '''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="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: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| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more. For example: <code>uid: 4100002</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstDisplayName| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The OpenStack project name as returned from the OpenStack API. For example: <code>"name" : "sst-int-001: stepping stone AG: CentOS 7 (Odoo)"</code>. This gives us the LDAP entry: <code>sstDisplayName: sst-int-001: stepping stone AG: CentOS 7 (Odoo)</code>. |-| 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;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The description is built up as follows: <code>The leaf for the OpenStack server <sstDisplayName>.</code>. For example: <code>The leaf for the OpenStack server sst-int-001: stepping stone AG: CentOS 7 (Odoo).</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBackupIterations| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The number of image backup iterations. Possible values are between 0 and 9999. Default is <code>1</code>. For example: <code>sstBackupIterations: 1</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBackupLastSuccessfulBackup| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The date and time of the last successful image backup in UTC, either 0 or in the form of <code>[YYYY][MM][DD]T[hh][mm][ss]Z</code> (ISO 8601). For example: <code>sstBackupLastSuccessfulBackup: 20130923T063554Z</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;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). The default value is <code>TRUE</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBillable| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| It the entry billable? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). All hierarchical levels must have <code>sstBillable: TRUE</code> to actually have an invoice generated and sent. If the attribute <code>sstBillable</code> doesn't exist, the default is <code>TRUE</code>. This way, we are forced to set a reseller, customer or product manually to <code>sstBillable: FALSE</code> if we want to avoid sending them an invoice. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCancellationDate| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: <code>sstCancellationDate: 20201231</code>. The attribute <code>sstCancellationDate</code> is used in a logical AND combination with <code>sstIsActive</code>. With other words: Once the cancellation date has passed, it overrides the <code>sstIsActive</code> value. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToProjectID| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The OpenStack project id the project belongs to. For example: <code>sstBelongsToProjectID: 5a3a4fd5d6e94a87815131be42d8e6d9</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToUnitID| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOpenStackImageBackup| 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:0.002cm solid #000000;padding:0.097cm;"| The OpenStack unit id as returned from the OpenStack API.  For example: <code>sstBelongsToUnitID: 9ecb5bfdd4564f6ca52bba1e869eeea4</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 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>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:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more. For example: <code>sstBelongsToResellerUID: 4000000</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID| 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>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:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains. For example: <code>sstBelongsToCustomerUID: 4000001</code>. |-| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToServiceUID| 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>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:0.002cm solid #000000;padding:0.097cm;"| Stores the UID (Unique Identifier) of the service the leaf belongs to. This UID can be used to look up other information. For example, if the attribute sstBelongsToUnitID is missing, we can look this value up (and maybe update it at the same time to spare future lookups). For example: <code>sstBelongsToServiceUID: 4000002</code>. |} Legend:* '''x''': Mandatory in all cases.* '''x<sup>1</sup>''': Must be set after the provisioning, as OpenStack doesn't allow to set ids. === OpenStack (service) - Licences (...) ===
Is a main service, not a sub service of the openstack service.
<source lang="ldif">
</source>
==== OpenStack (service) - Licences (...) examples - Examples ====
...
<source lang="ldif">
sstBelongsToServiceUID <- What value? Will this cause a ldap search over all the services?
</source>
 
== OpenStack (infrastructure) ==
The sub tree <code>ou=dedicated servers,ou=service,dc=stoney-cloud,dc=org</code> contains all the OpenStack control-, compute- and storage-nodes as well as the control virtual machines (VMs) information.
<source lang='ldif'>
dn: ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
description: This sub tree contains all the OpenStack control-, compute- and storage-nodes as well as the control virtual machines (VMs) information.
ou: openstack
</source>
 
=== OpenStack (infrastructure) - Configuration ===
<source lang='ldif'>
dn: ou=configuration,ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: configuration
description: The sub tree for the configuration of all the OpenStack control-, compute- and storage-nodes as well as the control virtual machines (VMs).
</source>
 
==== OpenStack (infrastructure) - Configuration - Resellers ====
<source lang='ldif'>
dn: ou=reseller,ou=configuration,ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: reseller
description: The sub tree for the reseller specific configuration of the OpenStack control-, compute- and storage-nodes as well as the control virtual machines (VMs).
</source>
 
=== OpenStack (infrastructure) - Units (control-, compute- and storage-nodes as well as the control virtual machines) ===
<source lang='ldif'>
dn: ou=units,ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: organizationalUnit
ou: units
description: The sub tree for the OpenStack control-, compute- and storage-nodes as well as the control virtual machines (VMs), called units.
</source>
 
==== OpenStack (infrastructure) - Unit (control-, compute- and storage-nodes as well as the control virtual machines) - Examples ====
Some concrete naming examples of the OpenStack control-, compute- and storage nodes as well as the control virtual machines (VMs):
 
'''Control nodes:'''
* ctrl-node-001: stepping stone AG: CentOS 7 (Control), with the Puppet role <code>cloud_openstack_control</code>
* ctrl-node-002: stepping stone AG: CentOS 7 (Control), with the Puppet role <code>cloud_openstack_control</code>
 
'''Compute nodes:'''
* compute-node-001: stepping stone AG: CentOS 7 (Compute), with the Puppet role <code>cloud_openstack_compute</code>
* compute-node-002: stepping stone AG: CentOS 7 (Compute), with the Puppet role <code>cloud_openstack_compute</code>
 
'''Storage nodes:'''
* storage-node-001: stepping stone AG: CentOS 7 (Ceph monitor), with the Puppet role <code>storage_ceph</code>
* storage-node-002: stepping stone AG: CentOS 7 (Ceph monitor), with the Puppet role <code>storage_ceph</code>
* storage-node-003: stepping stone AG: CentOS 7 (Ceph storage), with the Puppet role <code>storage_ceph</code>
 
'''Control VMs:'''
* ctrl-vm-020: stepping stone AG: CentOS 7 (Ceph monitor), with the Puppet role <code>storage_ceph</code>
* ctrl-vm-021: stepping stone AG: CentOS 7 (Glance), with the Puppet role <code>cloud_openstack_glance</code>
 
The following LDIF shows a complete example of storage node with the Puppet role <code>storage_ceph</code>.
<source lang='ldif'>
dn: uid=4100002,ou=units,ou=dedicated servers,ou=services,dc=stoney-cloud,dc=org
objectclass: top
objectclass: sstServer
objectclass: sstRelationship
objectclass: sstConfigurationManagement
uid: 4100002
sstDisplayName: storage-node-001: stepping stone AG: CentOS 7 (Ceph monitor)
description: The leaf for the OpenStack infrastructure server storage-node-001: stepping stone AG: CentOS 7 (Ceph monitor).
sstNetworkHostname: storage-node-001
sstNetworkDomainName: ctrl-int.os.stoney-cloud.com
sstIsActive: TRUE
sstBillable: FALSE
sstBusinessLogicRoleName: storage_ceph
sstRegion: duedingen_production
sstEnvironment: production
sstBelongsToProjectID: 6907bf36283fee21f1396b803d041041
sstBelongsToResellerUID: 4000000
sstBelongsToCustomerUID: 4000001
</source>
 
Please visit the [[Account Naming]] page and the [[Customer VM Naming Convention]] for the <code>sstNetworkHostnameFormat</code>.
 
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;"| '''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="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: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
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| A unique integer value with 7 digits or more.
 
For example: <code>uid: 4100002</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstDisplayName
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| The human readable display name.
 
For example: <code>"name" : "description"</code>. This gives us the LDAP entry: <code>sstDisplayName: storage-node-001: stepping stone AG: CentOS 7 (Ceph monitor)</code>.
 
|-
| 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;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| The description is built up as follows: <code>The leaf for the OpenStack server <sstDisplayName>.</code>.
 
For example: <code>The leaf for the OpenStack server storage-node-001: stepping stone AG: CentOS 7 (Ceph monitor).</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstOperatingSystem
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| A manually executed maintenance window for Windows systems is significantly more time-consuming than for Linux. Therefore we need to know the operating system. Possible values are
* <code>sstOperatingSystem: Linux</code>
* <code>sstOperatingSystem: Windows</code>.
 
This attribute is only relevant, if <code>sstServiceAutomated</code> is set to <code>FALSE</code> (under <code>ou=units,ou=maintenance,ou=services,dc=stoney-cloud,dc=org</code>). See the [[stoney_maintenance:_OpenLDAP_directory_data_organisation#Maintenance_Units |Maintenance units]] documentation.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNetworkHostname
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| The host name of the unit according to the rules defined in [[Account Naming]] and [[Customer VM Naming Convention]].
 
For example: <code>sst-int-001</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstNetworkDomainName
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| The domain name of the unit.
 
For example: <code>ctrl-int.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;"| sstIsActive
| 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>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:0.002cm solid #000000;padding:0.097cm;"| Is the entry active? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no).
 
The default value is <code>TRUE</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBillable
| 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>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:0.002cm solid #000000;padding:0.097cm;"| It the entry billable? Either <code>TRUE</code> (yes) or <code>FALSE</code> (no). All hierarchical levels must have <code>sstBillable: TRUE</code> to actually have an invoice generated and sent. If the attribute <code>sstBillable</code> doesn't exist, the default is <code>TRUE</code>. This way, we are forced to set a reseller, customer or product manually to <code>sstBillable: FALSE</code> if we want to avoid sending them an invoice.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstCancellationDate
| 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>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:0.002cm solid #000000;padding:0.097cm;"| The cancellation date of a reseller, customer or service in the form of [YYYY][MM][DD] (ISO 8601). For example: '''20201231'''.
 
The attribute <code>sstCancellationDate</code> is used in a logical AND combination with <code>sstIsActive</code>. With other words: Once the cancellation date has passed, it overrides the <code>sstIsActive</code> value.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBusinessLogicRoleName
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstConfigurationManagement
| 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:0.002cm solid #000000;padding:0.097cm;"| The Puppet role (business logic).
 
For example: <code>sstBusinessLogicRoleName: storage_ceph</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstRegion
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstConfigurationManagement
| 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:0.002cm solid #000000;padding:0.097cm;"| The geographical region.
 
For example: <code>sstRegion: duedingen_production</code> or <code>sstRegion: cn_azure_china_east_2</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstEnvironment
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstConfigurationManagement
| 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:0.002cm solid #000000;padding:0.097cm;"| The Puppet environment.
 
For example: <code>sstEnvironment: production</code>, <code>sstEnvironment: integration</code>, <code>sstEnvironment: test</code> or individual feature branches.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToProjectID
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstServer
| 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:0.002cm solid #000000;padding:0.097cm;"| The (virtual) OpenStack project id the project belongs to. The project id used by the configuration management system Puppet via enc.
 
For example: <code>6907bf36283fee21f1396b803d041041</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| 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>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:0.002cm solid #000000;padding:0.097cm;"| Stores the reseller UID the leaf belongs to. A unique integer value with 7 digits or more.
 
For example: <code>sstBelongsToResellerUID: 4000000</code>.
 
|-
| style="border-top:none;border-bottom:0.002cm solid #000000;border-left:0.002cm solid #000000;border-right:none;padding:0.097cm;"| sstBelongsToCustomerUID
| 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>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:0.002cm solid #000000;padding:0.097cm;"| Stores the customer UID the leaf belongs to. A unique value with 7 digits or more, must correspond with the uid entry. Each reseller is also a customer in the LDAP directory. Therefore, the value of the attribute <code>sstBelongsToCustomerUID</code> should always be set to the customer UID, that reflects the reseller for the OpenStack Domains.
 
For example: <code>sstBelongsToCustomerUID: 4000001</code>.
 
|}
 
Legend:
* '''x''': Mandatory in all cases.
== Questions ==
3,368
edits