2 Commits
umami ... main

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
8 changed files with 211 additions and 0 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 |

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

@ -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

@ -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

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

View File

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