Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 15 additions & 25 deletions Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file needs to be saved under a different name: Standards/scs-0123-v2-mandatory-and-supported-iaas-services.md (importantly, with v2). Feel free to shorten the slug, though!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I had the notice in the commit message, but it didn't make it to the PR description - I did not create a new file for now to keep the diff easier to read.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood. Not the worst move, to be honest :)

Original file line number Diff line number Diff line change
Expand Up @@ -26,45 +26,37 @@ Any unsupported APIs will not be tested.

## Mandatory IaaS APIs

The following IaaS APIs MUST be present in SCS-compliant IaaS deployments and could be implemented with the corresponding OpenStack services:
The following IaaS APIs MUST be present in SCS-compliant IaaS deployments and could be implemented with the corresponding OpenStack services.
The endpoints of services MUST be findable through the `catalog list` of the identity API[^1].

| Mandatory API | corresponding OpenStack Service | description |
| Mandatory API service type | corresponding OpenStack Service | description |
|-----|-----|-----|
| **block-storage** | Cinder | Block Storage service |
| **compute** | Nova | Compute service |
| **identity** | Keystone | Identity service |
| **image** | Glance | Image service |
| **load-balancer** | Octavia | Load-balancer service |
| **network** | Neutron | Networking service |
| **s3** | S3 API object storage | Object Storage service |

:::caution

S3 API implementations may differ in certain offered features.
CSPs must publicly describe the endpoints of their S3 solutions and which implementations they use in their deployment.
Users should always research whether a needed feature is supported in the offered implementation.
| **s3**[^2] | N/A | s3 compatible Object Storage service |

:::

The endpoints of services MUST be findable through the `catalog list` of the identity API[^1].

[^1]: [Integrate into the service catalog of Keystone](https://docs.openstack.org/keystone/latest/contributor/service-catalog.html)
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).
Catalog entries SHOULD use the canonical service type, not aliases.

## Supported IaaS APIs

The following IaaS APIs MAY be present in SCS-compliant IaaS deployment, e.g. implemented thorugh the corresponding OpenStack services, and are considered in the SCS standards.
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.

| Supported API | corresponding OpenStack Service | description |
| Supported API service type | corresponding OpenStack Service | description |
|-----|-----|-----|
| **bare-metal** | Ironic | Bare Metal provisioning service |
| **billing** | CloudKitty | Rating/Billing service |
| **baremetal** | Ironic | Bare Metal provisioning service |
| **rating** | CloudKitty | Rating/Billing service |
| **dns** | Designate | DNS service |
| **ha** | Masakari | Instances High Availability service |
| **instance-ha** | Masakari | Instances High Availability service |
| **key-manager** | Barbican | Key Manager service |
| **object-store** | Swift | Object Store with different possible backends |
| **orchestration** | Heat | Orchestration service |
| **shared-file-systems** | Manila | Shared File Systems service |
| **time-series-database** | Gnocchi | Time Series Database service |
| **shared-file-system** | Manila | Shared File Systems service |
| **time-series-database**[^2] | Gnocchi | Time Series Database service |

## Unsupported IaaS APIs

Expand All @@ -76,7 +68,5 @@ The SCS standard offers no guarantees for compatibility or reliability of servic

[The OpenStack Services](https://www.openstack.org/software/)

## Conformance Tests

The presence of the mandatory OpenStack APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/mandatory-services/mandatory-iaas-services.py)
The test will further check whether the object-store endpoint is compatible to s3.
[^1]: [Integrate into the service catalog of Keystone](https://docs.openstack.org/keystone/latest/contributor/service-catalog.html)
[^2]: These service types have not been assigned by the OpenStack Service Type Authority
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ supplements:
We [implemented](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/openstack_test.py)
the following testcases in accordance with the standard:

- `scs-0123-service-X` (with varying `X`) ensures that a service of type X can be found in the service catalog,
- `scs-0123-storage-apis` ensures that a service of one of the following types can be found: "volume", "volumev3", "block-storage",
- `scs-0123-swift-s3` ensures that S3 can be used to access object storage using EC2 credentials from the identity API.
- `scs-0123-service-<type>` ensures that a service with the given type can be found in the service catalog
- `scs-0123-storage-apis` ensures that a service of one of the following types can be found: "volume", "volumev3", "block-storage"
1 change: 1 addition & 0 deletions Tests/iaas/openstack_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ def make_container(cloud):
c.add_function('scs_0123_service_placement', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'placement'))
c.add_function('scs_0123_service_object_store', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'object-store'))
c.add_function('scs_0123_storage_apis', lambda c: compute_scs_0123_service_presence(c.services_lookup, 'volume', 'volumev3', 'block-storage'))
c.add_function('scs_0123_service_s3', lambda c: compute_scs_0123_service_presence(c.services_lookup, 's3'))
c.add_function('scs_0123_swift_s3', lambda c: compute_scs_0123_swift_s3(c.conn))
return c

Expand Down
17 changes: 16 additions & 1 deletion Tests/scs-compatible-iaas.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,9 @@ scripts:
- id: scs-0123-storage-apis
description: The block-storage API is discoverable as `volume`, `volumev3`, or `block-storage`.
url: https://docs.scs.community/standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation#automated-tests
- id: scs-0123-service-s3
description: s3 service is discoverable.
url: https://docs.scs.community/standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation#automated-tests
- id: scs-0123-swift-s3
description: The object-storage API is compatible with S3.
url: https://docs.scs.community/standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation#automated-tests
Expand Down Expand Up @@ -452,6 +455,18 @@ modules:
- scs-0123-service-object-store
- scs-0123-storage-apis
- scs-0123-swift-s3
- id: scs-0123-v2
name: Mandatory and Supported IaaS Services
url: https://docs.scs.community/standards/scs-0123-v2-mandatory-and-supported-IaaS-services
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you shorten the slug (as I invited you to do), then this needs to be adjusted.

targets:
main:
- scs-0123-service-compute
- scs-0123-service-identity
- scs-0123-service-image
- scs-0123-service-network
- scs-0123-service-load-balancer
- scs-0123-storage-apis
- scs-0123-service-s3
- id: scs-0302-v1
name: Domain Manager Role
url: https://docs.scs.community/standards/scs-0302-v1-domain-manager-role
Expand Down Expand Up @@ -496,7 +511,7 @@ versions:
- scs-0116-v1
- scs-0117-v1
- scs-0121-v1
- scs-0123-v1
- scs-0123-v2
- scs-0302-v1
- version: v5.1 # copy of v5, but with include "scs-0123-v1", which had simply been forgotten
stabilized_at: 2024-12-19
Expand Down