Skip to content

Commit 2b91fb0

Browse files
authored
Merge branch 'main' into fix/cm-homepage
2 parents 9a7cb44 + a253763 commit 2b91fb0

4 files changed

Lines changed: 98 additions & 4 deletions

File tree

Standards/scs-0123-v2-services.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: Mandatory and Supported IaaS Services
3+
type: Standard
4+
status: Draft
5+
track: IaaS
6+
---
7+
8+
## Introduction
9+
10+
To be SCS-compliant a Cloud Service Provider (CSP) has to fulfill all SCS standards.
11+
Some of those standards are broad and consider all APIs of all services on the IaaS-Layer like the consideration of a [role standard](https://github.com/SovereignCloudStack/issues/issues/396).
12+
There exist many services on that layer and for a first step they need to be limited to have a clear scope for the standards and the Cloud Service Providers following them.
13+
For this purpose, this standard will establish lists for mandatory services whose APIs have to be present in a SCS cloud as well as supported services, which APIs are considered by some standards and may even be tested for their integration but are optional in a sense that their omission will not violate SCS conformance.
14+
15+
## Motivation
16+
17+
There are many OpenStack APIs and their corresponding services that can be deployed on the IaaS level.
18+
These services have differences in the quality of their implementation and liveness and some of them may be easily omitted when creating an IaaS deployment.
19+
To fulfill all SCS-provided standards only a subset of these APIs are required.
20+
Some more but not all remaining OpenStack APIs are also supported additionally by the SCS project and may be part of its reference implementation.
21+
This results in different levels of support for specific services.
22+
This document will give readers insight about how the SCS classifies the OpenStack APIs accordingly.
23+
If a cloud provides all mandatory and any number of supported OpenStack APIs, it can be tested for SCS-compliance.
24+
Any unsupported APIs will not be tested.
25+
26+
## Mandatory IaaS APIs
27+
28+
The following IaaS APIs MUST be present in SCS-compliant IaaS deployments and could be implemented with the corresponding OpenStack services.
29+
The endpoints of services MUST be findable through the `catalog list` of the identity API[^1].
30+
31+
| Mandatory API service type | corresponding OpenStack Service | description |
32+
|-----|-----|-----|
33+
| **block-storage** | Cinder | Block Storage service |
34+
| **compute** | Nova | Compute service |
35+
| **identity** | Keystone | Identity service |
36+
| **image** | Glance | Image service |
37+
| **load-balancer** | Octavia | Load-balancer service |
38+
| **network** | Neutron | Networking service |
39+
| **object-store-s3**[^2] | N/A | s3 compatible Object Storage service |
40+
41+
Aliases for these service types are only permitted where defined by the [OpenStack Service Type Authority](https://specs.openstack.org/openstack/service-types-authority/#aliases-optional).
42+
Catalog entries SHOULD use the canonical service type, not aliases.
43+
44+
## Supported IaaS APIs
45+
46+
The following IaaS APIs MAY be present in SCS-compliant IaaS deployment, e.g. implemented through the corresponding OpenStack services, and are considered in the SCS standards.
47+
48+
| Supported API service type | corresponding OpenStack Service | description |
49+
|-----|-----|-----|
50+
| **baremetal** | Ironic | Bare Metal provisioning service |
51+
| **rating** | CloudKitty | Rating/Billing service |
52+
| **dns** | Designate | DNS service |
53+
| **instance-ha** | Masakari | Instances High Availability service |
54+
| **key-manager** | Barbican | Key Manager service |
55+
| **object-store** | Swift | Object Store with different possible backends |
56+
| **orchestration** | Heat | Orchestration service |
57+
| **shared-file-system** | Manila | Shared File Systems service |
58+
| **time-series-database**[^2] | Gnocchi | Time Series Database service |
59+
60+
## Unsupported IaaS APIs
61+
62+
All other OpenStack services, whose APIs are not mentioned in the mandatory or supported lists will not be tested for their compatibility and conformance in SCS clouds by the SCS community.
63+
Those services MAY be integrated into IaaS deployments by a Cloud Service Provider on their own responsibility but SCS will not assume they are present and potential issues that occur during deployment or usage have to be handled by the CSP on their own accord.
64+
The SCS standard offers no guarantees for compatibility or reliability of services categorized as unsupported.
65+
66+
## Related Documents
67+
68+
[The OpenStack Services](https://www.openstack.org/software/)
69+
70+
[^1]: [Integrate into the service catalog of Keystone](https://docs.openstack.org/keystone/latest/contributor/service-catalog.html)
71+
[^2]: These service types have not been assigned by the OpenStack Service Type Authority

Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,19 @@ type: Supplement
44
track: IaaS
55
supplements:
66
- scs-0123-v1-mandatory-and-supported-IaaS-services.md
7+
- scs-0123-v2-services.md
78
---
89

910
## Automated tests
1011

1112
We [implemented](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/openstack_test.py)
1213
the following testcases in accordance with the standard:
1314

14-
- `scs-0123-service-X` (with varying `X`) ensures that a service of type X can be found in the service catalog,
15-
- `scs-0123-storage-apis` ensures that a service of one of the following types can be found: "volume", "volumev3", "block-storage",
16-
- `scs-0123-swift-s3` ensures that S3 can be used to access object storage using EC2 credentials from the identity API.
15+
- `scs-0123-service-<type>` ensures that a service with the given type can be found in the service catalog
16+
- `scs-0123-storage-apis` ensures that a service of one of the following types can be found: "volume", "volumev3", "block-storage"
17+
18+
### Deprecated tests
19+
20+
#### v1 only
21+
22+
- `scs-0123-swift-s3` ensures that S3 can be used to access object storage using EC2 credentials from the identity API

Tests/iaas/openstack_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,9 @@ def make_container(cloud):
150150
c.add_function('scs_0123_service_load_balancer', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'load-balancer'))
151151
c.add_function('scs_0123_service_placement', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'placement'))
152152
c.add_function('scs_0123_storage_apis', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'volume', 'volumev3', 'block-storage'))
153+
c.add_function('scs_0123_service_s3', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'object-store-s3'))
153154
c.add_function('scs_0123_swift_s3', lambda c: compute_scs_0123_swift_s3(c.services_lookup, c.conn))
155+
154156
return c
155157

156158

Tests/scs-compatible-iaas.yaml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,9 @@ scripts:
269269
- id: scs-0123-storage-apis
270270
description: The block-storage API is discoverable as `volume`, `volumev3`, or `block-storage`.
271271
url: https://docs.scs.community/standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation#automated-tests
272+
- id: scs-0123-service-s3
273+
description: s3 service is discoverable.
274+
url: https://docs.scs.community/standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation#automated-tests
272275
- id: scs-0123-swift-s3
273276
description: The object-storage API is compatible with S3.
274277
url: https://docs.scs.community/standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation#automated-tests
@@ -479,6 +482,18 @@ modules:
479482
- scs-0123-service-placement
480483
- scs-0123-storage-apis
481484
- scs-0123-swift-s3
485+
- id: scs-0123-v2
486+
name: Mandatory and Supported IaaS Services
487+
url: https://docs.scs.community/standards/scs-0123-v2-services
488+
targets:
489+
main:
490+
- scs-0123-service-compute
491+
- scs-0123-service-identity
492+
- scs-0123-service-image
493+
- scs-0123-service-network
494+
- scs-0123-service-load-balancer
495+
- scs-0123-storage-apis
496+
- scs-0123-service-s3
482497
- id: scs-0302-v1
483498
name: Domain Manager Role
484499
url: https://docs.scs.community/standards/scs-0302-v1-domain-manager-role
@@ -523,7 +538,7 @@ versions:
523538
- scs-0116-v1
524539
- scs-0117-v1
525540
- scs-0121-v1
526-
- scs-0123-v1
541+
- scs-0123-v2
527542
- scs-0302-v1
528543
- version: v5.1 # copy of v5, but with include "scs-0123-v1", which had simply been forgotten
529544
stabilized_at: 2024-12-19

0 commit comments

Comments
 (0)