unip-controller/deploy/crd/dataset-component.yaml

139 lines
6.9 KiB
YAML
Raw Normal View History

2025-01-29 13:13:51 +00:00
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: datasetcomponents.unified-platform.cs.hse.ru
spec:
scope: Namespaced
group: unified-platform.cs.hse.ru
names:
kind: DatasetComponent
plural: datasetcomponents
singular: datasetcomponent
shortNames:
- datacmps
- datacmp
- datasetcmps
- datasetcmp
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
description: Определяет желаемое состояние датасета. Содержит спецификацию датасета, что включает ящик и версии.
type: object
properties:
box:
description: Название ящика
type: string
pattern: ^[a-zA-Z0-9_-]{1,50}$
restfulApi:
type: object
description: Определяет параметры REST API к предоставляемым данным.
required: ["auth"]
properties:
auth:
type: object
description: Auth определяет параметры аутентификции.
properties:
basic:
type: object
description: Basic определяет параметры базовой аутентификации.
properties:
enabled:
type: boolean
description: Определяет, включена ли базовая аутентификация.
Считается, что если атрибут не задан, то базовая аутентификация включена.
credentials:
type: string
description: Имя секрета с реквизитами базовой аутентификации в формате файла htpasswd.
oidc:
type: object
description: OIDC определяет параметры OIDC аутентификации.
properties:
enabled:
type: boolean
description: Определяет, включена ли OIDC аутентификация.
Считается, что если атрибут не задан, то OIDC аутентификация включена.
groups:
type: array
description: Определяет разрешенные группы.
items:
maxItems: 32
type: string
maxLength: 255
roles:
type: array
description: Определяет разрешенные роли.
items:
maxItems: 32
type: string
maxLength: 255
anyOf:
- properties:
basic: {}
required: ["basic"]
- properties:
oidc: {}
required: ["oidc"]
filesApiSecret:
description: Секреты доступа к Files API с правами на чтение
type: string
pattern: ^[a-zA-Z0-9-]{1,60}$
default: basic-auth-credentials-not-hashed
versions:
type: array
items:
description: Определяет желаемое состояние версии. Содержит спецификацию версии, что включает название и путь к данным.
type: object
properties:
name:
description: Название версии датасета.
type: string
pattern: ^[a-zA-Z0-9_-]{1,50}$
contents:
description: Информация о данных версии внутри ящика
type: object
properties:
readme:
description: Информация о текстовых метаданных для пользователя (в формате Markdown).
type: object
properties:
path:
description: Путь в ящике.
type: string
default: README.md
sha256:
description: Хэш сумма SHA-256.
type: string
pattern: ^[a-fA-F0-9]{64}$
metadata:
description: Информация о файле с метaданными (в формате JSON).
type: object
properties:
path:
description: Путь в ящике.
type: string
default: metadata.json
sha256:
description: Хэш сумма SHA-256.
type: string
pattern: ^[a-fA-F0-9]{64}$
files:
description: Информация о файле с перечнем файлов данных (в формате JSON).
type: object
properties:
path:
description: Путь в ящике.
type: string
default: files.json
sha256:
description: Хэш сумма SHA-256.
type: string
pattern: ^[a-fA-F0-9]{64}$
status:
type: object
x-kubernetes-preserve-unknown-fields: true