Shared images
Build the training runtime, dataset stager and serving builder once and share them with several tenants
Required permission: Global admin
Training and serving need three kinds of tool images.
| Kind | What it does |
|---|---|
| Training runtime | The training container itself. There is a separate one per framework (YOLO, RF-DETR, Pointcept and so on) |
| Dataset stager | An init container (a preparation container that runs before the main container) that places the dataset inside the training pod before the pod starts |
| Serving builder | A builder that builds a registered model into a serving image |
Building them separately for each tenant repeats the same work. Shared images are built once, pushed to the reserved namespace (mlops), and shared only with the tenants you choose. A tenant that has not been given a shared image can neither see nor pull it.
At startup the server creates one unpublished shared variant per kind (per framework for training runtimes): shared-yolo-v1, shared-rfdetr-v1, shared-pointcept-v1, and shared-v1 for the stager and the builder. On a new installation, Publish (게시) these variants and share them with tenants.
From top to bottom the screen has three parts.
- Per-tenant defaults (테넌트별 기본) — collects the tenants and combinations (kind and framework) that have no default image. Pressing "Fill … (… 채우기)" opens the share-targets dialog of the shared variant to use for that combination; check that tenant and Default (기본) in the dialog yourself. If no shared variant exists for that combination, the screen says so.
- Kind tabs and the shared variant list — Training runtime (학습 런타임) / Dataset stager (데이터셋 스테이저) / Serving builder (서빙 빌더). The training runtime tab also shows the Training catalog panel described below.
- Reserved repository (예약 저장소) — a summary of the images actually pushed to the reserved namespace (read-only).
Create and build a shared variant
- Choose a kind tab and press Add shared variant (공유 변형 추가).
- Enter the framework (for a training runtime), name, tag, description and build-args, then press Create (만들기). If you leave the build-args empty, the Dockerfile defaults are used.
Create a shared variant - Press Publish (게시) in the list to build the image in the cluster. The publish column changes from Publishing (게시 중) to Published (게시됨). Stop it with Stop (중지) while it is in progress. Press the row to see the publish progress and log.
Share with tenants
- Press Share targets (공유 대상) on the variant row.
- Check the tenants to hand it to, and also check Default (기본) if that tenant should use it as its default.
Share targets — share and default per tenant - Press Save (저장).
- The share-target list is replaced as a whole. Sharing is revoked from tenants you uncheck. If a revoked tenant uses this variant as its default, you confirm once more before saving.
- Turning on Default (기본) clears that tenant's existing default (whether its own variant or another shared variant). If you make a variant that is not published yet the default, you confirm once more before saving (Save anyway (그래도 저장)).
- If a target tenant already has its own variant with the same tag, saving is rejected (409). Clean up that tenant's variant tag or use a shared variant with a different tag.
- Tenant administrators see shared variants in their own variant list with a "Shared (공유)" badge, and can only set them as default. Editing, deleting and publishing are done only in the system console.
Training catalog (shared)
The choices in wizard steps 2, 3 and 7 come from the training catalog of each framework key (see Training catalog). A shared catalog applies to every tenant using the key; a tenant that saved its own catalog in its DB uses its own. The lookup order is tenant DB, shared DB, code.
Shared variants are build variants of built-in frameworks, whose catalogs are defined by code. Shared catalogs are therefore managed per key in the Training catalog panel under the training runtime tab, not on variant rows.
| Column | Meaning |
|---|---|
| Shared catalog (공유 카탈로그) | Status of the shared DB. 코드 기본값 or 카탈로그 없음 is a warning |
| Tenants using (쓰는 테넌트) | Tenants with a training runtime variant (own or granted) for the key |
| Own DB (자기 DB) · On shared DB (공유 DB 적용) · Code defaults (코드 기본값) · None (없음) | How many of those tenants get the catalog from each place |
- Press Enter (입력) on a key with a warning, or Edit (편집) on a key that has a shared catalog. For a new key, type it at the top right of the panel and press Enter shared catalog (공유 카탈로그 입력).
- In the editor, edit the YAML, check validation and the preview the same way as on the tenant screen. Per-tenant status at the bottom shows for each tenant whether a tenant DB, shared DB or code catalog exists and which one applies.
- Press Save to DB (DB 에 저장). The confirmation dialog shows how many tenants are affected.