Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .cspell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,12 @@ words:
- Kubermatic
- kubevirt
- Kueue
- hami
- Qwen
- Shenzhen
- TPOT
- TTFT
- verl
- kyverno
- MGMT
- MPLS
Expand Down
16 changes: 9 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,14 +132,16 @@ Rules:
record and member data use.
- The page's front matter is the only place an architecture's metadata is
written. Alongside `title`, an `architecture:` block carries `organization`,
`summary`, `industries`, `tags`, `projects`, `sourceUrl`, exactly one of
`summary`, `industries`, `tags`, `projects`, `sourceUrl`, optionally one of
`sourceCommit` (a cncf/architecture import) or `sourceIssue` (a submission
issue), `published` and `updated`. The record's `id` is the directory name and
its `assets` are the files in `images/`; neither is written by hand. After
editing a page or adding one, run `npm run generate:architectures` and commit
the regenerated `data/architectures/catalog.json` with it; the catalog
component, member directory and data-link checks read that mirror, and
`validate:architectures` fails when it is behind the pages
issue), `published` and `updated`. A page authored directly from another
source sets neither and cites its `sourceUrl` in the attribution line. The
record's `id` is the directory name and its `assets` are the files in
`images/`; neither is written by hand. After editing a page or adding one, run
`npm run generate:architectures` and commit the regenerated
`data/architectures/catalog.json` with it; the catalog component, member
directory and data-link checks read that mirror, and `validate:architectures`
fails when it is behind the pages
([ADR 0010](adr/0010-architecture-pages-are-the-metadata-source.md)).
- Architecture `tags` are written with spaces, not underscores (`private cloud`,
not `private_cloud`): they appear as search chips on the catalog. The importer
Expand Down
5 changes: 3 additions & 2 deletions adr/0010-architecture-pages-are-the-metadata-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ pages), and a nested block keeps the catalog's vocabulary out of the theme's.
- The front matter of `docs/architectures/<id>/index.md` is the only place an
architecture's metadata is written. Alongside `title`, an `architecture:`
block carries `organization`, `summary`, `industries`, `tags`, `projects`,
`sourceUrl`, exactly one of `sourceCommit` or `sourceIssue`, `published` and
`updated`.
`sourceUrl`, at most one of `sourceCommit` or `sourceIssue` (amended
2026-10-28: a page authored directly from another source sets neither),
`published` and `updated`.
- `id` is the directory name and `assets` is the sorted listing of regular files
in `images/`. Neither is authored; both are derived when the catalog is
generated.
Expand Down
23 changes: 23 additions & 0 deletions data/architectures/catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,29 @@
"/img/architectures/cern-scientific-computing/use-cases.png"
]
},
{
"id": "china-merchants-bank",
"title": "Unified Training and Inference on Kubernetes for Heterogeneous AI Compute at China Merchants Bank",
"organization": "China Merchants Bank",
"summary": "China Merchants Bank runs large-model training, LoRA fine-tuning, and online inference on one Kubernetes-based pool of nearly 10,000 heterogeneous accelerator cards, with separate operating policies for each workload type.",
"industries": ["Financial Services"],
"tags": [
"ai",
"machine learning",
"llm training",
"llm inference",
"gpu scheduling",
"heterogeneous accelerators",
"multi-tenancy",
"autoscaling",
"platform engineering"
],
"projects": ["Kubernetes", "KEDA", "Prometheus", "HAMi", "Fluid"],
"sourceUrl": "https://github.com/cncf/tab/issues/140",
"published": "2026-10-28",
"updated": "2026-10-28",
"assets": ["/img/architectures/china-merchants-bank/architecture.png"]
},
{
"id": "colopl",
"title": "Colopl's FESTIBATTLE Infrastructure Architecture: Dedicated Game Servers with Agones on Kubernetes",
Expand Down
19 changes: 19 additions & 0 deletions data/members.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,25 @@
],
"membershipStatus": "member"
},
{
"id": "china-merchants-bank",
"name": "China Merchants Bank",
"slug": "china-merchants-bank",
"logo": null,
"industries": ["Financial Services"],
"projects": ["Fluid", "HAMi", "KEDA", "Kubernetes", "Prometheus"],
"architectures": [
{
"id": "china-merchants-bank",
"title": "Unified Training and Inference on Kubernetes for Heterogeneous AI Compute at China Merchants Bank",
"sourceUrl": "https://github.com/cncf/tab/issues/140"
}
],
"awards": [],
"sourceAttribution": ["https://github.com/cncf/tab/issues/140"],
"membershipSources": [],
"membershipStatus": "unknown"
},
{
"id": "citi",
"name": "Citi",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading