Compare commits
19 Commits
74b12f8d23
...
documentat
Author | SHA1 | Date | |
---|---|---|---|
91e9962846 | |||
0147b46518 | |||
a47e2a9d87 | |||
f0db6132bb | |||
1c90e222ae | |||
dc86ee3773 | |||
a6993b58b6 | |||
244122d66e | |||
c840bfddf7 | |||
5688aa9fa9 | |||
483dd1ba13 | |||
9c91fde599 | |||
7d4aacf61d | |||
a41f77df9a | |||
c2a89cf6b1 | |||
bf825ffdaa | |||
6960b72f63 | |||
d7868e7d72 | |||
28e651dffb |
26
otc_metadata/data/README.md
Normal file
26
otc_metadata/data/README.md
Normal 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
|
||||
|
||||

|
69
otc_metadata/data/documents/README.md
Normal file
69
otc_metadata/data/documents/README.md
Normal 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 |
|
@ -1,11 +1,11 @@
|
||||
---
|
||||
hc_location: usermanual/aom
|
||||
html_location: docs/aom/umn
|
||||
link: /application-operations-management/umn/
|
||||
rst_location: umn/source
|
||||
hc_location: api/aom
|
||||
html_location: docs/aom/api-ref
|
||||
link: /application-operations-management/api-ref/
|
||||
rst_location: api-ref/source
|
||||
service_type: aom
|
||||
title: User Guide
|
||||
type: umn
|
||||
title: API Reference
|
||||
type: api-ref
|
||||
cloud_environments:
|
||||
- name: eu_de
|
||||
visibility: public
|
||||
|
@ -14,4 +14,4 @@ cloud_environments:
|
||||
- name: swiss
|
||||
visibility: public
|
||||
pdf_visibility: public
|
||||
pdf_enabled: true
|
||||
pdf_enabled: false
|
||||
|
@ -14,4 +14,4 @@ cloud_environments:
|
||||
- name: swiss
|
||||
visibility: public
|
||||
pdf_visibility: public
|
||||
pdf_enabled: true
|
||||
pdf_enabled: false
|
||||
|
@ -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
|
||||
|
@ -2,6 +2,7 @@
|
||||
hc_location: usermanual/taurusdb
|
||||
html_location: docs/taurusdb/umn
|
||||
link: /taurusdb/umn/
|
||||
rst_location: umn/source
|
||||
pdf_enabled: true
|
||||
service_type: taurusdb
|
||||
title: User Guide
|
||||
|
@ -1,13 +0,0 @@
|
||||
---
|
||||
hc_location: usermanual/testservice
|
||||
html_location: docs/testservice/api-ref
|
||||
link: /testservice/api-ref/
|
||||
rst_location: api-ref/source
|
||||
service_type: testservice
|
||||
title: User Guide
|
||||
type: api-ref
|
||||
cloud_environments:
|
||||
- name: swiss
|
||||
visibility: public
|
||||
pdf_visibility: public
|
||||
pdf_enabled: true
|
@ -1,13 +0,0 @@
|
||||
---
|
||||
hc_location: usermanual/testservice
|
||||
html_location: docs/testservice/umn
|
||||
link: /testservice/umn/
|
||||
rst_location: umn/source
|
||||
service_type: testservice
|
||||
title: User Guide
|
||||
type: umn
|
||||
cloud_environments:
|
||||
- name: eu_de
|
||||
visibility: public
|
||||
pdf_visibility: public
|
||||
pdf_enabled: true
|
BIN
otc_metadata/data/folder_structure.png
Normal file
BIN
otc_metadata/data/folder_structure.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
47
otc_metadata/data/repositories/README.md
Normal file
47
otc_metadata/data/repositories/README.md
Normal 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. |
|
@ -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
|
||||
|
@ -1,13 +0,0 @@
|
||||
---
|
||||
service_type: testservice
|
||||
repositories:
|
||||
- environment: public
|
||||
repo: opentelekomcloud-docs/testservice
|
||||
type: github
|
||||
cloud_environments:
|
||||
- eu_de
|
||||
- environment: internal
|
||||
repo: docs/testservice
|
||||
type: gitea
|
||||
cloud_environments:
|
||||
- eu_de
|
18
otc_metadata/data/service_categories/README.md
Normal file
18
otc_metadata/data/service_categories/README.md
Normal 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. |
|
@ -1,3 +1,3 @@
|
||||
---
|
||||
name: application
|
||||
title: Application Services
|
||||
title: Application
|
||||
|
@ -1,3 +1,3 @@
|
||||
---
|
||||
name: big_data
|
||||
title: Big Data and Data Analysis
|
||||
title: Data Analysis
|
||||
|
@ -1,3 +1,3 @@
|
||||
---
|
||||
name: network
|
||||
title: Networking
|
||||
title: Network
|
||||
|
48
otc_metadata/data/services/README.md
Normal file
48
otc_metadata/data/services/README.md
Normal 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. |
|
@ -11,4 +11,3 @@ cloud_environments:
|
||||
- name: eu_de
|
||||
visibility: public
|
||||
is_global: false
|
||||
is_global: false
|
||||
|
@ -8,5 +8,5 @@ teams:
|
||||
permission: write
|
||||
cloud_environments:
|
||||
- name: eu_de
|
||||
visibility: internal
|
||||
visibility: hidden
|
||||
is_global: false
|
||||
|
@ -1,14 +0,0 @@
|
||||
---
|
||||
environment: public
|
||||
is_global: false
|
||||
service_category: security-services
|
||||
service_title: Test Service
|
||||
service_type: testservice
|
||||
service_uri: testservice
|
||||
cloud_environments:
|
||||
- name: eu_de
|
||||
visibility: internal
|
||||
teams:
|
||||
- name: docs-security-services-rw
|
||||
permission: write
|
||||
is_global: false
|
@ -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:
|
||||
@ -151,7 +155,7 @@ class Services(object):
|
||||
continue
|
||||
for repositories in self.all_repositories:
|
||||
if repositories["service_type"] == service["service_type"]:
|
||||
res["repositories"] = repositories["repositories"]
|
||||
res[cat]["repositories"] = repositories["repositories"]
|
||||
res[cat].setdefault("docs", [])
|
||||
res[cat]["docs"].append(res_doc)
|
||||
return res
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -348,11 +348,11 @@ def process_repositories(args, service):
|
||||
if cloud_environment["name"] == args.cloud_environment:
|
||||
if doc["type"] == "dev":
|
||||
doc["type"] = "dev-guide"
|
||||
if cloud_environment["name"] == "swiss":
|
||||
context["template"] = "helpcenter-swiss-base-jobs"
|
||||
elif cloud_environment["name"] == "eu_de":
|
||||
context["template"] = "helpcenter-base-jobs"
|
||||
context["docs"].append(doc)
|
||||
if args.cloud_environment == "swiss":
|
||||
context["template"] = "helpcenter-swiss-base-jobs"
|
||||
elif args.cloud_environment == "eu_de":
|
||||
context["template"] = "helpcenter-base-jobs"
|
||||
context["service_type"] = service['service_type']
|
||||
|
||||
zuul_yaml_content = zuul_yaml_template.render(**context)
|
||||
|
@ -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():
|
||||
|
Reference in New Issue
Block a user