From 90eb6fb7c787bbb62f0128b2f354a55a668cda93 Mon Sep 17 00:00:00 2001 From: Friedrich Zahn Date: Mon, 16 Feb 2026 17:38:17 +0100 Subject: [PATCH 1/5] Draft clarification on mandatory service types Fixes #1004. ToDo: Move to v2. --- ...1-mandatory-and-supported-IaaS-services.md | 40 ++++++++----------- ...-supported-IaaS-services-implementation.md | 5 +-- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md index 2f7a74326..cd34c53cd 100644 --- a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md +++ b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md @@ -26,9 +26,10 @@ 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 | @@ -36,35 +37,26 @@ The following IaaS APIs MUST be present in SCS-compliant IaaS deployments and co | **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 @@ -78,5 +70,7 @@ The SCS standard offers no guarantees for compatibility or reliability of servic ## 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. +The presence of the mandatory APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0123_mandatory-services/mandatory-iaas-services.py) + +[^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 \ No newline at end of file diff --git a/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md b/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md index 2b53cf7eb..7105b624b 100644 --- a/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md +++ b/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md @@ -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-` 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" From dd7917c7be407c7f345aa4b55999a47832855c5a Mon Sep 17 00:00:00 2001 From: Friedrich Zahn Date: Tue, 17 Feb 2026 09:03:39 +0100 Subject: [PATCH 2/5] Add test definitions for SCS-0123-v2 --- Tests/iaas/openstack_test.py | 1 + Tests/scs-compatible-iaas.yaml | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Tests/iaas/openstack_test.py b/Tests/iaas/openstack_test.py index 0f47a7cd0..b0fc33c26 100755 --- a/Tests/iaas/openstack_test.py +++ b/Tests/iaas/openstack_test.py @@ -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 diff --git a/Tests/scs-compatible-iaas.yaml b/Tests/scs-compatible-iaas.yaml index cdbf7533f..0f1038b37 100644 --- a/Tests/scs-compatible-iaas.yaml +++ b/Tests/scs-compatible-iaas.yaml @@ -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 @@ -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 + 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 @@ -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 From ded05b924565240a7eefdaaea93cda8656c45ec6 Mon Sep 17 00:00:00 2001 From: Friedrich Zahn Date: Tue, 17 Feb 2026 09:21:31 +0100 Subject: [PATCH 3/5] Fixup: md lint & link --- .../scs-0123-v1-mandatory-and-supported-IaaS-services.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md index cd34c53cd..2697f2370 100644 --- a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md +++ b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md @@ -70,7 +70,7 @@ The SCS standard offers no guarantees for compatibility or reliability of servic ## Conformance Tests -The presence of the mandatory APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0123_mandatory-services/mandatory-iaas-services.py) +The presence of the mandatory APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0123_mandatory_services/mandatory-iaas-services.py) [^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 \ No newline at end of file +[^2]: These service types have not been assigned by the OpenStack Service Type Authority From 5ce40b0b882217ee32c841600ec681d6f86358c9 Mon Sep 17 00:00:00 2001 From: Friedrich Zahn Date: Tue, 17 Feb 2026 09:23:05 +0100 Subject: [PATCH 4/5] Fixup: moar link fix --- Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md index 2697f2370..3aca2c034 100644 --- a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md +++ b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md @@ -70,7 +70,7 @@ The SCS standard offers no guarantees for compatibility or reliability of servic ## Conformance Tests -The presence of the mandatory APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0123_mandatory_services/mandatory-iaas-services.py) +The presence of the mandatory APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0123_mandatory_services/mandatory_services.py) [^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 From c25b82b67e63d101cc0bf614268b132771954b7f Mon Sep 17 00:00:00 2001 From: toothstone Date: Thu, 19 Feb 2026 17:45:59 +0100 Subject: [PATCH 5/5] Fixup: Apply suggestion from @mbuechse Signed-off-by: toothstone --- .../scs-0123-v1-mandatory-and-supported-IaaS-services.md | 4 ---- ...w1-mandatory-and-supported-IaaS-services-implementation.md | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md index 3aca2c034..9d67d9e31 100644 --- a/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md +++ b/Standards/scs-0123-v1-mandatory-and-supported-IaaS-services.md @@ -68,9 +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 APIs will be tested in [this test-script](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0123_mandatory_services/mandatory_services.py) - [^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 diff --git a/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md b/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md index 7105b624b..2820c4af9 100644 --- a/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md +++ b/Standards/scs-0123-w1-mandatory-and-supported-IaaS-services-implementation.md @@ -11,5 +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-` ensures that a service with the given type can be found in the service catalog +- `scs-0123-service-` 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"