13 Commits

Author SHA1 Message Date
f6b9d03ef7 Add service_environment for every document in confpy
Reviewed-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-authored-by: Sebastian Gode <sebastian.gode@telekom.de>
Co-committed-by: Sebastian Gode <sebastian.gode@telekom.de>
2025-06-13 10:15:45 +00:00
af1a08de5f describe metadata overview
Reviewed-by: Gode, Sebastian <sebastian.gode@t-systems.com>
Co-authored-by: tischrei <tino.schreiber@t-systems.com>
Co-committed-by: tischrei <tino.schreiber@t-systems.com>
2025-06-13 10:06:02 +00:00
11ba8bf8ce Change visibility to public for eu_de and swiss
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: lbelejka <lukas.belejkanic@t-systems.com>
Co-committed-by: lbelejka <lukas.belejkanic@t-systems.com>
2025-06-12 14:05:08 +00:00
9f0fa5bc11 add UCS service
Reviewed-by: Gode, Sebastian <sebastian.gode@t-systems.com>
Co-authored-by: tischrei <tino.schreiber@t-systems.com>
Co-committed-by: tischrei <tino.schreiber@t-systems.com>
2025-06-11 08:06:14 +00:00
1c90e222ae Rename Big Data to Data Analysis according to OTC console
Reviewed-by: Gode, Sebastian <sebastian.gode@t-systems.com>
Co-authored-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-committed-by: Tino Schreiber <tino.schreiber@t-systems.com>
2025-06-02 10:13:24 +00:00
dc86ee3773 Change Categoring Networking title
Reviewed-by: Gode, Sebastian <sebastian.gode@t-systems.com>
Co-authored-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-committed-by: Tino Schreiber <tino.schreiber@t-systems.com>
2025-06-02 08:13:40 +00:00
a6993b58b6 Disable PDF for CCE swiss
Reviewed-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-authored-by: Sebastian Gode <sebastian.gode@telekom.de>
Co-committed-by: Sebastian Gode <sebastian.gode@telekom.de>
2025-05-27 07:58:02 +00:00
244122d66e Fix is_global
Reviewed-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-authored-by: Sebastian Gode <sebastian.gode@telekom.de>
Co-committed-by: Sebastian Gode <sebastian.gode@telekom.de>
2025-05-23 12:36:03 +00:00
c840bfddf7 Update otc_metadata/data/services/obs_3rd_party.yaml
Reviewed-by: Gode, Sebastian <sebastian.gode@t-systems.com>
Co-authored-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-committed-by: Tino Schreiber <tino.schreiber@t-systems.com>
2025-05-23 12:25:21 +00:00
5688aa9fa9 Update requirements
Reviewed-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-authored-by: Sebastian Gode <sebastian.gode@telekom.de>
Co-committed-by: Sebastian Gode <sebastian.gode@telekom.de>
2025-05-23 08:11:53 +00:00
483dd1ba13 Update 3rd_party-python-sdk
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: Sebastian Gode <sebastian.gode@telekom.de>
Co-committed-by: Sebastian Gode <sebastian.gode@telekom.de>
2025-05-23 08:05:22 +00:00
9c91fde599 Rename Application Services to Application according to OTC console
Reviewed-by: Gode, Sebastian <sebastian.gode@t-systems.com>
Co-authored-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-committed-by: Tino Schreiber <tino.schreiber@t-systems.com>
2025-05-20 09:16:16 +00:00
7d4aacf61d Docs constraints new architecture
Reviewed-by: Tino Schreiber <tino.schreiber@t-systems.com>
Co-authored-by: Sebastian Gode <sebastian.gode@telekom.de>
Co-committed-by: Sebastian Gode <sebastian.gode@telekom.de>
2025-05-15 11:11:16 +00:00
26 changed files with 289 additions and 28 deletions

View File

@ -0,0 +1,26 @@
# 📁 data/
This directory is the core of the metadata structure for Open Telekom Cloud Service Documentation. It contains structured definitions for services, their document types, categories, and repository configurations.
## 📂 Folder Overview
| Folder Name | Description |
|---------------------|-----------------------------------------------------------------------------|
| `services/` | Contains metadata for each individual service, including its cloud regions and access teams. |
| `documents/` | Holds metadata about documentation types (e.g., user guides, API refs) for each service and cloud region. |
| `service_categories/`| Lists available service categories used to group services (e.g., "Application", "Database"). |
| `repositories/` | Defines where the documentation source code is located (GitHub or Gitea) for each service per cloud environment. |
## 📦 Usage
These metadata files are used to:
- Build documentation portals.
- Generate links and visibility rules dynamically.
- Control contributor access.
- Connect documentation to source control repositories.
Each subfolder contains its own `README.md` with detailed field references and options.
## 📎 Example Structure
![Folder Structure](./folder_structure.png)

View File

@ -0,0 +1,69 @@
# 📁 documents/
This folder contains metadata about documentation files per service, such as user guides or API references. Each file describes a single document variant for a specific cloud environment.
## 🔧 Example: `ecs-umn.yaml`
```yaml
---
hc_location: usermanual/ecs
html_location: docs/ecs/umn
link: /elastic-cloud-server/umn/
rst_location: umn/source
service_type: ecs
title: User Guide
type: umn
cloud_environments:
- name: eu_de
visibility: public
pdf_visibility: public
pdf_enabled: true
- name: swiss
visibility: public
pdf_visibility: public
pdf_enabled: true
```
## 🔧 Example: `ecs-api-ref.yaml`
```yaml
---
hc_location: api/ecs
html_location: docs/ecs/api-ref
link: /elastic-cloud-server/api-ref/
rst_location: api-ref/source
service_type: ecs
title: API Reference
type: api-ref
cloud_environments:
- name: eu_de
visibility: public
pdf_visibility: public
pdf_enabled: true
- name: swiss
visibility: public
pdf_visibility: public
pdf_enabled: true
```
## Parameter Reference
| Field | Type | Description |
| -------------------- | ------ | -------------------------------------------------------- |
| `hc_location` | string | Path used in the Horizon Console. |
| `html_location` | string | Location of the built HTML output. |
| `link` | string | Target URL segment for this document. |
| `rst_location` | string | Source folder for `.rst` input. |
| `service_type` | string | Related service identifier (matches `services/`). |
| `title` | string | Display name of the document. |
| `type` | string | Document type (e.g., `umn`, `api-ref`, etc.). |
| `cloud_environments` | list | Region-specific metadata like visibility or PDF support. |
### `cloud_environments` Options:
| Field | Type | Allowed Values | Description |
| ---------------- | ------- | ------------------------------ | ---------------------------------- |
| `name` | string | e.g., `eu_de`, `swiss` | Name of the cloud region. |
| `visibility` | string | `public`, `internal`, `hidden` | Document visibility level. |
| `pdf_visibility` | string | `public`, `internal`, `hidden` | PDF visibility level |
| `pdf_enabled` | boolean | `true`, `false` | Enable PDF export |

View File

@ -14,4 +14,4 @@ cloud_environments:
- name: swiss
visibility: public
pdf_visibility: public
pdf_enabled: true
pdf_enabled: false

View File

@ -14,4 +14,4 @@ cloud_environments:
- name: swiss
visibility: public
pdf_visibility: public
pdf_enabled: true
pdf_enabled: false

View File

@ -8,10 +8,10 @@ title: Permissions
type: permissions
cloud_environments:
- name: eu_de
visibility: internal
visibility: public
pdf_visibility: public
pdf_enabled: true
- name: swiss
visibility: internal
visibility: public
pdf_visibility: public
pdf_enabled: true

View File

@ -5,7 +5,7 @@ link: /object-storage-service-3rd-party/python-sdk/
rst_location: doc/python-sdk/source
service_type: obs_3rd_party
title: Python SDK
type: 3rd_party_sdk
type: python-sdk
cloud_environments:
- name: eu_de
visibility: public

View File

@ -0,0 +1,13 @@
---
hc_location: api/ucs
html_location: docs/ucs/api-ref
link: /ubiquitous-cloud-native-service/api-ref/
rst_location: api-ref/source
service_type: ucs
title: API Reference
type: api-ref
cloud_environments:
- name: eu_de
visibility: internal
pdf_visibility: internal
pdf_enabled: true

View File

@ -0,0 +1,13 @@
---
hc_location: usermanual/ucs
html_location: docs/ucs/umn
link: /ubiquitous-cloud-native-service/umn/
rst_location: umn/source
service_type: ucs
title: User Guide
type: umn
cloud_environments:
- name: eu_de
visibility: internal
pdf_visibility: internal
pdf_enabled: true

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,47 @@
# 📁 repositories/
Defines the documentation repositories associated with each service for both internal and public environments. Used for resolving documentation sources and CI sync jobs.
## 🔧 Example: `ecs.yaml`
```yaml
---
service_type: ecs
repositories:
- environment: public
repo: opentelekomcloud-docs/elastic-cloud-server
type: github
cloud_environments:
- eu_de
- environment: internal
repo: docs/elastic-cloud-server
type: gitea
cloud_environments:
- eu_de
- environment: public
repo: opentelekomcloud-docs-swiss/elastic-cloud-server
type: github
cloud_environments:
- swiss
- environment: internal
repo: docs-swiss/elastic-cloud-server
type: gitea
cloud_environments:
- swiss
```
## Parameter Options:
| Field | Type | Description |
| -------------- | ------ | ---------------------------------------------------- |
| `service_type` | string | Links this configuration to a service (`services/`). |
| `repositories` | list | List of repositories per environment and cloud. |
### `repositories` Options:
| Field | Type | Allowed Values | Description |
| -------------------- | ------ | ---------------------- | ------------------------------------- |
| `environment` | string | `public`, `internal` | Visibility level of the repository. |
| `repo` | string | Git path | Path to the Git repository. |
| `type` | string | `github`, `gitea` | Type of Git service. |
| `cloud_environments` | list | e.g., `eu_de`, `swiss` | Supported regions for the repository. |

View File

@ -5,9 +5,9 @@ repositories:
repo: opentelekomcloud-docs/glossary
type: github
cloud_environments:
-
- eu_de
- environment: internal
repo: docs/glossary
type: gitea
cloud_environments:
-
- eu_de

View File

@ -0,0 +1,13 @@
---
service_type: ucs
repositories:
- environment: public
repo: opentelekomcloud-docs/ubiquitous-cloud-native-service
type: github
cloud_environments:
- eu_de
- environment: internal
repo: docs/ubiquitous-cloud-native-service
type: gitea
cloud_environments:
- eu_de

View File

@ -0,0 +1,18 @@
# 📁 service_categories/
Contains the list of service category definitions. These categories help group services (e.g., "Application", "Database").
## 🔧 Example: `compute.yaml`
```yaml
---
name: compute
title: Computing
```
## Parameter Reference
| Field | Type | Description |
| ------- | ------ | ------------------------------------- |
| `name` | string | Internal identifier for the category. |
| `title` | string | Display name used in UIs. |

View File

@ -1,3 +1,3 @@
---
name: application
title: Application Services
title: Application

View File

@ -1,3 +1,3 @@
---
name: big_data
title: Big Data and Data Analysis
title: Data Analysis

View File

@ -1,3 +1,3 @@
---
name: network
title: Networking
title: Network

View File

@ -0,0 +1,48 @@
# 📁 services/
This folder contains metadata files that describe individual cloud services. Each file defines a single service and its configuration across environments.
## 🔧 Example: `ecs.yaml`
```yaml
---
service_category: compute
service_title: Elastic Cloud Server
service_type: ecs
service_uri: elastic-cloud-server
teams:
- name: docs-compute-rw
permission: write
cloud_environments:
- name: eu_de
visibility: public
- name: swiss
visibility: public
is_global: false
```
## Parameter Reference
| Parameter | Type | Description |
| -------------------- | ------- | --------------------------------------------------------------------- |
| `is_global` | boolean | Indicates whether the service is available globally (`true`/`false`). |
| `service_category` | string | Category reference, defined in `service_categories/`. |
| `service_title` | string | Display name of the service. |
| `service_type` | string | Unique identifier used across all metadata. |
| `service_uri` | string | URI component used in documentation links. |
| `cloud_environments` | list | List of cloud regions and their visibility settings. |
| `teams` | list | Contributor teams with write or read access. |
### `cloud_environments` Options:
| Field | Type | Allowed Values | Description |
| ------------ | ------ | ------------------------------ | ----------------------------------- |
| `name` | string | e.g., `eu_de`, `swiss` | Name of the cloud region. |
| `visibility` | string | `public`, `internal`, `hidden` | Controls visibility of the service. |
### `teams` Options:
| Field | Type | Allowed Values | Description |
| ------------ | ------ | --------------- | ---------------------------------------- |
| `name` | string | team identifier | Name of the team (e.g., `docs-compute-rw`). |
| `permission` | string | `read`, `write` | Access level to the metadata. |

View File

@ -11,4 +11,3 @@ cloud_environments:
- name: eu_de
visibility: public
is_global: false
is_global: false

View File

@ -8,5 +8,5 @@ teams:
permission: write
cloud_environments:
- name: eu_de
visibility: internal
visibility: hidden
is_global: false

View File

@ -0,0 +1,12 @@
---
is_global: false
service_category: container
service_title: Ubiquitous Cloud Native Service
service_type: ucs
service_uri: ubiquitous-cloud-native-service
cloud_environments:
- name: eu_de
visibility: internal
teams:
- name: docs-container-rw
permission: write

View File

@ -13,7 +13,6 @@
import copy
import warnings
import json
import otc_metadata.data
@ -104,6 +103,11 @@ class Services(object):
for srv in self.all_services:
if environment and cloud_environment:
cloud_environment_check = False
if srv["is_global"] is True:
if srv["environment"] == environment:
cloud_environment_check = True
else:
continue
if srv["is_global"] is not True:
for srv_cloud_environment in srv["cloud_environments"]:
if srv_cloud_environment["name"] == cloud_environment:

View File

@ -47,6 +47,7 @@ otcdocs_doc_type = '{{ doc_type }}'
otcdocs_service_category = '{{ service_category }}'
otcdocs_service_title = '{{ service_title }}'
otcdocs_service_type = '{{ service_type }}'
otcdocs_service_environment = '{{ service_environment }}'
otcdocs_cloud_environment = '{{ otcdocs_cloud_environment }}'
otcdocs_search_environment = '{{ otcdocs_search_environment }}'
otcdocs_search_index = '{{ otcdocs_search_index }}'

View File

@ -11,10 +11,6 @@ reno>=3.1.0 # Apache-2.0
otc-sphinx-directives>=0.1.0
sphinx-minify>=0.0.1 # Apache-2.0
{% if otcdocs_cloud_environment == 'eu_de' %}
git+https://gitea.eco.tsi-dev.otc-service.com/infra/otc-metadata.git#egg=otc_metadata
{% elif otcdocs_cloud_environment == 'swiss' %}
git+https://gitea.eco.tsi-dev.otc-service.com/infra/otc-metadata-swiss.git#egg=otc_metadata
{% endif %}
git+https://gitea.eco.tsi-dev.otc-service.com/infra/otc-metadata-rework.git#egg=otc_metadata
setuptools
gitpython

View File

@ -28,7 +28,7 @@ commands = {posargs}
[testenv:docs]
deps =
-r{toxinidir}/doc/requirements.txt
-c https://raw.githubusercontent.com/opentelekomcloud-docs/docs-constraints/main/constraints.txt
-c https://raw.githubusercontent.com/opentelekomcloud-docs/docs-constraints/main/constraints/{{otcdocs_cloud_environment}}/{{target_environment}}/constraints.txt
allowlist_externals =
mkdir
cp

View File

@ -215,6 +215,7 @@ def process_repositories(args, service):
context["service_category"] = service['service_category']
context["service_title"] = service['service_title']
context["service_type"] = service['service_type']
context["service_environment"] = args.target_environment
context["otcdocs_cloud_environment"] = args.cloud_environment
conf_py_content = conf_py_template.render(**context)
@ -276,6 +277,7 @@ def process_repositories(args, service):
context["otcdocs_search_index"] = "search_index_de"
context["environment"] = args.target_environment
context["otcdocs_cloud_environment"] = args.cloud_environment
context["service_environment"] = args.target_environment
sbv_title = (service["service_title"] + "\n"
+ ('=' * len(service["service_title"])))
context["sbv_title"] = sbv_title

View File

@ -24,7 +24,7 @@ def main():
data = otc_metadata.services.Services()
data._sort_data()
docs = data.docs_html_by_category(environment="internal",cloud_environment=args.cloud_environment)
docs = data.docs_html_by_category(environment="internal", cloud_environment=args.cloud_environment)
# Filter out documents with "disable_import": True
for category, services in docs['categories'].items():