Compare commits
13 Commits
dummy-test
...
main
Author | SHA1 | Date | |
---|---|---|---|
f6b9d03ef7 | |||
af1a08de5f | |||
11ba8bf8ce | |||
9f0fa5bc11 | |||
1c90e222ae | |||
dc86ee3773 | |||
a6993b58b6 | |||
244122d66e | |||
c840bfddf7 | |||
5688aa9fa9 | |||
483dd1ba13 | |||
9c91fde599 | |||
7d4aacf61d |
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 |
|
@ -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
|
||||
|
@ -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
|
@ -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
|
||||
|
13
otc_metadata/data/documents/ucs-api-ref.yaml
Normal file
13
otc_metadata/data/documents/ucs-api-ref.yaml
Normal 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
|
13
otc_metadata/data/documents/ucs-umn.yaml
Normal file
13
otc_metadata/data/documents/ucs-umn.yaml
Normal 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
|
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
|
||||
|
13
otc_metadata/data/repositories/ucs.yaml
Normal file
13
otc_metadata/data/repositories/ucs.yaml
Normal 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
|
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
|
||||
|
12
otc_metadata/data/services/ucs.yaml
Normal file
12
otc_metadata/data/services/ucs.yaml
Normal 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
|
@ -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:
|
||||
|
@ -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 }}'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user